weeler 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/.travis.yml +1 -2
- data/CHANGELOG.md +16 -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 +59 -57
- 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
@@ -54,11 +54,10 @@ module Weeler
|
|
54
54
|
collection do
|
55
55
|
get :export
|
56
56
|
post :import
|
57
|
-
get :usage_stats
|
58
57
|
end
|
59
58
|
end
|
60
59
|
resources :seo_items
|
61
|
-
resources :settings, :only => [:index, :
|
60
|
+
resources :settings, :only => [:index, :update, :create]
|
62
61
|
end
|
63
62
|
|
64
63
|
# Ordable route concern for dynamic sorting and removing image
|
@@ -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.
|
4
|
+
version: 2.1.0
|
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: 2023-08-12 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.22
|
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
|