additional_tags 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests.yml +6 -2
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +9 -3
  5. data/README.md +15 -16
  6. data/additional_tags.gemspec +5 -3
  7. data/app/helpers/additional_tags_helper.rb +71 -16
  8. data/app/helpers/additional_tags_issues_helper.rb +1 -1
  9. data/app/helpers/additional_tags_wiki_helper.rb +1 -25
  10. data/app/jobs/additional_tags_remove_unused_tag_job.rb +5 -0
  11. data/app/views/context_menus/_issues_tags.html.slim +1 -1
  12. data/app/views/dashboards/blocks/_issue_tags.html.slim +63 -0
  13. data/app/views/dashboards/blocks/_issue_tags_settings.html.slim +20 -0
  14. data/app/views/issue_tags/_edit_modal.html.slim +4 -2
  15. data/assets/javascripts/tags.js +4 -3
  16. data/config/initializers/zeitwerk.rb +6 -0
  17. data/config/locales/bg.yml +5 -0
  18. data/config/locales/cs.yml +5 -0
  19. data/config/locales/de.yml +5 -0
  20. data/config/locales/en.yml +5 -0
  21. data/config/locales/es.yml +5 -0
  22. data/config/locales/fr.yml +5 -0
  23. data/config/locales/it.yml +5 -0
  24. data/config/locales/ja.yml +5 -0
  25. data/config/locales/ko.yml +5 -0
  26. data/config/locales/pl.yml +5 -0
  27. data/config/locales/pt-BR.yml +5 -0
  28. data/config/locales/ru.yml +28 -23
  29. data/init.rb +9 -6
  30. data/lib/additional_tags/hooks/model_hook.rb +13 -0
  31. data/lib/additional_tags/hooks/view_hook.rb +76 -0
  32. data/lib/additional_tags/patches/dashboard_content_patch.rb +28 -0
  33. data/lib/additional_tags/patches/issue_patch.rb +11 -4
  34. data/lib/additional_tags/patches/wiki_controller_patch.rb +1 -1
  35. data/lib/additional_tags/patches/wiki_page_patch.rb +43 -0
  36. data/lib/additional_tags/plugin_version.rb +7 -0
  37. data/lib/additional_tags.rb +51 -61
  38. metadata +26 -8
  39. data/app/views/reports/_tags_simple.html.slim +0 -11
  40. data/lib/additional_tags/hooks.rb +0 -75
  41. data/lib/additional_tags/patches/reports_controller_patch.rb +0 -34
  42. data/lib/additional_tags/version.rb +0 -5
@@ -1,33 +1,38 @@
1
1
  ru:
2
- field_tag_list: Tags
3
- field_tags: Tags
4
- field_issue_tags: Issue tags
5
- label_active_issue_tags: "Активировать теги проблем"
6
- label_active_wiki_tags: "Активировать вики-теги"
7
- label_add_tags: "Добавить теги"
2
+ field_tag_list: Теги
3
+ field_tags: Теги
4
+ field_issue_tags: Теги задач
5
+ label_active_issue_tags: "Активировать теги задач"
6
+ label_active_wiki_tags: "Активировать теги вики"
7
+ label_add_tags: "Добавьте теги"
8
8
  label_edit_tags: "Редактировать теги"
9
- label_manage_tags: "Управляющие метки"
9
+ label_manage_tags: "Управление тегами"
10
10
  label_merge_selected_tags: "Объединить выбранные теги"
11
- label_open_issues_only: "Отображать только открытые вопросы"
12
- label_show_with_count: "Отображаемое количество на теге"
13
- label_tags_tag: "Tag"
11
+ label_open_issues_only: "Отображать только открытые задачи"
12
+ label_show_with_count: "Отображать количество на теге"
13
+ label_tags_tag: "Тег"
14
14
  label_use_colors: "Использовать цвета"
15
15
  label_wiki_index_for_tag_html: "Вики-страницы с тегом <em>%{tag}</em>"
