File tree Expand file tree Collapse file tree 4 files changed +24
-3
lines changed Expand file tree Collapse file tree 4 files changed +24
-3
lines changed Original file line number Diff line number Diff line change 1
1
class CustomMessageSetting < Setting
2
- validate :add_errors , :convertible_to_yaml , :custom_message_keys_are_available
2
+ validate :add_errors , :convertible_to_yaml ,
3
+ :custom_message_languages_are_available , :custom_message_keys_are_available
3
4
4
5
def self . find_or_default
5
6
super ( 'plugin_redmine_message_customize' )
@@ -122,6 +123,18 @@ def custom_message_keys_are_available
122
123
end
123
124
end
124
125
126
+ def custom_message_languages_are_available
127
+ return false if self . value [ :custom_messages ] . is_a? ( Hash ) == false || self . errors . present?
128
+ unavailable_languages =
129
+ custom_messages . keys . compact . reject do |language |
130
+ I18n . available_locales . include? ( language . to_sym )
131
+ end
132
+ if unavailable_languages . present?
133
+ self . errors . add ( :base , l ( :error_unavailable_languages ) + " [#{ unavailable_languages . join ( ', ' ) } ]" )
134
+ false
135
+ end
136
+ end
137
+
125
138
def convertible_to_yaml
126
139
YAML . dump ( self . value [ :custom_messages ] )
127
140
end
Original file line number Diff line number Diff line change 7
7
label_home: 'Home2'
8
8
text_placeholder_choose_key : Please select the message you want to change.
9
9
error_unavailable_keys : The keys not present in Redmine are used.
10
+ error_unavailable_languages : The languages not present in Redmine are used.
10
11
error_invalid_yaml_format : The format of yaml is invalid.
11
12
label_normal_tab : Normal mode
12
13
label_yaml_tab : YAML mode
Original file line number Diff line number Diff line change 6
6
ja:
7
7
label_home: 'ホーム2'
8
8
text_placeholder_choose_key : 変更したい文言を選択してください。
9
- error_unavailable_keys : Redmineに存在しないキーが利用されています
9
+ error_unavailable_keys : Redmineに存在しないキーが利用されています。
10
+ error_unavailable_languages : Redmineで利用できない言語が利用されています。
10
11
error_invalid_yaml_format : YAMLの形式が正しくありません。
11
12
label_normal_tab : 通常モード
12
13
label_yaml_tab : YAMLモード
Original file line number Diff line number Diff line change @@ -14,6 +14,12 @@ def test_validate_with_not_available_keys_should_return_false
14
14
assert_equal "#{ l ( :error_unavailable_keys ) } keys: [foobar]" , @custom_message_setting . errors [ :base ] . first
15
15
end
16
16
17
+ def test_validate_with_not_available_languages_should_return_false
18
+ @custom_message_setting . value = { custom_messages : { 'foo' => { 'label_home' => 'Home' } } }
19
+ assert_not @custom_message_setting . save
20
+ assert_equal "#{ l ( :error_unavailable_languages ) } [foo]" , @custom_message_setting . errors [ :base ] . first
21
+ end
22
+
17
23
def test_find_or_default
18
24
assert_equal @custom_message_setting , CustomMessageSetting . find_or_default
19
25
end
@@ -34,7 +40,7 @@ def test_custom_messages_to_yaml
34
40
assert_equal 'test' , @custom_message_setting . custom_messages_to_yaml
35
41
end
36
42
37
- def test_update_with_custom_messages_if_custom_messages_is_present
43
+ def test_update_with_custom_messages_if_custom_messages_is_exist
38
44
flatten_hash = { 'label_home' => 'Home3' , 'time.am' => 'foo' }
39
45
40
46
assert @custom_message_setting . update_with_custom_messages ( flatten_hash , 'en' )
You can’t perform that action at this time.
0 commit comments