From d54b26c61d80eb009f08da88b4a7c03752da1daf Mon Sep 17 00:00:00 2001 From: BrokenEagle Date: Sun, 24 Dec 2017 11:01:17 -0800 Subject: [PATCH] Convert tag category Javascript/CSS assets to ERB --- .../{autocomplete.js => autocomplete.js.erb} | 10 +---- .../{related_tag.js => related_tag.js.erb} | 12 ++--- app/assets/stylesheets/application.scss | 9 ++-- .../posts.scss => erb/posts.scss.erb} | 44 +++---------------- app/logical/tag_category.rb | 7 ++- app/views/layouts/default.html.erb | 2 - app/views/posts/show.html.erb | 1 - app/views/uploads/new.html.erb | 4 -- config/danbooru_default_config.rb | 30 ++++++++++--- 9 files changed, 48 insertions(+), 71 deletions(-) rename app/assets/javascripts/{autocomplete.js => autocomplete.js.erb} (95%) rename app/assets/javascripts/{related_tag.js => related_tag.js.erb} (97%) rename app/assets/stylesheets/{specific/posts.scss => erb/posts.scss.erb} (94%) diff --git a/app/assets/javascripts/autocomplete.js b/app/assets/javascripts/autocomplete.js.erb similarity index 95% rename from app/assets/javascripts/autocomplete.js rename to app/assets/javascripts/autocomplete.js.erb index 3471b5de0..71f823251 100644 --- a/app/assets/javascripts/autocomplete.js +++ b/app/assets/javascripts/autocomplete.js.erb @@ -9,7 +9,6 @@ Danbooru.Autocomplete.initialize_all = function() { if (Danbooru.meta("enable-auto-complete") === "true") { Danbooru.Autocomplete.enable_local_storage = this.test_local_storage(); - this.update_static_metatags(); this.initialize_tag_autocomplete(); this.initialize_mention_autocomplete(); this.prune_local_storage(); @@ -95,7 +94,7 @@ var $fields_multiple = $('[data-autocomplete="tag-query"], [data-autocomplete="tag-edit"]'); var $fields_single = $('[data-autocomplete="tag"]'); - var prefixes = "-|~|" + $.map(JSON.parse(Danbooru.meta("tag-category-names")), function (category) { return category + ':'}).join('|'); + var prefixes = "-|~|" + "<%= TagCategory.mapping.keys.map {|category| category + ':'}.join('|') %>"; var metatags = "order|-status|status|-rating|rating|-locked|locked|child|filetype|-filetype|" + "-user|user|-approver|approver|commenter|comm|noter|noteupdater|artcomm|-fav|fav|ordfav|" + "-pool|pool|ordpool|favgroup|-search|search"; @@ -329,7 +328,7 @@ "tagcount", "tagcount_asc", "rank", "random" - ], + ].concat(<%= TagCategory.short_name_list.map {|category| [category + "tags", category + "tags_asc"]}.flatten %>), status: [ "any", "deleted", "active", "pending", "flagged", "banned" ], @@ -347,11 +346,6 @@ ], } - //This must be done as a separate function as Danbooru.meta does not exist at program initialization - Danbooru.Autocomplete.update_static_metatags = function () { - Array.prototype.push.apply(Danbooru.Autocomplete.static_metatags.order,$.map(JSON.parse(Danbooru.meta("short-tag-category-names")), function(shorttag) { return [shorttag + "tags", shorttag + "tags_asc"]})); - } - Danbooru.Autocomplete.static_metatag_source = function(term, resp, metatag) { var sub_metatags = this.static_metatags[metatag]; diff --git a/app/assets/javascripts/related_tag.js b/app/assets/javascripts/related_tag.js.erb similarity index 97% rename from app/assets/javascripts/related_tag.js rename to app/assets/javascripts/related_tag.js.erb index 5fc938033..7eda8f32f 100644 --- a/app/assets/javascripts/related_tag.js +++ b/app/assets/javascripts/related_tag.js.erb @@ -12,15 +12,9 @@ Danbooru.RelatedTag.initialize_buttons = function() { this.common_bind("#related-tags-button", ""); - var related_buttons; - try { - related_buttons = JSON.parse(Danbooru.meta("related-tag-button-list")); - } catch (e) { - related_buttons = []; - } - $.each(related_buttons, function(i,category) { - Danbooru.RelatedTag.common_bind("#related-" + category + "-button", category); - }); + <% TagCategory.related_button_list.each do |category| %> + Danbooru.RelatedTag.common_bind("#related-<%= category %>-button", "<%= category %>"); + <% end %> $("#find-artist-button").click(Danbooru.RelatedTag.find_artist); } diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 5f88592b8..6b9fb5c24 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -1,4 +1,5 @@ -@import "jquery-ui-1.11.2.min.scss"; -@import "jquery.dropdown.scss"; -@import "common/*"; -@import "specific/*"; +@import "jquery-ui-1.11.2.min.scss"; +@import "jquery.dropdown.scss"; +@import "common/*"; +@import "specific/*"; +@import "erb/posts"; \ No newline at end of file diff --git a/app/assets/stylesheets/specific/posts.scss b/app/assets/stylesheets/erb/posts.scss.erb similarity index 94% rename from app/assets/stylesheets/specific/posts.scss rename to app/assets/stylesheets/erb/posts.scss.erb index 3620122b2..ab07b4194 100644 --- a/app/assets/stylesheets/specific/posts.scss +++ b/app/assets/stylesheets/erb/posts.scss.erb @@ -179,45 +179,15 @@ body[data-user-can-approve-posts="true"] .post-preview { } } -.category-0 a, a.tag-type-0, .ui-state-focus a.tag-type-0 { - color: $link_color; +<% TagCategory.css_mapping.each do |category,cssmap| %> + .category-<%= category %> a, a.tag-type-<%= category %>, .ui-state-focus a.tag-type-<%= category %> { + color: <%= cssmap["color"] %>; - &:hover { - color: $link_hover_color; + &:hover { + color: <%= cssmap["hover"] %>; + } } -} - -.category-1 a, a.tag-type-1, .ui-state-focus a.tag-type-1 { - color: #A00; - - &:hover { - color: #B66; - } -} - -.category-3 a, a.tag-type-3, .ui-state-focus a.tag-type-3 { - color: #A0A; - - &:hover { - color: #B6B; - } -} - -.category-4 a, a.tag-type-4, .ui-state-focus a.tag-type-4 { - color: #0A0; - - &:hover { - color: #6B6; - } -} - -.category-5 a, a.tag-type-5, .ui-state-focus a.tag-type-5 { - color: #F80; - - &:hover { - color: #FA6; - } -} +<% end %> .category-banned a, a.tag-type-banned,, .ui-state-focus a.tag-type-banned { color: black; diff --git a/app/logical/tag_category.rb b/app/logical/tag_category.rb index 68c4ad3b8..d62a592a4 100644 --- a/app/logical/tag_category.rb +++ b/app/logical/tag_category.rb @@ -34,10 +34,15 @@ class TagCategory @@header_mapping ||= Hash[Danbooru.config.full_tag_config_info.map {|k,v| [k,v["header"]]}] end - # Returns a hash mapping for related tag buttons (javascripts/related_tag.js) + # Returns a hash mapping for related tag buttons (javascripts/related_tag.js.erb) def related_button_mapping @@related_button_mapping ||= Hash[Danbooru.config.full_tag_config_info.map {|k,v| [k,v["relatedbutton"]]}] end + + # Returns a hash mapping for CSS (stylesheets/posts.scss.erb) + def css_mapping + @@css_mapping ||= Hash[Danbooru.config.full_tag_config_info.map {|k,v| [v["category"],v["css"]]}] + end end module Lists diff --git a/app/views/layouts/default.html.erb b/app/views/layouts/default.html.erb index b3ef1ce0f..fb3441c89 100644 --- a/app/views/layouts/default.html.erb +++ b/app/views/layouts/default.html.erb @@ -8,8 +8,6 @@ <% unless CurrentUser.disable_responsive_mode? %> <% end %> - - diff --git a/app/views/posts/show.html.erb b/app/views/posts/show.html.erb index 97bf19e60..6d3ac195b 100644 --- a/app/views/posts/show.html.erb +++ b/app/views/posts/show.html.erb @@ -157,7 +157,6 @@ <% end %> <% content_for(:html_header) do %> - diff --git a/app/views/uploads/new.html.erb b/app/views/uploads/new.html.erb index ae9d8ac2b..a87eb1f48 100644 --- a/app/views/uploads/new.html.erb +++ b/app/views/uploads/new.html.erb @@ -141,8 +141,4 @@ Upload - <%= Danbooru.config.app_name %> <% end %> -<% content_for(:html_header) do %> - -<% end %> - <%= render "posts/partials/common/secondary_links" %> diff --git a/config/danbooru_default_config.rb b/config/danbooru_default_config.rb index 874eef4a6..6aafcdcab 100644 --- a/config/danbooru_default_config.rb +++ b/config/danbooru_default_config.rb @@ -227,7 +227,11 @@ module Danbooru "extra" => [], "header" => %{

