Skip to content

Commit 5a06813

Browse files
authored
Merge pull request #56 from farend/add_process_to_reload_messages
Add a process to look at the timestamp and reload the term if it is not latest
2 parents 3976e2a + f3c6219 commit 5a06813

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+205
-80
lines changed

app/controllers/custom_message_settings_controller.rb

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ def default_messages
1212
end
1313

1414
def update
15-
languages = @setting.using_languages
16-
1715
if setting_params.key?(:custom_messages) || params[:tab] == 'normal'
1816
@setting.update_with_custom_messages(setting_params[:custom_messages].try(:to_unsafe_h).try(:to_hash) || {}, @lang)
1917
elsif setting_params.key?(:custom_messages_yaml)
@@ -22,9 +20,6 @@ def update
2220

2321
if @setting.errors.blank?
2422
flash[:notice] = l(:notice_successful_update)
25-
languages += @setting.using_languages
26-
MessageCustomize::Locale.reload!(languages)
27-
2823
redirect_to edit_custom_message_settings_path(tab: params[:tab], lang: @lang)
2924
else
3025
render :edit
@@ -58,7 +53,7 @@ def setting_params
5853
def set_lang
5954
@lang =
6055
MessageCustomize::Locale.find_language(
61-
params[:lang].presence || @setting.custom_messages.keys.first || User.current.language.presence || Setting.default_language
56+
params[:lang].presence || @setting.custom_messages.keys.first || current_user_language
6257
)
6358
end
6459
end

app/models/custom_message_setting.rb

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,18 @@ def custom_messages(lang=nil, check_enabled=false)
1818
messages || {}
1919
end
2020

21+
def custom_messages_with_timestamp(lang)
22+
messages = self.custom_messages(lang, true)
23+
messages.merge({'redmine_message_customize_timestamp' => self.try(:updated_on).to_i.to_s})
24+
end
25+
26+
def latest_messages_applied?(lang)
27+
return true if self.new_record?
28+
29+
redmine_message_customize_timestamp = I18n.backend.send(:translations)[:"#{lang}"][:redmine_message_customize_timestamp]
30+
redmine_message_customize_timestamp == self.updated_on.to_i.to_s
31+
end
32+
2133
def custom_messages_to_flatten_hash(lang=nil)
2234
self.class.flatten_hash(custom_messages(lang))
2335
end
@@ -53,20 +65,7 @@ def update_with_custom_messages_yaml(yaml)
5365

5466
def toggle_enabled!
5567
self.value = self.value.merge({enabled: (!self.enabled?).to_s})
56-
57-
if result = self.save
58-
MessageCustomize::Locale.reload!(self.using_languages)
59-
end
60-
result
61-
end
62-
63-
def using_languages
64-
messages = self.custom_messages
65-
if messages.is_a?(Hash)
66-
messages.keys.map(&:to_s)
67-
else
68-
[User.current.language]
69-
end
68+
self.save
7069
end
7170

7271
# { date: { formats: { defaults: '%m/%d/%Y'}}} to {'date.formats.defaults' => '%m/%d/%Y'}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ ar: CustomMessageSetting.find_or_default.custom_messages('ar', true) }
1+
{ ar: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('ar') }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ az: CustomMessageSetting.find_or_default.custom_messages('az', true) }
1+
{ az: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('az') }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ bg: CustomMessageSetting.find_or_default.custom_messages('bg', true) }
1+
{ bg: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('bg') }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ bs: CustomMessageSetting.find_or_default.custom_messages('bs', true) }
1+
{ bs: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('bs') }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ ca: CustomMessageSetting.find_or_default.custom_messages('ca', true) }
1+
{ ca: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('ca') }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ cs: CustomMessageSetting.find_or_default.custom_messages('cs', true) }
1+
{ cs: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('cs') }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ da: CustomMessageSetting.find_or_default.custom_messages('da', true) }
1+
{ da: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('da') }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ de: CustomMessageSetting.find_or_default.custom_messages('de', true) }
1+
{ de: CustomMessageSetting.find_or_default.custom_messages_with_timestamp('de') }

0 commit comments

Comments
 (0)