rails_admin-treeview 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +47 -0
  5. data/Rakefile +2 -0
  6. data/app/helpers/rails_admin_treeview_helper.rb +41 -0
  7. data/app/views/layouts/rails_admin/_navigation.html.haml +20 -0
  8. data/lib/generators/rails_admin/treeview_generator.rb +15 -0
  9. data/lib/rails_admin-treeview.rb +14 -0
  10. data/lib/rails_admin-treeview/config/model.rb +9 -0
  11. data/lib/rails_admin-treeview/version.rb +5 -0
  12. data/rails_admin-treeview.gemspec +18 -0
  13. data/vendor/assets/images/jquery_treeview/ajax-loader.gif +0 -0
  14. data/vendor/assets/images/jquery_treeview/file.gif +0 -0
  15. data/vendor/assets/images/jquery_treeview/folder-closed.gif +0 -0
  16. data/vendor/assets/images/jquery_treeview/folder.gif +0 -0
  17. data/vendor/assets/images/jquery_treeview/minus.gif +0 -0
  18. data/vendor/assets/images/jquery_treeview/plus.gif +0 -0
  19. data/vendor/assets/images/jquery_treeview/treeview-black-line.gif +0 -0
  20. data/vendor/assets/images/jquery_treeview/treeview-black.gif +0 -0
  21. data/vendor/assets/images/jquery_treeview/treeview-default-line.gif +0 -0
  22. data/vendor/assets/images/jquery_treeview/treeview-default.gif +0 -0
  23. data/vendor/assets/images/jquery_treeview/treeview-famfamfam-line.gif +0 -0
  24. data/vendor/assets/images/jquery_treeview/treeview-famfamfam.gif +0 -0
  25. data/vendor/assets/images/jquery_treeview/treeview-gray-line.gif +0 -0
  26. data/vendor/assets/images/jquery_treeview/treeview-gray.gif +0 -0
  27. data/vendor/assets/images/jquery_treeview/treeview-red-line.gif +0 -0
  28. data/vendor/assets/images/jquery_treeview/treeview-red.gif +0 -0
  29. data/vendor/assets/javascripts/jquery.treeview.js +256 -0
  30. data/vendor/assets/stylesheets/jquery.treeview.css +74 -0
  31. metadata +86 -0
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ .rvmrc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rails_admin-treeview.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Nick Recobra
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,47 @@
1
+ # RailsAdmin::Treeview
2
+
3
+ Tree-style navigation for RailsAdmin.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'rails_admin-treeview'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Be sure to have [rails_admin](https://github.com/sferik/rails_admin) gem installed.
16
+
17
+ ## Usage
18
+
19
+ Configure your model to use Treeview in rails_admin.rb:
20
+
21
+ RailsAdmin.config do |config|
22
+ config.model Category do
23
+ treeview true
24
+ end
25
+ end
26
+
27
+ Note that your model should implement these methods to use Treeview:
28
+ * `roots` class method that returns all root elements;
29
+ * `children` instance method that returns all of the object's child items.
30
+
31
+ Tree could be rendered expanded or collapsed. In order to be able to
32
+ change this, copy and edit
33
+ `app/views/layouts/rails_admin/_navigation.html.haml` by running a
34
+ generator:
35
+
36
+ rails g rails_admin:treeview
37
+
38
+ Now you could pass true of false to the `treeview` helper to render tree
39
+ expanded or collapsed.
40
+
41
+ ## Contributing
42
+
43
+ 1. Fork it
44
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
45
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
46
+ 4. Push to the branch (`git push origin my-new-feature`)
47
+ 5. Create new Pull Request
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,41 @@
1
+ # encoding: utf-8
2
+ module RailsAdminTreeviewHelper
3
+ def treeview open = false
4
+ if @model_config && @model_config.treeview
5
+ raise "Your #{@abstract_model.model} model must implement `roots` class method and `children` instance method to use treeview." if
6
+ !@abstract_model.model.respond_to?(:roots) || !@abstract_model.model.public_instance_methods.include?("children")
7
+ res = ''
8
+ res << javascript_include_tag("jquery.treeview.js")
9
+ res << stylesheet_link_tag("jquery.treeview.css")
10
+ res << "<hr>"
11
+ res << "<h3>%s</h3>" % @model_config.label_plural
12
+ res << (content_tag :ul, :id => "treeview" do
13
+ @abstract_model.model.roots.map do |root|
14
+ treeview_draw(root, open)
15
+ end.join.html_safe
16
+ end)
17
+ res << javascript_tag('$(document).ready(function(){$("#treeview").treeview({persist: "location"});});')
18
+ res.html_safe
19
+ end
20
+ end
21
+
22
+ def treeview_draw node, open
23
+ content_tag :li, :class => open ? nil : "closed" do
24
+ res = ''
25
+ name = RailsAdmin.config(node.class).with(:object => node).object_label
26
+ res << content_tag(:span, link_to_unless_current(name, { :action => "edit",
27
+ :id => node.id,
28
+ :host => request.host,
29
+ :port => request.port == 80 ? nil : request.port,
30
+ :protocol => request.scheme }))
31
+ if node.children.size > 0
32
+ res << (content_tag :ul do
33
+ node.children.map do |child|
34
+ treeview_draw(child, open)
35
+ end.join.html_safe
36
+ end)
37
+ end
38
+ res.html_safe
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,20 @@
1
+ - models = RailsAdmin::Config.visible_models.select { |model| authorized?(:index, model.abstract_model) }
2
+ - root_models = models.select { |model| model.parent == :root }
3
+
4
+ %ul#nav.navigation
5
+ %li{:class => ("active" if @page_type == "dashboard")}
6
+ = link_to(t("admin.dashboard.name"), dashboard_path)
7
+ - root_models.each do |model|
8
+ - children = [model] + models.select { |m| m.parent.to_s == model.abstract_model.model.to_s }
9
+ - tab_titles = children.map { |child| child.abstract_model.pretty_name.downcase }
10
+ - active = tab_titles.include? @page_type
11
+ %li{:class => "#{"active" if active} #{"more" unless children.empty?}"}
12
+ - if children.size == 1
13
+ = link_to(model.label_plural, index_path(:model_name => model.abstract_model.to_param))
14
+ - else
15
+ = model.navigation_label ? t(model.navigation_label, :default => model.navigation_label) : model.label_plural
16
+ %ul
17
+ - children.each_with_index do |child, index|
18
+ %li{:class => ("active" if @page_type == tab_titles[index])}
19
+ = link_to(child.label_plural, index_path(:model_name => child.abstract_model.to_param))
20
+ = treeview true
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+ module RailsAdmin
3
+ class TreeviewGenerator < Rails::Generators::Base
4
+ class << self
5
+ def source_root
6
+ File.expand_path("../../../../app", __FILE__)
7
+ end
8
+ end
9
+
10
+ def copy_views
11
+ copy_file "views/layouts/rails_admin/_navigation.html.haml", "app/views/layouts/rails_admin/_navigation.html.haml"
12
+ end
13
+ end
14
+ end
15
+
@@ -0,0 +1,14 @@
1
+ require "rails_admin-treeview/version"
2
+ require "rails_admin"
3
+ require "rails_admin-treeview/config/model"
4
+
5
+ module RailsAdmin
6
+ module Treeview
7
+ class Engine < Rails::Engine
8
+ initializer 'rails_admin-treeview.helper' do |app|
9
+ ActionView::Base.send :include, RailsAdminTreeviewHelper
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -0,0 +1,9 @@
1
+ module RailsAdmin
2
+ module Config
3
+ class Model < RailsAdmin::Config::Base
4
+ register_instance_option(:treeview) do
5
+ false
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ module RailsAdmin
2
+ module Treeview
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/rails_admin-treeview/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Nick Recobra"]
6
+ gem.email = ["oruenu@gmail.com"]
7
+ gem.description = %q{Tree-style sidebar navigation}
8
+ gem.summary = %q{Implements treeview via jquery.treeview for models}
9
+ gem.homepage = "http://github.com/oruen/rails_admin-treeview"
10
+
11
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ gem.name = "rails_admin-treeview"
15
+ gem.require_paths = ["lib"]
16
+ gem.add_dependency "jquery-rails", ">= 1.0"
17
+ gem.version = RailsAdmin::Treeview::VERSION
18
+ end
@@ -0,0 +1,256 @@
1
+ /*
2
+ * Treeview 1.5pre - jQuery plugin to hide and show branches of a tree
3
+ *
4
+ * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
5
+ * http://docs.jquery.com/Plugins/Treeview
6
+ *
7
+ * Copyright (c) 2007 Jörn Zaefferer
8
+ *
9
+ * Dual licensed under the MIT and GPL licenses:
10
+ * http://www.opensource.org/licenses/mit-license.php
11
+ * http://www.gnu.org/licenses/gpl.html
12
+ *
13
+ * Revision: $Id: jquery.treeview.js 5759 2008-07-01 07:50:28Z joern.zaefferer $
14
+ *
15
+ */
16
+
17
+ ;(function($) {
18
+
19
+ // TODO rewrite as a widget, removing all the extra plugins
20
+ $.extend($.fn, {
21
+ swapClass: function(c1, c2) {
22
+ var c1Elements = this.filter('.' + c1);
23
+ this.filter('.' + c2).removeClass(c2).addClass(c1);
24
+ c1Elements.removeClass(c1).addClass(c2);
25
+ return this;
26
+ },
27
+ replaceClass: function(c1, c2) {
28
+ return this.filter('.' + c1).removeClass(c1).addClass(c2).end();
29
+ },
30
+ hoverClass: function(className) {
31
+ className = className || "hover";
32
+ return this.hover(function() {
33
+ $(this).addClass(className);
34
+ }, function() {
35
+ $(this).removeClass(className);
36
+ });
37
+ },
38
+ heightToggle: function(animated, callback) {
39
+ animated ?
40
+ this.animate({ height: "toggle" }, animated, callback) :
41
+ this.each(function(){
42
+ jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
43
+ if(callback)
44
+ callback.apply(this, arguments);
45
+ });
46
+ },
47
+ heightHide: function(animated, callback) {
48
+ if (animated) {
49
+ this.animate({ height: "hide" }, animated, callback);
50
+ } else {
51
+ this.hide();
52
+ if (callback)
53
+ this.each(callback);
54
+ }
55
+ },
56
+ prepareBranches: function(settings) {
57
+ if (!settings.prerendered) {
58
+ // mark last tree items
59
+ this.filter(":last-child:not(ul)").addClass(CLASSES.last);
60
+ // collapse whole tree, or only those marked as closed, anyway except those marked as open
61
+ this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide();
62
+ }
63
+ // return all items with sublists
64
+ return this.filter(":has(>ul)");
65
+ },
66
+ applyClasses: function(settings, toggler) {
67
+ // TODO use event delegation
68
+ this.filter(":has(>ul):not(:has(>a))").find(">span").unbind("click.treeview").bind("click.treeview", function(event) {
69
+ // don't handle click events on children, eg. checkboxes
70
+ if ( this == event.target )
71
+ toggler.apply($(this).next());
72
+ }).add( $("a", this) ).hoverClass();
73
+
74
+ if (!settings.prerendered) {
75
+ // handle closed ones first
76
+ this.filter(":has(>ul:hidden)")
77
+ .addClass(CLASSES.expandable)
78
+ .replaceClass(CLASSES.last, CLASSES.lastExpandable);
79
+
80
+ // handle open ones
81
+ this.not(":has(>ul:hidden)")
82
+ .addClass(CLASSES.collapsable)
83
+ .replaceClass(CLASSES.last, CLASSES.lastCollapsable);
84
+
85
+ // create hitarea if not present
86
+ var hitarea = this.find("div." + CLASSES.hitarea);
87
+ if (!hitarea.length)
88
+ hitarea = this.prepend("<div class=\"" + CLASSES.hitarea + "\"/>").find("div." + CLASSES.hitarea);
89
+ hitarea.removeClass().addClass(CLASSES.hitarea).each(function() {
90
+ var classes = "";
91
+ $.each($(this).parent().attr("class").split(" "), function() {
92
+ classes += this + "-hitarea ";
93
+ });
94
+ $(this).addClass( classes );
95
+ })
96
+ }
97
+
98
+ // apply event to hitarea
99
+ this.find("div." + CLASSES.hitarea).click( toggler );
100
+ },
101
+ treeview: function(settings) {
102
+
103
+ settings = $.extend({
104
+ cookieId: "treeview"
105
+ }, settings);
106
+
107
+ if ( settings.toggle ) {
108
+ var callback = settings.toggle;
109
+ settings.toggle = function() {
110
+ return callback.apply($(this).parent()[0], arguments);
111
+ };
112
+ }
113
+
114
+ // factory for treecontroller
115
+ function treeController(tree, control) {
116
+ // factory for click handlers
117
+ function handler(filter) {
118
+ return function() {
119
+ // reuse toggle event handler, applying the elements to toggle
120
+ // start searching for all hitareas
121
+ toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() {
122
+ // for plain toggle, no filter is provided, otherwise we need to check the parent element
123
+ return filter ? $(this).parent("." + filter).length : true;
124
+ }) );
125
+ return false;
126
+ };
127
+ }
128
+ // click on first element to collapse tree
129
+ $("a:eq(0)", control).click( handler(CLASSES.collapsable) );
130
+ // click on second to expand tree
131
+ $("a:eq(1)", control).click( handler(CLASSES.expandable) );
132
+ // click on third to toggle tree
133
+ $("a:eq(2)", control).click( handler() );
134
+ }
135
+
136
+ // handle toggle event
137
+ function toggler() {
138
+ $(this)
139
+ .parent()
140
+ // swap classes for hitarea
141
+ .find(">.hitarea")
142
+ .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
143
+ .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
144
+ .end()
145
+ // swap classes for parent li
146
+ .swapClass( CLASSES.collapsable, CLASSES.expandable )
147
+ .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
148
+ // find child lists
149
+ .find( ">ul" )
150
+ // toggle them
151
+ .heightToggle( settings.animated, settings.toggle );
152
+ if ( settings.unique ) {
153
+ $(this).parent()
154
+ .siblings()
155
+ // swap classes for hitarea
156
+ .find(">.hitarea")
157
+ .replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
158
+ .replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
159
+ .end()
160
+ .replaceClass( CLASSES.collapsable, CLASSES.expandable )
161
+ .replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
162
+ .find( ">ul" )
163
+ .heightHide( settings.animated, settings.toggle );
164
+ }
165
+ }
166
+ this.data("toggler", toggler);
167
+
168
+ function serialize() {
169
+ function binary(arg) {
170
+ return arg ? 1 : 0;
171
+ }
172
+ var data = [];
173
+ branches.each(function(i, e) {
174
+ data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0;
175
+ });
176
+ $.cookie(settings.cookieId, data.join(""), settings.cookieOptions );
177
+ }
178
+
179
+ function deserialize() {
180
+ var stored = $.cookie(settings.cookieId);
181
+ if ( stored ) {
182
+ var data = stored.split("");
183
+ branches.each(function(i, e) {
184
+ $(e).find(">ul")[ parseInt(data[i]) ? "show" : "hide" ]();
185
+ });
186
+ }
187
+ }
188
+
189
+ // add treeview class to activate styles
190
+ this.addClass("treeview");
191
+
192
+ // prepare branches and find all tree items with child lists
193
+ var branches = this.find("li").prepareBranches(settings);
194
+
195
+ switch(settings.persist) {
196
+ case "cookie":
197
+ var toggleCallback = settings.toggle;
198
+ settings.toggle = function() {
199
+ serialize();
200
+ if (toggleCallback) {
201
+ toggleCallback.apply(this, arguments);
202
+ }
203
+ };
204
+ deserialize();
205
+ break;
206
+ case "location":
207
+ var current = this.find("a").filter(function() {
208
+ return this.href.toLowerCase() == location.href.toLowerCase();
209
+ });
210
+ if ( current.length ) {
211
+ // TODO update the open/closed classes
212
+ var items = current.addClass("selected").parents("ul, li").add( current.next() ).show();
213
+ if (settings.prerendered) {
214
+ // if prerendered is on, replicate the basic class swapping
215
+ items.filter("li")
216
+ .swapClass( CLASSES.collapsable, CLASSES.expandable )
217
+ .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
218
+ .find(">.hitarea")
219
+ .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
220
+ .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea );
221
+ }
222
+ }
223
+ break;
224
+ }
225
+
226
+ branches.applyClasses(settings, toggler);
227
+
228
+ // if control option is set, create the treecontroller and show it
229
+ if ( settings.control ) {
230
+ treeController(this, settings.control);
231
+ $(settings.control).show();
232
+ }
233
+
234
+ return this;
235
+ }
236
+ });
237
+
238
+ // classes used by the plugin
239
+ // need to be styled via external stylesheet, see first example
240
+ $.treeview = {};
241
+ var CLASSES = ($.treeview.classes = {
242
+ open: "open",
243
+ closed: "closed",
244
+ expandable: "expandable",
245
+ expandableHitarea: "expandable-hitarea",
246
+ lastExpandableHitarea: "lastExpandable-hitarea",
247
+ collapsable: "collapsable",
248
+ collapsableHitarea: "collapsable-hitarea",
249
+ lastCollapsableHitarea: "lastCollapsable-hitarea",
250
+ lastCollapsable: "lastCollapsable",
251
+ lastExpandable: "lastExpandable",
252
+ last: "last",
253
+ hitarea: "hitarea"
254
+ });
255
+
256
+ })(jQuery);
@@ -0,0 +1,74 @@
1
+ .treeview, .treeview ul {
2
+ padding: 0;
3
+ margin: 0;
4
+ list-style: none;
5
+ }
6
+
7
+ .treeview ul {
8
+ /*background-color: white;*/
9
+ margin-top: 4px;
10
+ }
11
+
12
+ .treeview .hitarea {
13
+ background: url(/assets/jquery_treeview/treeview-default.gif) -64px -25px no-repeat;
14
+ height: 16px;
15
+ width: 16px;
16
+ margin-left: -16px;
17
+ float: left;
18
+ cursor: pointer;
19
+ }
20
+ /* fix for IE6 */
21
+ * html .hitarea {
22
+ display: inline;
23
+ float:none;
24
+ }
25
+
26
+ .treeview li {
27
+ margin: 0;
28
+ padding: 3px 0pt 3px 16px;
29
+ }
30
+
31
+ .treeview a.selected {
32
+ background-color: #eee;
33
+ }
34
+
35
+ #treecontrol { margin: 1em 0; display: none; }
36
+
37
+ .treeview .hover { color: red; cursor: pointer; }
38
+
39
+ .treeview li { background: url(/assets/jquery_treeview/treeview-default-line.gif) 0 0 no-repeat; }
40
+ .treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
41
+
42
+ .treeview .expandable-hitarea { background-position: -80px -3px; }
43
+
44
+ .treeview li.last { background-position: 0 -1766px }
45
+ .treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(/assets/jquery_treeview/treeview-default.gif); }
46
+ .treeview li.lastCollapsable { background-position: 0 -111px }
47
+ .treeview li.lastExpandable { background-position: -32px -67px }
48
+
49
+ .treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }
50
+
51
+ .treeview-red li { background-image: url(/assets/jquery_treeview/treeview-red-line.gif); }
52
+ .treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(/assets/jquery_treeview/treeview-red.gif); }
53
+
54
+ .treeview-black li { background-image: url(/assets/jquery_treeview/treeview-black-line.gif); }
55
+ .treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(/assets/jquery_treeview/treeview-black.gif); }
56
+
57
+ .treeview-gray li { background-image: url(/assets/jquery_treeview/treeview-gray-line.gif); }
58
+ .treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(/assets/jquery_treeview/treeview-gray.gif); }
59
+
60
+ .treeview-famfamfam li { background-image: url(/assets/jquery_treeview/treeview-famfamfam-line.gif); }
61
+ .treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(/assets/jquery_treeview/treeview-famfamfam.gif); }
62
+
63
+ .treeview .placeholder {
64
+ background: url(/assets/jquery_treeview/ajax-loader.gif) 0 0 no-repeat;
65
+ height: 16px;
66
+ width: 16px;
67
+ display: block;
68
+ }
69
+
70
+ .filetree li { padding: 3px 0 2px 16px; }
71
+ .filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
72
+ .filetree span.folder { background: url(/assets/jquery_treeview/folder.gif) 0 0 no-repeat; }
73
+ .filetree li.expandable span.folder { background: url(/assets/jquery_treeview/folder-closed.gif) 0 0 no-repeat; }
74
+ .filetree span.file { background: url(/assets/jquery_treeview/file.gif) 0 0 no-repeat; }
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_admin-treeview
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nick Recobra
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-09 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: jquery-rails
16
+ requirement: &2153707780 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '1.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2153707780
25
+ description: Tree-style sidebar navigation
26
+ email:
27
+ - oruenu@gmail.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files: []
31
+ files:
32
+ - .gitignore
33
+ - Gemfile
34
+ - LICENSE
35
+ - README.md
36
+ - Rakefile
37
+ - app/helpers/rails_admin_treeview_helper.rb
38
+ - app/views/layouts/rails_admin/_navigation.html.haml
39
+ - lib/generators/rails_admin/treeview_generator.rb
40
+ - lib/rails_admin-treeview.rb
41
+ - lib/rails_admin-treeview/config/model.rb
42
+ - lib/rails_admin-treeview/version.rb
43
+ - rails_admin-treeview.gemspec
44
+ - vendor/assets/images/jquery_treeview/ajax-loader.gif
45
+ - vendor/assets/images/jquery_treeview/file.gif
46
+ - vendor/assets/images/jquery_treeview/folder-closed.gif
47
+ - vendor/assets/images/jquery_treeview/folder.gif
48
+ - vendor/assets/images/jquery_treeview/minus.gif
49
+ - vendor/assets/images/jquery_treeview/plus.gif
50
+ - vendor/assets/images/jquery_treeview/treeview-black-line.gif
51
+ - vendor/assets/images/jquery_treeview/treeview-black.gif
52
+ - vendor/assets/images/jquery_treeview/treeview-default-line.gif
53
+ - vendor/assets/images/jquery_treeview/treeview-default.gif
54
+ - vendor/assets/images/jquery_treeview/treeview-famfamfam-line.gif
55
+ - vendor/assets/images/jquery_treeview/treeview-famfamfam.gif
56
+ - vendor/assets/images/jquery_treeview/treeview-gray-line.gif
57
+ - vendor/assets/images/jquery_treeview/treeview-gray.gif
58
+ - vendor/assets/images/jquery_treeview/treeview-red-line.gif
59
+ - vendor/assets/images/jquery_treeview/treeview-red.gif
60
+ - vendor/assets/javascripts/jquery.treeview.js
61
+ - vendor/assets/stylesheets/jquery.treeview.css
62
+ homepage: http://github.com/oruen/rails_admin-treeview
63
+ licenses: []
64
+ post_install_message:
65
+ rdoc_options: []
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ requirements: []
81
+ rubyforge_project:
82
+ rubygems_version: 1.8.6
83
+ signing_key:
84
+ specification_version: 3
85
+ summary: Implements treeview via jquery.treeview for models
86
+ test_files: []