slash_admin 1.3.2 → 1.3.3

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: b42c98abab9d671f4d925ba48fa5c94c0fe6a55c155f12acb911523c5c8aaa86
4
+ data.tar.gz: 66357a010404330066abcc1414d5e6c4a1f6a36ef27dce5debd0f03cf48c4472
5
5
  SHA512:
6
- metadata.gz: c02ac33b7adeeb9fb6dfe8b9986ff253b66fee5dc23674587eb27db2ff16c5997dfa2ac14e578f56e5d3b0a0410f56594a93b37be586be1aa0584ee40b3b1682
7
- data.tar.gz: c4153fff71a6d0fe535ddeb0992feed99388a31a73b661de066139f32e75247998d4f21fcbfcf05ca222b57c181474bd7f32793f351f95dc42779841a43f0621
6
+ metadata.gz: e60105aa9b1bea203ab1e47b2300b0ed8cc4cfb89bdc33155ea9e5ee40eb45405544d3d1f57983a5defc4354528ad91b37f0915d51882ce3dd87ec138894bc4e
7
+ data.tar.gz: 91a2b1f78f5943e4e950927d342bfd0808e7ee74ac0becc820463a9a92734df89d1b8fc667dd672db09b5d0a9259068d7da9c2a78f297923c067d494a0c133c0
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 administrate/application.css
90
+ //= link administrate/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
@@ -1,37 +1,20 @@
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 "codemirror/codemirror";
14
+ @import "codemirror/theme/relax-seti";
15
+ @import "codemirror/lint/lint";
16
+ @import "colors";
17
+ @import "alert";
35
18
 
36
19
  $pagination-padding-y: 0.4rem !default;
37
20
  $pagination-border-width: 0 !default;
@@ -155,7 +138,8 @@ p[data-f-id="pbf"] {
155
138
  }
156
139
 
157
140
  .select2-container--bootstrap4 .select2-results__option--highlighted,
