additional_tags 3.0.9 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +11 -10
- data/app/helpers/additional_tags_helper.rb +14 -1
- data/app/models/migrate_tag.rb +1 -1
- data/app/models/migrate_tagging.rb +1 -1
- data/app/views/additional_tags/settings/_general.html.slim +4 -2
- data/app/views/additional_tags/settings/_manage_tags.html.slim +3 -3
- data/app/views/issues/_tags_sidebar_after.html.slim +2 -0
- data/app/views/issues/_tags_sidebar_before.html.slim +2 -0
- data/config/locales/bg.yml +1 -0
- data/config/locales/cs.yml +1 -0
- data/config/locales/de.yml +1 -0
- data/config/locales/en.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/fa.yml +45 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/it.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/pl.yml +1 -0
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/ru.yml +1 -0
- data/config/settings.yml +1 -0
- data/db/migrate/20201123093214_migrate_existing_tags.rb +1 -1
- data/init.rb +6 -6
- data/lib/additional_tags/hooks/view_hook.rb +7 -2
- data/lib/additional_tags/patches/auto_completes_controller_patch.rb +13 -11
- data/lib/additional_tags/patches/issue_patch.rb +2 -2
- data/lib/additional_tags/patches/issue_query_patch.rb +2 -1
- data/lib/additional_tags/plugin_version.rb +1 -1
- data/lib/additional_tags/tags.rb +11 -3
- metadata +9 -7
- data/app/views/auto_completes/_additional_tag_list.slim +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8ed778f6643bfc7ef2e38f292fa92d0dab319705968e9791bb820b0e284124b
|
4
|
+
data.tar.gz: 29db0db1b7c774c387fe46b7294d5be48dc71ab0857cd8fca9eebea610e17e6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c76cb8da0ffab5ef74651cc450150fc1c057e4bfff58633cc4a8aa17fdd0ff91134537bf5cacb9f85783a624b628e21d0705b30b656819583ccc7d62f4fd2f5d
|
7
|
+
data.tar.gz: b12dc1e15cf91fc1514ecda011fd3e7f8186b64be0046fe7df894853b52db7045f2713aa00ae67101e1a42d7b44947256a129c21553021a3892bea0612eab34c
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Additional Tags - Tags for Redmine
|
2
2
|
|
3
|
-
[](https://www.redmine.org/plugins/additional_tags) [](https://www.redmine.org/plugins/additional_tags) [](https://github.com/alphanodes/additional_tags/actions?query=workflow%3A%22Run+Linters%22) [](https://github.com/alphanodes/additional_tags/actions?query=workflow%3ATests)
|
4
4
|
|
5
5
|
## Features
|
6
6
|
|
@@ -8,15 +8,15 @@
|
|
8
8
|
- *Activate issue tags* in the plugin configuration
|
9
9
|
- and update your role permissions in the Redmine administration *Roles & permissions / Issue tracking*.
|
10
10
|
- Tags for wiki pages. To use them you need to:
|
11
|
-
- *Activate wiki tags* in the plugin configuration
|
11
|
+
- *Activate wiki tags* in the plugin configuration
|
12
12
|
- and update your role permissions in the Redmine administration *Roles & permissions / Wiki*
|
13
|
-
- Available role permissions for issue tags (section *Issue tracking*):
|
13
|
+
- Available role permissions for issue tags (section *Issue tracking*):
|
14
14
|
- Add issue tags
|
15
15
|
- Edit issue tags
|
16
16
|
- Display issue tags
|
17
17
|
- Available role permissions wiki tags (section *Wiki*):
|
18
18
|
- Add wiki tags
|
19
|
-
- Managing tags centrally in the plugin settings (edit, delete, merge)-
|
19
|
+
- Managing tags centrally in the plugin settings (edit, delete, merge)-
|
20
20
|
- Grouped tags.
|
21
21
|
- Grouping of tags possible, when using a colon in tag (all tags with same base name get the same color). Typo example: ``Plugin:HRM``
|
22
22
|
- Scoped tags:
|
@@ -29,11 +29,11 @@
|
|
29
29
|
used tags or tagging tables for issue or wiki tagging, tags will be migrated automatically there
|
30
30
|
- Based on the very popular [acts-as-taggable-on](https://github.com/mbleigh/acts-as-taggable-on)
|
31
31
|
|
32
|
-

|
33
33
|
|
34
34
|
The screenshot shows: regular tags, grouped tags and scoped tags. The colors are assigned randomly. But you can change the color by choosing a *Color theme* in the plugin settings.
|
35
35
|
|
36
|
-

|
37
37
|
|
38
38
|
Other plugins use additional_tags as framework in order to support tags for their entities.
|
39
39
|
At the moment this are:
|
@@ -42,11 +42,12 @@ At the moment this are:
|
|
42
42
|
- redmine_passwords (password tagging)
|
43
43
|
- redmine_reporting (project tagging)
|
44
44
|
- redmine_hrm (holiday tagging)
|
45
|
-
- redmine_servicedesk (contact
|
45
|
+
- redmine_servicedesk (tagging of contact, canned responses, invoices, helpdesk issues)
|
46
|
+
- redmine_wiki_guide (wiki page tagging)
|
46
47
|
|
47
48
|
Start using it, too. The example image shows the centralized tag management in the plugin configuration.
|
48
49
|
|
49
|
-

|
50
51
|
|
51
52
|
## Why another Tag plugin?
|
52
53
|
|
@@ -58,12 +59,12 @@ Start using it, too. The example image shows the centralized tag management in t
|
|
58
59
|
## Requirements
|
59
60
|
|
60
61
|
- Redmine `>= 5.0`
|
61
|
-
- Ruby `>=
|
62
|
+
- Ruby `>= 3.0`
|
62
63
|
- Redmine plugins: [additionals](https://www.redmine.org/plugins/additionals)
|
63
64
|
|
64
65
|
## Installing
|
65
66
|
|
66
|
-
### 1. Get
|
67
|
+
### 1. Get correct plugin version
|
67
68
|
|
68
69
|
To install stable version of additional_tags, use
|
69
70
|
|
@@ -3,6 +3,15 @@
|
|
3
3
|
module AdditionalTagsHelper
|
4
4
|
include ActsAsTaggableOn::TagsHelper
|
5
5
|
|
6
|
+
def format_tags_json(tags)
|
7
|
+
tags.map do |tag|
|
8
|
+
{
|
9
|
+
'id' => tag.name,
|
10
|
+
'text' => tag.name
|
11
|
+
}
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
6
15
|
def manageable_tags
|
7
16
|
AdditionalTags::Tags.sort_tag_list ActsAsTaggableOn::Tag.where({})
|
8
17
|
end
|
@@ -30,7 +39,7 @@ module AdditionalTagsHelper
|
|
30
39
|
|
31
40
|
def manageable_tag_column_values(tag)
|
32
41
|
columns = []
|
33
|
-
manageable_tag_columns.
|
42
|
+
manageable_tag_columns.each_value do |column_values|
|
34
43
|
cnt = column_values[:counts][tag.id]
|
35
44
|
cnt = 0 if cnt.blank?
|
36
45
|
|
@@ -43,6 +52,10 @@ module AdditionalTagsHelper
|
|
43
52
|
columns
|
44
53
|
end
|
45
54
|
|
55
|
+
def values_for_sort_direction
|
56
|
+
[[l(:label_ascending), 'asc'], [l(:label_descending), 'desc']]
|
57
|
+
end
|
58
|
+
|
46
59
|
def sort_tags_for_list(tags, sort_by: nil, sort_order: nil)
|
47
60
|
return tags if tags.size < 2
|
48
61
|
|
data/app/models/migrate_tag.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class MigrateTag < ActiveRecord::Base
|
3
|
+
class MigrateTag < Rails.version < '7.1' ? ActiveRecord::Base : ApplicationRecord
|
4
4
|
self.table_name = 'tags'
|
5
5
|
has_many :migrate_taggings, dependent: :destroy, foreign_key: :tag_id, inverse_of: :migrate_tag
|
6
6
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class MigrateTagging < ActiveRecord::Base
|
3
|
+
class MigrateTagging < Rails.version < '7.1' ? ActiveRecord::Base : ApplicationRecord
|
4
4
|
self.table_name = 'taggings'
|
5
5
|
belongs_to :migrate_tag, foreign_key: :tag_id, inverse_of: :migrate_taggings
|
6
6
|
belongs_to :taggable, polymorphic: true
|
@@ -15,8 +15,7 @@ fieldset.settings
|
|
15
15
|
@settings[:tags_sort_by])
|
16
16
|
'
|
17
17
|
= select_tag 'settings[tags_sort_order]',
|
18
|
-
options_for_select(
|
19
|
-
@settings[:tags_sort_order])
|
18
|
+
options_for_select(values_for_sort_direction, @settings[:tags_sort_order])
|
20
19
|
|
21
20
|
p
|
22
21
|
= additionals_settings_select :tags_suggestion_order,
|
@@ -37,6 +36,9 @@ fieldset.settings
|
|
37
36
|
p
|
38
37
|
= additionals_settings_checkbox :active_issue_tags
|
39
38
|
|
39
|
+
p
|
40
|
+
= additionals_settings_checkbox :show_tags_after_queries
|
41
|
+
|
40
42
|
p
|
41
43
|
= additionals_settings_checkbox :open_issues_only
|
42
44
|
|
@@ -6,10 +6,10 @@
|
|
6
6
|
tr
|
7
7
|
th.checkbox.hide-when-print
|
8
8
|
= check_box_tag 'ids[]', '', false, class: 'toggle-selection',
|
9
|
-
title: "#{l :button_check_all}
|
9
|
+
title: "#{l :button_check_all} / #{l :button_uncheck_all}"
|
10
10
|
|
11
11
|
th = l :field_name
|
12
|
-
- manageable_tag_columns.
|
12
|
+
- manageable_tag_columns.each_value do |column_values|
|
13
13
|
th = column_values[:label]
|
14
14
|
th
|
15
15
|
tbody
|
@@ -35,7 +35,7 @@
|
|
35
35
|
p.nodata = l :label_no_data
|
36
36
|
|
37
37
|
javascript:
|
38
|
-
$(
|
38
|
+
$(function() {
|
39
39
|
$('#settings form').data('cmUrl', "#{context_menu_additional_tags_path}")
|
40
40
|
})
|
41
41
|
|
data/config/locales/bg.yml
CHANGED
@@ -15,6 +15,7 @@ bg:
|
|
15
15
|
label_manage_tags: "Управление на маркерите"
|
16
16
|
label_merge_selected_tags: "Обединение на избраните маркери"
|
17
17
|
label_open_issues_only: "Показване само на отворените задачи"
|
18
|
+
label_show_tags_after_queries: "Показване на етикети след заявки"
|
18
19
|
label_show_with_count: "Показване на брой маркирани обекти"
|
19
20
|
label_tag_color_theme: "Тема на цвета %{value}"
|
20
21
|
label_tags_color_theme: "Цвят"
|
data/config/locales/cs.yml
CHANGED
@@ -15,6 +15,7 @@ cs:
|
|
15
15
|
label_manage_tags: "Spravovat štítky"
|
16
16
|
label_merge_selected_tags: "Sloučit vybrané značky"
|
17
17
|
label_open_issues_only: "Zobrazit pouze otevřené problémy"
|
18
|
+
label_show_tags_after_queries: "Zobrazit TAGy po dotazech"
|
18
19
|
label_show_with_count: "Zobrazit částku na značce"
|
19
20
|
label_tag_color_theme: "Barevné téma %{value}"
|
20
21
|
label_tags_color_theme: "Barva"
|
data/config/locales/de.yml
CHANGED
@@ -15,6 +15,7 @@ de:
|
|
15
15
|
label_manage_tags: TAGs verwalten
|
16
16
|
label_merge_selected_tags: Ausgewählte TAGs zusammenführen
|
17
17
|
label_open_issues_only: Zeige nur offene Tickets
|
18
|
+
label_show_tags_after_queries: "Zeige TAGs nach Abfragen"
|
18
19
|
label_show_with_count: Zeige Anzahl zu TAG
|
19
20
|
label_tag_color_theme: Farbschema %{value}
|
20
21
|
label_tags_color_theme: Farbe
|
data/config/locales/en.yml
CHANGED
@@ -15,6 +15,7 @@ en:
|
|
15
15
|
label_manage_tags: "Manage tags"
|
16
16
|
label_merge_selected_tags: "Merge selected tags"
|
17
17
|
label_open_issues_only: "Display open issues only"
|
18
|
+
label_show_tags_after_queries: "Show tags after queries"
|
18
19
|
label_show_with_count: "Display amount on tag"
|
19
20
|
label_tag_color_theme: Color theme %{value}
|
20
21
|
label_tags_color_theme: Color
|
data/config/locales/es.yml
CHANGED
@@ -15,6 +15,7 @@ es:
|
|
15
15
|
label_manage_tags: "Manejar tags"
|
16
16
|
label_merge_selected_tags: "Fusionar tags seleccionadas"
|
17
17
|
label_open_issues_only: "Mostrar sólo las peticiones abiertas"
|
18
|
+
label_show_tags_after_queries: "Mostrar TAGs tras las consultas"
|
18
19
|
label_show_with_count: "Mostrar la cantidad en la tags"
|
19
20
|
label_tag_color_theme: "Tema del color %{value}"
|
20
21
|
label_tags_colors: "Color"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
fa:
|
2
|
+
activerecord:
|
3
|
+
errors:
|
4
|
+
messages:
|
5
|
+
invalid_mutually_exclusive_tags: از تگ های منحصر به فرد متقابل استفاده شده است
|
6
|
+
field_issue_tags: تگهای مسئله
|
7
|
+
field_tag_list: تگها
|
8
|
+
field_tags: تگها
|
9
|
+
label_active_issue_tags: "تگهای فعال مسئله"
|
10
|
+
label_active_wiki_tags: "تگهای فعال ویکی"
|
11
|
+
label_add_tags: "افزودن تگ"
|
12
|
+
label_amount_entities_with_tags: "مقدار %{name} با تگها"
|
13
|
+
label_amount_tags: "تگهای مقدار"
|
14
|
+
label_edit_tags: "ویرایش تگها"
|
15
|
+
label_manage_tags: "مدیریت تگها"
|
16
|
+
label_merge_selected_tags: "ادغام تگهای انتخابی"
|
17
|
+
label_open_issues_only: "مشاهده مسائل باز"
|
18
|
+
label_show_tags_after_queries: "Show tags after queries"
|
19
|
+
label_show_with_count: "نمایش مقدار روی تگ"
|
20
|
+
label_tag_color_theme: تم رنگی %{value}
|
21
|
+
label_tags_color_theme: رنگ
|
22
|
+
label_tags_sidebar: "نمایش تگها در حاشیه به عنوان"
|
23
|
+
label_tags_sort_by: "مرتب سازی تگها بر اساس"
|
24
|
+
label_tags_suggestion_order: "سفارش پیشنهاد"
|
25
|
+
label_tags_tag: "تگ"
|
26
|
+
label_tags_without_color: بدون رنگ
|
27
|
+
label_use_colors: استفاده از رنگها
|
28
|
+
label_wiki_index_for_tag: "صفحههای ویکی با تگ"
|
29
|
+
label_with_chart: "با نمودار"
|
30
|
+
label_with_table_of_values: "با جدول مقادیر"
|
31
|
+
notice_failed_to_add_tags: "ناتوانی در افزودن تگها"
|
32
|
+
notice_tags_added: "تگها افزوده شدند"
|
33
|
+
permission_add_wiki_tags: "افزودن تگهای ویکی"
|
34
|
+
permission_create_issue_tags: "افزودن تگهای مسئله"
|
35
|
+
permission_edit_issue_tags: "ویرایش تگهای مسئله"
|
36
|
+
permission_view_issue_tags: "مشاهده تگهای مسئله"
|
37
|
+
tags_order_by_count: "بیشتر استفادهشده"
|
38
|
+
tags_order_by_last_created: "آخرین ساختهشده"
|
39
|
+
tags_order_by_name: "نام"
|
40
|
+
tags_sidebar_cloud: "ابر"
|
41
|
+
tags_sidebar_list: "لیست"
|
42
|
+
tags_sidebar_none: "هیچکدام"
|
43
|
+
tags_sidebar_simple_cloud: "ابر ساده"
|
44
|
+
tags_sort_by_count: "تعداد"
|
45
|
+
tags_sort_by_name: "نام"
|
data/config/locales/fr.yml
CHANGED
@@ -15,6 +15,7 @@ fr:
|
|
15
15
|
label_manage_tags: "Gérer les tags"
|
16
16
|
label_merge_selected_tags: "Fusionner les tags sélectionnées"
|
17
17
|
label_open_issues_only: "Afficher uniquement les demandes ouverts"
|
18
|
+
label_show_tags_after_queries: "Afficher les TAG après les requêtes"
|
18
19
|
label_show_with_count: "Afficher le montant sur l'tags"
|
19
20
|
label_tag_color_theme: "Thème de la couleur %{value}"
|
20
21
|
label_tags_colors: "Couleur"
|
data/config/locales/it.yml
CHANGED
@@ -15,6 +15,7 @@ it:
|
|
15
15
|
label_manage_tags: "Gestire i tag"
|
16
16
|
label_merge_selected_tags: "Unisci i tag selezionati"
|
17
17
|
label_open_issues_only: "Mostra solo i segnalazione"
|
18
|
+
label_show_tags_after_queries: "Mostra i TAG dopo le query"
|
18
19
|
label_show_with_count: "Visualizzare l'importo sul tag"
|
19
20
|
label_tag_color_theme: "Tema colore %{value}"
|
20
21
|
label_tags_colors: Colore
|
data/config/locales/ja.yml
CHANGED
@@ -15,6 +15,7 @@ ja:
|
|
15
15
|
label_manage_tags: "タグの管理"
|
16
16
|
label_merge_selected_tags: "選択したタグをマージ"
|
17
17
|
label_open_issues_only: "開いている問題のみを表示"
|
18
|
+
label_show_tags_after_queries: "クエリーの後にTAGを表示する"
|
18
19
|
label_show_with_count: "タグに金額を表示"
|
19
20
|
label_tag_color_theme: "カラーテーマ%{value}"
|
20
21
|
label_tags_colors: "カラー"
|
data/config/locales/ko.yml
CHANGED
@@ -15,6 +15,7 @@ ko:
|
|
15
15
|
label_manage_tags: "태그 관리"
|
16
16
|
label_merge_selected_tags: "선택한 태그 병합"
|
17
17
|
label_open_issues_only: "미해결 문제 만 표시"
|
18
|
+
label_show_tags_after_queries: "쿼리 뒤에 태그 표시"
|
18
19
|
label_show_with_count: "태그에 금액 표시"
|
19
20
|
label_tag_color_theme: "색상 테마 %{value}"
|
20
21
|
label_tags_colors: "색깔"
|
data/config/locales/pl.yml
CHANGED
@@ -15,6 +15,7 @@ pl:
|
|
15
15
|
label_manage_tags: "Zarządzaj tagami"
|
16
16
|
label_merge_selected_tags: "Łączenie wybranych tagów"
|
17
17
|
label_open_issues_only: "Wyświetlaj tylko sprawy otwarte"
|
18
|
+
label_show_tags_after_queries: "Pokaż TAGi po zapytaniach"
|
18
19
|
label_show_with_count: "Wyświetlanie ilości na etykiecie"
|
19
20
|
label_tag_color_theme: "Kolorowy motyw %{value}"
|
20
21
|
label_tags_colors: Kolor
|
data/config/locales/pt-BR.yml
CHANGED
@@ -15,6 +15,7 @@ pt-BR:
|
|
15
15
|
label_manage_tags: "Gerenciar etiquetas"
|
16
16
|
label_merge_selected_tags: "Fundir tags selecionadas"
|
17
17
|
label_open_issues_only: "Exibir apenas questões em aberto"
|
18
|
+
label_show_tags_after_queries: "Mostrar TAGs após consultas"
|
18
19
|
label_show_with_count: "Mostrar quantidade na etiqueta"
|
19
20
|
label_tag_color_theme: "Tema da cor %{value}"
|
20
21
|
label_tags_colors: "Cor"
|
data/config/locales/ru.yml
CHANGED
@@ -15,6 +15,7 @@ ru:
|
|
15
15
|
label_manage_tags: "Управление метками"
|
16
16
|
label_merge_selected_tags: "Объединить выбранные метки"
|
17
17
|
label_open_issues_only: "Отображать только открытые задачи"
|
18
|
+
label_show_tags_after_queries: "Показывать теги после запросов"
|
18
19
|
label_show_with_count: "Отображать количество на метке"
|
19
20
|
label_tag_color_theme: "Цветовая тема %{value}"
|
20
21
|
label_tags_colors: "Цвет"
|
data/config/settings.yml
CHANGED
@@ -6,7 +6,7 @@ class MigrateExistingTags < ActiveRecord::Migration[5.2]
|
|
6
6
|
|
7
7
|
excluded_taggable_types = %w[Question Contact DriveEntry]
|
8
8
|
|
9
|
-
MigrateTag.
|
9
|
+
MigrateTag.find_each do |old_tag|
|
10
10
|
ActsAsTaggableOn::Tagging.transaction do
|
11
11
|
tag = ActsAsTaggableOn::Tag.find_by name: old_tag.name
|
12
12
|
cnt = 0
|
data/init.rb
CHANGED
@@ -5,13 +5,13 @@ require 'additional_tags/plugin_version'
|
|
5
5
|
loader = RedminePluginKit::Loader.new plugin_id: 'additional_tags'
|
6
6
|
|
7
7
|
Redmine::Plugin.register :additional_tags do
|
8
|
-
name
|
9
|
-
author
|
8
|
+
name 'Additional Tags'
|
9
|
+
author 'AlphaNodes GmbH'
|
10
10
|
description 'Redmine tagging support'
|
11
|
-
version
|
12
|
-
url
|
13
|
-
author_url
|
14
|
-
directory
|
11
|
+
version AdditionalTags::PluginVersion::VERSION
|
12
|
+
url 'https://github.com/alphanodes/additional_tags/'
|
13
|
+
author_url 'https://alphanodes.com/'
|
14
|
+
directory File.dirname(__FILE__)
|
15
15
|
|
16
16
|
requires_redmine version_or_higher: '5.0'
|
17
17
|
|
@@ -11,7 +11,8 @@ module AdditionalTags
|
|
11
11
|
partial: 'issues/tags_form_details',
|
12
12
|
locals: { tags_form: 'issues/tags_form' }
|
13
13
|
render_on :view_issues_show_details_bottom, partial: 'issues/tags'
|
14
|
-
render_on :view_issues_sidebar_planning_bottom, partial: 'issues/
|
14
|
+
render_on :view_issues_sidebar_planning_bottom, partial: 'issues/tags_sidebar_before'
|
15
|
+
render_on :view_issues_sidebar_queries_bottom, partial: 'issues/tags_sidebar_after'
|
15
16
|
render_on :view_layouts_base_html_head, partial: 'additional_tags/html_head'
|
16
17
|
render_on :view_layouts_base_body_bottom, partial: 'additional_tags/body_bottom'
|
17
18
|
render_on :view_wiki_form_bottom, partial: 'tags_form_bottom'
|
@@ -19,10 +20,14 @@ module AdditionalTags
|
|
19
20
|
render_on :view_wiki_show_sidebar_bottom, partial: 'wiki/tags_sidebar'
|
20
21
|
|
21
22
|
def controller_issues_edit_before_save(context = {})
|
23
|
+
return unless AdditionalTags.setting? :active_issue_tags
|
24
|
+
|
22
25
|
tags_journal context[:issue], context[:params]
|
23
26
|
end
|
24
27
|
|
25
28
|
def controller_issues_bulk_edit_before_save(context = {})
|
29
|
+
return unless AdditionalTags.setting? :active_issue_tags
|
30
|
+
|
26
31
|
issue = context[:issue]
|
27
32
|
params = context[:params]
|
28
33
|
|
@@ -54,7 +59,7 @@ module AdditionalTags
|
|
54
59
|
|
55
60
|
pdf.ln
|
56
61
|
pdf.SetFontStyle '', 8
|
57
|
-
pdf.RDMCell 190, 5, page.tag_list.
|
62
|
+
pdf.RDMCell 190, 5, page.tag_list.to_comma_list
|
58
63
|
pdf.ln
|
59
64
|
end
|
60
65
|
|
@@ -6,25 +6,27 @@ module AdditionalTags
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
included do
|
9
|
+
include AdditionalTagsHelper
|
9
10
|
include InstanceMethods
|
10
11
|
end
|
11
12
|
|
12
13
|
module InstanceMethods
|
13
14
|
def issue_tags
|
14
15
|
suggestion_order = AdditionalTags.setting(:tags_suggestion_order) || 'name'
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
tags = Issue.available_tags name_like: build_search_query_term(params),
|
17
|
+
sort_by: suggestion_order,
|
18
|
+
order: (suggestion_order == 'name' ? 'ASC' : 'DESC')
|
18
19
|
|
19
|
-
|
20
|
+
tags = AdditionalTags::Tags.sort_tag_list tags if suggestion_order == 'name'
|
20
21
|
|
21
|
-
render
|
22
|
+
render json: format_tags_json(tags)
|
22
23
|
end
|
23
24
|
|
24
25
|
def wiki_tags
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
tags = WikiPage.available_tags project: nil,
|
27
|
+
name_like: build_search_query_term(params)
|
28
|
+
|
29
|
+
render json: format_tags_json(tags)
|
28
30
|
end
|
29
31
|
|
30
32
|
def all_tags
|
@@ -32,10 +34,10 @@ module AdditionalTags
|
|
32
34
|
|
33
35
|
q = build_search_query_term params
|
34
36
|
sql_for_where = "LOWER(#{ActiveRecord::Base.connection.quote_table_name ActsAsTaggableOn.tags_table}.name) LIKE ?"
|
35
|
-
|
36
|
-
|
37
|
+
tags = ActsAsTaggableOn::Tag.where(sql_for_where, "%#{q.downcase}%")
|
38
|
+
.order(name: :asc)
|
37
39
|
|
38
|
-
render
|
40
|
+
render json: format_tags_json(tags)
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
@@ -10,8 +10,8 @@ module AdditionalTags
|
|
10
10
|
include InstanceMethods
|
11
11
|
acts_as_ordered_taggable
|
12
12
|
|
13
|
-
before_save :prepare_save_tag_change
|
14
|
-
before_save :sort_tag_list
|
13
|
+
before_save :prepare_save_tag_change, if: proc { AdditionalTags.setting?(:active_issue_tags) }
|
14
|
+
before_save :sort_tag_list, if: proc { AdditionalTags.setting?(:active_issue_tags) }
|
15
15
|
|
16
16
|
validate :validate_tags, if: proc { AdditionalTags.setting?(:active_issue_tags) }
|
17
17
|
|
data/lib/additional_tags/tags.rb
CHANGED
@@ -27,6 +27,15 @@ module AdditionalTags
|
|
27
27
|
elsif options[:visible_condition]
|
28
28
|
scope = scope.where klass.visible_condition(user)
|
29
29
|
end
|
30
|
+
|
31
|
+
# @TODO: this should be activated and replace next line
|
32
|
+
# Additionals::EntityMethodsGlobal should be included for this
|
33
|
+
#
|
34
|
+
# if options[:name_like]
|
35
|
+
# scope = scope.like_with_wildcard columns: "#{TAG_TABLE_NAME}.name",
|
36
|
+
# value: options[:name_like],
|
37
|
+
# wildcard: :both
|
38
|
+
# end
|
30
39
|
scope = scope.where "LOWER(#{TAG_TABLE_NAME}.name) LIKE ?", "%#{options[:name_like].downcase}%" if options[:name_like]
|
31
40
|
scope = scope.where "#{TAG_TABLE_NAME}.name=?", options[:name] if options[:name]
|
32
41
|
scope = scope.where "#{TAGGING_TABLE_NAME}.taggable_id!=?", options[:exclude_id] if options[:exclude_id]
|
@@ -39,8 +48,7 @@ module AdditionalTags
|
|
39
48
|
end
|
40
49
|
|
41
50
|
def all_type_tags(klass, without_projects: false)
|
42
|
-
ActsAsTaggableOn::Tag.
|
43
|
-
.joins(tag_for_joins(klass, without_projects: without_projects))
|
51
|
+
ActsAsTaggableOn::Tag.joins(tag_for_joins(klass, without_projects: without_projects))
|
44
52
|
.distinct
|
45
53
|
.order(:name)
|
46
54
|
end
|
@@ -146,7 +154,7 @@ module AdditionalTags
|
|
146
154
|
"COUNT(DISTINCT #{TAGGING_TABLE_NAME}.taggable_id) AS count"]
|
147
155
|
|
148
156
|
columns << "MIN(#{TAGGING_TABLE_NAME}.created_at) AS last_created" if sort_by == 'last_created'
|
149
|
-
columns.
|
157
|
+
columns.to_comma_list
|
150
158
|
end
|
151
159
|
|
152
160
|
def status_for_tag_value(scope:, tag_id:, group_id: nil, group_id_is_bool: false)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: additional_tags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AlphaNodes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: acts-as-taggable-on
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '10.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '10.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: redmine_plugin_kit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,7 +68,6 @@ files:
|
|
68
68
|
- app/views/additional_tags/settings/_general.html.slim
|
69
69
|
- app/views/additional_tags/settings/_manage_tags.html.slim
|
70
70
|
- app/views/additional_tags/settings/_settings.html.slim
|
71
|
-
- app/views/auto_completes/_additional_tag_list.slim
|
72
71
|
- app/views/common/_tag_summary_block.html.slim
|
73
72
|
- app/views/context_menus/_issues_tags.html.slim
|
74
73
|
- app/views/dashboards/blocks/_issue_tags.html.slim
|
@@ -80,6 +79,8 @@ files:
|
|
80
79
|
- app/views/issues/_tags_form.html.slim
|
81
80
|
- app/views/issues/_tags_form_details.html.slim
|
82
81
|
- app/views/issues/_tags_sidebar.html.slim
|
82
|
+
- app/views/issues/_tags_sidebar_after.html.slim
|
83
|
+
- app/views/issues/_tags_sidebar_before.html.slim
|
83
84
|
- app/views/wiki/_tags_form.html.slim
|
84
85
|
- app/views/wiki/_tags_form_bottom.html.slim
|
85
86
|
- app/views/wiki/_tags_show.html.slim
|
@@ -93,6 +94,7 @@ files:
|
|
93
94
|
- config/locales/de.yml
|
94
95
|
- config/locales/en.yml
|
95
96
|
- config/locales/es.yml
|
97
|
+
- config/locales/fa.yml
|
96
98
|
- config/locales/fr.yml
|
97
99
|
- config/locales/it.yml
|
98
100
|
- config/locales/ja.yml
|
@@ -149,14 +151,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
151
|
requirements:
|
150
152
|
- - ">="
|
151
153
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
154
|
+
version: '3.0'
|
153
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
156
|
requirements:
|
155
157
|
- - ">="
|
156
158
|
- !ruby/object:Gem::Version
|
157
159
|
version: '0'
|
158
160
|
requirements: []
|
159
|
-
rubygems_version: 3.
|
161
|
+
rubygems_version: 3.4.19
|
160
162
|
signing_key:
|
161
163
|
specification_version: 4
|
162
164
|
summary: Redmine plugin for adding tag functionality
|
@@ -1 +0,0 @@
|
|
1
|
-
== @tags.collect { |tag| { 'id' => tag.name, 'text' => tag.name } }.to_json
|