16
16
  notice_failed_to_add_tags: "Не удалось добавить теги"
17
17
  notice_tags_added: "Теги добавлены"
18
- permission_add_wiki_tags: "Добавить вики-теги"
19
- permission_create_issue_tags: "Добавить теги проблемы"
20
- permission_edit_issue_tags: "Редактирование тематических тегов"
21
- permission_view_issue_tags: "Отображать проблемные теги"
22
- tags_order_by_last_created: "Последний созданный"
23
- tags_order_by_count: "Наиболее часто используемый"
18
+ permission_add_wiki_tags: "Добавление тегов вики"
19
+ permission_create_issue_tags: "Добавление тегов задач"
20
+ permission_edit_issue_tags: "Редактирование тегов задач"
21
+ permission_view_issue_tags: "Просмотр тегов задач"
22
+ tags_order_by_last_created: "Недавно созданные"
23
+ tags_order_by_count: "Наиболее часто используемые"
24
24
  tags_order_by_name: "Имя"
25
- tags_sidebar_cloud: "Cloud"
25
+ tags_sidebar_cloud: "Облако"
26
26
  tags_sidebar_list: "Список"
27
27
  tags_sidebar_none: "Нет"
28
- tags_sidebar_simple_cloud: "Simple cloud"
29
- label_tags_sidebar: "DОтображать теги на боковой панели как"
30
- tags_sort_by_count: "Посчитать"
31
- tags_sort_by_name: "Имя"
32
- label_tags_sort_by: "Сортировать метки по"
33
- label_tags_suggestion_order: "Порядок предложения"
28
+ tags_sidebar_simple_cloud: "Простое облако"
29
+ label_tags_sidebar: "Способ отображения тегов на боковой панели"
30
+ tags_sort_by_count: "Количеству"
31
+ tags_sort_by_name: "Имени"
32
+ label_tags_sort_by: "Сортировать теги по"
33
+ label_tags_suggestion_order: "Порядок предложения при вводе"
34
+ label_with_table_of_values: "С таблицей значений"
35
+ label_with_chart: "С графиком"
36
+ label_amount_tags: "Теги Сумма"
37
+ label_amount_entities_with_tags: "Сумма %{name} с тегами"
38
+ label_quantity: "Количество"
data/init.rb CHANGED
@@ -1,17 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'additional_tags/plugin_version'
4
+
5
+ loader = RedminePluginKit::Loader.new plugin_id: 'additional_tags'
6
+
3
7
  Redmine::Plugin.register :additional_tags do
4
8
  name 'Additional Tags'
5
9
  author 'AlphaNodes GmbH'
6
10
  description 'Redmine tagging support'
7
- version AdditionalTags::VERSION
11
+ version AdditionalTags::PluginVersion::VERSION
8
12
  url 'https://github.com/alphanodes/additional_tags/'
9
- author_url 'https://alphanodes.com/'
13
+ author_url 'https://alphanodes.com/'
10
14
  directory __dir__
11
15
 
12
16
  requires_redmine version_or_higher: '4.1'
13
17
 
14
- settings default: Additionals.load_settings('additional_tags'),
18
+ settings default: loader.default_settings,
15
19
  partial: 'additional_tags/settings/settings'
16
20
 
17
21
  project_module :issue_tracking do
@@ -30,6 +34,5 @@ Redmine::Plugin.register :additional_tags do
30
34
  caption: :field_tags
31
35
  end
32
36
 
