From 957d1527d14760dd781cf9a81c72ced38c529653 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 11 Dec 2018 18:10:20 -0600 Subject: [PATCH] autocomplete: add order:*_count metatags. --- .../src/javascripts/autocomplete.js.erb | 20 ++--------------- app/models/tag.rb | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/app/javascript/src/javascripts/autocomplete.js.erb b/app/javascript/src/javascripts/autocomplete.js.erb index 963f0fda3..a7fa76055 100644 --- a/app/javascript/src/javascripts/autocomplete.js.erb +++ b/app/javascript/src/javascripts/autocomplete.js.erb @@ -5,6 +5,7 @@ let Autocomplete = {}; Autocomplete.METATAGS = <%= Tag::METATAGS.to_json.html_safe %>; Autocomplete.TAG_CATEGORIES = <%= TagCategory.mapping.to_json.html_safe %>; +Autocomplete.ORDER_METATAGS = <%= Tag::ORDER_METATAGS.to_json.html_safe %>; Autocomplete.TAG_PREFIXES = "-|~|" + Object.keys(Autocomplete.TAG_CATEGORIES).map(category => category + ":").join("|"); Autocomplete.TAG_PREFIXES_REGEX = new RegExp("^(" + Autocomplete.TAG_PREFIXES + ")(.*)$", "i"); @@ -389,24 +390,7 @@ Autocomplete.render_item = function(list, item) { }; Autocomplete.static_metatags = { - order: [ - "id", "id_desc", - "score", "score_asc", - "favcount", "favcount_asc", - "created_at", "created_at_asc", - "change", "change_asc", - "comment", "comment_asc", - "comment_bumped", "comment_bumped_asc", - "note", "note_asc", - "artcomm", "artcomm_asc", - "mpixels", "mpixels_asc", - "portrait", "landscape", - "filesize", "filesize_asc", - "tagcount", "tagcount_asc", - "rank", - "random", - "custom" - ].concat(<%= TagCategory.short_name_list.map {|category| [category + "tags", category + "tags_asc"]}.flatten %>), + order: Autocomplete.ORDER_METATAGS, status: [ "any", "deleted", "active", "pending", "flagged", "banned", "modqueue", "unmoderated" ], diff --git a/app/models/tag.rb b/app/models/tag.rb index 064b48258..cb9cc7d68 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -23,6 +23,28 @@ class Tag < ApplicationRecord SUBQUERY_METATAGS = %w[commenter comm noter noteupdater artcomm flagger -flagger appealer -appealer] + ORDER_METATAGS = %w[ + id id_desc + score score_asc + favcount favcount_asc + created_at created_at_asc + change change_asc + comment comment_asc + comment_bumped comment_bumped_asc + note note_asc + artcomm artcomm_asc + mpixels mpixels_asc + portrait landscape + filesize filesize_asc + tagcount tagcount_asc + rank + random + custom + ] + + COUNT_METATAGS + + COUNT_METATAG_SYNONYMS.flat_map { |str| [str, "#{str}_asc"] } + + TagCategory.short_name_list.flat_map { |str| ["#{str}tags", "#{str}tags_asc"] } + has_one :wiki_page, :foreign_key => "title", :primary_key => "name" has_one :artist, :foreign_key => "name", :primary_key => "name" has_one :antecedent_alias, -> {active}, :class_name => "TagAlias", :foreign_key => "antecedent_name", :primary_key => "name"