awesome_admin_layout 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: d0b95e7a057d181985063308b2927ba1864942e4
4
- data.tar.gz: 1b3521038679f1da6fd005248a83fd1cb73517df
3
+ metadata.gz: a87bb0e26832f381231cda7d2feecbfd0291a4b3
4
+ data.tar.gz: 026e65ecdc919f9470c2d6ea83b5a38f23e8a323
5
5
  SHA512:
6
- metadata.gz: 55672011710af67346e2d12f50ae4c2dd842a66106c3b81d2e38425781b32ca8e313353e67c16ebbfb66b873b5b3863ece632a384054840dca794e7266db8360
7
- data.tar.gz: 80b8b6f75f2c5a4e4cad4dbc3eadf4eda0d28ea9aabe164d353d55b979d3c96d0725f561cab5d9855c30935f679ec00068446ae533f79783f2c6b115654f4541
6
+ metadata.gz: c024eda385110fc2be6c26b0ba245af9e190a99cbe7226238b342d99450f08c55e326f543b7d08f91dcd98594c1b85121a6728f8544d1bce33efa5b69fae1b1f
7
+ data.tar.gz: a65fbcf3394de53784fcfc1279f513a3b70aacd9531498365e3f9c2ce91fe592a87bd5840b16d6fcd1b606351ae295b82a6603193c09d2b3c0c76f9a525a4703
data/CHANGELOG.md CHANGED
@@ -1,8 +1,13 @@
1
- ## AwesomeAdminLayout 0.1.1 (June 08, 2015) ##
1
+ ## 0.1.2 (June 17, 2015) ##
2
+
3
+ * Implement the functionality for the brand image.
4
+
5
+
6
+ ## 0.1.1 (June 09, 2015) ##
2
7
 
3
8
  * Support Rails 3.2, 4.0 and 4.1.
4
9
 
5
10
 
6
- ## AwesomeAdminLayout 0.1.0 (June 08, 2015) ##
11
+ ## 0.1.0 (June 08, 2015) ##
7
12
 
8
13
  * Initialize this gem.
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # AwesomeAdminLayout
2
2
 