33
- Rails.configuration.to_prepare do
34
- AdditionalTags.setup
35
- end
37
+ RedminePluginKit::Loader.persisting { loader.load_model_hooks! }
38
+ RedminePluginKit::Loader.to_prepare { AdditionalTags.setup!(loader) } if Rails.version < '6.0'
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AdditionalTags
4
+ module Hooks
5
+ class ModelHook < Redmine::Hook::Listener
6
+ def after_plugins_loaded(_context = {})
7
+ return if Rails.version < '6.0'
8
+
9
+ AdditionalTags.setup!
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AdditionalTags
4
+ module Hooks
5
+ class ViewHook < Redmine::Hook::ViewListener
6
+ render_on :view_issues_bulk_edit_details_bottom,
7
+ partial: 'issues/tags_form_details',
8
+ locals: { tags_form: 'issues/tags_bulk_edit' }
9
+ render_on :view_issues_context_menu_end, partial: 'context_menus/issues_tags'
10
+ render_on :view_issues_form_details_bottom,
11
+ partial: 'issues/tags_form_details',
12
+ locals: { tags_form: 'issues/tags_form' }
13
+ render_on :view_issues_show_details_bottom, partial: 'issues/tags'
14
+ render_on :view_issues_sidebar_planning_bottom, partial: 'issues/tags_sidebar'
15
+ render_on :view_layouts_base_html_head, partial: 'additional_tags/html_head'
16
+ render_on :view_wiki_form_bottom, partial: 'tags_form_bottom'
17
+ render_on :view_wiki_show_bottom, partial: 'tags_show'
18
+ render_on :view_wiki_show_sidebar_bottom, partial: 'wiki/tags_sidebar'
19
+
20
+ def controller_issues_edit_before_save(context = {})
21
+ tags_journal context[:issue], context[:params]
22
+ end
23
+
24
+ def controller_issues_bulk_edit_before_save(context = {})
25
+ issue = context[:issue]
26
+ params = context[:params]
27
+
28
+ issues_bulk_tags_fix issue, params
29
+ tags_journal issue, params
30
+ end
31
+
32
+ # this hook is missing in redmine core at the moment
33
+ def view_issue_pdf_fields(context = {})
34
+ issue = context[:issue]
35
+ right = context[:right]
36
+
37
+ if AdditionalTags.setting?(:active_issue_tags) &&
38
+ User.current.allowed_to?(:view_issue_tags, issue.project)
39
+ right << [l(:field_tag_list), issue.tag_list]
40
+ end
41
+ end
42
+
43
+ # this hook is missing in redmine core at the moment
44
+ def view_wiki_pdf_buttom(context = {})
45
+ page = context[:page]
46
+ pdf = context[:pdf]
47
+
48
+ return if page.tag_list.blank?
49
+
50
+ pdf.ln 5
51
+ pdf.SetFontStyle 'B', 9
52
+ pdf.RDMCell 190, 5, l(:field_tag_list), 'B'
53
+
54
+ pdf.ln
55
+ pdf.SetFontStyle '', 8
56
+ pdf.RDMCell 190, 5, page.tag_list.join(', ')
57
+ pdf.ln
58
+ end
59
+
60
+ private
61
+
62
+ def issues_bulk_tags_fix(issue, params)
63
+ old_tags = issue.tags.map(&:name)
64
+ new_tags = Array(params[:issue][:tag_list]).reject(&:empty?)
65
+ issue.tag_list = (old_tags + new_tags).uniq
66
+ end
67
+
68
+ def tags_journal(issue, params)
69
+ return unless params && params[:issue] && params[:issue][:tag_list]
70
+
71
+ issue.tags_to_journal Issue.find_by(id: issue.id)&.tag_list&.to_s,
72
+ issue.tag_list.to_s
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AdditionalTags
4
+ module Patches
5
+ module DashboardContentPatch
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ prepend InstanceOverwriteMethods
10
+ end
11
+
12
+ module InstanceOverwriteMethods
13
+ def block_definitions
14
+ blocks = super
15
+
16
+ blocks['issue_tags'] = {
17
+ label: l(:field_issue_tags),
18
+ permission: :view_issue_tags,
19
+ if: proc { AdditionalTags.setting?(:active_issue_tags) },
20
+ async: { partial: 'dashboards/blocks/issue_tags' }
21
+ }
22
+
23
+ blocks
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -25,8 +25,12 @@ module AdditionalTags
25
25
  tags.all? { |tag| allowed_tags.include? tag }
