diff options
Diffstat (limited to 'src/client/view')
| -rw-r--r-- | src/client/view/search.js | 2 | ||||
| -rw-r--r-- | src/client/view/textanalyser_input.js | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/client/view/search.js b/src/client/view/search.js index c6203c34..29e702d1 100644 --- a/src/client/view/search.js +++ b/src/client/view/search.js @@ -17,7 +17,7 @@ function init() { matchStartOfString: true, }); - search_completer.options.plug(textanalysis.suggestions_options); + search_completer.options.plug(textanalysis.suggestions_options.map('.nodes')); search.on('input', search_on_submit); search.on('keydown', function(e) { if (e.which == 13 && !search_completer.handleEnter()) { diff --git a/src/client/view/textanalyser_input.js b/src/client/view/textanalyser_input.js index 184402b1..5ac72a72 100644 --- a/src/client/view/textanalyser_input.js +++ b/src/client/view/textanalyser_input.js @@ -89,9 +89,20 @@ function textanalyser_input(spec) { }, analysisCompleter = completer(element, $(spec.completer_name), completer_spec), document_keydown = new Bacon.Bus(), - input_bus = new Bacon.Bus(); + input_bus = new Bacon.Bus(), + selectionBus = element.asEventStream('selectstart input keyup').map(selectionStart).skipDuplicates(); - analysisCompleter.options.plug(textanalysis.suggestions_options); + analysisCompleter.options.plug( + textanalysis.suggestions_options + .combine(selectionBus, function (options, cursor) { return [options, cursor]; }) + .combine(ta.on_analysis__output, function (both, output) { return both; }) + .map( + function (both) { + var options = both[0], + cursor = both[1], + is_link = textanalysis.element_at_position__is_link(cursor); + return options[is_link ? 'links' : 'nodes']; + })); util.assert(1 === element.length); |
