rails_i18n_manager 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8f237f3945385f864800ae205e29a56db0968035bf0121e0efbf24e890b924b
4
- data.tar.gz: c000f125974eb73ecadde8ef9d14e6dcc9bb031145d1c693e02dc60c9d564fdb
3
+ metadata.gz: f728ba9cda5d596101c9da0d9e5336ca468d9db8b9c7c15d1bd621db9e065fc9
4
+ data.tar.gz: 800e36c720bf9a2a2c18b9f2e286507b463cda8dbecdb3a7b67237c2faea20a7
5
5
  SHA512:
6
- metadata.gz: 227ab42ce4c3ef87b9325f2570607f9beb4db7a66073f60adfb753623337394e7ddea82d221cfa9e74481f69d259321e2ef1e89de56fcb4e916f5e67de78c779
7
- data.tar.gz: a02b2383a8495a14bd25a4b5a48eafb8fff08b3dd161a75f4d999b383f7a08a28b0e00ea3f6ade4d08c5382be72836aca53caa17fe1a07fc67e14ca813c2ffd8
6
+ metadata.gz: 9c5fa427b474d3e313adc680decffb40f9b403e6a1cd9fa362d6c698b17170842b57d44650d0a0c19fd6f41d179f232880a16911d01f56c0e98f61ad7543daf2
7
+ data.tar.gz: 3cd51e42ac3cec4465cf10b3a7de4c52cca60268bccc70485a8b9ae7a1087f764e3dfe13abfdade0cbe758a12a5b7ea0cad6edcc90a48348e37e11cd512afda9
@@ -17,11 +17,6 @@ module RailsI18nManager
17
17
  fields_for(*args, options, &block)
18
18
  end
19
19
 
20
- ASSET_VERSION = `git show -s --format=%ci`.parameterize.freeze
21
- def custom_asset_path(path)
22
- "#{path}?v=#{Rails.env.development? ? Time.now.to_i : ASSET_VERSION}"
23
- end
24
-
25
20
  def breadcrumb_item(title, url=nil)
26
21
  if url.nil?