26
26
  end
27
27
 
28
- def by_tags(project, with_subprojects: false)
29
- count_and_group_by project: project, association: :tags, with_subprojects: with_subprojects
28
+ def group_by_status_with_tags(project = nil)
29
+ Issue.visible(User.current, project: project)
30
+ .joins(:status)
31
+ .joins(:tags)
32
+ .group(:is_closed, 'tag_id')
33
+ .count
30
34
  end
31
35
 
32
36
  def available_tags(**options)
@@ -67,12 +71,15 @@ module AdditionalTags
67
71
  send 'safe_attributes_without_tags=', attrs, user
68
72
  end
69
73
 
70
- def copy_from_with_tags(arg, **options)
71
- copy_from_without_tags(arg, **options)
74
+ # copy_from requires hash for Redmine - works with Ruby 3
75
+ # rubocop: disable Style/OptionHash
76
+ def copy_from_with_tags(arg, options = {})
77
+ copy_from_without_tags arg, options
72
78
  issue = arg.is_a?(Issue) ? arg : Issue.visible.find(arg)
73
79
  self.tag_list = issue.tag_list
74
80
  self
75
81
  end
82
+ # rubocop: enable Style/OptionHash
76
83
 
77
84
  def tags_to_journal(old_tags, new_tags)
78
85
  return if current_journal.blank? || old_tags == new_tags
@@ -31,7 +31,7 @@ module AdditionalTags
31
31
  @tag = params[:tag]
32
32
  return super unless AdditionalTags.setting?(:active_wiki_tags) && @tag.present?
33
33
 
34
- @pages = wiki_pages_with_tag @tag, @project
34
+ @pages = WikiPage.with_tags @tag, project: @project
35
35
 
36
36
  respond_to do |format|
37
37
  format.html do
@@ -27,6 +27,49 @@ module AdditionalTags
27
27
  options[:permission] = :view_wiki_pages
28
28
  AdditionalTags::Tags.available_tags self, **options
29
29
  end
30
+
31
+ def with_tags(tag, project: nil, order: 'title_asc', max_entries: nil)
32
+ wiki = project&.wiki
33
+
34
+ scope = if wiki
35
+ wiki.pages
36
+ else
37
+ WikiPage.joins wiki: :project
38
+ end
39
+
40
+ scope = scope.visible User.current, project: project if scope.respond_to? :visible
41
+ scope = scope.limit max_entries if max_entries
42
+
43
+ tags = Array tag
44
+ tags.map!(&:strip)
45
+ tags.reject!(&:blank?)
46
+ return [] if tags.count.zero?
47
+
48
+ tags.map!(&:downcase)
49
+
50
+ scope = scope.where(id: tagged_with(tags, any: true).ids)
51
+ .with_updated_on
52
+ .joins(wiki: :project)
53
+
54
+ return scope if order.nil?
55
+
56
+ sorted = order.split '_'
57
+ raise 'unsupported sort order' if sorted != 2 && %w[title date].exclude?(sorted.first)
58
+
59
+ order_dir = sorted.second == 'desc' ? 'DESC' : 'ASC'
60
+
61
+ case sorted.first
62
+ when 'date'
63
+ scope.joins(:content)
64
+ .reorder("#{WikiContent.table_name}.updated_on #{order_dir}")
65
+ else
66
+ if wiki.nil?
67
+ scope.order "#{Project.table_name}.name, #{WikiPage.table_name}.title #{order_dir}"
68
+ else
69
+ scope.includes(:parent).order "#{WikiPage.table_name}.title #{order_dir}"
70
+ end
71
+ end
72
+ end
30
73
  end
31
74
 
