arctic_admin 4.1.0 → 4.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/arctic_admin/main.js +93 -40
- data/app/assets/stylesheets/arctic_admin/_base.scss +0 -1
- data/app/assets/stylesheets/arctic_admin/components/_toggle.scss +74 -0
- data/app/assets/stylesheets/arctic_admin/layouts/_header.scss +3 -3
- data/app/assets/stylesheets/arctic_admin/layouts/_sidebar.scss +2 -2
- data/app/assets/stylesheets/arctic_admin/mixins/_buttons_mixins.scss +1 -1
- data/app/assets/stylesheets/arctic_admin/mixins/_prefix_mixins.scss +1 -1
- data/app/assets/stylesheets/arctic_admin/pages/_index.scss +2 -2
- data/app/assets/stylesheets/arctic_admin/variables/_colors.scss +2 -3
- data/app/assets/stylesheets/arctic_admin/variables/_icons.scss +17 -0
- data/app/assets/stylesheets/arctic_admin/variables/_variables.scss +2 -1
- data/lib/arctic_admin/version.rb +1 -1
- metadata +9 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f73a9054b378863472ff6eef1be63d4978b111987637d2c77b7a88923a080f4a
|
4
|
+
data.tar.gz: 19ade82526d8627180e2701846ad2103fd646853a93ae62dc4f1690b2277202b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ddbb102c83bfca015e42eefcb56e28729dc0e5c60118aa8a39bf1206bab182208342bab0d0897e44a9e28755879e7f3a76ee15508ba2db94b66b5896050d47a
|
7
|
+
data.tar.gz: 77f1245f8e5f38516678d88b4dbb937f43d8a7e51e1293fd80f743805bda216bbd61aa3a133cc3957871c56a8aab19b87bdc4283eff6b25b69ecb13d3571792d
|
@@ -1,46 +1,68 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
}
|
11
|
-
})
|
1
|
+
// right filter sidebar toggle
|
2
|
+
function sidebar() {
|
3
|
+
return document.querySelector('#sidebar')
|
4
|
+
}
|
5
|
+
function sidebarToggle(event) {
|
6
|
+
const insideSection = document.querySelector('#filters_sidebar_section')
|
7
|
+
|
8
|
+
if (!(event.target === insideSection || insideSection.contains(event.target)) && event.target.className != "select2-selection__choice__remove") {
|
9
|
+
sidebar().classList.toggle('sidebar_open')
|
12
10
|
}
|
11
|
+
}
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
13
|
+
// left menu sidebar toggle with menu button
|
14
|
+
function menuButton() {
|
15
|
+
return document.querySelector('#utility_nav')
|
16
|
+
}
|
17
|
+
function menu() {
|
18
|
+
return document.querySelector('#tabs')
|
19
|
+
}
|
20
|
+
function menuToggle(event) {
|
21
|
+
const currentUser = document.querySelector('#current_user')
|
22
|
+
const logout = document.querySelector('#logout')
|
23
|
+
const forbiddenLinks = event.target === logout ||
|
24
|
+
logout.contains(event.target) ||
|
25
|
+
event.target === currentUser ||
|
26
|
+
currentUser.contains(event.target)
|
27
|
+
if (!forbiddenLinks) {
|
28
|
+
menu().classList.toggle('tabs_open')
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
// left menu sidebar close on any click outside
|
33
|
+
function menuClose(event) {
|
34
|
+
const forbiddenLinks = event.target === menu ||
|
35
|
+
menu().contains(event.target) ||
|
36
|
+
event.target === menuButton() ||
|
37
|
+
menuButton().contains(event.target)
|
38
|
+
if (menu().classList.contains('tabs_open') && !forbiddenLinks) {
|
39
|
+
menu().classList.remove('tabs_open')
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
// nested menu items toggle
|
44
|
+
function nestedMenuItems() {
|
45
|
+
return document.querySelectorAll('#tabs .has_nested')
|
46
|
+
}
|
47
|
+
|
48
|
+
// add event listeners
|
49
|
+
function addListeners() {
|
50
|
+
|
51
|
+
// right filter sidebar toggle
|
52
|
+
if (sidebar()) {
|
53
|
+
sidebar().addEventListener('click', sidebarToggle)
|
54
|
+
}
|
55
|
+
|
56
|
+
// left menu sidebar toggle with menu button
|
57
|
+
if (menuButton()) {
|
58
|
+
menuButton().addEventListener('click', menuToggle)
|
59
|
+
}
|
60
|
+
|
61
|
+
// left menu sidebar close on any click outside
|
62
|
+
document.body.addEventListener('click', menuClose)
|
40
63
|
|
41
|
-
//
|
42
|
-
|
43
|
-
nestedMenuItems.forEach(
|
64
|
+
// nested menu items toggle
|
65
|
+
nestedMenuItems().forEach(
|
44
66
|
(nestedMenuItem) => {
|
45
67
|
nestedMenuItem.addEventListener('click', (e) => {
|
46
68
|
e.stopPropagation()
|
@@ -48,5 +70,36 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
48
70
|
})
|
49
71
|
}
|
50
72
|
)
|
73
|
+
}
|
74
|
+
|
75
|
+
// remove all previous eventListeners
|
76
|
+
function removeListeners() {
|
77
|
+
|
78
|
+
// right filter sidebar toggle
|
79
|
+
if (sidebar()) {
|
80
|
+
sidebar().removeEventListener('click', sidebarToggle)
|
81
|
+
}
|
82
|
+
|
83
|
+
// left menu sidebar toggle with menu button
|
84
|
+
menuButton().removeEventListener('click', menuToggle)
|
85
|
+
|
86
|
+
// left menu sidebar close on any click outside
|
87
|
+
document.body.removeEventListener('click', menuClose)
|
88
|
+
|
89
|
+
// nested menu items toggle
|
90
|
+
nestedMenuItems().forEach(
|
91
|
+
(nestedMenuItem) => {
|
92
|
+
nestedMenuItem.removeEventListener('click', (e) => {
|
93
|
+
e.stopPropagation()
|
94
|
+
nestedMenuItem.classList.toggle('open')
|
95
|
+
})
|
96
|
+
}
|
97
|
+
)
|
98
|
+
}
|
99
|
+
|
100
|
+
document.addEventListener('DOMContentLoaded', addListeners)
|
51
101
|
|
102
|
+
document.addEventListener('turbolinks:load', () => {
|
103
|
+
removeListeners()
|
104
|
+
addListeners()
|
52
105
|
})
|
@@ -0,0 +1,74 @@
|
|
1
|
+
$toggle-width: 40px !default;
|
2
|
+
$toggle-height: 20px !default;
|
3
|
+
$toggle-offset: 3px !default;
|
4
|
+
|
5
|
+
$toggle-outer-default: #ddd !default;
|
6
|
+
$toggle-outer-active: $primary-color !default;
|
7
|
+
$toggle-inner-default: #fff !default;
|
8
|
+
$toggle-inner-active: #fff !default;
|
9
|
+
|
10
|
+
$toggle-transition: 200ms ease-out !default;
|
11
|
+
|
12
|
+
.toggle-bool-switches-container {
|
13
|
+
|
14
|
+
text-align: left;
|
15
|
+
|
16
|
+
.toggle-bool-switch {
|
17
|
+
// reset style
|
18
|
+
background-image: none;
|
19
|
+
box-shadow: none;
|
20
|
+
//
|
21
|
+
|
22
|
+
cursor: pointer;
|
23
|
+
|
24
|
+
position: relative;
|
25
|
+
display: inline-flex;
|
26
|
+
align-items: center;
|
27
|
+
width: $toggle-width;
|
28
|
+
height: $toggle-height;
|
29
|
+
background-color: $toggle-outer-default;
|
30
|
+
border-radius: 100vw;
|
31
|
+
cursor: pointer;
|
32
|
+
transition: $toggle-transition;
|
33
|
+
|
34
|
+
&::before {
|
35
|
+
// reset style
|
36
|
+
height: auto;
|
37
|
+
width: auto;
|
38
|
+
background-image: none;
|
39
|
+
//
|
40
|
+
|
41
|
+
|
42
|
+
content: "";
|
43
|
+
position: absolute;
|
44
|
+
top: $toggle-offset;
|
45
|
+
left: $toggle-offset;
|
46
|
+
bottom: $toggle-offset;
|
47
|
+
|
48
|
+
aspect-ratio: 1 / 1;
|
49
|
+
|
50
|
+
background-color: $toggle-inner-default;
|
51
|
+
border-radius: 50%;
|
52
|
+
box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.05);
|
53
|
+
transition: $toggle-transition;
|
54
|
+
}
|
55
|
+
|
56
|
+
&.on {
|
57
|
+
// reset style
|
58
|
+
background-image: none;
|
59
|
+
//
|
60
|
+
background: $primary-color;
|
61
|
+
|
62
|
+
&::before {
|
63
|
+
// reset style
|
64
|
+
left: $toggle-offset;
|
65
|
+
//
|
66
|
+
|
67
|
+
background-color: $toggle-inner-active;
|
68
|
+
transform: translateX(
|
69
|
+
calc($toggle-width - $toggle-height)
|
70
|
+
);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
@@ -69,7 +69,7 @@ body.active_admin.logged_in {
|
|
69
69
|
border-bottom: 1px solid $header-border-color;
|
70
70
|
|
71
71
|
&:before {
|
72
|
-
@include icon(
|
72
|
+
@include icon($icon-menu);
|
73
73
|
|
74
74
|
display: inline;
|
75
75
|
visibility: visible;
|
@@ -125,7 +125,7 @@ body.active_admin.logged_in {
|
|
125
125
|
display: inline-block;
|
126
126
|
|
127
127
|
&:before {
|
128
|
-
@include icon(
|
128
|
+
@include icon($icon-user);
|
129
129
|
|
130
130
|
display: inline;
|
131
131
|
visibility: visible;
|
@@ -164,7 +164,7 @@ body.active_admin.logged_in {
|
|
164
164
|
display: block;
|
165
165
|
|
166
166
|
&:before {
|
167
|
-
@include icon(
|
167
|
+
@include icon($icon-logout);
|
168
168
|
|
169
169
|
display: inline;
|
170
170
|
visibility: visible;
|
@@ -56,7 +56,7 @@
|
|
56
56
|
position: relative;
|
57
57
|
|
58
58
|
&:after {
|
59
|
-
@include icon(
|
59
|
+
@include icon($icon-down);
|
60
60
|
display: inline;
|
61
61
|
position: absolute;
|
62
62
|
top: 50%;
|
@@ -97,7 +97,7 @@
|
|
97
97
|
position: relative;
|
98
98
|
|
99
99
|
&:after {
|
100
|
-
@include icon(
|
100
|
+
@include icon($icon-up);
|
101
101
|
}
|
102
102
|
}
|
103
103
|
|
@@ -72,7 +72,7 @@ body.index {
|
|
72
72
|
position: relative;
|
73
73
|
|
74
74
|
&:after {
|
75
|
-
@include icon(
|
75
|
+
@include icon($icon-sort);
|
76
76
|
font-size: 12px;
|
77
77
|
position: absolute;
|
78
78
|
top: 50%;
|
@@ -139,7 +139,7 @@ body.index {
|
|
139
139
|
@include box-shadow(-1px 0 4px 0 rgba(0,0,0,.04));
|
140
140
|
border-top-left-radius: $border-radius;
|
141
141
|
border-bottom-left-radius: $border-radius;
|
142
|
-
@include icon(
|
142
|
+
@include icon($icon-filter);
|
143
143
|
font-size: 20px;
|
144
144
|
padding: 15px 10px;
|
145
145
|
}
|
@@ -19,8 +19,7 @@ $status-tag-background-color: #cacaca !default;
|
|
19
19
|
$status-tag-background-valid-color: $success !default;
|
20
20
|
$status-tag-background-error-color: $error !default;
|
21
21
|
|
22
|
-
$border-color: #e4eaec;
|
23
|
-
|
22
|
+
$border-color: #e4eaec !default;
|
24
23
|
|
25
24
|
// body
|
26
25
|
$body-background: #eee !default;
|
@@ -46,4 +45,4 @@ $text-color-important: #526069 !default;
|
|
46
45
|
|
47
46
|
$box-shadow: 0 0 4px 0 rgba(0,0,0,0.1) !default;
|
48
47
|
|
49
|
-
$primary-color: $blue !default;
|
48
|
+
$primary-color: $blue !default;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// you can customise any icons
|
2
|
+
// you need to use unicode of the icon font
|
3
|
+
// the unicode of fontawesome can be found here : https://fontawesome.com/
|
4
|
+
|
5
|
+
$font-icon: 'Font Awesome 6 Free', 'Font Awesome 6 Pro' !default;
|
6
|
+
|
7
|
+
$icon-user: "\f007" !default;
|
8
|
+
$icon-logout: "\f2f5" !default;
|
9
|
+
|
10
|
+
$icon-menu: "\f0c9" !default;
|
11
|
+
|
12
|
+
$icon-down: "\f0d7" !default;
|
13
|
+
$icon-up: "\f0d8" !default;
|
14
|
+
|
15
|
+
$icon-sort: "\f0dc" !default;
|
16
|
+
$icon-sort-down: "\f0dd" !default;
|
17
|
+
$icon-filter: "\f0b0" !default;
|
data/lib/arctic_admin/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arctic_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1
|
4
|
+
version: 4.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clément Prod'homme
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -64,14 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '6.0'
|
68
68
|
type: :runtime
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '6.0'
|
75
75
|
description: A responsive theme for Active Admin
|
76
76
|
email:
|
77
77
|
executables: []
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- app/assets/stylesheets/arctic_admin/components/_status_tag.scss
|
119
119
|
- app/assets/stylesheets/arctic_admin/components/_tables.scss
|
120
120
|
- app/assets/stylesheets/arctic_admin/components/_tabs.scss
|
121
|
+
- app/assets/stylesheets/arctic_admin/components/_toggle.scss
|
121
122
|
- app/assets/stylesheets/arctic_admin/layouts/_filter.scss
|
122
123
|
- app/assets/stylesheets/arctic_admin/layouts/_footer.scss
|
123
124
|
- app/assets/stylesheets/arctic_admin/layouts/_header.scss
|
@@ -134,6 +135,7 @@ files:
|
|
134
135
|
- app/assets/stylesheets/arctic_admin/pages/_login.scss
|
135
136
|
- app/assets/stylesheets/arctic_admin/pages/_show.scss
|
136
137
|
- app/assets/stylesheets/arctic_admin/variables/_colors.scss
|
138
|
+
- app/assets/stylesheets/arctic_admin/variables/_icons.scss
|
137
139
|
- app/assets/stylesheets/arctic_admin/variables/_media_queries.scss
|
138
140
|
- app/assets/stylesheets/arctic_admin/variables/_size.scss
|
139
141
|
- app/assets/stylesheets/arctic_admin/variables/_variables.scss
|
@@ -142,7 +144,9 @@ files:
|
|
142
144
|
homepage: https://github.com/cprodhomme/arctic_admin
|
143
145
|
licenses:
|
144
146
|
- MIT
|
145
|
-
metadata:
|
147
|
+
metadata:
|
148
|
+
source_code_uri: https://github.com/cprodhomme/arctic_admin
|
149
|
+
changelog_uri: https://github.com/cprodhomme/arctic_admin/releases
|
146
150
|
post_install_message:
|
147
151
|
rdoc_options: []
|
148
152
|
require_paths:
|