active_admin_sidebar 0.1.0.rc2 → 0.1.0.rc3
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/README.md +76 -0
- data/app/assets/javascripts/active_admin_sidebar.coffee +23 -0
- data/app/assets/stylesheets/active_admin_sidebar.scss +87 -0
- data/app/assets/stylesheets/active_admin_sidebar_pure_icons.scss +66 -0
- data/lib/active_admin_sidebar.rb +3 -6
- data/lib/active_admin_sidebar/activeadmin_views_pages_base.rb +25 -18
- data/lib/active_admin_sidebar/positions.rb +21 -3
- data/lib/active_admin_sidebar/version.rb +1 -1
- data/screen/sidebar.jpg +0 -0
- metadata +9 -5
- data/README.rdoc +0 -53
- data/app/assets/stylesheets/active_admin_sidebar.css.scss +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5c5c51fa6d1bbcd8febffeb2249ae313ff93eea
|
4
|
+
data.tar.gz: 1c3c5cfe4e565da150e8cddb6ca2703f6249142d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d3b5c8f5720733dc53cd7e5f79e1564c2027d6f5437a2f06a99ec840ed432299484dab06c71863482c1e7366dd6655088a645ed6d188f9c9546a3f09f1f7419
|
7
|
+
data.tar.gz: 1c25cff3122cdd24d2837f56abd060e4aa9d78c60775aef5ae38b470b4bab6df50cc2895a6cb2eb04dd3cd21b5cb27be2bdf5f22bffd5dde814b10bc5d711f00
|
data/README.md
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# ActiveAdminSidebar
|
2
|
+
|
3
|
+
Provides ability to manipulate sidebar position with activeadmin (tested with activeadmin ~> 1.0.0.pre)
|
4
|
+
|
5
|
+
|
6
|
+
Add including of css file
|
7
|
+
|
8
|
+
```scss
|
9
|
+
@import "active_admin_sidebar";
|
10
|
+
```
|
11
|
+
|
12
|
+
to the
|
13
|
+
```
|
14
|
+
app/assets/stylesheets/active_admin.css.scss
|
15
|
+
```
|
16
|
+
|
17
|
+
And including of coffee file (optional, need only for collapsed sidebar)
|
18
|
+
|
19
|
+
```js
|
20
|
+
//= require active_admin_sidebar
|
21
|
+
```
|
22
|
+
|
23
|
+
to the
|
24
|
+
```
|
25
|
+
app/assets/javascripts/active_admin.js
|
26
|
+
```
|
27
|
+
|
28
|
+
Changing sidebar position dynamically with before_filter
|
29
|
+
```ruby
|
30
|
+
# app/admin/posts.rb
|
31
|
+
ActiveAdmin.register Post do
|
32
|
+
before_filter :left_sidebar!, only: [:show]
|
33
|
+
end
|
34
|
+
|
35
|
+
# app/admin/comments.rb
|
36
|
+
ActiveAdmin.register Comment do
|
37
|
+
before_filter :right_sidebar!
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
|
42
|
+
Moving sidebar to the left within all resource (config/initializers/active_admin.rb)
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
# == Controller Filters
|
46
|
+
#
|
47
|
+
# You can add before, after and around filters to all of your
|
48
|
+
# Active Admin resources from here.
|
49
|
+
#
|
50
|
+
config.before_filter do
|
51
|
+
left_sidebar! if respond_to?(:left_sidebar!)
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
55
|
+
Also you can use sidebar collapsing. It will add css icon in title of first sidebar will save current state in session
|
56
|
+
```ruby
|
57
|
+
left_sidebar!(collapsed: true)
|
58
|
+
```
|
59
|
+
You can override button color according to your color theme:
|
60
|
+
```css
|
61
|
+
body.active_admin {
|
62
|
+
#active_admin_content.left_sidebar, #active_admin_content.collapsed_sidebar {
|
63
|
+
.collapse_btn, .uncollapse_btn {
|
64
|
+
background-color: #767270;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
```
|
69
|
+
|
70
|
+
Example
|
71
|
+
|
72
|
+
http://oi45.tinypic.com/1zx1a3r.png
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
$(document).ready ->
|
2
|
+
if $('body').hasClass('index') && ($('#active_admin_content').hasClass('collapsible_sidebar'))
|
3
|
+
|
4
|
+
$aa_content = $('#active_admin_content')
|
5
|
+
|
6
|
+
$aa_content.find('.sidebar_section:first>h3').append(
|
7
|
+
'<span class="collapse_btn icono-caret-left" title="Hide sidebar"></span>')
|
8
|
+
|
9
|
+
$aa_content.prepend(
|
10
|
+
'<span class="uncollapse_btn icono-caret-right" title="Show sidebar"></span>')
|
11
|
+
|
12
|
+
set_collapsed_sidebar = (value) ->
|
13
|
+
$.getJSON(this.href, {collapsed_sidebar: value})
|
14
|
+
|
15
|
+
$aa_content.on 'click', '.collapse_btn, .uncollapse_btn', (e) ->
|
16
|
+
if !$aa_content.hasClass('collapsed_sidebar')
|
17
|
+
set_collapsed_sidebar(true)
|
18
|
+
$aa_content.removeClass('left_sidebar')
|
19
|
+
$aa_content.addClass('collapsed_sidebar')
|
20
|
+
else
|
21
|
+
set_collapsed_sidebar(false)
|
22
|
+
$aa_content.removeClass('collapsed_sidebar')
|
23
|
+
$aa_content.addClass('left_sidebar')
|
@@ -0,0 +1,87 @@
|
|
1
|
+
@import "active_admin_sidebar_pure_icons";
|
2
|
+
|
3
|
+
body.active_admin {
|
4
|
+
#active_admin_content.left_sidebar, #active_admin_content.collapsed_sidebar {
|
5
|
+
#sidebar {
|
6
|
+
display: block;
|
7
|
+
margin-left: 0;
|
8
|
+
}
|
9
|
+
|
10
|
+
.paginated_collection_contents {
|
11
|
+
clear: none;
|
12
|
+
float: left;
|
13
|
+
width: 100%;
|
14
|
+
}
|
15
|
+
|
16
|
+
.blank_slate_container {
|
17
|
+
clear: none;
|
18
|
+
}
|
19
|
+
|
20
|
+
.columns {
|
21
|
+
clear: none;
|
22
|
+
}
|
23
|
+
|
24
|
+
#main_content_wrapper {
|
25
|
+
float: inherit;
|
26
|
+
margin-left: 298px;
|
27
|
+
width: auto;
|
28
|
+
#main_content {
|
29
|
+
float: inherit;
|
30
|
+
margin: 0;
|
31
|
+
.tabs .comments {
|
32
|
+
.active_admin_comment {
|
33
|
+
clear: none;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
}
|
39
|
+
|
40
|
+
.table_tools:after {
|
41
|
+
clear: none;
|
42
|
+
padding-bottom: 16px;
|
43
|
+
}
|
44
|
+
|
45
|
+
.collapse_btn, .uncollapse_btn {
|
46
|
+
background-color: #767270;
|
47
|
+
border-radius: 5px;
|
48
|
+
color: #ffffff;
|
49
|
+
cursor: pointer;
|
50
|
+
}
|
51
|
+
|
52
|
+
.collapse_btn {
|
53
|
+
clear: both;
|
54
|
+
display: block;
|
55
|
+
float: right;
|
56
|
+
}
|
57
|
+
|
58
|
+
.uncollapse_btn {
|
59
|
+
display: none;
|
60
|
+
margin-top: 5px;
|
61
|
+
position: absolute;
|
62
|
+
}
|
63
|
+
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
body.active_admin #active_admin_content.collapsed_sidebar {
|
68
|
+
|
69
|
+
#main_content_wrapper {
|
70
|
+
margin-left: 30px;
|
71
|
+
}
|
72
|
+
|
73
|
+
#sidebar {
|
74
|
+
display: none;
|
75
|
+
}
|
76
|
+
|
77
|
+
.uncollapse_btn {
|
78
|
+
display: block;
|
79
|
+
}
|
80
|
+
|
81
|
+
}
|
82
|
+
|
83
|
+
body.active_admin.index #active_admin_content.with_sidebar.collapsible_sidebar {
|
84
|
+
#main_content_wrapper #main_content {
|
85
|
+
margin-right: 0;
|
86
|
+
}
|
87
|
+
}
|
@@ -0,0 +1,66 @@
|
|
1
|
+
/* .icono-caret-left */
|
2
|
+
.icono-caret-right, .icono-caret-left {
|
3
|
+
height: 19px;
|
4
|
+
width: 19px;
|
5
|
+
}
|
6
|
+
|
7
|
+
.icono-caret-right:before,
|
8
|
+
.icono-caret-right:after,
|
9
|
+
.icono-caret-left:before,
|
10
|
+
.icono-caret-left:after {
|
11
|
+
bottom: 1px;
|
12
|
+
box-shadow: inset 0 0 0 32px;
|
13
|
+
height: 2px;
|
14
|
+
margin: auto 0;
|
15
|
+
position: absolute;
|
16
|
+
right: 6px;
|
17
|
+
transform-origin: right;
|
18
|
+
width: 8px;
|
19
|
+
}
|
20
|
+
|
21
|
+
.icono-caret-right:before, .icono-caret-left:before {
|
22
|
+
top: 2px;
|
23
|
+
-moz-transform: rotate(45deg);
|
24
|
+
-ms-transform: rotate(45deg);
|
25
|
+
-o-transform: rotate(45deg);
|
26
|
+
-webkit-transform: rotate(45deg);
|
27
|
+
transform: rotate(45deg);
|
28
|
+
}
|
29
|
+
|
30
|
+
.icono-caret-right:after, .icono-caret-left:after {
|
31
|
+
top: 0;
|
32
|
+
-moz-transform: rotate(-45deg);
|
33
|
+
-ms-transform: rotate(-45deg);
|
34
|
+
-o-transform: rotate(-45deg);
|
35
|
+
-webkit-transform: rotate(-45deg);
|
36
|
+
transform: rotate(-45deg);
|
37
|
+
}
|
38
|
+
|
39
|
+
.icono-caret-left {
|
40
|
+
-moz-transform: rotate(180deg);
|
41
|
+
-ms-transform: rotate(180deg);
|
42
|
+
-o-transform: rotate(180deg);
|
43
|
+
-webkit-transform: rotate(180deg);
|
44
|
+
transform: rotate(180deg);
|
45
|
+
}
|
46
|
+
|
47
|
+
[class*="icono-"] {
|
48
|
+
direction: ltr;
|
49
|
+
display: inline-block;
|
50
|
+
font-style: normal;
|
51
|
+
position: relative;
|
52
|
+
text-align: left;
|
53
|
+
text-indent: -9999px;
|
54
|
+
vertical-align: middle;
|
55
|
+
}
|
56
|
+
|
57
|
+
[class*="icono-"]:before,
|
58
|
+
[class*="icono-"]:after {
|
59
|
+
content: "";
|
60
|
+
pointer-events: none;
|
61
|
+
}
|
62
|
+
|
63
|
+
[class*="icono-"],
|
64
|
+
[class*="icono-"] * {
|
65
|
+
box-sizing: border-box;
|
66
|
+
}
|
data/lib/active_admin_sidebar.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
1
|
+
require "active_admin"
|
2
2
|
require "active_admin_sidebar/version"
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "active_admin_sidebar/activeadmin_views_pages_base"
|
4
|
+
require "active_admin_sidebar/positions"
|
5
5
|
|
6
6
|
module ActiveAdminSidebar
|
7
7
|
module Rails
|
@@ -12,6 +12,3 @@ module ActiveAdminSidebar
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
|
-
|
17
|
-
|
@@ -2,35 +2,42 @@ class ActiveAdmin::Views::Pages::Base < Arbre::HTML::Document
|
|
2
2
|
|
3
3
|
def build_page_content
|
4
4
|
build_flash_messages
|
5
|
-
|
6
|
-
|
7
|
-
if skip_sidebar?
|
8
|
-
classes << 'without_sidebar'
|
9
|
-
else
|
10
|
-
classes << 'with_sidebar'
|
11
|
-
classes << 'left_sidebar' if left_sidebar?
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
div :id => "active_admin_content", :class => classes do
|
17
|
-
|
5
|
+
div id: "active_admin_content", class: main_content_classes do
|
18
6
|
build_sidebar unless skip_sidebar? || right_sidebar?
|
19
7
|
build_main_content_wrapper
|
20
8
|
build_sidebar unless skip_sidebar? || left_sidebar?
|
21
|
-
|
22
9
|
end
|
23
10
|
end
|
24
11
|
|
25
|
-
|
26
12
|
def left_sidebar?
|
27
|
-
assigns[:
|
13
|
+
assigns[:sidebar_options].try!(:[], :position) == :left
|
14
|
+
end
|
15
|
+
|
16
|
+
def collapsible_sidebar?
|
17
|
+
left_sidebar? && !!assigns[:sidebar_options].try!(:[], :collapsed)
|
18
|
+
end
|
19
|
+
|
20
|
+
def sidebar_is_collapsed?
|
21
|
+
!!assigns[:sidebar_options].try!(:[], :is_collapsed)
|
28
22
|
end
|
29
23
|
|
30
24
|
def right_sidebar?
|
31
25
|
!left_sidebar?
|
32
26
|
end
|
33
27
|
|
28
|
+
def main_content_classes
|
29
|
+
classes = Arbre::HTML::ClassList.new
|
30
|
+
if skip_sidebar?
|
31
|
+
classes << "without_sidebar"
|
32
|
+
else
|
33
|
+
classes << "with_sidebar"
|
34
|
+
classes << "left_sidebar" if left_sidebar?
|
35
|
+
if collapsible_sidebar?
|
36
|
+
classes << "collapsible_sidebar"
|
37
|
+
classes << "collapsed_sidebar" if sidebar_is_collapsed?
|
38
|
+
end
|
39
|
+
end
|
40
|
+
classes
|
41
|
+
end
|
34
42
|
|
35
|
-
|
36
|
-
end
|
43
|
+
end
|
@@ -1,10 +1,28 @@
|
|
1
1
|
module ActiveAdminSidebar
|
2
2
|
module Positions
|
3
|
-
def left_sidebar!
|
4
|
-
|
3
|
+
def left_sidebar!(options = {})
|
4
|
+
@sidebar_options = { position: :left }
|
5
|
+
if options.fetch(:collapsed, false)
|
6
|
+
collapsed_sidebar
|
7
|
+
@sidebar_options.merge!(
|
8
|
+
is_collapsed: session[:collapsed_sidebar],
|
9
|
+
collapsed: true
|
10
|
+
)
|
11
|
+
end
|
5
12
|
end
|
13
|
+
|
6
14
|
def right_sidebar!
|
7
|
-
|
15
|
+
@sidebar_options = { position: :right }
|
16
|
+
end
|
17
|
+
|
18
|
+
def collapsed_sidebar
|
19
|
+
if request.xhr?
|
20
|
+
if params[:collapsed_sidebar].present?
|
21
|
+
collapsed = ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include? params[:collapsed_sidebar]
|
22
|
+
session[:collapsed_sidebar] = collapsed
|
23
|
+
render json: { collapsed_sidebar: collapsed } and return
|
24
|
+
end
|
25
|
+
end
|
8
26
|
end
|
9
27
|
|
10
28
|
end
|
data/screen/sidebar.jpg
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_admin_sidebar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.rc3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeadmin
|
@@ -33,14 +33,17 @@ extra_rdoc_files: []
|
|
33
33
|
files:
|
34
34
|
- Gemfile
|
35
35
|
- LICENSE
|
36
|
-
- README.
|
36
|
+
- README.md
|
37
37
|
- Rakefile
|
38
38
|
- active_admin_sidebar.gemspec
|
39
|
-
- app/assets/
|
39
|
+
- app/assets/javascripts/active_admin_sidebar.coffee
|
40
|
+
- app/assets/stylesheets/active_admin_sidebar.scss
|
41
|
+
- app/assets/stylesheets/active_admin_sidebar_pure_icons.scss
|
40
42
|
- lib/active_admin_sidebar.rb
|
41
43
|
- lib/active_admin_sidebar/activeadmin_views_pages_base.rb
|
42
44
|
- lib/active_admin_sidebar/positions.rb
|
43
45
|
- lib/active_admin_sidebar/version.rb
|
46
|
+
- screen/sidebar.jpg
|
44
47
|
homepage: https://github.com/Fivell/active_admin_sidebar
|
45
48
|
licenses: []
|
46
49
|
metadata: {}
|
@@ -60,8 +63,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
60
63
|
version: 1.3.1
|
61
64
|
requirements: []
|
62
65
|
rubyforge_project:
|
63
|
-
rubygems_version: 2.
|
66
|
+
rubygems_version: 2.5.0
|
64
67
|
signing_key:
|
65
68
|
specification_version: 4
|
66
69
|
summary: active_admin_sidebar gem
|
67
70
|
test_files: []
|
71
|
+
has_rdoc:
|
data/README.rdoc
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
active_admin_sidebar
|
2
|
-
====================
|
3
|
-
|
4
|
-
easy change sidebar position with activeadmin (tested with activeadmin ~> 1.0.0.pre)
|
5
|
-
|
6
|
-
|
7
|
-
Add including of css file
|
8
|
-
|
9
|
-
@import "active_admin_sidebar";
|
10
|
-
|
11
|
-
to the app/assets/stylesheets/active_admin.css.scss
|
12
|
-
|
13
|
-
|
14
|
-
Changing sidebar position dynamically with before_filter
|
15
|
-
|
16
|
-
# app/admin/posts.rb
|
17
|
-
ActiveAdmin.register Post do
|
18
|
-
before_filter :left_sidebar!, only: [:show]
|
19
|
-
end
|
20
|
-
|
21
|
-
# app/admin/comments.rb
|
22
|
-
ActiveAdmin.register Comment do
|
23
|
-
before_filter :right_sidebar!
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
Moving sidebar to the left within all resource (config/initializers/active_admin.rb)
|
29
|
-
|
30
|
-
|
31
|
-
# == Controller Filters
|
32
|
-
#
|
33
|
-
# You can add before, after and around filters to all of your
|
34
|
-
# Active Admin resources from here.
|
35
|
-
#
|
36
|
-
config.before_filter do
|
37
|
-
left_sidebar!
|
38
|
-
end
|
39
|
-
|
40
|
-
Disabling using sidebar layout on dashboards (if you setup sidebar position with initializer)
|
41
|
-
|
42
|
-
ActiveAdmin.register_page "Dashboard" do
|
43
|
-
controller {skip_before_filter :left_sidebar!}
|
44
|
-
#.....
|
45
|
-
end
|
46
|
-
|
47
|
-
Example
|
48
|
-
|
49
|
-
http://oi45.tinypic.com/1zx1a3r.png
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
@@ -1,42 +0,0 @@
|
|
1
|
-
body.active_admin #active_admin_content.left_sidebar {
|
2
|
-
|
3
|
-
#sidebar{
|
4
|
-
margin-left:0;
|
5
|
-
}
|
6
|
-
|
7
|
-
.paginated_collection_contents{
|
8
|
-
clear: none;
|
9
|
-
float: left;
|
10
|
-
width: 100%;
|
11
|
-
}
|
12
|
-
|
13
|
-
.blank_slate_container{
|
14
|
-
clear:none;
|
15
|
-
}
|
16
|
-
|
17
|
-
.columns {
|
18
|
-
clear: none;
|
19
|
-
}
|
20
|
-
|
21
|
-
#main_content_wrapper{
|
22
|
-
float:inherit;
|
23
|
-
width:auto;
|
24
|
-
margin-left: 298px;
|
25
|
-
#main_content{
|
26
|
-
margin:0;
|
27
|
-
float: inherit;
|
28
|
-
.tabs .comments {
|
29
|
-
.active_admin_comment {
|
30
|
-
clear: none;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
}
|
34
|
-
|
35
|
-
}
|
36
|
-
|
37
|
-
.table_tools:after {
|
38
|
-
clear: none;
|
39
|
-
padding-bottom: 16px;
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|