32
75
  module InstanceMethods
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AdditionalTags
4
+ module PluginVersion
5
+ VERSION = '1.0.3' unless defined? VERSION
6
+ end
7
+ end
@@ -1,94 +1,84 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'additional_tags/version'
4
- require 'additional_tags/tags'
3
+ require 'redmine_plugin_kit'
4
+ require 'acts-as-taggable-on'
5
5
 
6
6
  module AdditionalTags
7
7
  TAG_TABLE_NAME = 'additional_tags'
8
8
  TAGGING_TABLE_NAME = 'additional_taggings'
9
9
 
10
+ include RedminePluginKit::PluginBase
11
+
10
12
  class << self
13
+ def show_sidebar_tags?
14
+ setting(:tags_sidebar).present? && setting(:tags_sidebar) != 'none'
15
+ end
16
+
17
+ private
18
+
11
19
  def setup
12
- raise 'Please install additionals plugin (https://github.com/alphanodes/additionals)' unless Redmine::Plugin.installed? 'additionals'
20
+ # TODO: this check does not work with Rails 6 at the moment
21
+ # reason: ActiveSupport.on_load(:active_record) is used for setup
22
+ # as temp solution
23
+ if Rails.version < '6.0' && !Redmine::Plugin.installed?('additionals')
24
+ raise 'Please install additionals plugin (https://github.com/alphanodes/additionals)'
25
+ end
13
26
 
14
- Additionals.incompatible_plugins(%w[redmine_tags
15
- redmine_tagging
16
- redmineup_tags], 'additional_tags')
27
+ loader.incompatible? %w[redmine_tags
28
+ redmine_tagging
29
+ redmineup_tags]
17
30
 
18
31
  # Patches
19
- AutoCompletesController.include AdditionalTags::Patches::AutoCompletesControllerPatch
20
- CalendarsController.include AdditionalTags::Patches::CalendarsControllerPatch
21
- DashboardsController.include AdditionalTags::Patches::DashboardsControllerPatch
22
- DashboardAsyncBlocksController.include AdditionalTags::Patches::DashboardAsyncBlocksControllerPatch
23
- GanttsController.include AdditionalTags::Patches::GanttsControllerPatch
24
- MyController.include AdditionalTags::Patches::MyControllerPatch
25
- Issue.include AdditionalTags::Patches::IssuePatch
26
- Journal.include AdditionalTags::Patches::JournalPatch
27
- Query.include AdditionalTags::Patches::QueryPatch
28
- IssuesController.include AdditionalTags::Patches::IssuesControllerPatch
29
- ImportsController.include AdditionalTags::Patches::ImportsControllerPatch
30
- QueriesHelper.include AdditionalTags::Patches::QueriesHelperPatch
31
- ReportsController.include AdditionalTags::Patches::ReportsControllerPatch
32
- SettingsController.include AdditionalTags::Patches::SettingsControllerPatch
33
- Redmine::Helpers::TimeReport.include AdditionalTags::Patches::TimeReportPatch
34
- TimeEntry.include AdditionalTags::Patches::TimeEntryPatch
35
- TimelogController.include AdditionalTags::Patches::TimelogControllerPatch
36
- WikiController.include AdditionalTags::Patches::WikiControllerPatch
37
- WikiPage.include AdditionalTags::Patches::WikiPagePatch
32
+ loader.add_patch %w[AutoCompletesController
33
+ CalendarsController
34
+ DashboardsController
35
+ DashboardAsyncBlocksController
36
+ GanttsController
37
+ MyController
38
+ Issue
39
+ DashboardContent
40
+ Journal
41
+ Query
42
+ IssuesController
43
+ ImportsController
44
+ QueriesHelper
45
+ SettingsController
46
+ TimeEntry
47
+ TimelogController
48
+ WikiController
49
+ WikiPage]
50
+
51
+ loader.add_patch({ target: Redmine::Helpers::TimeReport,
52
+ patch: 'TimeReport' })
38
53
 
