mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 03:56:53 -06:00
Added autocompletion for tags form widget
This commit is contained in:
parent
96d81d7074
commit
e27765d965
@ -127,4 +127,54 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Auto-complete tags
|
||||||
|
function split_tags(val) {
|
||||||
|
return val.split(/,\s*/);
|
||||||
|
}
|
||||||
|
$("#id_tags")
|
||||||
|
.on("keydown", function(event) {
|
||||||
|
if (event.keyCode === $.ui.keyCode.TAB &&
|
||||||
|
$(this).autocomplete("instance").menu.active) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.autocomplete({
|
||||||
|
source: function(request, response) {
|
||||||
|
$.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: netbox_api_path + 'extras/tags/',
|
||||||
|
data: 'q=' + split_tags(request.term).pop(),
|
||||||
|
success: function(data) {
|
||||||
|
var choices = [];
|
||||||
|
$.each(data.results, function (index, choice) {
|
||||||
|
choices.push(choice.name);
|
||||||
|
});
|
||||||
|
response(choices);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
search: function() {
|
||||||
|
// Need 3 or more characters to begin searching
|
||||||
|
var term = split_tags(this.value).pop();
|
||||||
|
if (term.length < 3) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
focus: function() {
|
||||||
|
// prevent value inserted on focus
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
select: function(event, ui) {
|
||||||
|
var terms = split_tags(this.value);
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user