additional_tags 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/brakeman.yml +38 -0
- data/.github/workflows/linters.yml +41 -0
- data/.github/workflows/tests.yml +139 -0
- data/.gitignore +8 -0
- data/.rubocop.yml +75 -0
- data/.slim-lint.yml +25 -0
- data/.stylelintrc.json +163 -0
- data/LICENSE +339 -0
- data/README.md +126 -0
- data/Rakefile +11 -0
- data/additional_tags.gemspec +28 -0
- data/app/controllers/additional_tags_controller.rb +80 -0
- data/app/controllers/issue_tags_controller.rb +48 -0
- data/app/helpers/additional_tags_helper.rb +197 -0
- data/app/helpers/additional_tags_issues_helper.rb +43 -0
- data/app/helpers/additional_tags_wiki_helper.rb +17 -0
- data/app/jobs/additional_tags_job.rb +3 -0
- data/app/jobs/additional_tags_remove_unused_tag_job.rb +5 -0
- data/app/models/migrate_tag.rb +4 -0
- data/app/models/migrate_tagging.rb +5 -0
- data/app/views/additional_tags/_html_head.html.slim +6 -0
- data/app/views/additional_tags/_tag_list.html.slim +35 -0
- data/app/views/additional_tags/context_menu.html.slim +16 -0
- data/app/views/additional_tags/edit.html.slim +14 -0
- data/app/views/additional_tags/merge.html.slim +17 -0
- data/app/views/additional_tags/settings/_general.html.slim +45 -0
- data/app/views/additional_tags/settings/_manage_tags.html.slim +35 -0
- data/app/views/additional_tags/settings/_settings.html.slim +9 -0
- data/app/views/auto_completes/_additional_tag_list.slim +1 -0
- data/app/views/context_menus/_issues_tags.html.slim +10 -0
- data/app/views/issue_tags/_edit_modal.html.slim +30 -0
- data/app/views/issue_tags/edit.js.erb +2 -0
- data/app/views/issues/_tags.html.slim +8 -0
- data/app/views/issues/_tags_bulk_edit.html.slim +7 -0
- data/app/views/issues/_tags_form.html.slim +11 -0
- data/app/views/issues/_tags_form_details.html.slim +7 -0
- data/app/views/issues/_tags_sidebar.html.slim +5 -0
- data/app/views/reports/_tags_simple.html.slim +11 -0
- data/app/views/wiki/_tags_form.html.slim +7 -0
- data/app/views/wiki/_tags_form_bottom.html.slim +5 -0
- data/app/views/wiki/_tags_show.html.slim +9 -0
- data/app/views/wiki/_tags_sidebar.html.slim +4 -0
- data/app/views/wiki/tag_index.html.slim +21 -0
- data/assets/javascripts/tags.js +19 -0
- data/assets/stylesheets/tags.css +119 -0
- data/config/locales/bg.yml +33 -0
- data/config/locales/cs.yml +33 -0
- data/config/locales/de.yml +33 -0
- data/config/locales/en.yml +33 -0
- data/config/locales/es.yml +33 -0
- data/config/locales/fr.yml +33 -0
- data/config/locales/it.yml +33 -0
- data/config/locales/ja.yml +33 -0
- data/config/locales/ko.yml +33 -0
- data/config/locales/pl.yml +33 -0
- data/config/locales/pt-BR.yml +33 -0
- data/config/locales/ru.yml +33 -0
- data/config/routes.rb +31 -0
- data/config/settings.yml +9 -0
- data/db/migrate/20201116145429_acts_as_taggable_migration.rb +40 -0
- data/db/migrate/20201123093214_migrate_existing_tags.rb +39 -0
- data/doc/images/additional-tags-framework.png +0 -0
- data/doc/images/additional-tags.gif +0 -0
- data/init.rb +31 -0
- data/lib/additional_tags.rb +107 -0
- data/lib/additional_tags/hooks.rb +63 -0
- data/lib/additional_tags/patches/agile_boards_controller_patch.rb +14 -0
- data/lib/additional_tags/patches/agile_query_patch.rb +41 -0
- data/lib/additional_tags/patches/agile_versions_controller_patch.rb +14 -0
- data/lib/additional_tags/patches/agile_versions_query_patch.rb +11 -0
- data/lib/additional_tags/patches/auto_completes_controller_patch.rb +42 -0
- data/lib/additional_tags/patches/calendars_controller_patch.rb +14 -0
- data/lib/additional_tags/patches/dashboard_async_blocks_controller_patch.rb +11 -0
- data/lib/additional_tags/patches/dashboards_controller_patch.rb +11 -0
- data/lib/additional_tags/patches/gantts_controller_patch.rb +14 -0
- data/lib/additional_tags/patches/imports_controller_patch.rb +12 -0
- data/lib/additional_tags/patches/issue_patch.rb +95 -0
- data/lib/additional_tags/patches/issue_query_patch.rb +55 -0
- data/lib/additional_tags/patches/issues_controller_patch.rb +14 -0
- data/lib/additional_tags/patches/journal_patch.rb +18 -0
- data/lib/additional_tags/patches/my_controller_patch.rb +14 -0
- data/lib/additional_tags/patches/queries_helper_patch.rb +40 -0
- data/lib/additional_tags/patches/reports_controller_patch.rb +32 -0
- data/lib/additional_tags/patches/settings_controller_patch.rb +12 -0
- data/lib/additional_tags/patches/time_entry_patch.rb +19 -0
- data/lib/additional_tags/patches/time_entry_query_patch.rb +53 -0
- data/lib/additional_tags/patches/time_report_patch.rb +46 -0
- data/lib/additional_tags/patches/timelog_controller_patch.rb +14 -0
- data/lib/additional_tags/patches/wiki_controller_patch.rb +63 -0
- data/lib/additional_tags/patches/wiki_page_patch.rb +39 -0
- data/lib/additional_tags/tags.rb +134 -0
- data/lib/additional_tags/version.rb +3 -0
- metadata +177 -0
@@ -0,0 +1,6 @@
|
|
1
|
+
= stylesheet_link_tag 'tags', plugin: 'additional_tags'
|
2
|
+
= javascript_include_tag 'tags', plugin: 'additional_tags'
|
3
|
+
- if User.current.allowed_to?(:edit_issue_tags, @project, global: true) || \
|
4
|
+
User.current.allowed_to?(:create_issue_tags, @project, global: true) || \
|
5
|
+
User.current.allowed_to?(:add_wiki_tags, @project, global: true)
|
6
|
+
= additionals_library_load :select2
|
@@ -0,0 +1,35 @@
|
|
1
|
+
- if defined?(show_always) && show_always || entry.tag_list.present?
|
2
|
+
.tags.attribute
|
3
|
+
- unless defined? hide_label
|
4
|
+
span.label
|
5
|
+
= l(:field_tag_list)
|
6
|
+
' :
|
7
|
+
- if defined?(editable) && editable
|
8
|
+
#tags-data
|
9
|
+
= additional_tag_links entry.tags,
|
10
|
+
project: @project,
|
11
|
+
unsorted: defined?(unsorted) ? unsorted : false,
|
12
|
+
link_wiki_tag: defined?(link_wiki_tag) ? link_wiki_tag : false,
|
13
|
+
use_colors: defined?(use_colors) ? use_colors : true
|
14
|
+
'
|
15
|
+
span.contextual
|
16
|
+
= link_to l(:label_edit_tags),
|
17
|
+
{},
|
18
|
+
onclick: "$('#edit_tags_form').show(); $('#tags-data').hide(); return false;",
|
19
|
+
id: 'edit_tags_link'
|
20
|
+
|
21
|
+
#edit_tags_form style="display: none;"
|
22
|
+
= form_tag update_url, method: :put do
|
23
|
+
= render partial: defined?(tags_form) ? tags_form : 'tags_form',
|
24
|
+
locals: { css_id: defined?(css_id) ? css_id : nil }
|
25
|
+
'
|
26
|
+
= submit_tag l(:button_save), class: 'button-small'
|
27
|
+
'
|
28
|
+
= link_to l(:button_cancel), {}, onclick: "$('#edit_tags_form').hide(); $('#tags-data').show(); return false;"
|
29
|
+
|
30
|
+
- else
|
31
|
+
= additional_tag_links entry.tags,
|
32
|
+
project: @project,
|
33
|
+
unsorted: defined?(unsorted) ? unsorted : false,
|
34
|
+
link_wiki_tag: defined?(link_wiki_tag) ? link_wiki_tag : false,
|
35
|
+
use_colors: defined?(use_colors) ? use_colors : true
|
@@ -0,0 +1,16 @@
|
|
1
|
+
ul
|
2
|
+
- if @tag
|
3
|
+
li
|
4
|
+
= link_to l(:button_edit),
|
5
|
+
edit_additional_tag_path(@tag),
|
6
|
+
class: 'icon icon-edit'
|
7
|
+
- else
|
8
|
+
li
|
9
|
+
= link_to l(:button_merge),
|
10
|
+
merge_additional_tags_path(ids: @tags.collect(&:id)),
|
11
|
+
class: 'icon icon-tags-merge'
|
12
|
+
li
|
13
|
+
= link_to l(:button_delete),
|
14
|
+
additional_tags_path(ids: @tags.collect(&:id), back_url: @back),
|
15
|
+
method: :delete, data: { confirm: l(:text_are_you_sure) },
|
16
|
+
class: 'icon icon-del'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
h2
|
2
|
+
= link_to l(:label_manage_tags), @tag_list_path
|
3
|
+
'
|
4
|
+
= Additionals::LIST_SEPARATOR
|
5
|
+
= h "#{l :label_tags_tag}: #{@tag.name}"
|
6
|
+
|
7
|
+
= form_tag additional_tag_path(@tag, tab: 'tags'), class: 'tabular', method: :put do
|
8
|
+
= error_messages_for 'tag'
|
9
|
+
.box
|
10
|
+
p
|
11
|
+
label[for="tag_name"]
|
12
|
+
= l :field_name
|
13
|
+
= text_field 'tag', 'name'
|
14
|
+
= submit_tag l(:button_save)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
h2
|
2
|
+
= link_to l(:label_manage_tags), @tag_list_path
|
3
|
+
'
|
4
|
+
= Additionals::LIST_SEPARATOR
|
5
|
+
= l :label_merge_selected_tags
|
6
|
+
|
7
|
+
= form_tag merge_additional_tags_path(ids: @tags.map(&:id)), class: 'tabular' do
|
8
|
+
= error_messages_for 'tag'
|
9
|
+
= additional_tag_links @tags, { show_count: true,
|
10
|
+
use_colors: AdditionalTags.setting?(:use_colors),
|
11
|
+
link: '#' }
|
12
|
+
.box
|
13
|
+
p
|
14
|
+
label[for="tag_name"]
|
15
|
+
= l :field_name
|
16
|
+
= text_field 'tag', 'name', value: @tags.first.name
|
17
|
+
= submit_tag l(:button_save)
|
@@ -0,0 +1,45 @@
|
|
1
|
+
fieldset.settings
|
2
|
+
legend = l :label_general
|
3
|
+
|
4
|
+
p
|
5
|
+
= label_tag 'settings[tags_sidebar]', l(:tags_sidebar)
|
6
|
+
= select_tag 'settings[tags_sidebar]',
|
7
|
+
options_for_select(%w[none list cloud simple_cloud].collect { |v| [l("tags_sidebar_#{v}"), v] },
|
8
|
+
@settings[:tags_sidebar])
|
9
|
+
|
10
|
+
p
|
11
|
+
= additionals_settings_checkbox :show_with_count
|
12
|
+
|
13
|
+
p
|
14
|
+
= label_tag 'settings[tags_sort_by]', l(:tags_sort_by)
|
15
|
+
= select_tag 'settings[tags_sort_by]',
|
16
|
+
options_for_select(%w[name count].collect { |v| [l("tags_sort_by_#{v}"), v] },
|
17
|
+
@settings[:tags_sort_by])
|
18
|
+
'
|
19
|
+
= select_tag 'settings[tags_sort_order]',
|
20
|
+
options_for_select([[l(:label_ascending), 'asc'], [l(:label_descending), 'desc']],
|
21
|
+
@settings[:tags_sort_order])
|
22
|
+
|
23
|
+
p
|
24
|
+
= label_tag 'settings[tags_suggestion_order]', l(:tags_suggestion_order)
|
25
|
+
= select_tag 'settings[tags_suggestion_order]',
|
26
|
+
options_for_select(%w[name last_created count].collect { |v| [l("tags_order_by_#{v}"), v] },
|
27
|
+
@settings['tags_suggestion_order'])
|
28
|
+
|
29
|
+
p
|
30
|
+
= additionals_settings_checkbox :use_colors
|
31
|
+
|
32
|
+
fieldset.settings
|
33
|
+
legend = l :label_issue_plural
|
34
|
+
|
35
|
+
p
|
36
|
+
= additionals_settings_checkbox :active_issue_tags
|
37
|
+
|
38
|
+
p
|
39
|
+
= additionals_settings_checkbox :open_issues_only
|
40
|
+
|
41
|
+
fieldset.settings
|
42
|
+
legend = l :label_wiki
|
43
|
+
|
44
|
+
p
|
45
|
+
= additionals_settings_checkbox :active_wiki_tags
|
@@ -0,0 +1,35 @@
|
|
1
|
+
- tags = manageable_tags
|
2
|
+
- if tags.present?
|
3
|
+
table.list.issues
|
4
|
+
thead
|
5
|
+
tr
|
6
|
+
th.checkbox.hide-when-print
|
7
|
+
= check_box_tag 'ids[]', '', false, class: 'toggle-selection',
|
8
|
+
title: "#{l :button_check_all}/#{l :button_uncheck_all}"
|
9
|
+
|
10
|
+
th = l :field_name
|
11
|
+
- manageable_tag_columns.each do |_column, column_values|
|
12
|
+
th = column_values[:label]
|
13
|
+
th
|
14
|
+
tbody
|
15
|
+
- tags.each do |tag|
|
16
|
+
tr.hascontextmenu id="#{tag.id}"
|
17
|
+
td.checkbox.hide-when-print
|
18
|
+
= check_box_tag('ids[]', tag.id, false, id: nil)
|
19
|
+
td = additional_tag_link tag, link: edit_additional_tag_path(tag)
|
20
|
+
- manageable_tag_column_values(tag).each do |column|
|
21
|
+
td = column
|
22
|
+
td.buttons
|
23
|
+
= link_to l(:button_edit), edit_additional_tag_path(tag),
|
24
|
+
class: 'icon icon-edit'
|
25
|
+
= link_to l(:button_delete), additional_tags_path(ids: tag), method: :delete,
|
26
|
+
data: { confirm: l(:text_are_you_sure) }, class: 'icon icon-del'
|
27
|
+
- else
|
28
|
+
p.nodata = l :label_no_data
|
29
|
+
|
30
|
+
javascript:
|
31
|
+
$(document).ready(function(){
|
32
|
+
$('#settings form').data('cmUrl', "#{context_menu_additional_tags_path}")
|
33
|
+
})
|
34
|
+
|
35
|
+
= context_menu
|
@@ -0,0 +1,9 @@
|
|
1
|
+
- tags_tabs = [{ name: 'general',
|
2
|
+
partial: 'additional_tags/settings/general',
|
3
|
+
label: :label_general },
|
4
|
+
{ name: 'manage_tags',
|
5
|
+
partial: 'additional_tags/settings/manage_tags',
|
6
|
+
label: :label_manage_tags }]
|
7
|
+
|
8
|
+
- html_title l(:label_settings), l(:field_tags)
|
9
|
+
= render_tabs tags_tabs
|
@@ -0,0 +1 @@
|
|
1
|
+
== @tags.collect { |tag| { 'id' => tag.name, 'text' => tag.name } }.to_json
|
@@ -0,0 +1,10 @@
|
|
1
|
+
- if AdditionalTags.setting?(:active_issue_tags) && User.current.allowed_to?(:edit_issue_tags, @projects || @project)
|
2
|
+
li.folder
|
3
|
+
a.submenu[href="#"]
|
4
|
+
= l :field_tags
|
5
|
+
ul
|
6
|
+
li
|
7
|
+
= context_menu_link l(:button_add),
|
8
|
+
edit_issue_tags_path(ids: @issue_ids),
|
9
|
+
remote: true,
|
10
|
+
class: 'icon icon-add'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
h3.title = l :label_add_tags
|
2
|
+
|
3
|
+
- if @is_bulk_editing
|
4
|
+
h3 = l :label_bulk_edit_selected_issues
|
5
|
+
ul
|
6
|
+
- @issues.each do |issue|
|
7
|
+
li = link_to_issue issue
|
8
|
+
- else
|
9
|
+
h3
|
10
|
+
span = link_to_issue @issues.first
|
11
|
+
|
12
|
+
= form_tag issue_tags_path(ids: @issue_ids) do
|
13
|
+
fieldset.box
|
14
|
+
legend = l :field_tags
|
15
|
+
#issue_tags
|
16
|
+
= additionals_select2_tag 'issue[tag_list]',
|
17
|
+
options_for_select(@issue_tags.map { |tag| [tag, tag] }, @issue_tags),
|
18
|
+
multiple: true,
|
19
|
+
style: 'width: 100%;',
|
20
|
+
url: issue_tags_auto_completes_path(project_id: @project),
|
21
|
+
placeholder: @is_bulk_editing ? t(:label_no_change_option) : '+ add tag',
|
22
|
+
tags: User.current.allowed_to?(:create_issue_tags, @project)
|
23
|
+
p.most_used_tags
|
24
|
+
= safe_join @most_used_tags.collect { |t| tag.span(t.name, class: 'most_used_tag') }, ', '
|
25
|
+
= javascript_tag "var mostUsedTags = #{@most_used_tags.map(&:name)}"
|
26
|
+
|
27
|
+
.buttons
|
28
|
+
= submit_tag l(:button_add), name: nil
|
29
|
+
'
|
30
|
+
= submit_tag l(:button_cancel), name: nil, onclick: 'hideModal(this);', type: 'button'
|
@@ -0,0 +1,8 @@
|
|
1
|
+
- if AdditionalTags.setting?(:active_issue_tags) && User.current.allowed_to?(:view_issue_tags, issue.project)
|
2
|
+
= render partial: 'additional_tags/tag_list',
|
3
|
+
locals: { entry: issue,
|
4
|
+
show_always: true,
|
5
|
+
editable: issue.editable?(User.current),
|
6
|
+
css_id: 'issue_tag_list_show',
|
7
|
+
update_url: issue_path(issue),
|
8
|
+
use_colors: AdditionalTags.setting?(:use_colors) }
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- project = defined?(project) ? project : @project
|
2
|
+
- options = { multiple: true,
|
3
|
+
width: '95%',
|
4
|
+
url: issue_tags_auto_completes_path(project_id: project),
|
5
|
+
placeholder: l(:label_add_tags),
|
6
|
+
tags: true }
|
7
|
+
- options[:id] = css_id if defined? css_id
|
8
|
+
|
9
|
+
= additionals_select2_tag 'issue[tag_list]',
|
10
|
+
options_for_select(@issue.tag_list.map { |tag| [tag, tag] }, @issue.tag_list),
|
11
|
+
options
|
@@ -0,0 +1,7 @@
|
|
1
|
+
- project = @issue&.project || @projects || @project
|
2
|
+
- if AdditionalTags.setting?(:active_issue_tags) && User.current.allowed_to?(:edit_issue_tags, project)
|
3
|
+
div
|
4
|
+
p#issue_tags
|
5
|
+
= label_tag l(:field_tag_list)
|
6
|
+
= render partial: tags_form,
|
7
|
+
locals: { project: project }
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- if AdditionalTags.setting?(:active_issue_tags) && User.current.allowed_to?(:view_issue_tags, @project)
|
2
|
+
h3
|
3
|
+
= l :field_tags
|
4
|
+
|
|
5
|
+
= link_to l(:label_details),
|
6
|
+
project_issues_report_details_path(@project, detail: 'tag'),
|
7
|
+
class: 'icon-only icon-zoom-in',
|
8
|
+
title: l(:label_details)
|
9
|
+
|
10
|
+
= render partial: 'simple',
|
11
|
+
locals: { data: @issues_by_tags, field_name: 'tag_id', rows: @tags }
|
@@ -0,0 +1,7 @@
|
|
1
|
+
= additionals_select2_tag 'wiki_page[tag_list]',
|
2
|
+
options_for_select(@page.tag_list.map { |tag| [tag, tag] }, @page.tag_list),
|
3
|
+
multiple: true,
|
4
|
+
width: '95%',
|
5
|
+
url: wiki_tags_auto_completes_path(project_id: @project),
|
6
|
+
placeholder: l(:label_add_tags),
|
7
|
+
tags: true
|
@@ -0,0 +1,9 @@
|
|
1
|
+
- if AdditionalTags.setting? :active_wiki_tags
|
2
|
+
.wiki-attributes
|
3
|
+
= render partial: 'additional_tags/tag_list',
|
4
|
+
locals: { entry: page,
|
5
|
+
show_always: true,
|
6
|
+
link_wiki_tag: true,
|
7
|
+
editable: User.current.allowed_to?(:add_wiki_tags, @project),
|
8
|
+
update_url: update_tags_project_wiki_page_path(@project, page.title),
|
9
|
+
use_colors: AdditionalTags.setting?(:use_colors) }
|
@@ -0,0 +1,21 @@
|
|
1
|
+
.contextual
|
2
|
+
- if User.current.allowed_to? :edit_wiki_pages, @project
|
3
|
+
= link_to l(:label_wiki_page_new), new_project_wiki_page_path(@project), remote: true, class: 'icon icon-add'
|
4
|
+
|
5
|
+
h2 = l :label_wiki_index_for_tag, @tag
|
6
|
+
|
7
|
+
- if @pages.empty?
|
8
|
+
p.nodata = l :label_no_data
|
9
|
+
- else
|
10
|
+
ul.wiki-tag-entries
|
11
|
+
- @pages.each do |page|
|
12
|
+
li
|
13
|
+
= link_to page.pretty_title, project_wiki_page_path(@project, page.title)
|
14
|
+
- if page.parent.present?
|
15
|
+
p.parent
|
16
|
+
= l :field_parent_title
|
17
|
+
' :
|
18
|
+
= link_to page.parent.pretty_title, project_wiki_page_path(@project, page.parent.title)
|
19
|
+
|
20
|
+
- content_for :sidebar do
|
21
|
+
= render partial: 'sidebar'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
$(function () {
|
2
|
+
$('body').on('click', '.most_used_tags .most_used_tag', function (e) {
|
3
|
+
var $tagsSelect = $('select#issue_tag_list');
|
4
|
+
var tag = e.target.innerText;
|
5
|
+
if ($tagsSelect.find("option[value='" + tag + "']").length === 0) {
|
6
|
+
var newOption = new Option(tag, tag, true, true);
|
7
|
+
$tagsSelect.append(newOption).trigger("change");
|
8
|
+
}
|
9
|
+
|
10
|
+
mostUsedTags = $.grep(mostUsedTags, function(t) { return t != tag; });
|
11
|
+
var tagsHtml = mostUsedTags.map(function(tag) {
|
12
|
+
return '<span class="most_used_tag">' + tag + '</span>';
|
13
|
+
}).join(', ');
|
14
|
+
|
15
|
+
var $mostUsedTagsContainer = $(e.target).parent('.most_used_tags');
|
16
|
+
$mostUsedTagsContainer.empty();
|
17
|
+
$mostUsedTagsContainer.append(tagsHtml);
|
18
|
+
});
|
19
|
+
});
|
@@ -0,0 +1,119 @@
|
|
1
|
+
/* stylelint-disable font-family-no-missing-generic-family-keyword */
|
2
|
+
|
3
|
+
#admin-menu a.tags::before {
|
4
|
+
font-family: Font Awesome\ 5 Free;
|
5
|
+
font-size: 1.2em;
|
6
|
+
font-weight: 900;
|
7
|
+
content: "\f02c"; /* fas fa-tags */
|
8
|
+
padding-right: 4px;
|
9
|
+
}
|
10
|
+
|
11
|
+
#admin-menu a.tags {
|
12
|
+
padding-left: 0;
|
13
|
+
}
|
14
|
+
|
15
|
+
/* Mobile menu style FontAwesome icon */
|
16
|
+
.flyout-is-active #admin-menu li a.tags {
|
17
|
+
padding-left: 8px !important;
|
18
|
+
}
|
19
|
+
|
20
|
+
ul.tags {
|
21
|
+
list-style: none;
|
22
|
+
padding: 0;
|
23
|
+
}
|
24
|
+
|
25
|
+
ul.tags li { margin: 0.25em 0; }
|
26
|
+
|
27
|
+
span.additional-tag-label-color {
|
28
|
+
display: inline-block;
|
29
|
+
margin-bottom: 5px !important;
|
30
|
+
border-radius: 2px !important;
|
31
|
+
}
|
32
|
+
|
33
|
+
td.tags span.additional-tag-label-color {
|
34
|
+
display: inline-block;
|
35
|
+
line-height: normal;
|
36
|
+
margin: 2px !important;
|
37
|
+
}
|
38
|
+
|
39
|
+
.additional-tag-label-color {
|
40
|
+
padding: 2px 4px;
|
41
|
+
font-size: 10px !important;
|
42
|
+
border: 1px solid rgba(0, 0, 0, 0.2);
|
43
|
+
border-radius: 2px;
|
44
|
+
}
|
45
|
+
|
46
|
+
.additional-tag-label-color a::before {
|
47
|
+
font-family: Font Awesome\ 5 Free;
|
48
|
+
font-size: 0.9em;
|
49
|
+
font-weight: 900;
|
50
|
+
content: "\f02b"; /* fas fa-tag */
|
51
|
+
padding-right: 3px;
|
52
|
+
}
|
53
|
+
|
54
|
+
.additional-tag-label-color .tag-count,
|
55
|
+
.tag-label .tag-count {
|
56
|
+
font-size: 0.75em;
|
57
|
+
margin-left: 0.5em;
|
58
|
+
}
|
59
|
+
|
60
|
+
span.additional-tag-label-color:hover a {
|
61
|
+
text-decoration: none !important;
|
62
|
+
}
|
63
|
+
|
64
|
+
.flyout-menu div.sidebar-tags h3 {
|
65
|
+
margin-left: -8px;
|
66
|
+
}
|
67
|
+
|
68
|
+
.flyout-menu div.sidebar-tags ul.tags-cloud li a {
|
69
|
+
line-height: 22px;
|
70
|
+
height: 22px;
|
71
|
+
}
|
72
|
+
|
73
|
+
#edit_tags_form.box { margin: 1px 5px 0 0; }
|
74
|
+
|
75
|
+
#edit_tags_form.box label {
|
76
|
+
margin-right: 5px;
|
77
|
+
font-weight: bold;
|
78
|
+
}
|
79
|
+
|
80
|
+
#edit_tags_form.box #contact_tags {
|
81
|
+
margin-bottom: 10px;
|
82
|
+
}
|
83
|
+
|
84
|
+
div#tags-data span.contextual {
|
85
|
+
float: none;
|
86
|
+
padding-left: 0;
|
87
|
+
}
|
88
|
+
|
89
|
+
#edit_tags_link { opacity: 0; }
|
90
|
+
|
91
|
+
#tags-data:hover #edit_tags_link { opacity: 1; }
|
92
|
+
|
93
|
+
#sidebar ul.tags-cloud li.letter {
|
94
|
+
border-bottom: 1px dotted;
|
95
|
+
margin: 10px 30px 10px 0;
|
96
|
+
font-weight: bold;
|
97
|
+
}
|
98
|
+
|
99
|
+
.most_used_tag {
|
100
|
+
cursor: pointer;
|
101
|
+
color: #169;
|
102
|
+
}
|
103
|
+
|
104
|
+
.most_used_tag:hover { text-decoration: underline; }
|
105
|
+
|
106
|
+
div.wiki-attributes .attribute {
|
107
|
+
padding-left: 50px;
|
108
|
+
clear: left;
|
109
|
+
min-height: 1.8em;
|
110
|
+
}
|
111
|
+
|
112
|
+
div.wiki-attributes .attribute .label {
|
113
|
+
width: 45px;
|
114
|
+
margin-left: -50px;
|
115
|
+
font-weight: bold;
|
116
|
+
float: left;
|
117
|
+
overflow: hidden;
|
118
|
+
text-overflow: ellipsis;
|
119
|
+
}
|