39
54
  # because of this bug: https://www.redmine.org/issues/33290
40
- if Additionals.redmine_database_ready? TAG_TABLE_NAME
41
- IssueQuery.include AdditionalTags::Patches::IssueQueryPatch
42
- TimeEntryQuery.include AdditionalTags::Patches::TimeEntryQueryPatch
55
+ if RedminePluginKit::Loader.redmine_database_ready? TAG_TABLE_NAME
56
+ loader.add_patch %w[IssueQuery TimeEntryQuery]
43
57
 
44
58
  if Redmine::Plugin.installed? 'redmine_agile'
45
- AgileQuery.include AdditionalTags::Patches::AgileQueryPatch
46
- AgileBoardsController.include AdditionalTags::Patches::AgileBoardsControllerPatch
47
- if AGILE_VERSION_TYPE == 'PRO version'
48
- AgileVersionsController.include AdditionalTags::Patches::AgileVersionsControllerPatch
49
- AgileVersionsQuery.include AdditionalTags::Patches::AgileVersionsQueryPatch
50
- end
59
+ loader.add_patch %w[AgileQuery AgileBoardsController]
60
+ loader.add_patch %w[AgileVersionsController AgileVersionsQuery] if AGILE_VERSION_TYPE == 'PRO version'
51
61
  end
52
62
  end
53
63
 
54
- # Hooks
55
- require_dependency 'additional_tags/hooks'
56
- end
57
-
58
- # support with default setting as fall back
59
- def setting(value)
60
- if settings.key? value
61
- settings[value]
62
- else
63
- Additionals.load_settings('additional_tags')[value]
64
- end
65
- end
66
-
67
- def setting?(value)
68
- Additionals.true? settings[value]
69
- end
70
-
71
- def show_sidebar_tags?
72
- setting(:tags_sidebar).present? && setting(:tags_sidebar) != 'none'
73
- end
74
-
75
- private
64
+ # Apply patches and helper
65
+ loader.apply!
76
66
 
77
- def settings
78
- Setting[:plugin_additional_tags]
67
+ # Load view hooks
68
+ loader.load_view_hooks!
79
69
  end
80
70
  end
81
71
 
82
72
  # Run the classic redmine plugin initializer after rails boot
83
73
  class Plugin < ::Rails::Engine
84
- require 'acts-as-taggable-on'
74
+ require 'additional_tags/tags'
85
75
 
86
76
  ActsAsTaggableOn.tags_table = TAG_TABLE_NAME
87
77
  ActsAsTaggableOn.taggings_table = TAGGING_TABLE_NAME
88
78
 
89
79
  config.after_initialize do
90
80
  # engine_name could be used (additional_tags_plugin), but can
91
- # create some side effencts
81
+ # create some side effects
92
82
  plugin_id = 'additional_tags'
93
83
 
94
84
  # if plugin is already in plugins directory, use this and leave here
@@ -96,7 +86,7 @@ module AdditionalTags
96
86
 
97
87
  # gem is used as redmine plugin
98
88
  require File.expand_path '../init', __dir__
99
- AdditionalTags.setup
89
+ AdditionalTags.setup!
100
90
  Additionals::Gemify.install_assets plugin_id
101
91
  Additionals::Gemify.create_plugin_hint plugin_id
102
92
  end
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: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - AlphaNodes
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-22 00:00:00.000000000 Z
11
+ date: 2021-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: acts-as-taggable-on
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '7.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: redmine_plugin_kit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -91,6 +105,8 @@ files:
91
105
  - app/views/additional_tags/settings/_settings.html.slim
92
106
  - app/views/auto_completes/_additional_tag_list.slim
93
107
  - app/views/context_menus/_issues_tags.html.slim
108
+ - app/views/dashboards/blocks/_issue_tags.html.slim
109
+ - app/views/dashboards/blocks/_issue_tags_settings.html.slim
94
110
  - app/views/issue_tags/_edit_modal.html.slim
