Skip to content

Commit 8cb39b6

Browse files
committed
Revert "Merge pull request #4 from ishikawa999/develop"
This reverts commit 80d3b79, reversing changes made to d4e84ca.
1 parent 80d3b79 commit 8cb39b6

File tree

11 files changed

+22
-120
lines changed

11 files changed

+22
-120
lines changed

app/controllers/custom_message_settings_controller.rb

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
class CustomMessageSettingsController < ApplicationController
22
layout 'admin'
33
before_action :require_admin, :set_custom_message_setting, :set_lang
4-
require_sudo_mode :edit, :update, :toggle_enabled
4+
require_sudo_mode :edit, :update
55

66
def edit
77
end
88

99
def update
10-
languages = @setting.using_languages
10+
original_custom_messages = @setting.custom_messages
11+
languages = (original_custom_messages.try(:keys) ? original_custom_messages.keys.map(&:to_s) : [])
1112

1213
if setting_params.key?(:custom_messages) || params[:tab] == 'normal'
1314
@setting.update_with_custom_messages(setting_params[:custom_messages].try(:to_unsafe_h).try(:to_hash) || {}, @lang)
@@ -17,7 +18,8 @@ def update
1718

1819
if @setting.errors.blank?
1920
flash[:notice] = l(:notice_successful_update)
20-
languages += @setting.using_languages
21+
new_custom_messages = @setting.custom_messages
22+
languages += new_custom_messages.keys.map(&:to_s) if new_custom_messages.try(:keys)
2123
CustomMessageSetting.reload_translations!(languages)
2224

2325
redirect_to edit_custom_message_settings_path(tab: params[:tab], lang: @lang)
@@ -26,16 +28,6 @@ def update
2628
end
2729
end
2830

29-
def toggle_enabled
30-
if @setting.toggle_enabled!
31-
flash[:notice] =
32-
@setting.enabled? ? l(:notice_enabled_customize) : l(:notice_disabled_customize)
33-
redirect_to edit_custom_message_settings_path
34-
else
35-
render :edit
36-
end
37-
end
38-
3931
private
4032
def set_custom_message_setting
4133
@setting = CustomMessageSetting.find_or_default

app/models/custom_message_setting.rb

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ def self.find_or_default
66
super('plugin_redmine_message_customize')
77
end
88

9-
def enabled?
10-
!(self.value[:enabled] == 'false')
11-
end
12-
139
def custom_messages(lang=nil)
1410
messages = self.value[:custom_messages] || self.value['custom_messages']
1511
if lang.present?
@@ -61,35 +57,11 @@ def update_with_custom_messages_yaml(yaml)
6157
self.save
6258
end
6359

64-
def toggle_enabled!
65-
customize_files = Dir.glob(Rails.root.join('plugins', 'redmine_message_customize', 'config', 'locales', 'custom_messages', '*.rb'))
66-
self.value = self.value.deep_merge({enabled: (!self.enabled?).to_s})
67-
68-
if result = self.save
69-
if self.enabled?
70-
I18n.load_path += customize_files
71-
else
72-
I18n.load_path -= customize_files
73-
end
74-
self.class.reload_translations!(self.using_languages)
75-
end
76-
result
77-
end
78-
79-
def using_languages
80-
messages = self.custom_messages
81-
if messages.is_a?(Hash)
82-
messages.keys.map(&:to_s)
83-
else
84-
[User.current.language]
85-
end
86-
end
87-
8860
def self.available_messages(lang)
89-
messages = I18n.backend.send(:translations)[self.find_language(lang).to_s.to_sym]
61+
messages = I18n.backend.translations[self.find_language(lang).to_s.to_sym]
9062
if messages.nil?
9163
CustomMessageSetting.reload_translations!([lang])
92-
messages = I18n.backend.send(:translations)[lang.to_s.to_sym] || {}
64+
messages = I18n.backend.translations[lang.to_s.to_sym] || {}
9365
end
9466
self.flatten_hash(messages)
9567
end
@@ -120,7 +92,7 @@ def self.nested_hash(hash=nil)
12092
end
12193

12294
def self.reload_translations!(languages)
123-
paths = I18n.load_path.select {|path| self.find_language(languages).include?(File.basename(path, '.*').to_s)}
95+
paths = ::I18n.load_path.select {|path| self.find_language(languages).include?(File.basename(path, '.*').to_s)}
12496
I18n.backend.load_translations(paths)
12597
end
12698

app/views/custom_message_settings/edit.html.erb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,4 @@
66
<% if @setting.errors.any? %>
77
<%= error_messages_for(@setting) %>
88
<% end %>
9-
<p class='toggle-enable'>
10-
<span class='icon icon-settings'></span>
11-
<%= link_to (@setting.enabled? ? l(:label_disable_customize) : l(:label_enable_customize)), toggle_enabled_custom_message_settings_path, method: :post %>
12-
</p>
139
<%= render_tabs (@setting.errors.any? ? [] : [{name: 'normal', partial: 'normal_tab', label: 'label_normal_tab'}]) + [{name: 'yaml', partial: 'yaml_tab', label: 'label_yaml_tab'}] %>

