slash_admin 1.3.2 → 1.4.1

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: 60a62e71df7ce85dd3b7a4ec43387b2487e6b785173efe76bf68af86f9ebc0f3
4
- data.tar.gz: '0280264757dfe91230cdf5b359b577fe1bfdaf0914bc255593e92da0e98595b4'
3
+ metadata.gz: 11e65af2390efad19838b6a296c332d2390f7db2cc19d5e7fb3b194a20764e02
4
+ data.tar.gz: 6b8d9aeb8534270f7edf23f56a13d8284ed791d3fc08a85a5577adada253e075
5
5
  SHA512:
6
- metadata.gz: c02ac33b7adeeb9fb6dfe8b9986ff253b66fee5dc23674587eb27db2ff16c5997dfa2ac14e578f56e5d3b0a0410f56594a93b37be586be1aa0584ee40b3b1682
7
- data.tar.gz: c4153fff71a6d0fe535ddeb0992feed99388a31a73b661de066139f32e75247998d4f21fcbfcf05ca222b57c181474bd7f32793f351f95dc42779841a43f0621
6
+ metadata.gz: 3198056fa8a35ae1d9e0005d86b44ef6e382675b63073deeb7974862a73b100cdeadef0ab6cd0f8f7ccf150c11ea0a38e95a42c149f41626393ba318144f33cf
7
+ data.tar.gz: e7e82ddba2244e1ca4c65d6f39cf8627793182bf36b709adae59f7b385364eeeeed4bee13d1fe2dade6b0edb295bdc1c03181921bae6c6449df84d42bc2da1f7
data/README.md CHANGED
@@ -1,15 +1,14 @@
1
1
  <p align="center">
2
- <img width="250" src="https://i.imgur.com/Rok5Ocf.png" />
2
+ <img width="250" src="https://i.imgur.com/mm9gXtL.png" />
3
3
  </p>
4
4
 
5
5
  # SlashAdmin
6
6
 