27
22
  %Q(<span class="breadcrumb-item">#{title}</span>).html_safe
@@ -139,7 +139,7 @@ module RailsI18nManager
139
139
  return nil
140
140
  end
141
141
 
142
- zip_file = Zip::File.open(temp_file, create: !File.exist?(temp_file)) do |zipfile|
142
+ zip_file = Zip::File.open(temp_file, create: true) do |zipfile|
143
143
  files_to_write.each do |file|
144
144
  zipfile.add(file.sub(base_folder_path, "translations/"), file)
145
145
  end
@@ -0,0 +1,69 @@
1
+ <style>
2
+ h1, h2, h3, h4, h5{
3
+ color: #424242;
4
+ }
5
+
6
+ body{
7
+ background-color: #F5F6F6;
8
+ padding-top: 80px;
9
+ padding-bottom: 20px;
10
+ }
11
+
12
+ label{
13
+ margin-right: 10px;
14
+ }
15
+
16
+ footer{
17
+ position: fixed;
18
+ text-align: center;
19
+ bottom: 10px;
20
+ right: 0;
21
+ left: 0;
22
+ }
23
+
24
+ .btn-default{
25
+ border-color: gray;
26
+ background-color: gray;
27
+ background-image: none;
28
+ }
29
+
30
+ .breadcrumb-item:before{
31
+ content: "/":
32
+ }
33
+
34
+ .form-group{
35
+ margin-bottom: 15px !important;
36
+ }
37
+
38
+ select{
39
+ min-width: 300px;
40
+ }
41
+
42
+ form label{
43
+ margin-bottom: 5px;
44
+ font-weight: bold;
45
+ }
46
+
47
+ .nav-link.active{
48
+ font-weight: bold;
49
+ }
50
+
51
+ .navbar-nav .nav-item{
52
+ margin-left: 10px;
53
+ }
54
+
55
+ .navbar-brand{
56
+ font-weight: bold;
57
+ text-decoration: underline;
58
+ }
59
+
60
+ .ss-main{
61
+ // for slimselect.js
62
+ background-image: none !important;
63
+ height: 38px;
64
+ }
65
+
66
+ .ss-option{
67
+ min-height: 32px !important;
68
+ }
69
+ </style>
@@ -0,0 +1,39 @@
1
+ <script type="text/javascript">
2
+ window.init = function(){
3
+ $("form").attr("autocomplete", "off");
4
+
5
+ $('.field_with_errors').addClass('is-invalid');
6
+
7
+ var alerts = $(".alert:not(.permanent)")
8
+ setTimeout(function(){
9
+ alerts.fadeOut();
10
+ }, 8000);
11
+
12
+ autosize($('textarea'));
13
+
14
+ $("select").each(function(){
15
+ $(this).removeClass("form-select");
16
+
17
+ new SlimSelect({
18
+ select: this,
19
+ settings: {
20
+ //contentLocation: document.body,
21
+ contentLocation: this.parentElement,
22
+ closeOnSelect: !this.hasAttribute("multiple"),
23
+ openPosition: 'down', // options: auto, up, down
24
+ //placeholderText: "Select Value",
25
+ placeholderText: "Select...",
26
+ //searchPlaceholder: 'Search',
27
+ //searchText: 'No Results',
28
+ //searchingText: 'Searching...',
29
+ maxValuesShown: 999, // defaults to 20, max selected items show in multi-selects
30
+ //maxValuesShown: 20,
31
+ }
32
+ })
33
+ });
34
+ }
35
+
36
+ $(function(){
37
+ window.init();
38
+ });
39
+ </script>
@@ -0,0 +1,20 @@
1
+ script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" referrerpolicy="no-referrer"
2
+
3
+ link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous"
4
+ script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"
5
+
6
+ = render "layouts/rails_i18n_manager/utility_css"
7
+ = render "layouts/rails_i18n_manager/app_css"
8
+
9
+ script src="https://cdn.jsdelivr.net/npm/@rails/ujs@7.0.4-3/lib/assets/compiled/rails-ujs.min.js"
10
+
11
+ link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slim-select/2.4.5/slimselect.min.css" integrity="sha512-GvqWM4KWH8mbgWIyvwdH8HgjUbyZTXrCq0sjGij9fDNiXz3vJoy3jCcAaWNekH2rJe4hXVWCJKN+bEW8V7AAEQ==" crossorigin="anonymous" referrerpolicy="no-referrer"
12
+ script src="https://cdnjs.cloudflare.com/ajax/libs/slim-select/2.4.5/slimselect.global.min.js" integrity="sha512-r2ujllVbPV4gVNZyqAB6LS3cnpEenEl18yFYoowmutUX5zVXQi5mp13lMWv3FQpsn96eFJTcd5VqBkZuatGtWQ==" crossorigin="anonymous" referrerpolicy="no-referrer"
13
+
14
+ script src="https://cdnjs.cloudflare.com/ajax/libs/autosize.js/3.0.20/autosize.min.js" integrity="sha512-EAEoidLzhKrfVg7qX8xZFEAebhmBMsXrIcI0h7VPx2CyAyFHuDvOAUs9CEATB2Ou2/kuWEDtluEVrQcjXBy9yw==" crossorigin="anonymous" referrerpolicy="no-referrer"
15
+
16
+ link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css" integrity="sha512-IJ+BZHGlT4K43sqBGUzJ90pcxfkREDVZPZxeexRigVL8rzdw/gyJIflDahMdNzBww4k0WxpyaWpC2PLQUWmMUQ==" crossorigin="anonymous" referrerpolicy="no-referrer"
17
+
18
+ link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha512-SfTiTlX6kk+qitfevl/7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+/Sw==" crossorigin="anonymous" referrerpolicy="no-referrer"
19
+
20
+ = render "layouts/rails_i18n_manager/app_javascript"
@@ -0,0 +1,62 @@
1
+ <style>
2
+ .space-left{
3
+ margin-left:5px !important;
4
+ }
5
+ .space-left2{
6
+ margin-left:10px !important;
7
+ }
8
+ .space-left3{
9
+ margin-left:15px !important;
10
+ }
11
+ .space-left4{
12
+ margin-left:20px !important;
13
+ }
14
+ .space-left5{
15
+ margin-left:30px !important;
16
+ }
17
+ .space-right{
18
+ margin-right:5px !important;
19
+ }
20
+ .space-right2{
21
+ margin-right:10px !important;
22
+ }
23
+ .space-right3{
24
+ margin-right:15px !important;
25
+ }
26
+ .space-right4{
27
+ margin-right:20px !important;
28
+ }
29
+ .space-right5{
30
+ margin-right:30px !important;
31
+ }
32
+ .space-above{
33
+ margin-top:5px !important;
34
+ }
35
+ .space-above2{
36
+ margin-top:10px !important;
37
+ }
38
+ .space-above3{
39
+ margin-top:20px !important;
40
+ }
41
+ .space-above4{
42
+ margin-top:30px !important;
43
+ }
44
+ .space-above5{
45
+ margin-top:40px !important;
46
+ }
47
+ .space-below{
48
+ margin-bottom:5px !important;
49
+ }
50
+ .space-below2{
51
+ margin-bottom:10px !important;
52
+ }
53
+ .space-below3{
54
+ margin-bottom:15px !important;
55
+ }
56
+ .space-below4{
57
+ margin-bottom:20px !important;
58
+ }
59
+ .space-below5{
60
+ margin-bottom:30px !important;
61
+ }
62
+ </style>
@@ -8,35 +8,11 @@ html
8
8
  = csrf_meta_tags
9
9
  meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0"
10
10
 
11
- link rel="icon" type="image/x-icon" href=custom_asset_path("/rails_i18n_manager/favicon.ico")
12
-
13
- link rel="stylesheet" href=custom_asset_path("/rails_i18n_manager/utility.css")
14
-
15
- script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" referrerpolicy="no-referrer"
16
-
17
- link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous"
18
- script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"
19
-
20
- link rel="stylesheet" href=custom_asset_path("/rails_i18n_manager/application.css")
21
-
22
- script src="https://cdn.jsdelivr.net/npm/@rails/ujs@7.0.4-3/lib/assets/compiled/rails-ujs.min.js"
23
-
24
- link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slim-select/2.4.5/slimselect.min.css" integrity="sha512-GvqWM4KWH8mbgWIyvwdH8HgjUbyZTXrCq0sjGij9fDNiXz3vJoy3jCcAaWNekH2rJe4hXVWCJKN+bEW8V7AAEQ==" crossorigin="anonymous" referrerpolicy="no-referrer"
25
- script src="https://cdnjs.cloudflare.com/ajax/libs/slim-select/2.4.5/slimselect.global.min.js" integrity="sha512-r2ujllVbPV4gVNZyqAB6LS3cnpEenEl18yFYoowmutUX5zVXQi5mp13lMWv3FQpsn96eFJTcd5VqBkZuatGtWQ==" crossorigin="anonymous" referrerpolicy="no-referrer"
26
-
27
- script src="https://cdnjs.cloudflare.com/ajax/libs/autosize.js/3.0.20/autosize.min.js" integrity="sha512-EAEoidLzhKrfVg7qX8xZFEAebhmBMsXrIcI0h7VPx2CyAyFHuDvOAUs9CEATB2Ou2/kuWEDtluEVrQcjXBy9yw==" crossorigin="anonymous" referrerpolicy="no-referrer"
28
-
29
- script src=custom_asset_path("/rails_i18n_manager/application.js")
30
-
31
- link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css" integrity="sha512-IJ+BZHGlT4K43sqBGUzJ90pcxfkREDVZPZxeexRigVL8rzdw/gyJIflDahMdNzBww4k0WxpyaWpC2PLQUWmMUQ==" crossorigin="anonymous" referrerpolicy="no-referrer"
32
-
33
- link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha512-SfTiTlX6kk+qitfevl/7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+/Sw==" crossorigin="anonymous" referrerpolicy="no-referrer"
11
+ = render "layouts/rails_i18n_manager/assets"
34
12
 
35
13
  body
36
14
  nav.navbar.navbar-expand-lg.navbar-light.bg-success.fixed-top
37
15
  .container-fluid
38
- h1.hidden = @title
39
-
40
16
  a.navbar-brand = "#{@title}"
41
17
 
42
18
  button.navbar-toggler type="button" data-bs-toggle="collapse" data-bs-target="#navbar-list" aria-controls="navbar-list" aria-expanded="false" aria-label="Toggle navigation"
@@ -16,28 +16,5 @@ module RailsI18nManager
16
16
  ### Expose static assets
17
17
  app.middleware.use ::ActionDispatch::Static, "#{root}/public"
18
18
  end
19
-
20
- initializer "rails_i18n_manager.assets.precompile" do |app|
21
- # this initializer is only called when sprockets is in use
22
-
23
- app.config.assets.precompile << "rails_i18n_manager_manifest.js" ### manifest file required
24
- app.config.assets.precompile << "rails_i18n_manager/favicon.ico"
25
-
26
- ### Automatically precompile assets in specified folders
27
- ["app/assets/images/"].each do |folder|
28
- dir = app.root.join(folder)
29
-
30
- if Dir.exist?(dir)
31
- Dir.glob(File.join(dir, "**/*")).each do |f|
32
- asset_name = f.to_s
33
- .split(folder).last # Remove fullpath
34
- .sub(/^\/*/, '') ### Remove leading '/'
35
-
36
- app.config.assets.precompile << asset_name
37
- end
38
- end
39
- end
40
- end
41
-
42
19
  end
43
20
  end
@@ -1,3 +1,3 @@
1
1
  module RailsI18nManager
2
- VERSION = "1.0.3".freeze
2
+ VERSION = "1.1.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_i18n_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Ganger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-03 00:00:00.000000000 Z
11
+ date: 2025-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -220,11 +220,6 @@ files:
220
220
  - LICENSE
221
221
  - README.md
222
222
  - Rakefile
223
- - app/assets/config/rails_i18n_manager_manifest.rb
224
- - app/assets/images/rails_i18n_manager/favicon.ico
225
- - app/assets/javascripts/rails_i18n_manager/application.js
226
- - app/assets/stylesheets/rails_i18n_manager/application.css
227
- - app/assets/stylesheets/rails_i18n_manager/utility.css
228
223
  - app/controllers/rails_i18n_manager/application_controller.rb
229
224
  - app/controllers/rails_i18n_manager/translation_apps_controller.rb
230
225
  - app/controllers/rails_i18n_manager/translations_controller.rb
@@ -239,6 +234,10 @@ files:
239
234
  - app/models/rails_i18n_manager/translation_app.rb
240
235
  - app/models/rails_i18n_manager/translation_key.rb
241
236
  - app/models/rails_i18n_manager/translation_value.rb
237
+ - app/views/layouts/rails_i18n_manager/_app_css.html.erb
238
+ - app/views/layouts/rails_i18n_manager/_app_javascript.html.erb
239
+ - app/views/layouts/rails_i18n_manager/_assets.html.slim
240
+ - app/views/layouts/rails_i18n_manager/_utility_css.html.erb
242
241
  - app/views/layouts/rails_i18n_manager/application.html.slim
243
242
  - app/views/layouts/rails_i18n_manager/application.js.erb
244
243
  - app/views/rails_i18n_manager/form_builder/_basic_field.html.erb
@@ -1,3 +0,0 @@
1
- //= link_tree ../images/rails_i18n_manager
2
- //= link_directory ../stylesheets/rails_i18n_manager .css
3
- //= link_directory ../javascripts/rails_i18n_manager .js
@@ -1,37 +0,0 @@
1
- window.init = function(){
2
- $("form").attr("autocomplete", "off");
3
-
4
- $('.field_with_errors').addClass('is-invalid');
5
-
6
- var alerts = $(".alert:not(.permanent)")
7
- setTimeout(function(){
8
- alerts.fadeOut();
9
- }, 8000);
10
-
11
- autosize($('textarea'));
12
-
13
- $("select").each(function(){
14
- $(this).removeClass("form-select");
15
-
16
- new SlimSelect({
17
- select: this,
18
- settings: {
19
- //contentLocation: document.body,
20
- contentLocation: this.parentElement,
21
- closeOnSelect: !this.hasAttribute("multiple"),
22
- openPosition: 'down', // options: auto, up, down
23
- //placeholderText: "Select Value",
24
- placeholderText: "Select...",
25
- //searchPlaceholder: 'Search',
26
- //searchText: 'No Results',
27
- //searchingText: 'Searching...',
28
- maxValuesShown: 999, // defaults to 20, max selected items show in multi-selects
29
- //maxValuesShown: 20,
30
- }
31
- })
32
- });
33
- }
34
-
35
- $(function(){
36
- window.init();
37
- });
@@ -1,67 +0,0 @@
1
- h1, h2, h3, h4, h5{
2
- color: #424242;
3
- }
4
-
5
- body{
6
- background-color: #F5F6F6;
7
- padding-top: 80px;
8
- padding-bottom: 20px;
9
- }
10
-
11
- label{
12
- margin-right: 10px;
13
- }
14
-
15
- footer{
16
- position: fixed;
17
- text-align: center;
18
- bottom: 10px;
19
- right: 0;
20
- left: 0;
21
- }
22
-
23
- .btn-default{
24
- border-color: gray;
25
- background-color: gray;
26
- background-image: none;
27
- }
28
-
29
- .breadcrumb-item:before{
30
- content: "/":
31
- }
32
-
33
- .form-group{
34
- margin-bottom: 15px !important;
35
- }
36
-
37
- select{
38
- min-width: 300px;
39
- }
40
-
41
- form label{
42
- margin-bottom: 5px;
43
- font-weight: bold;
44
- }
45
-
46
- .nav-link.active{
47
- font-weight: bold;
48
- }
49
-
50
- .navbar-nav .nav-item{
51
- margin-left: 10px;
52
- }
53
-
54
- .navbar-brand{
55
- font-weight: bold;
56
- text-decoration: underline;
57
- }
58
-
59
- .ss-main{
60
- // for slimselect.js
61
- background-image: none !important;
62
- height: 38px;
63
- }
64
-
65
- .ss-option{
66
- min-height: 32px !important;
67
- }
@@ -1,99 +0,0 @@
1
- .no-gutter{
2
- padding:0 !important;
3
- }
4
- .bold{
5
- font-weight:bold !important;
6
- }
7
- .no-bold{
8
- font-weight:400 !important;
9
- }
10
- .italic{
11
- font-style: italic !important;
12
- }
13
- .underline{
14
- text-decoration:underline !important;
15
- }
16
- .space-left{
17
- margin-left:5px !important;
18
- }
19
- .space-left2{
20
- margin-left:10px !important;
21
- }
22
- .space-left3{
23
- margin-left:15px !important;
24
- }
25
- .space-left4{
26
- margin-left:20px !important;
27
- }
28
- .space-left5{
29
- margin-left:30px !important;
30
- }
31
- .space-right{
32
- margin-right:5px !important;
33
- }
34
- .space-right2{
35
- margin-right:10px !important;
36
- }
37
- .space-right3{
38
- margin-right:15px !important;
39
- }
40
- .space-right4{
41
- margin-right:20px !important;
42
- }
43
- .space-right5{
44
- margin-right:30px !important;
45
- }
46
- .space-above{
47
- margin-top:5px !important;
48
- }
49
- .space-above2{
50
- margin-top:10px !important;
51
- }
52
- .space-above3{
53
- margin-top:20px !important;
54
- }
55
- .space-above4{
56
- margin-top:30px !important;
57
- }
58
- .space-above5{
59
- margin-top:40px !important;
60
- }
61
- .space-below{
62
- margin-bottom:5px !important;
63
- }
64
- .space-below2{
65
- margin-bottom:10px !important;
66
- }
67
- .space-below3{
68
- margin-bottom:15px !important;
69
- }
70
- .space-below4{
71
- margin-bottom:20px !important;
72
- }
73
- .space-below5{
74
- margin-bottom:30px !important;
75
- }
76
- .width-100{
77
- width:100%;
78
- }
79
- .width-90{
80
- width: 90%;
81
- }
82
- .table-text-center{
83
- th td{
84
- text-align:center !important;
85
- }
86
- }
87
- .display-table{
88
- height:130px;
89
- display:table;
90
- }
91
- .display-table .vertical-align{
92
- display:table-cell;
93
- vertical-align:middle;
94
- }
95
-
96
-
97
- .hidden{
98
- display: none !important;
99
- }