assets/stylesheets/custom_messages.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,4 @@
3434
}
3535
.select2-container--default .select2-results__option[aria-disabled=true] span {
3636
color: white;
37-
}
38-
39-
p.toggle-enable {
40-
text-align: right;
4137
}

config/locales/en.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,5 @@ en:
1010
error_unavailable_keys: The keys not present in Redmine are used.
1111
error_unavailable_languages: The languages not present in Redmine are used.
1212
error_invalid_yaml_format: The format of yaml is invalid.
13-
notice_enabled_customize: Successful in enable messages customization.
14-
notice_disabled_customize: Successful in disable messages customization.
1513
label_normal_tab: Normal mode
16-
label_yaml_tab: YAML mode
17-
label_enable_customize: Enable customize
18-
label_disable_customize: Disable customize
14+
label_yaml_tab: YAML mode

config/locales/ja.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,5 @@ ja:
1010
error_unavailable_keys: Redmineに存在しないキーが利用されています。
1111
error_unavailable_languages: Redmineで利用できない言語が利用されています。
1212
error_invalid_yaml_format: YAMLの形式が正しくありません。
13-
notice_enabled_customize: メッセージのカスタマイズを有効に変更しました。
14-
notice_disabled_customize: メッセージのカスタマイズを無効に変更しました。
1513
label_normal_tab: 通常モード
16-
label_yaml_tab: YAMLモード
17-
label_enable_customize: カスタマイズを有効にする
18-
label_disable_customize: カスタマイズを無効にする
14+
label_yaml_tab: YAMLモード

config/routes.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@
22
resources :custom_message_settings, only: [] do
33
get :edit, on: :collection
44
post :update, on: :collection
5-
post :toggle_enabled, on: :collection
65
end
76
end

init.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
requires_redmine version_or_higher: '3.2'
88
end
99

10-
if CustomMessageSetting.find_or_default.enabled?
11-
Rails.application.config.i18n.load_path += Dir.glob(File.join(p.directory, 'config', 'locales', 'custom_messages', '*.rb'))
10+
Rails.application.config.i18n.load_path += Dir.glob(File.join(p.directory, 'config', 'locales', 'custom_messages', '*.rb'))
11+
12+
class Redmine::I18n::Backend
13+
public :translations
1214
end
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
one:
22
id: 1
33
name: plugin_redmine_message_customize
4-
value: {
5-
custom_messages: { en: { label_home: 'Home1' }, ja: { label_home: 'Home2' }},
6-
enabled: 'true'
7-
}
4+
value: { custom_messages: { en: { label_home: 'Home1' }, ja: { label_home: 'Home2' }}}

test/functional/custom_message_settings_controller_test.rb

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class CustomMessageSettingsControllerTest < Redmine::ControllerTest
77
def setup
88
@request.session[:user_id] = 1 # admin
99
CustomMessageSetting.reload_translations!('en')
10-
I18n.load_path = (I18n.load_path + Dir.glob(Rails.root.join('plugins', 'redmine_message_customize', 'config', 'locales', 'custom_messages', '*.rb'))).uniq
1110
end
1211

1312
# custom_message_settings/edit
@@ -24,7 +23,8 @@ def test_edit
2423
def test_edit_except_admin_user
2524
@request.session[:user_id] = 2
2625
get :edit
27-
assert_redirected_to (/#{signin_path}/)
26+
assert_response 403
27+
assert_select 'p#errorExplanation', text: 'You are not authorized to access this page.'
2828
end
2929

3030
def test_update_with_custom_messages
@@ -52,25 +52,11 @@ def test_update_with_invalid_params
5252
assert_select 'h2', :text => l(:label_custom_messages)
5353
assert_select 'div#errorExplanation'
5454
end
55-
def test_update_except_admin_user
55+
def test_edit_except_admin_user
5656
@request.session[:user_id] = 2
5757
get :update, params: { settings: {'custom_messages'=>{'label_home' => 'Home3'}}, lang: 'en', tab: 'normal' }
5858

59-
assert_redirected_to (/#{signin_path}/)
60-
end
61-
62-
def test_toggle_enabled
63-
patch :toggle_enabled
64-
assert_redirected_to edit_custom_message_settings_path
65-
assert_equal l(:notice_disabled_customize), flash[:notice]
66-
67-
patch :toggle_enabled
68-
assert_equal l(:notice_enabled_customize), flash[:notice]
69-
end
70-
def test_toggle_enabled_except_admin_user
71-
@request.session[:user_id] = 2
72-
patch :toggle_enabled
73-
74-
assert_redirected_to (/#{signin_path}/)
59+
assert_response 403
60+
assert_select 'p#errorExplanation', text: 'You are not authorized to access this page.'
7561
end
7662
end

0 commit comments

Comments
 (0)