awesome_admin_layout 0.1.1 → 0.1.2

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 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