weeler 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/.travis.yml +2 -1
- data/CHANGELOG.md +6 -0
- data/Gemfile +0 -7
- data/app/assets/javascripts/weeler/init.js +0 -2
- data/app/assets/stylesheets/weeler/style.css.scss +7 -1
- data/app/controllers/weeler/seo_items_controller.rb +3 -2
- data/app/controllers/weeler/settings_controller.rb +27 -9
- data/app/controllers/weeler/static_sections_controller.rb +2 -2
- data/app/controllers/weeler/translations_controller.rb +4 -18
- data/app/models/setting.rb +7 -0
- data/app/views/weeler/base/_footer.html.haml +1 -1
- data/app/views/weeler/settings/_form.html.haml +16 -0
- data/app/views/weeler/settings/index.html.haml +5 -8
- data/app/views/weeler/static_sections/show.html.haml +5 -1
- data/app/views/weeler/translations/_form.html.haml +5 -2
- data/app/views/weeler/translations/index.html.haml +0 -10
- data/lib/generators/weeler/templates/assets/javascripts/weeler/app/index.js +3 -1
- data/lib/generators/weeler/templates/assets/stylesheets/weeler/app/index.css +1 -1
- data/lib/i18n/backend/weeler/exporter.rb +32 -14
- data/lib/i18n/backend/weeler/importer.rb +57 -54
- data/lib/i18n/backend/weeler.rb +14 -25
- data/lib/weeler/action_dispatch/routing/mapper.rb +1 -2
- data/lib/weeler/action_view/helpers/translation_helper.rb +2 -2
- data/lib/weeler/version.rb +1 -1
- data/lib/weeler.rb +6 -1
- data/spec/.DS_Store +0 -0
- data/spec/controllers/translations_controller_spec.rb +1 -1
- data/spec/dummy/.ruby-version +1 -1
- data/spec/dummy/config/environment.rb +1 -1
- data/spec/dummy/db/schema.rb +3 -3
- data/spec/fixtures/test_2020_format.xlsx +0 -0
- data/spec/weeler/i18n/backend/weeler/exporter_spec.rb +6 -0
- data/spec/weeler/i18n/backend/weeler/importer_spec.rb +17 -6
- data/spec/weeler/i18n/backend/weeler_spec.rb +51 -66
- data/weeler.gemspec +4 -5
- metadata +22 -37
- data/app/models/settings.rb +0 -2
- data/app/views/weeler/translations/usage_stats.html.haml +0 -34
- data/lib/generators/weeler/templates/migrations/create_weeler_translation_stats.rb +0 -11
- data/lib/i18n/backend/weeler/usage_logger.rb +0 -35
- data/spec/weeler/i18n/backend/weeler/usage_logger_spec.rb +0 -34
@@ -4,8 +4,8 @@ module Weeler
|
|
4
4
|
module TranslationHelper
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
|
-
def translate(key, options
|
8
|
-
request.present? && request.params[:show_translation_keys] == "true" ? key : super(key, options)
|
7
|
+
def translate(key, **options)
|
8
|
+
request.present? && request.params[:show_translation_keys] == "true" ? key : super(key, **options)
|
9
9
|
end
|
10
10
|
alias :t :translate
|
11
11
|
|
data/lib/weeler/version.rb
CHANGED
data/lib/weeler.rb
CHANGED
@@ -11,7 +11,6 @@ require "haml"
|
|
11
11
|
require "kaminari"
|
12
12
|
require "globalize"
|
13
13
|
require "jquery-ui-rails"
|
14
|
-
require "jquery-turbolinks"
|
15
14
|
require "rails-settings-cached"
|
16
15
|
|
17
16
|
module Weeler
|
@@ -66,6 +65,12 @@ module Weeler
|
|
66
65
|
mattr_accessor :mount_location_namespace
|
67
66
|
@@mount_location_namespace = "weeler"
|
68
67
|
|
68
|
+
mattr_accessor :use_rails_rich_text_editor
|
69
|
+
@@use_rails_rich_text_editor = true
|
70
|
+
|
71
|
+
mattr_accessor :settings_fields
|
72
|
+
@@settings_fields = []
|
73
|
+
|
69
74
|
def self.setup
|
70
75
|
yield self
|
71
76
|
if Weeler.use_weeler_i18n == true && ActiveRecord::Base.connection.data_source_exists?('weeler_translations')
|
data/spec/.DS_Store
CHANGED
Binary file
|
@@ -87,7 +87,7 @@ describe Weeler::TranslationsController, type: :controller do
|
|
87
87
|
context "submiting a file" do
|
88
88
|
it "adds translation from files" do
|
89
89
|
I18n::Backend::Weeler::Translation.delete_all
|
90
|
-
|
90
|
+
Setting.i18n_updated_at = Time.current
|
91
91
|
|
92
92
|
expect(I18n.t("welcome.title", locale: :en)).to eq("Title") # Missing translation
|
93
93
|
post "import", params: { file: fixture_file_upload(File.dirname(__FILE__) + '/../fixtures/test.xlsx', 'application/xlsx') }
|
data/spec/dummy/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.7.
|
1
|
+
ruby-2.7.2
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
# of editing this file, please use the migrations feature of Active Record to
|
3
3
|
# incrementally modify your database, and then regenerate this schema definition.
|
4
4
|
#
|
5
|
-
# This file is the source Rails uses to define your schema when running `rails
|
6
|
-
# db:schema:load`. When creating a new database, `rails db:schema:load` tends to
|
5
|
+
# This file is the source Rails uses to define your schema when running `bin/rails
|
6
|
+
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
7
7
|
# be faster and is potentially less error prone than running all of your
|
8
8
|
# migrations from scratch. Old migrations may fail to apply correctly if those
|
9
9
|
# migrations use external dependencies or application code.
|
@@ -73,7 +73,7 @@ ActiveRecord::Schema.define(version: 2016_03_30_192005) do
|
|
73
73
|
t.datetime "created_at"
|
74
74
|
t.datetime "updated_at"
|
75
75
|
t.index ["section"], name: "index_weeler_seos_on_section"
|
76
|
-
t.index ["seoable_type", "seoable_id"], name: "
|
76
|
+
t.index ["seoable_type", "seoable_id"], name: "index_weeler_seos_on_seoable"
|
77
77
|
end
|
78
78
|
|
79
79
|
create_table "weeler_translation_stats", id: :serial, force: :cascade do |t|
|
Binary file
|
@@ -22,12 +22,18 @@ describe I18n::Backend::Weeler::Exporter do
|
|
22
22
|
expect(@rows.first.cells[0].value).to eq("Key")
|
23
23
|
expect(@rows.first.cells[1].value).to eq("En")
|
24
24
|
expect(@rows.first.cells[2].value).to eq("Lv")
|
25
|
+
|
26
|
+
expect(@rows.first.cells[3].value).to eq("Created at")
|
27
|
+
expect(@rows.first.cells[4].value).to eq("Updated at")
|
25
28
|
end
|
26
29
|
|
27
30
|
it "other row with one translation" do
|
28
31
|
expect(@rows[1].cells[0].value).to eq("foo.one")
|
29
32
|
expect(@rows[1].cells[1].value).to eq("test")
|
30
33
|
expect(@rows[1].cells[2].value).to eq("")
|
34
|
+
|
35
|
+
expect(@rows[1].cells[3].value&.is_a?(Time)).to eq(true)
|
36
|
+
expect(@rows[1].cells[4].value&.is_a?(Time)).to eq(true)
|
31
37
|
end
|
32
38
|
|
33
39
|
it "other row with two translation" do
|
@@ -6,7 +6,6 @@ describe I18n::Backend::Weeler::Importer do
|
|
6
6
|
let(:file_path) { Rack::Test::UploadedFile.new(File.dirname(__FILE__) + '/../../../../fixtures/test.xlsx') }
|
7
7
|
|
8
8
|
describe :import do
|
9
|
-
|
10
9
|
context "empty db" do
|
11
10
|
before(:each) do
|
12
11
|
I18n::Backend::Weeler::Translation.delete_all
|
@@ -24,9 +23,24 @@ describe I18n::Backend::Weeler::Importer do
|
|
24
23
|
it "returns nil if value is not file" do
|
25
24
|
expect(I18n.t(:"product.list.open", :locale => :en)).to eq("")
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
29
27
|
|
28
|
+
context 'when file includes created_at and updated_at dates' do
|
29
|
+
let(:file_path) { Rack::Test::UploadedFile.new(File.dirname(__FILE__) + '/../../../../fixtures/test_2020_format.xlsx') }
|
30
|
+
|
31
|
+
before(:each) do
|
32
|
+
I18n::Backend::Weeler::Translation.delete_all
|
33
|
+
I18n::Backend::Weeler::Translation.import file_path
|
34
|
+
end
|
35
|
+
|
36
|
+
it "translation stores all translation in each locale" do
|
37
|
+
expect(I18n::Backend::Weeler::Translation.count).to eq(30)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "stores only values from locals" do
|
41
|
+
expect(I18n::Backend::Weeler::Translation.distinct.pluck(:locale).sort).to eq(['en', 'lt', 'lv'])
|
42
|
+
end
|
43
|
+
end
|
30
44
|
|
31
45
|
context "full db" do
|
32
46
|
before(:each) do
|
@@ -38,13 +52,10 @@ describe I18n::Backend::Weeler::Importer do
|
|
38
52
|
it "file import overrides value" do
|
39
53
|
expect(I18n.t(:"welcome.title", :locale => :en)).to eq("fooo")
|
40
54
|
I18n::Backend::Weeler::Translation.import file_path
|
41
|
-
|
55
|
+
Setting.i18n_updated_at = Time.current
|
42
56
|
|
43
57
|
expect(I18n.t(:"welcome.title", :locale => :en)).to eq("EN welcome")
|
44
58
|
end
|
45
|
-
|
46
59
|
end
|
47
|
-
|
48
60
|
end
|
49
|
-
|
50
61
|
end
|
@@ -2,16 +2,13 @@
|
|
2
2
|
require "spec_helper"
|
3
3
|
|
4
4
|
describe I18n::Backend::Weeler do
|
5
|
-
|
6
5
|
describe "#interpolations" do
|
7
|
-
|
8
6
|
it "can persist" do
|
9
7
|
translation = I18n::Backend::Weeler::Translation.new(:key => 'foo', :value => 'bar', :locale => :en)
|
10
8
|
translation.interpolations = %w(count name)
|
11
9
|
translation.save
|
12
10
|
expect(translation.valid?).to be(true)
|
13
11
|
end
|
14
|
-
|
15
12
|
end
|
16
13
|
|
17
14
|
before do
|
@@ -26,9 +23,9 @@ describe I18n::Backend::Weeler do
|
|
26
23
|
end
|
27
24
|
|
28
25
|
it "writes last translations update timestamp to cache" do
|
29
|
-
|
26
|
+
Setting.i18n_updated_at = Time.now
|
30
27
|
I18n.backend.backends[0].reload_cache
|
31
|
-
expect(Weeler.i18n_cache.read('UPDATED_AT')).to eq(
|
28
|
+
expect(Weeler.i18n_cache.read('UPDATED_AT')).to eq(Setting.i18n_updated_at)
|
32
29
|
end
|
33
30
|
|
34
31
|
it "loads all translated data to cache" do
|
@@ -43,15 +40,44 @@ describe I18n::Backend::Weeler do
|
|
43
40
|
end
|
44
41
|
|
45
42
|
describe "#available_locales" do
|
43
|
+
before do
|
44
|
+
I18n.available_locales = nil
|
45
|
+
end
|
46
46
|
|
47
|
-
|
48
|
-
|
47
|
+
context "when no translations and available_locales provided" do
|
48
|
+
it "returns one :en locale" do
|
49
|
+
expect(I18n.available_locales.count).to be(1)
|
50
|
+
expect(I18n.available_locales.first).to eq(:en)
|
51
|
+
end
|
49
52
|
end
|
50
53
|
|
54
|
+
context "when available_locales provided" do
|
55
|
+
before do
|
56
|
+
I18n.available_locales = [:en, :es, :lv]
|
57
|
+
end
|
58
|
+
|
59
|
+
it "returns provided available_locales" do
|
60
|
+
expect(I18n.available_locales.count).to be(3)
|
61
|
+
expect(I18n.available_locales).to eq([:en, :es, :lv])
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "when no available_locales provided but have translations" do
|
66
|
+
before do
|
67
|
+
I18n::Backend::Weeler::Translation.create(key: 'weeler.test.value', locale: 'en')
|
68
|
+
I18n::Backend::Weeler::Translation.create(key: 'weeler.test.value', locale: 'es')
|
69
|
+
I18n::Backend::Weeler::Translation.create(key: 'weeler.test.value_two', locale: 'en')
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns locales from translations" do
|
73
|
+
expect(I18n.available_locales.count).to be(2)
|
74
|
+
expect(I18n.available_locales).to include(:en)
|
75
|
+
expect(I18n.available_locales).to include(:es)
|
76
|
+
end
|
77
|
+
end
|
51
78
|
end
|
52
79
|
|
53
80
|
describe "#value" do
|
54
|
-
|
55
81
|
it "returns boolean if translation boolean" do
|
56
82
|
true_t = I18n::Backend::Weeler::Translation.create(:key => 'valid', :value => true, :locale => :en)
|
57
83
|
false_t = I18n::Backend::Weeler::Translation.create(:key => 'invalid', :value => false, :locale => :en)
|
@@ -64,11 +90,10 @@ describe I18n::Backend::Weeler do
|
|
64
90
|
proc = I18n::Backend::Weeler::Translation.create(:key => 'valid', :value => "p 'This ir proc!'", :locale => :en, :is_proc => true)
|
65
91
|
expect { proc.value }.to output("\"This ir proc!\"\n").to_stdout
|
66
92
|
end
|
67
|
-
|
68
93
|
end
|
69
94
|
|
70
95
|
describe "#html?" do
|
71
|
-
before
|
96
|
+
before do
|
72
97
|
@html_key_translation = I18n::Backend::Weeler::Translation.create(:key => 'methods.body_html', :value => "Super duper", :locale => :en)
|
73
98
|
@html_value_translation = I18n::Backend::Weeler::Translation.create(:key => 'methods.body', :value => "Super <b>duper</b>", :locale => :en)
|
74
99
|
@html_fake_value_translation = I18n::Backend::Weeler::Translation.create(:key => 'methods.body_fake', :value => "Super b", :locale => :en)
|
@@ -83,18 +108,16 @@ describe I18n::Backend::Weeler do
|
|
83
108
|
end
|
84
109
|
|
85
110
|
it "is false if value not contains html" do
|
86
|
-
|
87
111
|
expect(@html_fake_value_translation.html?).to be(false)
|
88
112
|
end
|
89
|
-
|
90
113
|
end
|
91
114
|
|
92
115
|
describe "groups" do
|
93
|
-
|
94
|
-
before(:all) do
|
116
|
+
before do
|
95
117
|
I18n.backend.store_translations(:en, :group2 => { :test2 => 'bar' } )
|
96
118
|
I18n.backend.store_translations(:en, :group1 => { :test => 'bar' })
|
97
119
|
I18n.backend.store_translations(:en, :group1 => { :test3 => 'bar' })
|
120
|
+
|
98
121
|
@groups = I18n::Backend::Weeler::Translation.groups
|
99
122
|
end
|
100
123
|
|
@@ -119,7 +142,7 @@ describe I18n::Backend::Weeler do
|
|
119
142
|
I18n.backend.backends[0].reload_cache
|
120
143
|
|
121
144
|
translations = I18n::Backend::Weeler::Translation.locale(:en).lookup('foo')
|
122
|
-
expect(translations.map(&:value)).to eq(%w(bar baz))
|
145
|
+
expect(translations.map(&:value).sort).to eq(%w(bar baz))
|
123
146
|
|
124
147
|
expect(I18n.t(:foo)).to eq("Foo") # no translation
|
125
148
|
end
|
@@ -143,7 +166,6 @@ describe I18n::Backend::Weeler do
|
|
143
166
|
end
|
144
167
|
|
145
168
|
describe "#lookup" do
|
146
|
-
|
147
169
|
it "show warning" do
|
148
170
|
warning_message = "[DEPRECATION] Giving a separator to Translation.lookup is deprecated. You can change the internal separator by overwriting FLATTEN_SEPARATOR.\n"
|
149
171
|
expect { I18n::Backend::Weeler::Translation.lookup("foo", "|") }.to output(warning_message).to_stderr
|
@@ -152,7 +174,7 @@ describe I18n::Backend::Weeler do
|
|
152
174
|
context "cache" do
|
153
175
|
context "differs from settings timestamp" do
|
154
176
|
before do
|
155
|
-
|
177
|
+
Setting.i18n_updated_at = Time.now
|
156
178
|
end
|
157
179
|
|
158
180
|
it "reloads cache" do
|
@@ -163,7 +185,7 @@ describe I18n::Backend::Weeler do
|
|
163
185
|
|
164
186
|
context "is same as updates timestamp" do
|
165
187
|
before do
|
166
|
-
Weeler.i18n_cache.write('UPDATED_AT',
|
188
|
+
Weeler.i18n_cache.write('UPDATED_AT', Setting.i18n_updated_at)
|
167
189
|
end
|
168
190
|
|
169
191
|
it "does not reload cache" do
|
@@ -180,49 +202,37 @@ describe I18n::Backend::Weeler do
|
|
180
202
|
end
|
181
203
|
|
182
204
|
context "missing translations" do
|
183
|
-
|
184
205
|
context "exist in yml" do
|
185
|
-
|
186
206
|
context "new translation" do
|
187
|
-
|
188
207
|
it "persist it" do
|
189
208
|
I18n.t('hello')
|
190
209
|
expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('hello').value).to eq(I18n.t('hello'))
|
191
210
|
end
|
192
|
-
|
193
211
|
end
|
194
212
|
|
195
213
|
context "already stored" do
|
196
|
-
|
197
214
|
context "value is empty" do
|
198
|
-
context "empty as
|
199
|
-
before
|
200
|
-
Weeler.empty_translation_acts_like_missing =
|
201
|
-
|
215
|
+
context "empty as missing" do
|
216
|
+
before do
|
217
|
+
Weeler.empty_translation_acts_like_missing = true
|
218
|
+
|
219
|
+
FactoryBot.create(:translation, key: 'weeler.test.cms_title', locale: 'en', value: '')
|
202
220
|
end
|
203
221
|
|
204
|
-
it
|
222
|
+
it 'saves the fallback backend value' do
|
205
223
|
I18n.t('weeler.test.cms_title')
|
206
|
-
expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('weeler.test.cms_title').value).to eq("Weeler is cool")
|
207
|
-
end
|
208
224
|
|
209
|
-
|
210
|
-
Weeler.empty_translation_acts_like_missing = true
|
211
|
-
end
|
212
|
-
end
|
213
|
-
context "empty as missing" do
|
214
|
-
before(:all) do
|
215
|
-
FactoryBot.create(:translation, key: "weeler.test.cms_title", locale: "en", value: "")
|
225
|
+
expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('weeler.test.cms_title').value).to eq('Weeler is cool')
|
216
226
|
end
|
217
227
|
|
218
|
-
|
219
|
-
|
220
|
-
expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('weeler.test.cms_title').value).to eq("Weeler is cool")
|
228
|
+
after do
|
229
|
+
Weeler.empty_translation_acts_like_missing = false
|
221
230
|
end
|
222
231
|
end
|
223
232
|
end
|
233
|
+
|
224
234
|
context "value is nil" do
|
225
|
-
before
|
235
|
+
before do
|
226
236
|
FactoryBot.create(:translation, key: "weeler.test.cms_title", locale: "en", value: nil)
|
227
237
|
end
|
228
238
|
|
@@ -284,31 +294,6 @@ describe I18n::Backend::Weeler do
|
|
284
294
|
I18n.backend.backends[0].reload_cache
|
285
295
|
expect(I18n.t(key, :separator => '|')).to eq('baz!')
|
286
296
|
end
|
287
|
-
|
288
|
-
end
|
289
|
-
|
290
|
-
context "usage logging" do
|
291
|
-
|
292
|
-
it "translation stores all translation in each locale" do
|
293
|
-
Settings.log_key_usage = 'true'
|
294
|
-
expect(I18n.backend.backends[0]).to receive(:log_key_usage)
|
295
|
-
I18n.t("random.key")
|
296
|
-
end
|
297
|
-
|
298
|
-
it "doesn't log keys" do
|
299
|
-
Settings.log_key_usage = 'false'
|
300
|
-
expect(I18n.backend.backends[0]).not_to receive(:log_key_usage)
|
301
|
-
I18n.t("random.key")
|
302
|
-
end
|
303
|
-
|
304
|
-
it "dumps logged keys to database" do
|
305
|
-
Settings.log_key_usage = 'dump'
|
306
|
-
expect(I18n.backend.backends[0]).to receive(:dump_key_usage)
|
307
|
-
I18n.t("random.key")
|
308
|
-
end
|
309
|
-
|
310
297
|
end
|
311
|
-
|
312
298
|
end
|
313
|
-
|
314
299
|
end
|
data/weeler.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_dependency 'rails'
|
20
|
+
spec.add_dependency 'rails'
|
21
21
|
|
22
22
|
spec.add_dependency 'globalize'
|
23
23
|
spec.add_dependency 'i18n'
|
@@ -26,11 +26,10 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency 'kaminari'
|
28
28
|
|
29
|
-
spec.add_dependency 'jquery-turbolinks'
|
30
29
|
spec.add_dependency 'jquery-ui-rails'
|
31
|
-
spec.add_dependency 'rails-settings-cached'
|
30
|
+
spec.add_dependency 'rails-settings-cached'
|
32
31
|
|
33
|
-
spec.add_dependency '
|
32
|
+
spec.add_dependency 'caxlsx'
|
34
33
|
spec.add_dependency 'roo'
|
35
34
|
|
36
35
|
spec.add_development_dependency 'bundler'
|
@@ -38,7 +37,7 @@ Gem::Specification.new do |spec|
|
|
38
37
|
spec.add_development_dependency 'factory_bot_rails'
|
39
38
|
spec.add_development_dependency 'rake'
|
40
39
|
spec.add_development_dependency 'rspec'
|
41
|
-
spec.add_development_dependency 'rspec-rails', '4.0.0
|
40
|
+
spec.add_development_dependency 'rspec-rails', '~> 4.0.0'
|
42
41
|
spec.add_development_dependency 'webrat'
|
43
42
|
|
44
43
|
if RUBY_PLATFORM == 'java'
|
metadata
CHANGED
@@ -1,30 +1,30 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weeler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artūrs Braučs
|
8
8
|
- Artis Raugulis
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-12-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: globalize
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name: jquery-
|
85
|
+
name: jquery-ui-rails
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
@@ -96,7 +96,7 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: rails-settings-cached
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ">="
|
@@ -110,21 +110,7 @@ dependencies:
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - "<"
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '2.0'
|
119
|
-
type: :runtime
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - "<"
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '2.0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: axlsx
|
113
|
+
name: caxlsx
|
128
114
|
requirement: !ruby/object:Gem::Requirement
|
129
115
|
requirements:
|
130
116
|
- - ">="
|
@@ -225,16 +211,16 @@ dependencies:
|
|
225
211
|
name: rspec-rails
|
226
212
|
requirement: !ruby/object:Gem::Requirement
|
227
213
|
requirements:
|
228
|
-
- -
|
214
|
+
- - "~>"
|
229
215
|
- !ruby/object:Gem::Version
|
230
|
-
version: 4.0.0
|
216
|
+
version: 4.0.0
|
231
217
|
type: :development
|
232
218
|
prerelease: false
|
233
219
|
version_requirements: !ruby/object:Gem::Requirement
|
234
220
|
requirements:
|
235
|
-
- -
|
221
|
+
- - "~>"
|
236
222
|
- !ruby/object:Gem::Version
|
237
|
-
version: 4.0.0
|
223
|
+
version: 4.0.0
|
238
224
|
- !ruby/object:Gem::Dependency
|
239
225
|
name: webrat
|
240
226
|
requirement: !ruby/object:Gem::Requirement
|
@@ -343,6 +329,7 @@ extra_rdoc_files: []
|
|
343
329
|
files:
|
344
330
|
- ".gitignore"
|
345
331
|
- ".rspec"
|
332
|
+
- ".ruby-version"
|
346
333
|
- ".travis.yml"
|
347
334
|
- CHANGELOG.md
|
348
335
|
- Gemfile
|
@@ -390,7 +377,7 @@ files:
|
|
390
377
|
- app/helpers/weeler/flash_helper.rb
|
391
378
|
- app/models/concerns/weeler/seoable.rb
|
392
379
|
- app/models/concerns/weeler/sluger.rb
|
393
|
-
- app/models/
|
380
|
+
- app/models/setting.rb
|
394
381
|
- app/models/weeler/seo.rb
|
395
382
|
- app/views/kaminari/weeler/_first_page.html.haml
|
396
383
|
- app/views/kaminari/weeler/_gap.html.haml
|
@@ -427,6 +414,7 @@ files:
|
|
427
414
|
- app/views/weeler/home/index.html.haml
|
428
415
|
- app/views/weeler/seo_items/edit.html.haml
|
429
416
|
- app/views/weeler/seo_items/index.html.haml
|
417
|
+
- app/views/weeler/settings/_form.html.haml
|
430
418
|
- app/views/weeler/settings/index.html.haml
|
431
419
|
- app/views/weeler/static_sections/show.html.haml
|
432
420
|
- app/views/weeler/translations/_form.html.haml
|
@@ -434,7 +422,6 @@ files:
|
|
434
422
|
- app/views/weeler/translations/edit.html.haml
|
435
423
|
- app/views/weeler/translations/index.html.haml
|
436
424
|
- app/views/weeler/translations/new.html.haml
|
437
|
-
- app/views/weeler/translations/usage_stats.html.haml
|
438
425
|
- config/initializers/weeler_mime_types.rb
|
439
426
|
- lib/.DS_Store
|
440
427
|
- lib/generators/weeler/.DS_Store
|
@@ -446,7 +433,6 @@ files:
|
|
446
433
|
- lib/generators/weeler/templates/migrations/create_weeler_locks.rb
|
447
434
|
- lib/generators/weeler/templates/migrations/create_weeler_seos.rb
|
448
435
|
- lib/generators/weeler/templates/migrations/create_weeler_settings.rb
|
449
|
-
- lib/generators/weeler/templates/migrations/create_weeler_translation_stats.rb
|
450
436
|
- lib/generators/weeler/templates/migrations/create_weeler_translations.rb
|
451
437
|
- lib/generators/weeler/templates/migrations/translate_weeler_seos.rb
|
452
438
|
- lib/generators/weeler/templates/views/weeler/.keep
|
@@ -460,7 +446,6 @@ files:
|
|
460
446
|
- lib/i18n/backend/weeler/lock.rb
|
461
447
|
- lib/i18n/backend/weeler/translation.rb
|
462
448
|
- lib/i18n/backend/weeler/translation_stat.rb
|
463
|
-
- lib/i18n/backend/weeler/usage_logger.rb
|
464
449
|
- lib/i18n/humanize_missing_translations.rb
|
465
450
|
- lib/i18n/weeler.rb
|
466
451
|
- lib/tasks/weeler.rake
|
@@ -548,6 +533,7 @@ files:
|
|
548
533
|
- spec/factories/translations.rb
|
549
534
|
- spec/fixtures/.DS_Store
|
550
535
|
- spec/fixtures/test.xlsx
|
536
|
+
- spec/fixtures/test_2020_format.xlsx
|
551
537
|
- spec/routing/routes_spec.rb
|
552
538
|
- spec/spec_helper.rb
|
553
539
|
- spec/weeler/.DS_Store
|
@@ -559,7 +545,6 @@ files:
|
|
559
545
|
- spec/weeler/i18n/backend/weeler/exporter_spec.rb
|
560
546
|
- spec/weeler/i18n/backend/weeler/importer_spec.rb
|
561
547
|
- spec/weeler/i18n/backend/weeler/lock_spec.rb
|
562
|
-
- spec/weeler/i18n/backend/weeler/usage_logger_spec.rb
|
563
548
|
- spec/weeler/i18n/backend/weeler_spec.rb
|
564
549
|
- spec/weeler/i18n/humanize_missing_translations_spec.rb
|
565
550
|
- weeler.gemspec
|
@@ -567,7 +552,7 @@ homepage: ''
|
|
567
552
|
licenses:
|
568
553
|
- MIT
|
569
554
|
metadata: {}
|
570
|
-
post_install_message:
|
555
|
+
post_install_message:
|
571
556
|
rdoc_options: []
|
572
557
|
require_paths:
|
573
558
|
- lib
|
@@ -582,8 +567,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
582
567
|
- !ruby/object:Gem::Version
|
583
568
|
version: '0'
|
584
569
|
requirements: []
|
585
|
-
rubygems_version: 3.
|
586
|
-
signing_key:
|
570
|
+
rubygems_version: 3.2.3
|
571
|
+
signing_key:
|
587
572
|
specification_version: 4
|
588
573
|
summary: CMS for weby.lv projects.
|
589
574
|
test_files:
|
@@ -663,6 +648,7 @@ test_files:
|
|
663
648
|
- spec/factories/translations.rb
|
664
649
|
- spec/fixtures/.DS_Store
|
665
650
|
- spec/fixtures/test.xlsx
|
651
|
+
- spec/fixtures/test_2020_format.xlsx
|
666
652
|
- spec/routing/routes_spec.rb
|
667
653
|
- spec/spec_helper.rb
|
668
654
|
- spec/weeler/.DS_Store
|
@@ -674,6 +660,5 @@ test_files:
|
|
674
660
|
- spec/weeler/i18n/backend/weeler/exporter_spec.rb
|
675
661
|
- spec/weeler/i18n/backend/weeler/importer_spec.rb
|
676
662
|
- spec/weeler/i18n/backend/weeler/lock_spec.rb
|
677
|
-
- spec/weeler/i18n/backend/weeler/usage_logger_spec.rb
|
678
663
|
- spec/weeler/i18n/backend/weeler_spec.rb
|
679
664
|
- spec/weeler/i18n/humanize_missing_translations_spec.rb
|
data/app/models/settings.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
.header.container
|
2
|
-
.row
|
3
|
-
.col-lg-12
|
4
|
-
.page-header
|
5
|
-
%h1 Translation stats
|
6
|
-
%p.lead.text-muted
|
7
|
-
- if Settings.log_key_usage == 'true'
|
8
|
-
= 'Translation usage stat gathering is ON'
|
9
|
-
- else
|
10
|
-
= 'Translation usage stat gathering is OFF'
|
11
|
-
%p.lead.text-muted
|
12
|
-
= link_to 'Back to Translation list', {action: :index}
|
13
|
-
|
14
|
-
.container
|
15
|
-
.row
|
16
|
-
.col-lg-12
|
17
|
-
%table.table
|
18
|
-
%thead
|
19
|
-
%tr
|
20
|
-
%th Usage
|
21
|
-
%th Key
|
22
|
-
%th text
|
23
|
-
%tbody
|
24
|
-
- @used_keys.each do |key, usage|
|
25
|
-
- begin
|
26
|
-
%tr
|
27
|
-
%td= usage
|
28
|
-
%td= key.to_s.gsub('usage_stats/en/', '')
|
29
|
-
%td= CGI::unescapeHTML(CGI::escapeHTML(t(key.to_s.gsub('usage_stats/en/', ''))))
|
30
|
-
- rescue => e
|
31
|
-
%tr
|
32
|
-
%td= "err #{usage}"
|
33
|
-
%td= key
|
34
|
-
%td= e.message
|