158
- .select2-container--bootstrap4 .select2-results__option--highlighted.select2-results__option[aria-selected=true] {
141
+ .select2-container--bootstrap4
142
+ .select2-results__option--highlighted.select2-results__option[aria-selected="true"] {
159
143
  background-color: $primary;
160
144
  color: white;
161
145
  }
@@ -178,20 +162,27 @@ p[data-f-id="pbf"] {
178
162
  background: $input;
179
163
  }
180
164
 
181
- .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {
165
+ .select2-container--bootstrap4
166
+ .select2-selection--multiple
167
+ .select2-selection__choice {
182
168
  word-break: break-all;
183
169
  background: white;
184
170
  }
185
171
 
186
172
  .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] {
173
+ .select2-container
174
+ .select2-results__option--highlighted.select2-results__option[aria-selected="true"],
175
+ .select2-container--bootstrap4
176
+ .select2-dropdown
177
+ .select2-results__option[aria-selected="true"] {
189
178
  background-color: $primary;
190
179
  color: white;
191
180
  }
192
181
 
193
- .select2-container--bootstrap4.select2-container--focus .select2-selection--multiple,
194
- .select2-container--bootstrap4.select2-container--focus .select2-selection--single {
182
+ .select2-container--bootstrap4.select2-container--focus
183
+ .select2-selection--multiple,
184
+ .select2-container--bootstrap4.select2-container--focus
185
+ .select2-selection--single {
195
186
  border: 1px solid $border;
196
187
  background: $input;
197
188
  }
@@ -211,7 +202,9 @@ p[data-f-id="pbf"] {
211
202
  background: none;
212
203
  }
213
204
 
214
- .select2-container--bootstrap4 .select2-search--dropdown .select2-search__field {
205
+ .select2-container--bootstrap4
206
+ .select2-search--dropdown
207
+ .select2-search__field {
215
208
  border-color: $border;
216
209
  }
217
210
 
@@ -397,18 +390,18 @@ p[data-f-id="pbf"] {
397
390
  position: relative;
398
391
  height: 80px;
399
392
  width: 100%;
400
- transition: all ease .6s;
393
+ transition: all ease 0.6s;
401
394
  }
402
395
 
403
396
  .image-overlay {
404
- transition: all ease .6s;
397
+ transition: all ease 0.6s;
405
398
  position: absolute;
406
399
  width: 100%;
407
400
  height: 100%;
408
- background: rgba($primary, .0);
401
+ background: rgba($primary, 0);
409
402
 
410
403
  .icon-zoom-image {
411
- transition: all ease .6s;
404
+ transition: all ease 0.6s;
412
405
  position: absolute;
413
406
  top: 50%;
414
407
  left: 50%;
@@ -418,7 +411,7 @@ p[data-f-id="pbf"] {
418
411
  }
419
412
 
420
413
  &:hover {
421
- background: rgba($primary, .4);
414
+ background: rgba($primary, 0.4);
422
415
 
423
416
  .icon-zoom-image {
424
417
  opacity: 1;
@@ -589,10 +582,6 @@ p[data-f-id="pbf"] {
589
582
  display: flex;
590
583
  align-items: center;
591
584
 
592
- &:hover {
593
- background: #f9fafc;
594
- }
595
-
596
585
  &.active {
597
586
  color: $textColorHover;
598
587
  }
@@ -869,9 +858,10 @@ p[data-f-id="pbf"] {
869
858
  display: none;
870
859
  padding: 9px 15px;
871
860
 
872
- tr, a {
861
+ tr,
862
+ a {
873
863
  color: $textColor;
874
- transition: all .6s ease;
864
+ transition: all 0.6s ease;
875
865
  cursor: pointer;
876
866
 
877
867
  &.active {
@@ -1051,7 +1041,7 @@ p[data-f-id="pbf"] {
1051
1041
  border-color: rgba(121, 133, 166, 0.1) !important;
1052
1042
  margin-top: 1rem;
1053
1043
  background: #fff;
1054
- font-size: .9em;
1044
+ font-size: 0.9em;
1055
1045
 
1056
1046
  .fit {
1057
1047
  white-space: nowrap;
@@ -1085,8 +1075,12 @@ p[data-f-id="pbf"] {
1085
1075
  margin-top: 0.5rem;
1086
1076
  }
1087
1077
 
1088
- .select2-container--bootstrap4 .select2-selection--single .select2-selection__choice,
1089
- .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice {
1078
+ .select2-container--bootstrap4
1079
+ .select2-selection--single
1080
+ .select2-selection__choice,
1081
+ .select2-container--bootstrap4
1082
+ .select2-selection--multiple
1083
+ .select2-selection__choice {
1090
1084
  display: flex;
1091
1085
  clear: both;
1092
1086
  }
@@ -1350,7 +1344,9 @@ p[data-f-id="pbf"] {
1350
1344
  height: 45px;
1351
1345
  }
1352
1346
 
1353
- .cookies-eu, .cookies-eu-button-holder, .cookies-eu-content-holder {
1347
+ .cookies-eu,
1348
+ .cookies-eu-button-holder,
1349
+ .cookies-eu-content-holder {
1354
1350
  display: flex;
1355
1351
  line-height: normal;
1356
1352
  }
@@ -1397,7 +1393,7 @@ p[data-f-id="pbf"] {
1397
1393
  }
1398
1394
 
1399
1395
  label {
1400
- font-size: .85em;
1396
+ font-size: 0.85em;
1401
1397
  color: $textColor;
1402
1398
  text-transform: uppercase;
1403
1399
  margin-bottom: 0.25rem;
@@ -1411,7 +1407,9 @@ p[data-f-id="pbf"] {
1411
1407
  a {
1412
1408
  color: $textColor;
1413
1409
 
1414
- &:hover, &:focus, &:active {
1410
+ &:hover,
1411
+ &:focus,
1412
+ &:active {
1415
1413
  color: $primary;
1416
1414
  }
1417
1415
  }
@@ -1439,7 +1437,7 @@ p[data-f-id="pbf"] {
1439
1437
  }
1440
1438
 
1441
1439
  .sub-title {
1442
- font-size: .9em;
1440
+ font-size: 0.9em;
1443
1441
  color: $textColor;
1444
1442
  }
1445
1443
 
@@ -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
@@ -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 %>
@@ -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.3.3"
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.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - KOVACS Nicolas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-07 00:00:00.000000000 Z
11
+ date: 2020-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -389,7 +389,6 @@ files:
389
389
  - app/views/slash_admin/shared/_new_form_buttons.html.erb
390
390
  - app/views/slash_admin/shared/_sub_header.html.erb
391
391
  - app/views/slash_admin/shared/_tooltip.html.erb
392
- - config/initializers/pagy.rb
393
392
  - config/initializers/validators.rb
394
393
  - config/locales/en.yml
395
394
  - config/locales/fr.yml
@@ -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")