From bea800d9b0069b156269b2af79693c47d34f326e Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sat, 7 Dec 2019 11:32:30 +0900
Subject: [PATCH 01/14] Open pull request to fix this issue.
From 61e889f5f178d5d175ef15915b30712deabb0aaa Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sat, 7 Dec 2019 11:32:30 +0900
Subject: [PATCH 02/14] Pull request to prevent the project setting tab's
conflict.
From e0fc468b42bf058f95954bd30b82e199c18675ac Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sat, 7 Dec 2019 21:03:00 +0900
Subject: [PATCH 03/14] Bugfix: Tooltip for template body preview is hidden.
---
assets/stylesheets/issue_templates.css | 2 ++
1 file changed, 2 insertions(+)
diff --git a/assets/stylesheets/issue_templates.css b/assets/stylesheets/issue_templates.css
index 478395c0..090ef8c8 100644
--- a/assets/stylesheets/issue_templates.css
+++ b/assets/stylesheets/issue_templates.css
@@ -194,6 +194,8 @@ a.template_tooltip {
table.list.template_list {
width: 480px;
margin: 8px 0;
+ border: 2px solid #e4e4e4;
+ overflow: overlay;
}
td.template_title {
From b608f43c889311b3fd51d9025b8a2f54feef401b Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sun, 8 Dec 2019 22:28:27 +0900
Subject: [PATCH 04/14] Add 'menu_items' for project menu.
---
app/controllers/issue_templates_controller.rb | 4 ++++
app/controllers/issue_templates_settings_controller.rb | 4 ++++
app/controllers/note_templates_controller.rb | 4 ++++
3 files changed, 12 insertions(+)
diff --git a/app/controllers/issue_templates_controller.rb b/app/controllers/issue_templates_controller.rb
index a9f3792e..bdc04532 100644
--- a/app/controllers/issue_templates_controller.rb
+++ b/app/controllers/issue_templates_controller.rb
@@ -119,6 +119,10 @@ def list_templates
end
end
+ def menu_items
+ { issue_templates: { default: :issue_templates, actions: {} } }
+ end
+
# preview
def preview
issue_template = params[:issue_template]
diff --git a/app/controllers/issue_templates_settings_controller.rb b/app/controllers/issue_templates_settings_controller.rb
index 03dbff96..4a19b476 100644
--- a/app/controllers/issue_templates_settings_controller.rb
+++ b/app/controllers/issue_templates_settings_controller.rb
@@ -16,6 +16,10 @@ def preview
render partial: 'common/preview'
end
+ def menu_items
+ { issue_templates_settings: { default: :issue_templates, actions: {} } }
+ end
+
private
def find_user
diff --git a/app/controllers/note_templates_controller.rb b/app/controllers/note_templates_controller.rb
index 39a4605b..036a8b5c 100644
--- a/app/controllers/note_templates_controller.rb
+++ b/app/controllers/note_templates_controller.rb
@@ -90,6 +90,10 @@ def destroy
redirect_to action: 'index', project_id: @project
end
+ def menu_items
+ { note_templates: { default: :issue_templates, actions: {} } }
+ end
+
private
def find_object
From 81a9329300abc0f00eb35ea5933c959e634f5d61 Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sun, 8 Dec 2019 22:29:59 +0900
Subject: [PATCH 05/14] Add translation.
---
config/locales/en.yml | 2 ++
config/locales/ja.yml | 2 ++
2 files changed, 4 insertions(+)
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 39830162..eb4fb9ed 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -72,3 +72,5 @@ en:
roles: to these roles only
open: to any users
please_select_at_least_one_role: "Please select at least one role."
+ issue_templates_settings: Issue Templates Setting
+ issue_templates_optional_settings: Templates Optional Settings
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 92cd8626..aa3d2e88 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -73,3 +73,5 @@ ja:
roles: 次のロールのみ
open: すべてのユーザー
please_select_at_least_one_role: 1つ以上のロールを指定してください。
+ issue_templates_settings: チケットテンプレート設定
+ issue_templates_optional_settings: テンプレートオプション設定
From e608a64ac1265dd34589d8912765e86da5c8881c Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sun, 8 Dec 2019 22:32:58 +0900
Subject: [PATCH 06/14] Add index action to IssueTemplatesSettings. Change
redirect from project setting tab to IssueTemplatesSettings#index.
---
.../issue_templates_settings_controller.rb | 8 +++--
.../{_show.html.erb => index.html.erb} | 29 +++----------------
config/routes.rb | 4 ++-
init.rb | 2 +-
...ssue_templates_settings_controller_test.rb | 4 +--
5 files changed, 16 insertions(+), 31 deletions(-)
rename app/views/issue_templates_settings/{_show.html.erb => index.html.erb} (67%)
diff --git a/app/controllers/issue_templates_settings_controller.rb b/app/controllers/issue_templates_settings_controller.rb
index 4a19b476..e04cf3ec 100644
--- a/app/controllers/issue_templates_settings_controller.rb
+++ b/app/controllers/issue_templates_settings_controller.rb
@@ -1,14 +1,18 @@
# noinspection RubocopInspection
class IssueTemplatesSettingsController < ApplicationController
before_action :find_project, :find_user
- before_action :authorize, except: %i[show_help preview]
+
+ def index
+ @issue_templates_setting = IssueTemplateSetting.find_or_create(@project.id)
+ end
def edit
+ @issue_templates_setting = IssueTemplateSetting.find(@project.id)
return if params[:settings].blank?
update_template_setting
flash[:notice] = l(:notice_successful_update)
- redirect_to controller: 'projects', action: 'settings', id: @project, tab: 'issue_templates'
+ redirect_to action: 'index', project_id: @project
end
def preview
diff --git a/app/views/issue_templates_settings/_show.html.erb b/app/views/issue_templates_settings/index.html.erb
similarity index 67%
rename from app/views/issue_templates_settings/_show.html.erb
rename to app/views/issue_templates_settings/index.html.erb
index 819dcb3a..25007f64 100644
--- a/app/views/issue_templates_settings/_show.html.erb
+++ b/app/views/issue_templates_settings/index.html.erb
@@ -1,36 +1,14 @@
<%= render partial: "common/nodata", locals: { trackers: @project.trackers } %>
-
<%= l(:link_to_index_edit_template) %>
-
-
- <%= l(:issue_template) %>:
- <%= link_to(l(:label_list_templates),
- { controller: 'issue_templates',
- action: 'index',
- project_id: @project}, class: 'icon icon-template') %> |
- <%= link_to_if_authorized(l(:label_new_templates),
- { controller: 'issue_templates', action: 'new', project_id: @project },
- class: 'icon icon-add') %>
-
-
- <%= l(:note_template) %>:
- <%= link_to(l(:label_list_templates),
- { controller: 'note_templates',
- action: 'index',
- project_id: @project}, class: 'icon icon-template') %> |
- <%= link_to_if_authorized(l(:label_new_templates),
- { controller: 'note_templates', action: 'new', project_id: @project },
- class: 'icon icon-add') %>
-
-
+
<%= l(:issue_templates_settings, default: 'Issue Templates Setting') %>
-
Optional settings
+
<%= l(:issue_templates_optional_settings, default: 'Templates Optional Settings') %>
<%= l(:about_help_message) %>
<%= labelled_form_for :settings, @issue_templates_setting,
url: { controller: 'issue_templates_settings',
- action: 'edit', project_id: @project, tab: 'issue_templates',
+ action: 'edit', project_id: @project,
setting_id: @issue_templates_setting.id },
html: { id: 'issue_templates_settings' } do |f| %>
<%= error_messages_for 'issue_templates_setting' %>
@@ -82,3 +60,4 @@
+
<%= render partial: "common/template_links" %>
diff --git a/config/routes.rb b/config/routes.rb
index dea80366..3b05f86f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -19,10 +19,12 @@
get 'list_templates', on: :collection
end
- resources :issue_templates_settings, only: [], concerns: [:previewable] do
+ resources :issue_templates_settings, only: [:edit], concerns: [:previewable] do
patch 'edit', on: :collection
end
+ get 'issue_templates_settings', to: 'issue_templates_settings#index'
+
resources :note_templates, except: [:edit]
end
diff --git a/init.rb b/init.rb
index 516afa59..209f9606 100644
--- a/init.rb
+++ b/init.rb
@@ -60,7 +60,7 @@ def issue_template_version_message(original_message = nil)
permission :edit_issue_templates, issue_templates: %i[new create edit update destroy move], note_templates: %i[new create edit update destroy move]
permission :show_issue_templates, issue_templates: %i[index show load set_pulldown list_templates orphaned_templates],
note_templates: %i[index show load list_templates]
- permission :manage_issue_templates, { issue_templates_settings: %i[show edit] }, require: :member
+ permission :manage_issue_templates, { issue_templates_settings: %i[index edit] }, require: :member
end
rescue ::Redmine::PluginRequirementError => e
raise ::Redmine::PluginRequirementError.new(issue_template_version_message(e.message)) # rubocop:disable Style/RaiseArgs
diff --git a/test/functional/issue_templates_settings_controller_test.rb b/test/functional/issue_templates_settings_controller_test.rb
index 6006a6ba..4fdd9006 100644
--- a/test/functional/issue_templates_settings_controller_test.rb
+++ b/test/functional/issue_templates_settings_controller_test.rb
@@ -43,8 +43,8 @@ def test_update_with_permission_and_redirect
settings: { enabled: '1', help_message: 'Hoo', project_id: 2, inherit_templates: true },
setting_id: 1, tab: 'issue_templates' }
assert_response :redirect
- assert_redirected_to controller: 'projects',
- action: 'settings', id: @project, tab: 'issue_templates'
+ assert_redirected_to controller: 'issue_templates_settings',
+ action: 'index', project_id: @project
end
def test_preview_template_setting
From 60f933cd3718301ede8d94b0ab805147f93c352c Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sun, 8 Dec 2019 22:41:01 +0900
Subject: [PATCH 07/14] Remove patch file for project setting tab. Update link
to each view files.
---
app/views/common/_template_links.html.erb | 9 ++++++++-
app/views/issue_templates/new.html.erb | 1 +
app/views/issue_templates/show.html.erb | 2 ++
app/views/note_templates/new.html.erb | 1 +
app/views/note_templates/show.html.erb | 2 ++
init.rb | 11 ++++++++++-
lib/issue_templates/projects_helper_patch.rb | 20 --------------------
test/functional/projects_controller_test.rb | 6 +++---
8 files changed, 27 insertions(+), 25 deletions(-)
delete mode 100644 lib/issue_templates/projects_helper_patch.rb
diff --git a/app/views/common/_template_links.html.erb b/app/views/common/_template_links.html.erb
index 5f8c0143..bb679bb0 100644
--- a/app/views/common/_template_links.html.erb
+++ b/app/views/common/_template_links.html.erb
@@ -1,4 +1,4 @@
-
<%= l(:issue_template) %>:
@@ -20,4 +20,11 @@
{ controller: 'note_templates', action: 'new', project_id: @project },
class: 'icon icon-add') %>
+
+
+ <%= l(:issue_templates_optional_settings, default: 'Templates Optional Settings') %>:
+ <%= link_to_if_authorized(l(:label_settings, default: 'Settings'),
+ { controller: 'issue_templates_settings', action: 'index', project_id: @project },
+ class: 'icon icon-settings') %>
+
diff --git a/app/views/issue_templates/new.html.erb b/app/views/issue_templates/new.html.erb
index 674ae221..c2d8f987 100644
--- a/app/views/issue_templates/new.html.erb
+++ b/app/views/issue_templates/new.html.erb
@@ -18,3 +18,4 @@
<% end %>
<% end %>
+<%= render partial: "common/template_links" %>
\ No newline at end of file
diff --git a/app/views/issue_templates/show.html.erb b/app/views/issue_templates/show.html.erb
index b835fa28..d23d963f 100644
--- a/app/views/issue_templates/show.html.erb
+++ b/app/views/issue_templates/show.html.erb
@@ -114,3 +114,5 @@
+
+<%= render partial: "common/template_links" %>
\ No newline at end of file
diff --git a/app/views/note_templates/new.html.erb b/app/views/note_templates/new.html.erb
index f8d3aa62..008d9b13 100644
--- a/app/views/note_templates/new.html.erb
+++ b/app/views/note_templates/new.html.erb
@@ -16,3 +16,4 @@
<% end %>
<% end %>
+<%= render partial: "common/template_links" %>
\ No newline at end of file
diff --git a/app/views/note_templates/show.html.erb b/app/views/note_templates/show.html.erb
index bd9b5a82..f0b865e9 100644
--- a/app/views/note_templates/show.html.erb
+++ b/app/views/note_templates/show.html.erb
@@ -85,3 +85,5 @@
+
+<%= render partial: "common/template_links" %>
\ No newline at end of file
diff --git a/init.rb b/init.rb
index 209f9606..e65d406d 100644
--- a/init.rb
+++ b/init.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Redmine Issue Template Plugin
#
# This is a plugin for Redmine to generate and use issue templates
@@ -21,7 +23,6 @@
require 'redmine'
require 'issue_templates/issues_hook'
require 'issue_templates/journals_hook'
-require 'issue_templates/projects_helper_patch'
# NOTE: Keep error message for a while to support Redmine3.x users.
def issue_template_version_message(original_message = nil)
@@ -37,6 +38,10 @@ def issue_template_version_message(original_message = nil)
USAGE
end
+def template_menu_allowed?
+ proc { |p| User.current.allowed_to?({ controller: 'issue_templates', action: 'show' }, p) }
+end
+
Redmine::Plugin.register :redmine_issue_templates do
begin
name 'Redmine Issue Templates plugin'
@@ -56,6 +61,10 @@ def issue_template_version_message(original_message = nil)
menu :admin_menu, :redmine_issue_templates, { controller: 'global_issue_templates', action: 'index' },
caption: :global_issue_templates, html: { class: 'icon icon-global_issue_templates' }
+ menu :project_menu, :issue_templates, { :controller => 'issue_templates', :action => 'index' },
+ caption: :issue_templates, param: :project_id,
+ after: :settings, if: template_menu_allowed?
+
project_module :issue_templates do
permission :edit_issue_templates, issue_templates: %i[new create edit update destroy move], note_templates: %i[new create edit update destroy move]
permission :show_issue_templates, issue_templates: %i[index show load set_pulldown list_templates orphaned_templates],
diff --git a/lib/issue_templates/projects_helper_patch.rb b/lib/issue_templates/projects_helper_patch.rb
deleted file mode 100644
index 74294f23..00000000
--- a/lib/issue_templates/projects_helper_patch.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# frozen_string_literal: true
-
-require 'projects_helper'
-
-module IssueTemplates
- module ProjectsHelperPatch
- def project_settings_tabs
- tabs = super
- @issue_templates_setting = IssueTemplateSetting.find_or_create(@project.id)
- action = { name: 'issue_templates',
- controller: 'issue_templates_settings',
- action: :show,
- partial: 'issue_templates_settings/show', label: :project_module_issue_templates }
- tabs << action if User.current.allowed_to?(action, @project)
- tabs
- end
- end
-end
-
-ProjectsHelper.prepend(IssueTemplates::ProjectsHelperPatch) unless ProjectsHelper.included_modules.include?(IssueTemplates::ProjectsHelperPatch)
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index ff07b11e..66478143 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -7,7 +7,7 @@ class ProjectsControllerTest < Redmine::ControllerTest
def setup
# as project admin
@request.session[:user_id] = 2
- Role.find(1).add_permission! :manage_issue_templates
+ Role.find(1).add_permission! :show_issue_templates
# Enabled Template module
@project = Project.find(1)
@project.enabled_modules << EnabledModule.new(name: 'issue_templates')
@@ -15,8 +15,8 @@ def setup
end
def test_settings
- get :settings, params: { id: 1 }
+ get :show, params: { id: 1 }
assert_response :success
- assert_select 'a#tab-issue_templates'
+ assert_select '#main-menu > ul > li > a.issue-templates'
end
end
From 987ed7fb6710c1e2fb309416f9b3c71be39aa6d7 Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sun, 8 Dec 2019 22:42:03 +0900
Subject: [PATCH 08/14] Apply refactor.
---
app/controllers/issue_templates_controller.rb | 7 ++++---
.../issue_templates_settings_controller.rb | 11 +++++++----
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/app/controllers/issue_templates_controller.rb b/app/controllers/issue_templates_controller.rb
index bdc04532..ef220463 100644
--- a/app/controllers/issue_templates_controller.rb
+++ b/app/controllers/issue_templates_controller.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# noinspection ALL
class IssueTemplatesController < ApplicationController
layout 'base'
@@ -64,7 +65,7 @@ def update
def load
issue_template_id = params[:template_id]
template_type = params[:template_type]
- issue_template = if !template_type.blank? && template_type == 'global'
+ issue_template = if template_type.present? && template_type == 'global'
GlobalIssueTemplate.find(issue_template_id)
else
IssueTemplate.find(issue_template_id)
@@ -97,8 +98,8 @@ def set_pulldown
def list_templates
(default_global, default_inherit, default_project) = default_templates
- default_template = default_inherit.present? ? default_inherit : default_global
- default_template = default_project.present? ? default_project : default_template
+ default_template = default_inherit.presence || default_global
+ default_template = default_project.presence || default_template
respond_to do |format|
format.html do
diff --git a/app/controllers/issue_templates_settings_controller.rb b/app/controllers/issue_templates_settings_controller.rb
index e04cf3ec..acc7ffa3 100644
--- a/app/controllers/issue_templates_settings_controller.rb
+++ b/app/controllers/issue_templates_settings_controller.rb
@@ -1,6 +1,9 @@
+# frozen_string_literal: true
+
# noinspection RubocopInspection
class IssueTemplatesSettingsController < ApplicationController
before_action :find_project, :find_user
+ before_action :authorize, except: %i[preview]
def index
@issue_templates_setting = IssueTemplateSetting.find_or_create(@project.id)
@@ -39,9 +42,9 @@ def find_project
def update_template_setting
issue_templates_setting = IssueTemplateSetting.find_or_create(@project.id)
attribute = params[:settings]
- issue_templates_setting.update_attributes(enabled: attribute[:enabled],
- help_message: attribute[:help_message],
- inherit_templates: attribute[:inherit_templates],
- should_replaced: attribute[:should_replaced])
+ issue_templates_setting.update(enabled: attribute[:enabled],
+ help_message: attribute[:help_message],
+ inherit_templates: attribute[:inherit_templates],
+ should_replaced: attribute[:should_replaced])
end
end
From 2d893db5459cff7c491b640fbfcebcbd83fd9f58 Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Sat, 7 Dec 2019 21:03:00 +0900
Subject: [PATCH 09/14] Bugfix: Tooltip for template body preview is hidden.
---
assets/stylesheets/issue_templates.css | 2 ++
1 file changed, 2 insertions(+)
diff --git a/assets/stylesheets/issue_templates.css b/assets/stylesheets/issue_templates.css
index e0cc1a82..899c9b8d 100644
--- a/assets/stylesheets/issue_templates.css
+++ b/assets/stylesheets/issue_templates.css
@@ -158,6 +158,8 @@ a.template_tooltip {
table.list.template_list {
width: 480px;
margin: 8px 0;
+ border: 2px solid #e4e4e4;
+ overflow: overlay;
}
td.template_title {
From 022bf7cef135ac222399eb7a3eaf3b29868910e0 Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Mon, 9 Dec 2019 07:52:18 +0900
Subject: [PATCH 10/14] Update css.
---
assets/stylesheets/issue_templates.css | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/assets/stylesheets/issue_templates.css b/assets/stylesheets/issue_templates.css
index 899c9b8d..33f1a8a2 100644
--- a/assets/stylesheets/issue_templates.css
+++ b/assets/stylesheets/issue_templates.css
@@ -155,6 +155,11 @@ a.template_tooltip {
font-style: italic;
}
+table.list {
+ overflow: overlay;
+ border: 2px solid #e4e4e4;
+}
+
table.list.template_list {
width: 480px;
margin: 8px 0;
From 1ad552c00fbb02d9b16c6c7d9a588bb9405b131c Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Mon, 9 Dec 2019 13:04:46 +0900
Subject: [PATCH 11/14] Fix code style.
---
init.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/init.rb b/init.rb
index e65d406d..9c707632 100644
--- a/init.rb
+++ b/init.rb
@@ -61,7 +61,7 @@ def template_menu_allowed?
menu :admin_menu, :redmine_issue_templates, { controller: 'global_issue_templates', action: 'index' },
caption: :global_issue_templates, html: { class: 'icon icon-global_issue_templates' }
- menu :project_menu, :issue_templates, { :controller => 'issue_templates', :action => 'index' },
+ menu :project_menu, :issue_templates, { controller: 'issue_templates', action: 'index' },
caption: :issue_templates, param: :project_id,
after: :settings, if: template_menu_allowed?
From 31f1bb5cb61f7a3db0d45faa299875ae33006674 Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Mon, 9 Dec 2019 13:20:57 +0900
Subject: [PATCH 12/14] Add newline.
---
app/views/note_templates/show.html.erb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/views/note_templates/show.html.erb b/app/views/note_templates/show.html.erb
index f0b865e9..5edee1a1 100644
--- a/app/views/note_templates/show.html.erb
+++ b/app/views/note_templates/show.html.erb
@@ -86,4 +86,4 @@
-<%= render partial: "common/template_links" %>
\ No newline at end of file
+<%= render partial: "common/template_links" %>
From b2ddfc90b3f98f25ace6bed9ef1cd9a946447e95 Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Mon, 9 Dec 2019 13:21:49 +0900
Subject: [PATCH 13/14] Update version to 0.3.7
---
init.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/init.rb b/init.rb
index 9c707632..77f82f09 100644
--- a/init.rb
+++ b/init.rb
@@ -47,7 +47,7 @@ def template_menu_allowed?
name 'Redmine Issue Templates plugin'
author 'Akiko Takano'
description 'Plugin to generate and use issue templates for each project to assist issue creation.'
- version '0.3.6'
+ version '0.3.7'
author_url 'http://twitter.com/akiko_pusu'
requires_redmine version_or_higher: '4.0'
url 'https://github.com/akiko-pusu/redmine_issue_templates'
From 5ed9855c619d818e83b3734f3a0e995e8e45e187 Mon Sep 17 00:00:00 2001
From: Akiko Takano
Date: Mon, 9 Dec 2019 13:29:25 +0900
Subject: [PATCH 14/14] Update README
---
README.md | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/README.md b/README.md
index 096e552d..ac8b9980 100644
--- a/README.md
+++ b/README.md
@@ -116,6 +116,16 @@ If you have any requests, bug reports, please use GitHub issues.