3
+ [![Build Status](https://img.shields.io/travis/appirits/awesome_admin_layout.svg?style=flat-square)](http://travis-ci.org/appirits/awesome_admin_layout)
4
+ [![Gem Version](https://img.shields.io/gem/v/awesome_admin_layout.svg?style=flat-square)](https://rubygems.org/gems/awesome_admin_layout)
5
+
3
6
  AwesomeAdminLayout provides a simple way to add admin panel layout to your application.
4
7
 
5
8
  ## Installation
@@ -11,12 +11,12 @@ $(document).ready(->
11
11
  #
12
12
  $navigation.on('click', 'li:not(.nested)', ->
13
13
  $navigation.find('.open').removeClass('open')
14
- $navigation.find('.expanded').removeClass('expanded')
14
+ $navigation.removeClass('expanded')
15
15
  )
16
16
 
17
17
  $navigation.on('click', 'li.nested', (event) ->
18
18
  $navigation.find('.open').removeClass('open')
19
- $(this).closest('ul').addClass('expanded')
19
+ $navigation.addClass('expanded')
20
20
  $(this).find('.awesome_admin_layout-nested-navigation').addClass('open')
21
21
  )
22
22
 
@@ -137,6 +137,16 @@ $awesome_admin_layout-notice-size: 10px !default;
137
137
 
138
138
  span {
139
139
  margin: 0 20px;
140
+
141
+ &.awesome_admin_layout-image {
142
+ margin-right: 1em;
143
+ position: relative;
144
+ top: -1px;
145
+ }
146
+
147
+ &.awesome_admin_layout-image + span {
148
+ margin-left: 0;
149
+ }
140
150
  }
141
151
 
142
152
  a:link, a:visited, a:hover, a:active {
@@ -182,6 +192,40 @@ $awesome_admin_layout-notice-size: 10px !default;
182
192
  }
183
193
 
184
194
  .awesome_admin_layout-navigation {
195
+ &.expanded {
196
+ background-color: $awesome_admin_layout-navigation-expanded-bg;
197
+
198
+ .awesome_admin_layout-navigation-brand .awesome_admin_layout-image + .awesome_admin_layout-text {
199
+ display: none;
200
+ }
201
+
202
+ & > * > ul > li {
203
+ & > .awesome_admin_layout-text,
204
+ & > a > .awesome_admin_layout-text {
205
+ display: none;
206
+ }
207
+
208
+ &.active > a {
209
+ background-color: transparent;
210
+ }
211
+ }
212
+
213
+ .awesome_admin_layout-notice,
214
+ .awesome_admin_layout-badge {
215
+ height: $awesome_admin_layout-notice-size / 2;
216
+ width: $awesome_admin_layout-notice-size / 2;
217
+ }
218
+
219
+ .awesome_admin_layout-badge {
220
+ padding: 0;
221
+ text-indent: -99999px;
222
+ }
223
+
224
+ li.nested i.fa-angle-right {
225
+ display: none;
226
+ }
227
+ }
228
+
185
229
  ul {
186
230
  @include awesome_admin_layout-display-flex;
187
231
  @include awesome_admin_layout-flex-direction(column);
@@ -194,33 +238,6 @@ $awesome_admin_layout-notice-size: 10px !default;
194
238
  bottom: 0;
195
239
  left: 0;
196
240
  right: 0;
197
-
198
- &.expanded {
199
- background-color: $awesome_admin_layout-navigation-expanded-bg;
200
-
201
- & > li > a > .awesome_admin_layout-text {
202
- display: none;
203
- }
204
-
205
- .awesome_admin_layout-notice,
206
- .awesome_admin_layout-badge {
207
- height: $awesome_admin_layout-notice-size / 2;
208
- width: $awesome_admin_layout-notice-size / 2;
209
- }
210
-
211
- .awesome_admin_layout-badge {
212
- padding: 0;
213
- text-indent: -99999px;
214
- }
215
-
216
- li.nested i.fa-angle-right {
217
- display: none;
218
- }
219
-
220
- & > li.active > a {
221
- background-color: transparent;
222
- }
223
- }
224
241
  }
225
242
 
226
243
  li {
@@ -9,11 +9,7 @@ module AwesomeAdminLayout
9
9
  def render_admin_layout(&block)
10
10
  <<-HTML
11
11
  <div id="awesome_admin_layout">
12
- <nav class="awesome_admin_layout-navigation">
13
- <div class="awesome_admin_layout-wrapper">
14
- #{AwesomeAdminLayout.script.to_html}
15
- </div>
16
- </nav>
12
+ #{AwesomeAdminLayout.script.to_html}
17
13
 
18
14
  <main class="awesome_admin_layout-main">
19
15
  <div class="awesome_admin_layout-navigation-toggle">
@@ -5,6 +5,8 @@ require 'awesome_admin_layout/navigation/flex_divider'
5
5
 
6
6
  module AwesomeAdminLayout
7
7
  class Navigation
8
+ attr_accessor :parent
9
+
8
10
  @@collection = {}
9
11
 
10
12
  class << self
@@ -30,7 +32,7 @@ module AwesomeAdminLayout
30
32
  end
31
33
 
32
34
  def item(name, &block)
33
- item = Item.new(name)
35
+ item = Item.new(name, parent: self)
34
36
  item.instance_eval(&block) if block_given?
35
37
  @tree << item
36
38
  end
@@ -43,12 +45,10 @@ module AwesomeAdminLayout
43
45
  @tree << FlexDivider.new
44
46
  end
45
47
 
46
- def nest(key)
47
- @tree << Navigation.find(key)
48
- end
49
-
50
48
  def to_s
51
- __convert
49
+ __wrapper do
50
+ "#{@brand}<ul>#{__convered_nodes}</ul>"
51
+ end
52
52
  end
53
53
 
54
54
  def __has_active_item?
@@ -65,12 +65,19 @@ module AwesomeAdminLayout
65
65
  @@collection[key] = { object: self, code: block }
66
66
  end
67
67
 
68
- def __convert
69
- "#{@brand}<ul#{' class="expanded"' if __has_active_nested_item?}>#{__convert_items}</ul>"
68
+ def __wrapper
69
+ return yield if parent
70
+ <<-WRAPPER
71
+ <nav class="awesome_admin_layout-navigation #{'expanded' if __has_active_nested_item?}">
72
+ <div class="awesome_admin_layout-wrapper">
73
+ #{yield}
74
+ </div>
75
+ </nav>
76
+ WRAPPER
70
77
  end
71
78
 
72
- def __convert_items
73
- @tree.map(&:to_s).join
79
+ def __convered_nodes
80
+ @tree.join
74
81
  end
75
82
 
76
83
  def __items
@@ -17,8 +17,12 @@ module AwesomeAdminLayout
17
17
  @item[:external_link] = link
18
18
  end
19
19
 
20
+ def image(src, option = {})
21
+ @item[:image] = option.merge(src: src)
22
+ end
23
+
20
24
  def to_s
21
- %Q{<div class="#{__css_class}">#{__link_to("#{__name}")}#{__enternal_link}</div>}
25
+ %Q{<div class="#{__css_class}">#{__link_to("#{__image}#{__name}")}#{__enternal_link}</div>}
22
26
  end
23
27
 
24
28
  private
@@ -28,7 +32,7 @@ module AwesomeAdminLayout
28
32
  end
29
33
 
30
34
  def __name
31
- "<span>#{@item[:name].is_a?(Proc) ? @item[:name].call : @item[:name]}</span>"
35
+ %Q{<span class="awesome_admin_layout-text">#{@item[:name].is_a?(Proc) ? @item[:name].call : @item[:name]}</span>}
32
36
  end
33
37
 
34
38
  def __link_to(name)
@@ -41,6 +45,18 @@ module AwesomeAdminLayout
41
45
  %Q{<a href="#{@item[:external_link]}" target="_blank" class="awesome_admin_layout-external-link">#{__external_link_icon}</a>}
42
46
  end
43
47
 
48
+ def __image
49
+ image_tag = __image_tag
50
+ return unless image_tag
51
+ %Q{<span class="awesome_admin_layout-image">#{image_tag}</span>}
52
+ end
53
+
54
+ def __image_tag
55
+ return unless @item[:image]
56
+ return ActionController::Base.helpers.image_tag(@item[:image][:src], @item[:image]) if defined? Rails
57
+ %Q{<img src="#{@item[:image][:src]}" />}
58
+ end
59
+
44
60
  def __external_link_icon
45
61
  '<i class="fa fa-external-link"></i>'
46
62
  end
@@ -1,8 +1,11 @@
1
1
  module AwesomeAdminLayout
2
2
  class Navigation
3
3
  class Item
4
- def initialize(name = nil)
4
+ attr_reader :parent
5
+
6
+ def initialize(name = nil, options = {})
5
7
  @item = { name: name }
8
+ @parent = options[:parent]
6
9
  end
7
10
 
8
11
  def name(name = nil, &block)
@@ -27,6 +30,7 @@ module AwesomeAdminLayout
27
30
 
28
31
  def nest(key)
29
32
  @item[:nest] = Navigation.find(key)
33
+ @item[:nest].parent = parent
30
34
  end
31
35
 
32
36
  def to_s
@@ -24,6 +24,7 @@ namespace :awesome_admin_layout do
24
24
  end
25
25
 
26
26
  task :push => :build do
27
+ sh 'git push'
27
28
  sh "gem push pkg/#{gem}"
28
29
  end
29
30
 
@@ -1,3 +1,3 @@
1
1
  module AwesomeAdminLayout
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awesome_admin_layout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - YOSHIDA Hiroki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-09 00:00:00.000000000 Z
11
+ date: 2015-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slim