arctic_admin 4.1.0 → 4.2.1
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/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:
|