95
111
  - app/views/issue_tags/edit.js.erb
96
112
  - app/views/issues/_tags.html.slim
@@ -98,7 +114,6 @@ files:
98
114
  - app/views/issues/_tags_form.html.slim
99
115
  - app/views/issues/_tags_form_details.html.slim
100
116
  - app/views/issues/_tags_sidebar.html.slim
101
- - app/views/reports/_tags_simple.html.slim
102
117
  - app/views/wiki/_tags_form.html.slim
103
118
  - app/views/wiki/_tags_form_bottom.html.slim
104
119
  - app/views/wiki/_tags_show.html.slim
@@ -106,6 +121,7 @@ files:
106
121
  - app/views/wiki/tag_index.html.slim
107
122
  - assets/javascripts/tags.js
108
123
  - assets/stylesheets/tags.css
124
+ - config/initializers/zeitwerk.rb
109
125
  - config/locales/bg.yml
110
126
  - config/locales/cs.yml
111
127
  - config/locales/de.yml
@@ -126,7 +142,8 @@ files:
126
142
  - doc/images/additional-tags.gif
127
143
  - init.rb
128
144
  - lib/additional_tags.rb
129
- - lib/additional_tags/hooks.rb
145
+ - lib/additional_tags/hooks/model_hook.rb
146
+ - lib/additional_tags/hooks/view_hook.rb
130
147
  - lib/additional_tags/patches/agile_boards_controller_patch.rb
131
148
  - lib/additional_tags/patches/agile_query_patch.rb
132
149
  - lib/additional_tags/patches/agile_versions_controller_patch.rb
@@ -134,6 +151,7 @@ files:
134
151
  - lib/additional_tags/patches/auto_completes_controller_patch.rb
135
152
  - lib/additional_tags/patches/calendars_controller_patch.rb
136
153
  - lib/additional_tags/patches/dashboard_async_blocks_controller_patch.rb
154
+ - lib/additional_tags/patches/dashboard_content_patch.rb
137
155
  - lib/additional_tags/patches/dashboards_controller_patch.rb
138
156
  - lib/additional_tags/patches/gantts_controller_patch.rb
139
157
  - lib/additional_tags/patches/imports_controller_patch.rb
@@ -144,7 +162,6 @@ files:
144
162
  - lib/additional_tags/patches/my_controller_patch.rb
145
163
  - lib/additional_tags/patches/queries_helper_patch.rb
146
164
  - lib/additional_tags/patches/query_patch.rb
147
- - lib/additional_tags/patches/reports_controller_patch.rb
148
165
  - lib/additional_tags/patches/settings_controller_patch.rb
149
166
  - lib/additional_tags/patches/time_entry_patch.rb
150
167
  - lib/additional_tags/patches/time_entry_query_patch.rb
@@ -152,12 +169,13 @@ files:
152
169
  - lib/additional_tags/patches/timelog_controller_patch.rb
153
170
  - lib/additional_tags/patches/wiki_controller_patch.rb
154
171
  - lib/additional_tags/patches/wiki_page_patch.rb
172
+ - lib/additional_tags/plugin_version.rb
155
173
  - lib/additional_tags/tags.rb
156
- - lib/additional_tags/version.rb
157
174
  homepage: https://github.com/alphanodes/additional_tags
158
175
  licenses:
159
176
  - GPL-2.0
160
- metadata: {}
177
+ metadata:
178
+ rubygems_mfa_required: 'true'
161
179
  post_install_message:
162
180
  rdoc_options: []
163
181
  require_paths:
@@ -166,7 +184,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
184
  requirements:
167
185
  - - ">="
168
186
  - !ruby/object:Gem::Version
169
- version: '2.5'
187
+ version: '2.6'
170
188
  required_rubygems_version: !ruby/object:Gem::Requirement
171
189
  requirements:
172
190
  - - ">="
@@ -1,11 +0,0 @@
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 }