sortable_nested_set 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +15 -15
- data/README.rdoc +9 -5
- data/VERSION +1 -1
- data/app/helpers/sortable_nested_set_helper.rb +2 -2
- data/app/views/sortable_nested_set/_item.html.erb +2 -2
- data/app/views/sortable_nested_set/_tree.html.erb +2 -2
- data/config/routes.rb +1 -1
- data/lib/acts_as_sortable_nested_set.rb +6 -14
- data/public/stylesheets/sortable_nested_set.css +6 -2
- data/sortable_nested_set.gemspec +3 -4
- metadata +5 -25
data/Gemfile.lock
CHANGED
@@ -2,27 +2,27 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
abstract (1.0.0)
|
5
|
-
actionpack (3.0.
|
6
|
-
activemodel (= 3.0.
|
7
|
-
activesupport (= 3.0.
|
5
|
+
actionpack (3.0.4)
|
6
|
+
activemodel (= 3.0.4)
|
7
|
+
activesupport (= 3.0.4)
|
8
8
|
builder (~> 2.1.2)
|
9
9
|
erubis (~> 2.6.6)
|
10
10
|
i18n (~> 0.4)
|
11
11
|
rack (~> 1.2.1)
|
12
12
|
rack-mount (~> 0.6.13)
|
13
|
-
rack-test (~> 0.5.
|
13
|
+
rack-test (~> 0.5.7)
|
14
14
|
tzinfo (~> 0.3.23)
|
15
|
-
activemodel (3.0.
|
16
|
-
activesupport (= 3.0.
|
15
|
+
activemodel (3.0.4)
|
16
|
+
activesupport (= 3.0.4)
|
17
17
|
builder (~> 2.1.2)
|
18
18
|
i18n (~> 0.4)
|
19
|
-
activerecord (3.0.
|
20
|
-
activemodel (= 3.0.
|
21
|
-
activesupport (= 3.0.
|
19
|
+
activerecord (3.0.4)
|
20
|
+
activemodel (= 3.0.4)
|
21
|
+
activesupport (= 3.0.4)
|
22
22
|
arel (~> 2.0.2)
|
23
23
|
tzinfo (~> 0.3.23)
|
24
|
-
activesupport (3.0.
|
25
|
-
arel (2.0.
|
24
|
+
activesupport (3.0.4)
|
25
|
+
arel (2.0.8)
|
26
26
|
builder (2.1.2)
|
27
27
|
erubis (2.6.6)
|
28
28
|
abstract (>= 1.0.0)
|
@@ -32,7 +32,7 @@ GEM
|
|
32
32
|
bundler (~> 1.0.0)
|
33
33
|
git (>= 1.2.5)
|
34
34
|
rake
|
35
|
-
nested_set (1.6.
|
35
|
+
nested_set (1.6.4)
|
36
36
|
activerecord (>= 3.0.0)
|
37
37
|
railties (>= 3.0.0)
|
38
38
|
rack (1.2.1)
|
@@ -40,9 +40,9 @@ GEM
|
|
40
40
|
rack (>= 1.0.0)
|
41
41
|
rack-test (0.5.7)
|
42
42
|
rack (>= 1.0)
|
43
|
-
railties (3.0.
|
44
|
-
actionpack (= 3.0.
|
45
|
-
activesupport (= 3.0.
|
43
|
+
railties (3.0.4)
|
44
|
+
actionpack (= 3.0.4)
|
45
|
+
activesupport (= 3.0.4)
|
46
46
|
rake (>= 0.8.7)
|
47
47
|
thor (~> 0.14.4)
|
48
48
|
rake (0.8.7)
|
data/README.rdoc
CHANGED
@@ -18,10 +18,6 @@ In each "Category" (e.g. "Directory") migration:
|
|
18
18
|
In the routing configuration file:
|
19
19
|
nest the "Category" and "Item" resources
|
20
20
|
|
21
|
-
In each "Category" model:
|
22
|
-
acts_as_sortable_nested_set_of :items
|
23
|
-
where :items is the pluralized, underscored "Item" model (e.g. "ImageFile"=>:image_files).
|
24
|
-
|
25
21
|
In the "Category" and "Item" controllers:
|
26
22
|
[new] use param[:category_id]
|
27
23
|
[destroy] respond_to format.js (and provide associated view)
|
@@ -33,9 +29,17 @@ In the <head> section of the layout(s) where the trees will be displayed:
|
|
33
29
|
yield(:head)
|
34
30
|
after jQuery is loaded.
|
35
31
|
|
32
|
+
In each "Category" model:
|
33
|
+
acts_as_sortable_nested_set_of :items
|
34
|
+
where :items is the pluralized, underscored "Item" model (e.g. "ImageFile"=>:image_files).
|
35
|
+
|
36
|
+
== Options
|
37
|
+
|
38
|
+
:order specifies the order which "Items" will be sorted in. Defaults to nil unless "Item" acts_as_list.
|
39
|
+
|
36
40
|
== Support for acts_as_list
|
37
41
|
|
38
|
-
When an "Item" model acts_as_list, SortableNestedSet will use its position for sorting.
|
42
|
+
When an "Item" model acts_as_list, SortableNestedSet will automatically use its position for sorting.
|
39
43
|
|
40
44
|
== Helpers
|
41
45
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
@@ -18,8 +18,8 @@ module SortableNestedSetHelper
|
|
18
18
|
|
19
19
|
ancestors = category.send(options[:include_self] ? :self_and_ancestors : :ancestors)
|
20
20
|
|
21
|
-
links = ancestors.
|
22
|
-
link_to c
|
21
|
+
links = ancestors.collect do |c|
|
22
|
+
link_to c, c, :class => :lineage
|
23
23
|
end
|
24
24
|
|
25
25
|
content_tag :p, links.join.html_safe unless links.empty?
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
<%= content_tag_for :li, item, :class => :sns_item do %>
|
2
2
|
<div>
|
3
3
|
<div class="handle"><%= item %></div>
|
4
4
|
<%= link_to image_tag('mega_menu.png'), item, :class => :mega_menu %>
|
@@ -8,4 +8,4 @@
|
|
8
8
|
<%= link_to 'remove', item, :confirm => 'Are you sure?', :method => :delete, :remote => true %>
|
9
9
|
</div>
|
10
10
|
</div>
|
11
|
-
|
11
|
+
<% end %>
|
@@ -8,9 +8,9 @@
|
|
8
8
|
<%= render_tree categories, :id => :sns_categories,
|
9
9
|
:class => :sortable,
|
10
10
|
'data-url' => sns_sort_path(:category_class => @category_class) do |category, child| %>
|
11
|
-
|
11
|
+
<%= content_tag_for :li, category, :class => :sns_category do %>
|
12
12
|
<%= render :partial => 'sortable_nested_set/category', :object => category %>
|
13
13
|
<ul><%= render :partial => 'sortable_nested_set/item', :collection => category.sns_items %></ul>
|
14
14
|
<%= child %>
|
15
|
-
|
15
|
+
<% end %>
|
16
16
|
<% end %>
|
data/config/routes.rb
CHANGED
@@ -7,7 +7,7 @@ module SortableNestedSet
|
|
7
7
|
end
|
8
8
|
|
9
9
|
module ClassMethods
|
10
|
-
def acts_as_sortable_nested_set_of(items_type)
|
10
|
+
def acts_as_sortable_nested_set_of(items_type, options={})
|
11
11
|
@subcategories_type = "sub#{name.tableize}".to_sym
|
12
12
|
@items_type = items_type
|
13
13
|
@foreign_key = self.class.method_defined?(:parent) ? :parent_id : name.foreign_key
|
@@ -23,20 +23,18 @@ module SortableNestedSet
|
|
23
23
|
define_method(:sns_items) { send(self.class.sns_items_type) }
|
24
24
|
end
|
25
25
|
|
26
|
+
options[:order] ||= sns_items_class.new.position_column if sns_items_class.method_defined?(:position_column)
|
27
|
+
|
26
28
|
acts_as_nested_set :parent_column => @foreign_key
|
27
29
|
|
28
30
|
has_many @subcategories_type, :class_name => name, :foreign_key => @foreign_key, :dependent => :destroy
|
29
|
-
has_many @items_type,
|
30
|
-
:order => (sns_items_class.position_column if sns_items_class.method_defined?(:position_column)),
|
31
|
-
:dependent => :destroy
|
32
|
-
|
33
|
-
after_initialize :default_depth_to_zero
|
31
|
+
has_many @items_type, :order => options[:order], :dependent => :destroy
|
34
32
|
end
|
35
33
|
end
|
36
34
|
|
37
35
|
module InstanceMethods
|
38
|
-
def
|
39
|
-
|
36
|
+
def self_and_descendants_with_sns_items
|
37
|
+
self_and_descendants.includes(self.class.sns_items_type).collect { |category| [category, category.sns_items] }.flatten
|
40
38
|
end
|
41
39
|
|
42
40
|
def move(parent, children)
|
@@ -55,12 +53,6 @@ module SortableNestedSet
|
|
55
53
|
end
|
56
54
|
end
|
57
55
|
end
|
58
|
-
|
59
|
-
private
|
60
|
-
|
61
|
-
def default_depth_to_zero
|
62
|
-
self.depth ||= 0 if has_attribute?(:depth)
|
63
|
-
end
|
64
56
|
end
|
65
57
|
end
|
66
58
|
|
@@ -43,6 +43,10 @@
|
|
43
43
|
margin: 0;
|
44
44
|
}
|
45
45
|
|
46
|
+
#sns_categories li.sns_category div > span.handle {
|
47
|
+
font-variant: small-caps;
|
48
|
+
}
|
49
|
+
|
46
50
|
.placeholder {
|
47
51
|
background-color: #cfcfcf;
|
48
52
|
}
|
@@ -52,11 +56,11 @@
|
|
52
56
|
color: #8a1f11;
|
53
57
|
}
|
54
58
|
|
55
|
-
#sns_categories
|
59
|
+
#sns_categories .open {
|
56
60
|
background: url(/images/folder_open.png) no-repeat center;
|
57
61
|
}
|
58
62
|
|
59
|
-
#sns_categories
|
63
|
+
#sns_categories .closed {
|
60
64
|
background: url(/images/folder_closed.png) no-repeat center;
|
61
65
|
}
|
62
66
|
|
data/sortable_nested_set.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sortable_nested_set}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jason Murad"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-02-13}
|
13
13
|
s.description = %q{reusable menu for navigation and modification or hierarchical categories}
|
14
14
|
s.email = %q{jason@thriess.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -44,7 +44,7 @@ Gem::Specification.new do |s|
|
|
44
44
|
s.homepage = %q{http://github.com/jrmurad/sortable_nested_set}
|
45
45
|
s.licenses = ["MIT"]
|
46
46
|
s.require_paths = ["lib"]
|
47
|
-
s.rubygems_version = %q{1.
|
47
|
+
s.rubygems_version = %q{1.5.0}
|
48
48
|
s.summary = %q{reusable menu for navigation and modification or hierarchical categories}
|
49
49
|
s.test_files = [
|
50
50
|
"test/helper.rb",
|
@@ -52,7 +52,6 @@ Gem::Specification.new do |s|
|
|
52
52
|
]
|
53
53
|
|
54
54
|
if s.respond_to? :specification_version then
|
55
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
56
55
|
s.specification_version = 3
|
57
56
|
|
58
57
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sortable_nested_set
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 3
|
8
|
-
- 0
|
9
|
-
version: 0.3.0
|
4
|
+
prerelease:
|
5
|
+
version: 0.4.0
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Jason Murad
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-02-13 00:00:00 -05:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -24,8 +20,6 @@ dependencies:
|
|
24
20
|
requirements:
|
25
21
|
- - ">="
|
26
22
|
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 0
|
29
23
|
version: "0"
|
30
24
|
type: :runtime
|
31
25
|
prerelease: false
|
@@ -37,8 +31,6 @@ dependencies:
|
|
37
31
|
requirements:
|
38
32
|
- - ">="
|
39
33
|
- !ruby/object:Gem::Version
|
40
|
-
segments:
|
41
|
-
- 0
|
42
34
|
version: "0"
|
43
35
|
type: :development
|
44
36
|
prerelease: false
|
@@ -50,10 +42,6 @@ dependencies:
|
|
50
42
|
requirements:
|
51
43
|
- - ~>
|
52
44
|
- !ruby/object:Gem::Version
|
53
|
-
segments:
|
54
|
-
- 1
|
55
|
-
- 0
|
56
|
-
- 0
|
57
45
|
version: 1.0.0
|
58
46
|
type: :development
|
59
47
|
prerelease: false
|
@@ -65,10 +53,6 @@ dependencies:
|
|
65
53
|
requirements:
|
66
54
|
- - ~>
|
67
55
|
- !ruby/object:Gem::Version
|
68
|
-
segments:
|
69
|
-
- 1
|
70
|
-
- 5
|
71
|
-
- 1
|
72
56
|
version: 1.5.1
|
73
57
|
type: :development
|
74
58
|
prerelease: false
|
@@ -80,8 +64,6 @@ dependencies:
|
|
80
64
|
requirements:
|
81
65
|
- - ">="
|
82
66
|
- !ruby/object:Gem::Version
|
83
|
-
segments:
|
84
|
-
- 0
|
85
67
|
version: "0"
|
86
68
|
type: :development
|
87
69
|
prerelease: false
|
@@ -133,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
115
|
requirements:
|
134
116
|
- - ">="
|
135
117
|
- !ruby/object:Gem::Version
|
136
|
-
hash:
|
118
|
+
hash: -1150026264485618009
|
137
119
|
segments:
|
138
120
|
- 0
|
139
121
|
version: "0"
|
@@ -142,13 +124,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
124
|
requirements:
|
143
125
|
- - ">="
|
144
126
|
- !ruby/object:Gem::Version
|
145
|
-
segments:
|
146
|
-
- 0
|
147
127
|
version: "0"
|
148
128
|
requirements: []
|
149
129
|
|
150
130
|
rubyforge_project:
|
151
|
-
rubygems_version: 1.
|
131
|
+
rubygems_version: 1.5.0
|
152
132
|
signing_key:
|
153
133
|
specification_version: 3
|
154
134
|
summary: reusable menu for navigation and modification or hierarchical categories
|