diff --git a/app/assets/javascripts/src/Metamaps.js b/app/assets/javascripts/src/Metamaps.js index 842e32b0..5f41472d 100644 --- a/app/assets/javascripts/src/Metamaps.js +++ b/app/assets/javascripts/src/Metamaps.js @@ -664,6 +664,15 @@ Metamaps.Create = { Metamaps.Create.newTopic.name = $(this).val(); }); + var topicBloodhound = new Bloodhound({ + datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), + queryTokenizer: Bloodhound.tokenizers.whitespace, + remote: { + url: '/topics/autocomplete_topic?term=%QUERY', + wildcard: '%QUERY', + }, + }); + // initialize the autocomplete results for the metacode spinner $('#topic_name').typeahead( { @@ -672,20 +681,18 @@ Metamaps.Create = { [{ name: 'topic_autocomplete', limit: 8, - template: Hogan.compile($('#topicAutocompleteTemplate').html()), - source: function(query, syncResults, asyncResults) { - syncResults([]); //we don't got none - var url = '/topics/autocomplete_topic?term=' + query; - $.ajax(url, { - success: function(data) { asyncResults(data); }, - error: function() { asyncResults([]); }, - }); + display: function (s) { return s.label; }, + templates: { + suggestion: function(s) { + return Hogan.compile($('#topicAutocompleteTemplate').html()).render(s); + }, }, + source: topicBloodhound, }] ); // tell the autocomplete to submit the form with the topic you clicked on if you pick from the autocomplete - $('#topic_name').bind('typeahead:selected', function (event, datum, dataset) { + $('#topic_name').bind('typeahead:select', function (event, datum, dataset) { Metamaps.Topic.getTopicFromAutocomplete(datum.id); }); @@ -718,7 +725,7 @@ Metamaps.Create = { }, hide: function () { $('#new_topic').fadeOut('fast'); - $("#topic_name").typeahead('setQuery', ''); + $("#topic_name").typeahead('val', ''); Metamaps.Create.newTopic.beingCreated = false; } }, @@ -730,6 +737,31 @@ Metamaps.Create = { Metamaps.Create.newSynapse.description = $(this).val(); }); + var synapseBloodhound = new Bloodhound({ + datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), + queryTokenizer: Bloodhound.tokenizers.whitespace, + remote: { + url: '/search/synapses?term=%QUERY', + wildcard: '%QUERY', + }, + }); + var existingSynapseBloodhound = new Bloodhound({ + datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), + queryTokenizer: Bloodhound.tokenizers.whitespace, + remote: { + url: '/search/synapses?topic1id=%TOPIC1&topic2id=%TOPIC2', + prepare: function(query, settings) { + var self = Metamaps.Create.newSynapse; + if (Metamaps.Selected.Nodes.length < 2) { + var url = '/search/synapses?topic1id=' + self.topic1id + '&topic2id=' + self.topic2id; + } + console.log(query); + console.log(settings); + return settings; + }, + }, + }); + // initialize the autocomplete results for synapse creation $('#synapse_desc').typeahead( { @@ -737,39 +769,29 @@ Metamaps.Create = { }, [{ name: 'synapse_autocomplete', - template: Hogan.compile("