Browse Source

Autocomplete is now visible in frontendgit add -A. Crying out of joy from the inside

ansible-setup-and-deploy
Jocavdh 6 years ago
parent
commit
7cf5677221
  1. 84
      app/static/js/app.js
  2. 8
      app/views.py

84
app/static/js/app.js

@ -161,41 +161,53 @@ $(document).ready(function()
// Autocomplete for search - Contact Joca in case of trouble // Autocomplete for search - Contact Joca in case of trouble
// Check: Code doesn't work inside document.ready function // Check: Code doesn't work inside document.ready function
// Are the other functions correctly closed? // Are the other functions correctly closed?
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}
// Send query to server $( "#search" )
$('#search').on("input", function() { // don't navigate away from the field on tab when selecting an item
var query = this.value; .on( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$.ajax({ $( this ).autocomplete( "instance" ).menu.active ) {
url: "/autocomplete_suggestions", event.preventDefault();
data: $('form').serialize(), }
type: "POST", })
async: false, .autocomplete({
success: function(response) { source:function(request, response) {
//console.log("Got your query!"); $.getJSON("/autocomplete_suggestions",{
} q: request.term, // in flask, "q" will be the argument to look for using request.args
}, function(data) {
}); response(data); // matching_results from jsonify
console.log("this" + data);
var JSONItems = ['battle']; });
$.getJSON( "/autocomplete_suggestions", callbackFuncWithData); },
search: function() {
// custom minLength
var term = extractLast( this.value );
function callbackFuncWithData() { if ( term.length < 2 ) {
return false;
$("#search").autocomplete({
source: function( request, response ) {
$.getJSON( "autocomplete_suggestions", {
term: extractLast( request.term )
}, response );
} }
}); },
} focus: function() {
// prevent value inserted on focus
return false;
}); },
select: function( event, ui ) {
console.log(this.value);
// Get autocomplete_suggestions str = this.value;
console.log("haha"); var terms = str.split(" ");
console.log(terms);
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( " " );
return false;
}
});

8
app/views.py

@ -441,8 +441,9 @@ autocomplete.load() #Train markov model once, for autocomplete in search
@app.route('/autocomplete_suggestions', methods=['GET', 'POST']) @app.route('/autocomplete_suggestions', methods=['GET', 'POST'])
def autocomplete_search(): def autocomplete_search():
if request.method == 'POST': if request.method == 'GET':
query = request.form['search'] #query = request.form['search']
query = request.args.get('q')
query_tokenized = query.lower().split() query_tokenized = query.lower().split()
print(query_tokenized) print(query_tokenized)
word_1 = query_tokenized[-2] word_1 = query_tokenized[-2]
@ -458,7 +459,8 @@ def autocomplete_search():
print(session['autocomplete_suggestions']) print(session['autocomplete_suggestions'])
return Response(json.dumps(session['autocomplete_suggestions']), mimetype='application/json') return Response(json.dumps(autocomplete_suggestions), mimetype='application/json')
## STACKS! ## STACKS!

Loading…
Cancel
Save