7
7
  [![Gem Version](https://badge.fury.io/rb/slash_admin.svg)](https://badge.fury.io/rb/slash_admin)
8
- [![Code Climate](https://codeclimate.com/github/nicovak/slash_admin/badges/gpa.svg)](https://codeclimate.com/github/nicovak/slash_admin)
9
8
  [![CircleCI](https://circleci.com/gh/nicovak/slash_admin/tree/master.svg?style=svg&circle-token=6e9ebd7fef3ebc881c75a769b0970808024a2ae9)](https://circleci.com/gh/nicovak/slash_admin/tree/master)
10
9
 
11
- A modern and fully overridable admin, just the rails way.
12
- Embeded admin user and authentication system, devise is not needed.
10
+ A modern and fully customizable admin, just the rails way.
11
+ Embedded admin user and authentication system, devise is not needded.
13
12
 
14
13
  ❤️ [Demo repository](https://github.com/nicovak/slash_admin_demo)
15
14
  🚀 [Live running](https://slashadmin.herokuapp.com/admin)
@@ -21,7 +20,7 @@ Password
21
20
  `admin@admin`
22
21
 
23
22
  #### Motivation:
24
- - Provide to rails the admin it deserves without DSL or obscure logic.
23
+ - Provide to Ruby On Rails the admin it deserves without DSL or obscure logic.
25
24
  - Provide an easy to use and modern experience to final users.
26
25
 
27
26
  I tried to take the best from two greats existing gem:
@@ -34,37 +33,42 @@ Design inspired from the awesome metronic admin theme:
34
33
  #### Screenshots
35
34
 
36
35
  ##### Login
37
- ![Image of Login screen](https://i.imgur.com/MJerQSR.jpg)
36
+ ![Image of Login screen](https://i.imgur.com/ftwC0rF.png)
38
37
  ##### Dashboard
39
- ![Image of Dashboard](https://i.imgur.com/0g3wSjw.png)
38
+ ![Image of Dashboard](https://i.imgur.com/3JzkvoT.png)
40
39
  ##### List
41
- ![Image of List](https://i.imgur.com/s1egSS3.png)
40
+ ![Image of List](https://i.imgur.com/y6Vz6S1.png)
42
41
  ##### Edit / Create
43
- ![Image of Create / Edit](https://i.imgur.com/wf72pZz.png)
42
+ ![Image of Create / Edit](https://i.imgur.com/S2QqHWF.png)
44
43
 
45
44
  ### Installation
46
45
 
47
46
  Add this line to your application's Gemfile:
47
+
48
48
  ```ruby
49
49
  gem 'slash_admin'
50
50
  ```
51
51
 
52
- And then execute:
52
+ Then execute:
53
+
53
54
  ```bash
54
55
  $ bundle install
55
56
  ```
56
57
 
57
58
  Or install it yourself as:
59
+
58
60
  ```bash
59
61
  $ gem install slash_admin
60
62
  ```
61
63
 
62
64
  Gemfile
65
+
63
66
  ```
64
67
  gem 'carrierwave'
65
68
  ```
66
69
 
67
70
  Then:
71
+
68
72
  ```bash
69
73
  $ rails g slash_admin:install
70
74
  $ rails slash_admin:install:migrations
@@ -77,13 +81,36 @@ $ rails db:migrate
77
81
  Mime::Type.register "application/xls", :xls
78
82
  ```
79
83
 
84
+ If your apps uses Sprockets 4+, you'll need to add SlashAdmin assets to your `manifest.js` file. To do this, add these two lines to the file:
85
+
86
+ `app/assets/config/manifest.js`
87
+
88
+ ```
89
+ //= link slash_admin/application.css
90
+ //= link slash_admin/application.js
91
+ ```
92
+
93
+ `config/routes.rb`
94
+
80
95
  ```ruby
81
96
  Rails.application.routes.draw do
82
97
  mount SlashAdmin::Engine => "/"
83
98
  end
84
99
  ```
85
100
 
86
- Mounted as '/' but prefixed in the gem and in routes definition of models admin. See above.
101
+ Mounted as '/' but prefixed in the gem and in routes definition of models admin. See the full example above.
102
+
103
+ ```ruby
104
+ Rails.application.routes.draw do
105
+ mount SlashAdmin::Engine => "/"
106
+
107
+ namespace :slash_admin, path: "/admin" do
108
+ scope module: 'models' do
109
+ resources :pages # assume Page model
110
+ end
111
+ end
112
+ end
113
+ ```
87
114
 
88
115
  ### Important
89
116
 
@@ -1,3 +1,3 @@
1
1
  //= link_tree ../images
2
- //= link_directory ../javascripts/slash_admin .js
3
- //= link_directory ../stylesheets/slash_admin scss
2
+ //= link_tree ../javascripts
3
+ //= link_tree ../stylesheets
@@ -207,7 +207,7 @@ function init() {
207
207
 
208
208
 
209
209
  $(".select2-single, .select2-multiple").each (function() {
210
- let initialPlaceholder = $(this).attr('data-placeholder') || I18n.t('slash_admin.view.select');
210
+ var initialPlaceholder = $(this).attr('data-placeholder') || I18n.t('slash_admin.view.select');
211
211
 
212
212
  $(this).select2({
213
213
  placeholder: initialPlaceholder,
@@ -228,7 +228,7 @@ function init() {
228
228
  });
229
229
 
230
230
  $(".select2-model-multiple, .select2-model-single").each(function() {
231
- let initialPlaceholder = $(this).attr('data-placeholder') || I18n.t('slash_admin.view.select');
231
+ var initialPlaceholder = $(this).attr('data-placeholder') || I18n.t('slash_admin.view.select');
232
232
 
233
233
  $(this).select2({
234
234
  placeholder: initialPlaceholder,
@@ -1,37 +1,21 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
- * files in this directory. Styles in this file should be added after the last require_* statement.
11
- * It is generally better to create a new file per style scope.
12
- *
13
- *= require animate
14
- *= require toastr
15
- *= require jquery.nestable
16
- *= require sweetalert
17
- *= require select2/select2.min
18
- *= require select2/select2-bootstrap4
19
- *= require bootstrap-datepicker.min
20
- *= require bootstrap-material-datetimepicker
21
- *= require jquery.tagsinput-revisited.min
22
- *= require jquery.minicolors
23
- *= require slash_admin/colors
24
- *= require slash_admin/alert
25
- *= require codemirror/codemirror
26
- *= require codemirror/theme/relax-seti
27
- *= require codemirror/lint/lint
28
- *= require_self
29
- *= require slash_admin/custom
30
- *= require_tree .
31
- */
32
-
33
- @import "./colors";
34
- @import "./alert";
1
+ @import "animate";
2
+ @import "toastr";
3
+ @import "jquery.nestable";
4
+ @import "sweetalert";
5
+ @import "select2/select2.min";
6
+ @import "select2/select2-bootstrap4";
7
+ @import "bootstrap-datepicker.min";
8
+ @import "bootstrap-material-datetimepicker";
9
+ @import "jquery.tagsinput-revisited.min";
10
+ @import "jquery.minicolors";
11
+ @import "slash_admin/colors";
12
+ @import "slash_admin/alert";
13
+ @import "slash_admin/custom";
14
+ @import "codemirror/codemirror";
15
+ @import "codemirror/theme/relax-seti";
16
+ @import "codemirror/lint/lint";
17
+ @import "colors";
18
+ @import "alert";
35
19
 
36
20
  $pagination-padding-y: 0.4rem !default;
37
21
  $pagination-border-width: 0 !default;
@@ -107,7 +91,7 @@ p[data-f-id="pbf"] {
107
91
  margin: 0;
108
92
 
109
93
  label.form-control-label {
110
- display: block;
94
+ display: inline-block;
111
95
  font-weight: 600;
112
96
  }
113
97
 
@@ -155,7 +139,8 @@ p[data-f-id="pbf"] {
155
139
  }
156
140
 
157
141
  .select2-container--bootstrap4 .select2-results__option--highlighted,
158
- .select2-container--bootstrap4 .select2-results__option--highlighted.select2-results__option[aria-selected=true] {
142
+ .select2-container--bootstrap4
143
+ .select2-results__option--highlighted.select2-results__option[aria-selected="true"] {
159
144
  background-color: $primary;
160
145
  color: white;
161
146
  }
@@ -178,20 +163,27 @@ p[data-f-id="pbf"] {
178
163
  background: $input;
179
164
  }
180
165
 
181
- .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {
166
+ .select2-container--bootstrap4
167
+ .select2-selection--multiple
168
+ .select2-selection__choice {
182
169
  word-break: break-all;
183
170
  background: white;
184
171
  }
185
172
 
186
173
  .select2-container .select2-results__option--highlighted,
187
- .select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true],
188
- .select2-container--bootstrap4 .select2-dropdown .select2-results__option[aria-selected=true] {
174
+ .select2-container
175
+ .select2-results__option--highlighted.select2-results__option[aria-selected="true"],
176
+ .select2-container--bootstrap4
177
+ .select2-dropdown
178
+ .select2-results__option[aria-selected="true"] {
189
179
  background-color: $primary;
190
180
  color: white;
191
181
  }
192
182
 
193
- .select2-container--bootstrap4.select2-container--focus .select2-selection--multiple,
194
- .select2-container--bootstrap4.select2-container--focus .select2-selection--single {
183
+ .select2-container--bootstrap4.select2-container--focus
184
+ .select2-selection--multiple,
185
+ .select2-container--bootstrap4.select2-container--focus
186
+ .select2-selection--single {
195
187
  border: 1px solid $border;
196
188
  background: $input;
197
189
  }
@@ -211,7 +203,9 @@ p[data-f-id="pbf"] {
211
203
  background: none;
212
204
  }
213
205
 
214
- .select2-container--bootstrap4 .select2-search--dropdown .select2-search__field {
206
+ .select2-container--bootstrap4
207
+ .select2-search--dropdown
208
+ .select2-search__field {
215
209
  border-color: $border;
216
210
  }
217
211
 
@@ -272,20 +266,6 @@ p[data-f-id="pbf"] {
272
266
  }
273
267
  }
274
268
 
275
- .field_with_errors {
276
- label {
277
- color: $red;
278
- }
279
-
280
- input {
281
- border-color: $red !important;
282
- }
283
-
284
- & + .form-control-feedback {
285
- color: $red;
286
- }
287
- }
288
-
289
269
  .block-language {
290
270
  display: block;
291
271
  margin: 15px 0;
@@ -397,18 +377,18 @@ p[data-f-id="pbf"] {
397
377
  position: relative;
398
378
  height: 80px;
399
379
  width: 100%;
400
- transition: all ease .6s;
380
+ transition: all ease 0.6s;
401
381
  }
402
382
 
403
383
  .image-overlay {
404
- transition: all ease .6s;
384
+ transition: all ease 0.6s;
405
385
  position: absolute;
406
386
  width: 100%;
407
387
  height: 100%;
408
- background: rgba($primary, .0);
388
+ background: rgba($primary, 0);
409
389
 
410
390
  .icon-zoom-image {
411
- transition: all ease .6s;
391
+ transition: all ease 0.6s;
412
392
  position: absolute;
413
393
  top: 50%;
414
394
  left: 50%;
@@ -418,7 +398,7 @@ p[data-f-id="pbf"] {
418
398
  }
419
399
 
420
400
  &:hover {
421
- background: rgba($primary, .4);
401
+ background: rgba($primary, 0.4);
422
402
 
423
403
  .icon-zoom-image {
424
404
  opacity: 1;
@@ -442,6 +422,16 @@ p[data-f-id="pbf"] {
442
422
  color: $primary;
443
423
  }
444
424
 
425
+ .has-danger {
426
+ .form-control, input, select, textarea {
427
+ border-color: $error !important;
428
+ }
429
+
430
+ label, .form-control-feedback {
431
+ color: $error !important;
432
+ }
433
+ }
434
+
445
435
  .scroll-to-top {
446
436
  text-align: center;
447
437
  position: fixed;
@@ -589,10 +579,6 @@ p[data-f-id="pbf"] {
589
579
  display: flex;
590
580
  align-items: center;
591
581
 
592
- &:hover {
593
- background: #f9fafc;
594
- }
595
-
596
582
  &.active {
597
583
  color: $textColorHover;
598
584
  }
@@ -869,9 +855,10 @@ p[data-f-id="pbf"] {
869
855
  display: none;
870
856
  padding: 9px 15px;
871
857
 
872
- tr, a {
858
+ tr,
859
+ a {
873
860
  color: $textColor;
874
- transition: all .6s ease;
861
+ transition: all 0.6s ease;
875
862
  cursor: pointer;
876
863
 
877
864
  &.active {
@@ -1051,7 +1038,7 @@ p[data-f-id="pbf"] {
1051
1038
  border-color: rgba(121, 133, 166, 0.1) !important;
1052
1039
  margin-top: 1rem;
1053
1040
  background: #fff;
1054
- font-size: .9em;
1041
+ font-size: 0.9em;
1055
1042
 
1056
1043
  .fit {
1057
1044
  white-space: nowrap;
@@ -1085,8 +1072,12 @@ p[data-f-id="pbf"] {
1085
1072
  margin-top: 0.5rem;
1086
1073
  }
1087
1074
 
1088
- .select2-container--bootstrap4 .select2-selection--single .select2-selection__choice,
1089
- .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {
1075
+ .select2-container--bootstrap4
1076
+ .select2-selection--single
1077
+ .select2-selection__choice,
1078
+ .select2-container--bootstrap4
1079
+ .select2-selection--multiple
1080
+ .select2-selection__choice {
1090
1081
  display: flex;
1091
1082
  clear: both;
1092
1083
  }
@@ -1350,7 +1341,9 @@ p[data-f-id="pbf"] {
1350
1341
  height: 45px;
1351
1342
  }
1352
1343
 
1353
- .cookies-eu, .cookies-eu-button-holder, .cookies-eu-content-holder {
1344
+ .cookies-eu,
1345
+ .cookies-eu-button-holder,
1346
+ .cookies-eu-content-holder {
1354
1347
  display: flex;
1355
1348
  line-height: normal;
1356
1349
  }
@@ -1397,7 +1390,7 @@ p[data-f-id="pbf"] {
1397
1390
  }
1398
1391
 
1399
1392
  label {
1400
- font-size: .85em;
1393
+ font-size: 0.85em;
1401
1394
  color: $textColor;
1402
1395
  text-transform: uppercase;
1403
1396
  margin-bottom: 0.25rem;
@@ -1411,7 +1404,9 @@ p[data-f-id="pbf"] {
1411
1404
  a {
1412
1405
  color: $textColor;
1413
1406
 
1414
- &:hover, &:focus, &:active {
1407
+ &:hover,
1408
+ &:focus,
1409
+ &:active {
1415
1410
  color: $primary;
1416
1411
  }
1417
1412
  }
@@ -1439,7 +1434,7 @@ p[data-f-id="pbf"] {
1439
1434
  }
1440
1435
 
1441
1436
  .sub-title {
1442
- font-size: .9em;
1437
+ font-size: 0.9em;
1443
1438
  color: $textColor;
1444
1439
  }
1445
1440
 
@@ -9,9 +9,9 @@ module SlashAdmin
9
9
  before_action :handle_default
10
10
  before_action :nestable_config
11
11
  before_action :handle_default_params
12
- before_action :handle_assocations
12
+ before_action :handle_associations
13
13
 
14
- helper_method :list_params, :export_params, :create_params, :update_params, :show_params, :nested_params, :should_add_translatable?, :translatable_params, :tooltips
14
+ helper_method :list_params, :export_params, :create_params, :update_params, :show_params, :nested_params, :should_add_translatable?, :translatable_params, :available_locales, :tooltips
15
15
 
16
16
  def index
17
17
  authorize! :index, @model_class
@@ -386,7 +386,7 @@ module SlashAdmin
386
386
  end
387
387
 
388
388
  def handle_default_translations
389
- I18n.available_locales.reject { |key| key == :root }.each do |locale|
389
+ available_locales.reject { |key| key == :root }.each do |locale|
390
390
  translation = @model.translations.find_by_locale locale.to_s
391
391
  if translation.nil?
392
392
  @model.translations.build locale: locale
@@ -402,7 +402,11 @@ module SlashAdmin
402
402
  params[:filters] ||= []
403
403
  end
404
404
 
405
- def handle_assocations
405
+ def available_locales
406
+ SlashAdmin.configuration.available_locales
407
+ end
408
+
409
+ def handle_associations
406
410
  @belongs_to_fields = @model_class.reflect_on_all_associations(:belongs_to).map(&:name)
407
411
  @has_many_fields = @model_class.reflect_on_all_associations(:has_many).map(&:name)
408
412
  @has_one_fields = @model_class.reflect_on_all_associations(:has_one).map(&:name)
@@ -2,6 +2,8 @@
2
2
 
3
3
  module SlashAdmin
4
4
  module ApplicationHelper
5
+ include Pagy::Frontend
6
+
5
7
  def page_title(content)
6
8
  content_for :page_title, content
7
9
  end
@@ -75,7 +75,9 @@
75
75
  <% end %>
76
76
  </td>
77
77
  <% else %>
78
- <td class="<%= attr.to_s.parameterize.underscore.downcase %>"><%= render attr.keys.first.to_s, model: m %></td>
78
+ <td class="<%= attr.to_s.parameterize.underscore.downcase %>">
79
+ <%= render attr[attr.keys.first][:type].to_s, model: m, attr: attr.keys.first %>
80
+ </td>
79
81
  <% end %>
80
82
  <% else %>
81
83
  <% if m.send(attr).is_a?(TrueClass) || m.send(attr).is_a?(FalseClass) %>
@@ -1,15 +1,15 @@
1
1
  <% if should_add_translatable? %>
2
2
  <h3 class="translations"><%= t('slash_admin.view.translations') %></h3>
3
3
  <nav class="nav nav-tabs" id="language-tabs" role="tablist">
4
- <% I18n.available_locales.each do |locale| %>
5
- <a class="nav-item nav-link <%= I18n.available_locales.first == locale ? 'active' : '' %>" id="nav-language-<%= locale %>" data-toggle="tab" href="#language-<%= locale %>" role="tab" aria-controls="language-<%= locale %>">
4
+ <% available_locales.each do |locale| %>
5
+ <a class="nav-item nav-link <%= available_locales.first == locale ? 'active' : '' %>" id="nav-language-<%= locale %>" data-toggle="tab" href="#language-<%= locale %>" role="tab" aria-controls="language-<%= locale %>">
6
6
  <img src='<%= image_path("slash_admin/#{locale.to_s}.png") %>' style="margin-right: 5px; max-width: 25px;">
7
7
  </a>
8
8
  <% end %>
9
9
  </nav>
10
10
  <div class="tab-content">
11
- <% I18n.available_locales.each do |locale| %>
12
- <div class="tab-pane fade <%= I18n.available_locales.first == locale ? 'show active' : '' %>" id="language-<%= locale %>" role="tabpanel" aria-labelledby="language-<%= locale %>-tab">
11
+ <% available_locales.each do |locale| %>
12
+ <div class="tab-pane fade <%= available_locales.first == locale ? 'show active' : '' %>" id="language-<%= locale %>" role="tabpanel" aria-labelledby="language-<%= locale %>-tab">
13
13
  <%= f.globalize_fields_for locale do |g| %>
14
14
  <% translatable_params.each do |a| %>
15
15
  <%= render 'slash_admin/fields/form_group', f: g, a: a %>
@@ -0,0 +1 @@
1
+ <%= truncate(strip_tags(model.send(attr)), length: 50) %>
@@ -27,7 +27,7 @@
27
27
  </div>
28
28
  </div>
29
29
  <div class="col-lg-6 col-md-4 d-none d-sm-none d-md-flex ">
30
- <div class="container-fluid container-fluid-devise bckg-login" align="center" style="background: url(https://source.unsplash.com/1920x1080/?nature) no-repeat; background-size: cover;">
30
+ <div class="container-fluid container-fluid-devise bckg-login" align="center" style="background: url(https://source.unsplash.com/collection/827743/960x1080) no-repeat; background-size: cover;">
31
31
  </div>
32
32
  </div>
33
33
  </div>
@@ -10,8 +10,8 @@
10
10
  <div class="navbar-nav mr-auto mt-2 mt-lg-0">
11
11
  </div>
12
12
  <ul class="nav right-nav-fix">
13
- <li class="nav-item dropdown">
14
- <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
13
+ <li class="nav-item">
14
+ <a class="nav-link">
15
15
  <% if current_admin.avatar.present? %>
16
16
  <img src="<%= current_admin.avatar.url %>" class="rounded-circle"/>
17
17
  <% else %>
@@ -74,8 +74,8 @@
74
74
  <script type="text/javascript">
75
75
  $(function() {
76
76
  $(".clickable-row").click(function() {
77
- let href = $(this).data("href");
78
- let blank = $(this).data("blank");
77
+ var href = $(this).data("href");
78
+ var blank = $(this).data("blank");
79
79
 
80
80
  if (blank === true) {
81
81
  window.open = href;
@@ -8,6 +8,8 @@ module SlashAdmin
8
8
  def install
9
9
  template "install.erb",
10
10
  "app/helpers/slash_admin/menu_helper.rb"
11
+ template "initializer.rb",
12
+ "config/initializers/slash_admin.rb"
11
13
  end
12
14
  end
13
15
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ SlashAdmin.configure do |config|
4
+ # Do some config
5
+ # config.available_locales = I18n.available_locales
6
+ end
@@ -23,4 +23,20 @@ require "http_accept_language"
23
23
  require "batch_translation"
24
24
 
25
25
  module SlashAdmin
26
+ class << self
27
+ attr_accessor :configuration
28
+ end
29
+
30
+ def self.configure
31
+ self.configuration ||= Configuration.new
32
+ yield(configuration)
33
+ end
34
+
35
+ class Configuration
36
+ attr_accessor :available_locales
37
+
38
+ def initialize
39
+ @available_locales = I18n.available_locales
40
+ end
41
+ end
26
42
  end
@@ -1,9 +1,15 @@
1
+ require "pagy"
2
+ require "pagy/extras/bootstrap"
3
+ require "pagy/extras/i18n"
4
+ require "pagy/extras/array"
5
+
1
6
  module SlashAdmin
2
7
  class Engine < ::Rails::Engine
3
8
  isolate_namespace SlashAdmin
4
9
 
5
10
  initializer "slash_admin.assets.precompile" do |app|
6
- app.config.assets.precompile += %w[slash_admin/*]
11
+ app.config.assets.precompile += %w(slash_admin slash_admin_manifest.js)
12
+ app.config.assets.paths << Pagy.root.join("javascripts")
7
13
  end
8
14
  end
9
15
  end
@@ -1,3 +1,3 @@
1
1
  module SlashAdmin
2
- VERSION = "1.3.2"
2
+ VERSION = "1.4.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slash_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - KOVACS Nicolas
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-07 00:00:00.000000000 Z
11
+ date: 2020-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -342,6 +342,7 @@ files:
342
342
  - app/views/slash_admin/base/_data_show.html.erb
343
343
  - app/views/slash_admin/base/_filters.html.erb
344
344
  - app/views/slash_admin/base/_translatable_fields.html.erb
345
+ - app/views/slash_admin/base/_wysiwyg.html.erb
345
346
  - app/views/slash_admin/base/edit.html.erb
346
347
  - app/views/slash_admin/base/index.html.erb
347
348
  - app/views/slash_admin/base/index.xls.erb
@@ -389,7 +390,6 @@ files:
389
390
  - app/views/slash_admin/shared/_new_form_buttons.html.erb
390
391
  - app/views/slash_admin/shared/_sub_header.html.erb
391
392
  - app/views/slash_admin/shared/_tooltip.html.erb
392
- - config/initializers/pagy.rb
393
393
  - config/initializers/validators.rb
394
394
  - config/locales/en.yml
395
395
  - config/locales/fr.yml
@@ -399,6 +399,7 @@ files:
399
399
  - lib/generators/slash_admin/controllers/controllers_generator.rb
400
400
  - lib/generators/slash_admin/controllers/templates/controllers.erb
401
401
  - lib/generators/slash_admin/install/install_generator.rb
402
+ - lib/generators/slash_admin/install/templates/initializer.rb
402
403
  - lib/generators/slash_admin/install/templates/install.erb
403
404
  - lib/generators/slash_admin/override_admin/override_admin_generator.rb
404
405
  - lib/generators/slash_admin/override_admin/templates/admin.erb
@@ -440,7 +441,7 @@ homepage: https://github.com/nicovak/slash_admin
440
441
  licenses:
441
442
  - MIT
442
443
  metadata: {}
443
- post_install_message:
444
+ post_install_message:
444
445
  rdoc_options: []
445
446
  require_paths:
446
447
  - lib
@@ -456,7 +457,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
456
457
  version: '0'
457
458
  requirements: []
458
459
  rubygems_version: 3.1.2
459
- signing_key:
460
+ signing_key:
460
461
  specification_version: 4
461
462
  summary: A modern and overridable admin gem, just the rails way.
462
463
  test_files: []
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "pagy/extras/bootstrap"
4
- require "pagy/extras/i18n"
5
- require "pagy/extras/array"
6
- require "pagy/extras/searchkick"
7
-
8
- Rails.application.config.assets.paths << Pagy.root.join("javascripts")