Tags

}, "humanized" => nil, - "relatedbutton" => "General" + "relatedbutton" => "General", + "css" => { + "color" => "$link_color", + "hover" => "$link_hover_color" + } }, "character" => { "category" => 4, @@ -240,7 +244,11 @@ module Danbooru "regexmap" => /^(.+?)(?:_\(.+\))?$/, "formatstr" => "%s" }, - "relatedbutton" => "Characters" + "relatedbutton" => "Characters", + "css" => { + "color" => "#0A0", + "hover" => "#6B6" + } }, "copyright" => { "category" => 3, @@ -253,7 +261,11 @@ module Danbooru "regexmap" => //, "formatstr" => "(%s)" }, - "relatedbutton" => "Copyrights" + "relatedbutton" => "Copyrights", + "css" => { + "color" => "#A0A", + "hover" => "#B6B" + } }, "artist" => { "category" => 1, @@ -266,7 +278,11 @@ module Danbooru "regexmap" => //, "formatstr" => "drawn by %s" }, - "relatedbutton" => "Artists" + "relatedbutton" => "Artists", + "css" => { + "color" => "#A00", + "hover" => "#B66" + } }, "meta" => { "category" => 5, @@ -274,7 +290,11 @@ module Danbooru "extra" => [], "header" => %{

Meta

}, "humanized" => nil, - "relatedbutton" => nil + "relatedbutton" => nil, + "css" => { + "color" => "#F80", + "hover" => "#FA6" + } } } end