From 559a4c7e4000693d65a7715a0af4064c81ce9c29 Mon Sep 17 00:00:00 2001 From: Daku Date: Sat, 18 Jun 2016 11:58:41 +0100 Subject: [PATCH] move autocomplete js to script.js so it's cached --- ext/autocomplete/script.js | 58 +++++++++++++++++++++++++++++++++++ ext/autocomplete/theme.php | 63 +------------------------------------- 2 files changed, 59 insertions(+), 62 deletions(-) create mode 100644 ext/autocomplete/script.js diff --git a/ext/autocomplete/script.js b/ext/autocomplete/script.js new file mode 100644 index 00000000..b2f26384 --- /dev/null +++ b/ext/autocomplete/script.js @@ -0,0 +1,58 @@ +$(function(){ + $('[name=search]').tagit({ + singleFieldDelimiter: ' ', + beforeTagAdded: function(event, ui) { + // give special class to negative tags + if(ui.tagLabel[0] === '-') { + ui.tag.addClass('tag-negative'); + }else{ + ui.tag.addClass('tag-positive'); + } + }, + autocomplete : ({ + source: function (request, response) { + var isNegative = (request.term[0] === '-'); + $.ajax({ + url: base_href + '/api/internal/autocomplete', + data: {'s': (isNegative ? request.term.substring(1) : request.term)}, + dataType : 'json', + type : 'GET', + success : function (data) { + response($.map(data, function (item) { + item = (isNegative ? '-'+item : item); + return { + label : item, + value : item + } + })); + }, + error : function (request, status, error) { + alert(error); + } + }); + }, + minLength: 1 + }) + }); + + $('.ui-autocomplete-input').keydown(function(e) { + var keyCode = e.keyCode || e.which; + + //Stop tags containing space. + if(keyCode == 32) { + e.preventDefault(); + + $('[name=search]').tagit('createTag', $(this).val()); + $(this).autocomplete('close'); + } else if (keyCode == 9) { + e.preventDefault(); + + var tag = $('.tagit-autocomplete[style*=\"display: block\"] > li:first').text(); + if(tag){ + $('[name=search]').tagit('createTag', tag); + $('.ui-autocomplete-input').autocomplete('close'); + $('.ui-autocomplete-input').val(''); //If tag already exists, make sure to remove duplicate. + } + } + }); +}); \ No newline at end of file diff --git a/ext/autocomplete/theme.php b/ext/autocomplete/theme.php index 3b5a4af5..462d2bfd 100644 --- a/ext/autocomplete/theme.php +++ b/ext/autocomplete/theme.php @@ -7,68 +7,7 @@ class AutoCompleteTheme extends Themelet { $page->add_html_header(""); $page->add_html_header(""); - $page->add_html_header(''); + $page->add_html_header(''); $page->add_html_header(""); - - $page->add_html_header(""); } }