autocomplete tweaks

This commit is contained in:
r888888888
2018-06-24 01:37:30 -07:00
parent 6b0be1e092
commit f506a909ed
4 changed files with 11 additions and 590 deletions

View File

@@ -1,5 +1,4 @@
//= require hammer.js
//= require jquery.storageapi.js
//= require jquery.dropdown.js
//= require stupidtable.js
//= require jquery.qtip.js

View File

@@ -10,7 +10,7 @@
if (Danbooru.meta("enable-auto-complete") === "true") {
$.widget("ui.autocomplete", $.ui.autocomplete, {
options: {
delay: 100,
delay: 0,
minLength: 1,
autoFocus: false,
focus: function() { return false; },
@@ -22,25 +22,14 @@
_renderItem: Danbooru.Autocomplete.render_item,
});
Danbooru.Autocomplete.enable_local_storage = false;
this.initialize_tag_autocomplete();
this.initialize_mention_autocomplete($(".autocomplete-mentions textarea"));
this.initialize_artist_autocomplete($('[data-autocomplete="artist"]'));
this.initialize_pool_autocomplete($('[data-autocomplete="pool"]'));
this.initialize_wiki_autocomplete($('[data-autocomplete="wiki-page"]'));
this.prune_local_storage();
}
}
// todo: remove eventually
Danbooru.Autocomplete.prune_local_storage = function() {
$.each(Object.keys(localStorage), function(i, key) {
if (key.substr(0, 3) === "ac-") {
$.localStorage.remove(key);
}
});
}
Danbooru.Autocomplete.initialize_mention_autocomplete = function($fields) {
$fields.autocomplete({
search: function() {
@@ -346,22 +335,22 @@
Danbooru.Autocomplete.render_item = function(list, item) {
var $link = $("<a/>");
var $menu_item = $("<div/>").append($link);
$link.text(item.label);
$link.attr("href", "/posts?tags=" + encodeURIComponent(item.value));
$link.click(function(e) {
e.preventDefault();
});
if (item.antecedent) {
var antecedent = item.antecedent.replace(/_/g, " ");
var arrow = $("<span/>").html(" &rarr; ").addClass("autocomplete-arrow");
var antecedent_element = $("<span/>").text(antecedent).addClass("autocomplete-antecedent");
$link.append(antecedent_element);
$link.append(arrow);
$link.append([
arrow,
antecedent_element
]);
}
$link.append(document.createTextNode(item.label));
$link.attr("href", "/posts?tags=" + encodeURIComponent(item.value));
$link.click(function(e) {
e.preventDefault();
});
if (item.post_count !== undefined) {
var count;
if (item.post_count >= 1000) {
@@ -385,6 +374,7 @@
$link.addClass("pool-category-" + item.category);
}
var $menu_item = $("<div/>").append($link);
return $("<li/>").data("item.autocomplete", item).append($menu_item).appendTo(list);
};