1
1
module Lit
2
2
class LocalizationKeysController < ::Lit ::ApplicationController
3
- before_action :find_localization_scope ,
4
- except : %i[ destroy find_localization ]
5
- before_action :find_localization_key ,
6
- only : %i[ star destroy change_completed restore_deleted ]
3
+ before_action :find_localization_scope , except : %i[ destroy find_localization ]
4
+ before_action :find_localization_key , only : %i[ star destroy change_completed restore_deleted ]
7
5
8
6
def index
9
7
get_localization_keys
@@ -20,27 +18,19 @@ def visited_again
20
18
end
21
19
22
20
def find_localization
23
- localization_key = Lit ::LocalizationKey . find_by! (
24
- localization_key : params [ :key ]
25
- )
21
+ localization_key = Lit ::LocalizationKey . find_by! ( localization_key : params [ :key ] )
26
22
locale = Lit ::Locale . find_by! ( locale : params [ :locale ] )
27
23
localization = localization_key . localizations . find_by ( locale_id : locale )
28
- render json : {
29
- path : localization_key_localization_path ( localization_key , localization )
30
- }
24
+ render json : { path : localization_key_localization_path ( localization_key , localization ) }
31
25
end
32
26
33
27
def starred
34
28
@scope = @scope . where ( is_starred : true )
35
29
36
- if defined? ( Kaminari ) &&
37
- @scope . respond_to? ( Kaminari . config . page_method_name )
30
+ if defined? ( Kaminari ) && @scope . respond_to? ( Kaminari . config . page_method_name )
38
31
@scope = @scope . send ( Kaminari . config . page_method_name , params [ :page ] )
39
32
end
40
- if defined? ( WillPaginate ) &&
41
- @scope . respond_to? ( :paginate )
42
- @scope = @scope . paginate ( page : params [ :page ] )
43
- end
33
+ @scope = @scope . paginate ( page : params [ :page ] ) if defined? ( WillPaginate ) && @scope . respond_to? ( :paginate )
44
34
get_localization_keys
45
35
render action : :index
46
36
end
@@ -66,26 +56,33 @@ def destroy
66
56
respond_to :js
67
57
end
68
58
59
+ def batch_touch
60
+ get_localization_keys
61
+ localization_key_ids = @scope . distinct ( false ) . pluck ( :id )
62
+ if localization_key_ids . any?
63
+ @scope . distinct ( false ) . update_all updated_at : Time . current
64
+ Localization . where ( localization_key_id : localization_key_ids ) . update_all updated_at : Time . current
65
+ end
66
+ respond_to :js
67
+ end
68
+
69
69
private
70
70
71
71
def find_localization_key
72
72
@localization_key = LocalizationKey . find params [ :id ] . to_i
73
73
end
74
74
75
75
def find_localization_scope
76
- @search_options = if params . respond_to? ( :permit )
77
- params . permit ( *valid_keys )
78
- else
79
- params . slice ( *valid_keys )
80
- end
81
- @scope = LocalizationKey . distinct . active
82
- . preload ( localizations : :locale )
83
- . search ( @search_options )
76
+ @search_options = params . respond_to? ( :permit ) ? params . permit ( *valid_keys ) : params . slice ( *valid_keys )
77
+ @scope = LocalizationKey . distinct . active . preload ( localizations : :locale ) . search ( @search_options )
84
78
end
85
79
86
80
def get_localization_keys
87
81
key_parts = @search_options [ :key_prefix ] . to_s . split ( '.' ) . length
88
- @prefixes = @scope . reorder ( nil ) . distinct . pluck ( :localization_key ) . map { |lk | lk . split ( '.' ) . shift ( key_parts + 1 ) . join ( '.' ) } . uniq . sort
82
+ @prefixes =
83
+ @scope . reorder ( nil ) . distinct . pluck ( :localization_key ) . map do |lk |
84
+ lk . split ( '.' ) . shift ( key_parts + 1 ) . join ( '.' )
85
+ end . uniq . sort
89
86
if @search_options [ :key_prefix ] . present?
90
87
parts = @search_options [ :key_prefix ] . split ( '.' )
91
88
@parent_prefix = parts [ 0 , parts . length - 1 ] . join ( '.' )
@@ -104,16 +101,15 @@ def valid_keys
104
101
end
105
102
106
103
def grouped_localizations
107
- @_grouped_localizations ||= begin
108
- { } . tap do | hash |
109
- @localization_keys . each do |lk |
110
- hash [ lk ] = { }
111
- lk . localizations . each do | l |
112
- hash [ lk ] [ l . locale . locale . to_sym ] = l
104
+ @_grouped_localizations ||=
105
+ begin
106
+ { } . tap do |hash |
107
+ @localization_keys . each do | lk |
108
+ hash [ lk ] = { }
109
+ lk . localizations . each { | l | hash [ lk ] [ l . locale . locale . to_sym ] = l }
113
110
end
114
111
end
115
112
end
116
- end
117
113
end
118
114
119
115
def localization_for ( locale , localization_key )
@@ -136,12 +132,16 @@ def localization_for(locale, localization_key)
136
132
helper_method :localization_for
137
133
138
134
def versions? ( localization )
139
- @_versions ||= begin
140
- ids = grouped_localizations . values . map ( &:values ) . flatten . map ( &:id )
141
- Lit ::Localization . active . where ( id : ids ) . joins ( :versions ) . group (
142
- "#{ Lit ::Localization . quoted_table_name } .id"
143
- ) . count
144
- end
135
+ @_versions ||=
136
+ begin
137
+ ids = grouped_localizations . values . map ( &:values ) . flatten . map ( &:id )
138
+ Lit ::Localization
139
+ . active
140
+ . where ( id : ids )
141
+ . joins ( :versions )
142
+ . group ( "#{ Lit ::Localization . quoted_table_name } .id" )
143
+ . count
144
+ end
145
145
@_versions [ localization . id ] . to_i > 0
146
146
end
147
147
helper_method :versions?
0 commit comments