diff options
| author | Alon Levy <alon@pobox.com> | 2015-04-13 14:06:29 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-04-13 14:06:29 +0200 |
| commit | 5bfc1efe4516ab27dca1315549655fcc5327a396 (patch) | |
| tree | 110201d789366154050e3ce330c46b006bc02a62 /src/client | |
| parent | 348ac301c8c7f1619c2f715208c5a7e09e26c73c (diff) | |
client search/completer: use '|' only for separation, append on enter from complete
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/view/completer.js | 4 | ||||
| -rw-r--r-- | src/client/view/layouts.js | 2 | ||||
| -rw-r--r-- | src/client/view/search.js | 10 |
3 files changed, 9 insertions, 7 deletions
diff --git a/src/client/view/completer.js b/src/client/view/completer.js index f9cf4688..368690c3 100644 --- a/src/client/view/completer.js +++ b/src/client/view/completer.js @@ -125,7 +125,7 @@ var completer = (function (input_element, dropdown, base_config) { new RegExp(rz_config.separator_string) : anyof_re(base && base.triggerEnd || ' ')), hideOnTab: base && base.hasOwnProperty('hideOnTab') ? base.hideOnTab : true, matchStartOfString: (base && base.matchStartOfString) || rz_config.node_edge_separator, - appendSpaceOnEnter: (base && base.appendSpaceOnEnter) || false, + appendOnCompletion: (base && base.appendOnCompletion) || '', quoteSpaceContaining: (base && base.quoteSpaceContaining) || false, }; } @@ -270,7 +270,7 @@ var completer = (function (input_element, dropdown, base_config) { } function _applySuggestion(str) { var cur = getter(), - start = cur.slice(0, completion_start) + str + (config.appendSpaceOnEnter ? ' ' : ''), + start = cur.slice(0, completion_start) + str + config.appendOnCompletion, new_text = start + cur.slice(completion_end); setter(new_text, new_text.length); oninput('', 0); diff --git a/src/client/view/layouts.js b/src/client/view/layouts.js index 83fb16ac..a384ee4c 100644 --- a/src/client/view/layouts.js +++ b/src/client/view/layouts.js @@ -226,7 +226,7 @@ function(consts, $, d3, _) { d = _.object(_.pluck(nodes, "id"), nodes); console.log('zen off: restoring fixed for ' + _.size(nodes)); _.each(_.keys(layout._zen_mode__fixed), function (node_id) { - if (d[node_id] !== undefined) { + if (d[node_id] !== undefined && layout._zen_mode__fixed[node_id]) { d[node_id].fixed = layout._zen_mode__fixed[node_id]; } else { console.log('missing ' + node_id); diff --git a/src/client/view/search.js b/src/client/view/search.js index d11d8218..35edd8e7 100644 --- a/src/client/view/search.js +++ b/src/client/view/search.js @@ -13,9 +13,10 @@ var focus = function() { function init() { search_completer = completer(search, search_completer_element, { - triggerStart:' |', - triggerEnd:' |', + triggerStart:'|', + triggerEnd:'|', matchStartOfString: true, + appendOnCompletion:'|', }); search_completer.options.plug(textanalysis.suggestions_options.map('.nodes')); @@ -49,13 +50,14 @@ function init() { function search_on_submit(text) { var r, selector = function (obj) { return attribute_match(obj, r); }; + text_processed = text[text.length - 1] == '|' ? text.slice(0, text.length - 1) : text; try { - r = new RegExp(text.replace(/ /, '|'), 'i'); + r = new RegExp(text_processed, 'i'); } catch (e) { return; // don't clear selection either } - if (text.length > 0) { + if (text_processed.length > 0) { selection.byVisitors(selector, selector); } else { selection.clear(); |
