forked from GNUsocial/gnu-social
Move people tag autocomplete JS to plugin
As discussed in https://gitorious.org/social/mainline/merge_requests/47
This commit is contained in:
55
js/util.js
55
js/util.js
@@ -1562,60 +1562,6 @@ var SN = { // StatusNet
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Called when a people tag edit box is shown in the interface
|
||||
*
|
||||
* - loads the jQuery UI autocomplete plugin
|
||||
* - sets event handlers for tag completion
|
||||
*
|
||||
*/
|
||||
PeopletagAutocomplete: function (txtBox) {
|
||||
var split = function (val) {
|
||||
return val.split( /\s+/ );
|
||||
}
|
||||
var extractLast = function (term) {
|
||||
return split(term).pop();
|
||||
}
|
||||
|
||||
// don't navigate away from the field on tab when selecting an item
|
||||
txtBox.on( "keydown", function ( event ) {
|
||||
if ( event.keyCode === $.ui.keyCode.TAB &&
|
||||
$(this).data( "ui-autocomplete" ).menu.active ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}).autocomplete({
|
||||
minLength: 0,
|
||||
source: function (request, response) {
|
||||
// delegate back to autocomplete, but extract the last term
|
||||
response($.ui.autocomplete.filter(
|
||||
SN.C.PtagACData, extractLast(request.term)));
|
||||
},
|
||||
focus: function () {
|
||||
return false;
|
||||
},
|
||||
select: function (event, ui) {
|
||||
var terms = split(this.value);
|
||||
terms.pop();
|
||||
terms.push(ui.item.value);
|
||||
terms.push("");
|
||||
this.value = terms.join(" ");
|
||||
return false;
|
||||
}
|
||||
}).data('ui-autocomplete')._renderItem = function (ul, item) {
|
||||
// FIXME: with jQuery UI you cannot have it highlight the match
|
||||
var _l = '<a class="ptag-ac-line-tag">' + item.tag
|
||||
+ ' <em class="privacy_mode">' + item.mode + '</em>'
|
||||
+ '<span class="freq">' + item.freq + '</span></a>'
|
||||
|
||||
return $("<li/>")
|
||||
.addClass('mode-' + item.mode)
|
||||
.addClass('ptag-ac-line')
|
||||
.data("item.autocomplete", item)
|
||||
.append(_l)
|
||||
.appendTo(ul);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Run setup for the ajax people tags editor
|
||||
*
|
||||
@@ -1644,7 +1590,6 @@ var SN = { // StatusNet
|
||||
}
|
||||
|
||||
SN.C.PtagACData = data;
|
||||
SN.Init.PeopletagAutocomplete(form.find('#tags'));
|
||||
}
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user