mtoros-mega_menus 0.7.3 → 0.7.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +1 -0
- data/Rakefile +1 -1
- data/lib/mega_menus/editor.rb +28 -1
- data/mega_menus.gemspec +2 -2
- data/rails_generators/menu/menu_generator.rb +1 -0
- data/rails_generators/menu/templates/controllers/menu_controller.rb +9 -0
- data/rails_generators/menu/templates/helpers/menu_helper.rb +64 -48
- data/rails_generators/menu/templates/models/create_menus.rb +2 -1
- data/rails_generators/menu/templates/views/publish_menu.rjs +1 -0
- metadata +2 -1
data/Manifest
CHANGED
@@ -16,6 +16,7 @@ rails_generators/menu/templates/views/edit_menu_form.rjs
|
|
16
16
|
rails_generators/menu/templates/views/edit_menu.rjs
|
17
17
|
rails_generators/menu/templates/views/up_menu.rjs
|
18
18
|
rails_generators/menu/templates/views/down_menu.rjs
|
19
|
+
rails_generators/menu/templates/views/publish_menu.rjs
|
19
20
|
rails_generators/menu/templates/views/_menu.html.erb
|
20
21
|
rails_generators/menu/templates/helpers/menu_helper.rb
|
21
22
|
rails_generators/menu/templates/models/create_menus.rb
|
data/Rakefile
CHANGED
@@ -4,7 +4,7 @@ require 'rake'
|
|
4
4
|
begin
|
5
5
|
require 'echoe'
|
6
6
|
|
7
|
-
Echoe.new('mega_menus', '0.7.
|
7
|
+
Echoe.new('mega_menus', '0.7.4') do |p|
|
8
8
|
p.summary = "Treeview menu Gem for Rails"
|
9
9
|
p.description = "Adds a model, controller to perform the tasks in order to have a treeview menu. To use this gem simply install it and write script/generate menu name_of_the_menu"
|
10
10
|
p.author = ['Marko Toros']
|
data/lib/mega_menus/editor.rb
CHANGED
@@ -16,6 +16,32 @@ module MegaMenus
|
|
16
16
|
return FALSE
|
17
17
|
end
|
18
18
|
|
19
|
+
def setPublished
|
20
|
+
self.published=TRUE
|
21
|
+
self.save!
|
22
|
+
parent_id=self.id
|
23
|
+
allmenus=self.class.all
|
24
|
+
allmenus.each do |m|
|
25
|
+
if(m.isChildOf(parent_id))
|
26
|
+
m.published=TRUE
|
27
|
+
m.save!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def setNotPublished
|
33
|
+
self.published=FALSE
|
34
|
+
self.save!
|
35
|
+
parent_id=self.id
|
36
|
+
allmenus=self.class.all
|
37
|
+
allmenus.each do |m|
|
38
|
+
if(m.isChildOf(parent_id))
|
39
|
+
m.published=FALSE
|
40
|
+
m.save!
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
19
45
|
def children
|
20
46
|
self.class.children(self.id)
|
21
47
|
end
|
@@ -61,7 +87,8 @@ module MegaMenus
|
|
61
87
|
child = self.new( "title" => title,
|
62
88
|
"link" => link,
|
63
89
|
"parent_id" => menu_id,
|
64
|
-
"position" => position
|
90
|
+
"position" => position,
|
91
|
+
"published" => FALSE)
|
65
92
|
child.save!
|
66
93
|
end
|
67
94
|
|
data/mega_menus.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{mega_menus}
|
3
|
-
s.version = "0.7.
|
3
|
+
s.version = "0.7.4"
|
4
4
|
|
5
5
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
6
6
|
s.authors = ["Marko Toros"]
|
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.description = %q{Adds a model, controller to perform the tasks in order to have a treeview menu. To use this gem simply install it and write script/generate menu name_of_the_menu}
|
9
9
|
s.email = %q{mtoros@gmail.com}
|
10
10
|
s.extra_rdoc_files = ["README.rdoc", "lib/mega_menus.rb", "lib/mega_menus/editor.rb", "lib/mega_menus/view_helpers.rb"]
|
11
|
-
s.files = ["Manifest", "README.rdoc", "init.rb", "Rakefile", "lib/mega_menus.rb", "lib/mega_menus/editor.rb", "lib/mega_menus/view_helpers.rb", "test/test_editor.rb", "rails_generators/menu/USAGE", "rails_generators/menu/menu_generator.rb", "rails_generators/menu/templates/controllers/menu_controller.rb", "rails_generators/menu/templates/views/add_menu_form.rjs", "rails_generators/menu/templates/views/add_menu.rjs", "rails_generators/menu/templates/views/delete_menu.rjs", "rails_generators/menu/templates/views/edit_menu_form.rjs", "rails_generators/menu/templates/views/edit_menu.rjs", "rails_generators/menu/templates/views/up_menu.rjs", "rails_generators/menu/templates/views/down_menu.rjs", "rails_generators/menu/templates/views/_menu.html.erb", "rails_generators/menu/templates/helpers/menu_helper.rb", "rails_generators/menu/templates/models/create_menus.rb", "rails_generators/menu/templates/models/menu.rb", "mega_menus.gemspec"]
|
11
|
+
s.files = ["Manifest", "README.rdoc", "init.rb", "Rakefile", "lib/mega_menus.rb", "lib/mega_menus/editor.rb", "lib/mega_menus/view_helpers.rb", "test/test_editor.rb", "rails_generators/menu/USAGE", "rails_generators/menu/menu_generator.rb", "rails_generators/menu/templates/controllers/menu_controller.rb", "rails_generators/menu/templates/views/add_menu_form.rjs", "rails_generators/menu/templates/views/add_menu.rjs", "rails_generators/menu/templates/views/delete_menu.rjs", "rails_generators/menu/templates/views/edit_menu_form.rjs", "rails_generators/menu/templates/views/edit_menu.rjs", "rails_generators/menu/templates/views/up_menu.rjs", "rails_generators/menu/templates/views/down_menu.rjs", "rails_generators/menu/templates/views/publish_menu.rjs", "rails_generators/menu/templates/views/_menu.html.erb", "rails_generators/menu/templates/helpers/menu_helper.rb", "rails_generators/menu/templates/models/create_menus.rb", "rails_generators/menu/templates/models/menu.rb", "mega_menus.gemspec"]
|
12
12
|
s.has_rdoc = true
|
13
13
|
s.homepage = %q{}
|
14
14
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Mega_menus", "--main", "README.rdoc"]
|
@@ -12,6 +12,7 @@ class MenuGenerator < Rails::Generator::NamedBase
|
|
12
12
|
m.template "views/edit_menu.rjs", "app/views/#{file_name}editor/edit_menu.rjs"
|
13
13
|
m.template "views/up_menu.rjs", "app/views/#{file_name}editor/up_menu.rjs"
|
14
14
|
m.template "views/down_menu.rjs", "app/views/#{file_name}editor/down_menu.rjs"
|
15
|
+
m.template "views/publish_menu.rjs", "app/views/#{file_name}editor/publish_menu.rjs"
|
15
16
|
m.template "views/_menu.html.erb", "app/views/#{file_name}editor/_#{file_name}.html.erb"
|
16
17
|
#create the helper
|
17
18
|
m.template "helpers/menu_helper.rb", "app/helpers/#{file_name}_helper.rb"
|
@@ -10,6 +10,15 @@ class <%= "#{file_name.capitalize+ "editor" + "Controller"}" %> < ApplicationCon
|
|
10
10
|
|
11
11
|
end
|
12
12
|
|
13
|
+
def publish_menu
|
14
|
+
m=<%= file_name.capitalize %>.find(params[:menu_id].to_i)
|
15
|
+
if(m.published)
|
16
|
+
m.setNotPublished
|
17
|
+
else
|
18
|
+
m.setPublished
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
13
22
|
def delete_menu
|
14
23
|
temp=<%= file_name.capitalize %>.find(params[:menu_id]).parent_id
|
15
24
|
|
@@ -34,59 +34,75 @@ module <%= "#{file_name.capitalize}Helper" %>
|
|
34
34
|
firstm=TRUE
|
35
35
|
allmenus.each do |m|
|
36
36
|
#write the actual menu line for each record
|
37
|
-
if(m.
|
38
|
-
|
39
|
-
|
40
|
-
concat( "<li id=\"root_add_#{m.id}\" class=\"root_add\">")
|
41
|
-
concat( link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_add", :title=> "Add",:id => "add_menu_link_#{m.id}"}))
|
42
|
-
add_menu_form(menu_model, menu_controller, m.id)
|
43
|
-
concat( "</li>")
|
44
|
-
end
|
45
|
-
firstm=FALSE
|
46
|
-
end
|
47
|
-
if(m.id!=1 and m.isChildOf(admin_parent))
|
48
|
-
#check if your depth is correct
|
49
|
-
if(admin_depth.include?(m.depth))
|
50
|
-
if(m.depth > pmd or firstm)
|
51
|
-
concat( "<ul id=\"ul_menu_#{m.depth}\" class=\"ul_menu_depth_#{m.depth} ul_menu\">")
|
37
|
+
if(m.published==TRUE or admin_condition==TRUE)
|
38
|
+
if(m.id==1 and m.children.empty? and admin_depth.include?(m.depth))
|
39
|
+
concat( "<ul id=\"ul_menu_#{m.depth}\" class=\"ul_menu_depth_#{m.depth} ul_menu\">")
|
52
40
|
if(admin_condition)
|
53
|
-
concat( "<li id=\"root_add_#{m.parent_id}\" class=\"root_add\">")
|
54
|
-
concat( link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => m.parent_id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_add", :title=> "Add",:id => "add_menu_link_#{m.id}"}))
|
55
|
-
add_menu_form(menu_model, menu_controller, m.parent_id)
|
56
|
-
concat( "</li>")
|
57
|
-
end
|
58
|
-
firstm=FALSE
|
59
|
-
elsif(m.depth < pmd)
|
60
|
-
pmd.downto(m.depth+1) {concat( "</ul>")}
|
61
|
-
end
|
62
|
-
pmd=m.depth
|
63
|
-
|
64
|
-
#make the selected view appear nicer
|
65
|
-
if(m.id==menu_id.to_i)
|
66
|
-
concat( "<li id=\"li_menu_#{m.id}\" class=\"li_menu_class_selected\">")
|
67
|
-
concat( "<a class=\"selected_menu\", id =\"menu_link_#{m.id}\" href=\"#{m.link}?menu_id=#{m.id}\"> #{m.title} </a>")
|
68
|
-
session[:menu_id]=menu_id
|
69
|
-
else
|
70
|
-
concat( "<li id=\"li_menu_#{m.id}\" class=\"li_menu_class\">")
|
71
|
-
concat( "<a class=\"menu_link\", id =\"menu_link_#{m.id}\" href=\"#{m.link}?menu_id=#{m.id}\"> #{m.title} </a>")
|
72
|
-
end
|
73
|
-
if(admin_condition)
|
74
|
-
#remove the comment on the following line depending on the view you want to have
|
75
|
-
#concat( link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_add", :title=> "Add",:id => "add_menu_link_#{m.id}"}))
|
76
|
-
concat( link_to_remote( "<span>Delete</span>", {:url => {:controller => menu_controller, :action => 'delete_menu', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}, :confirm => "Are you sure?"}, {:class => "menu_links_delete", :title=> "Delete",:id => "delete_menu_link_#{m.id}"}))
|
77
|
-
concat( link_to_remote( "<span>Edit</span>", {:url => {:controller => menu_controller, :action => 'edit_menu_form', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_edit",:title=> "Edit", :id => "edit_menu_link_#{m.id}"}))
|
78
|
-
concat( link_to_remote( "<span>Up</span>", {:url => {:controller => menu_controller, :action => 'up_menu', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_up", :title=> "Up",:id => "up_menu_link_#{m.id}"}))
|
79
|
-
concat( link_to_remote( "<span>Down</span>", {:url => {:controller => menu_controller, :action => 'down_menu', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_down", :title=> "Down", :id => "down_menu_link_#{m.id}"}))
|
80
|
-
edit_menu_form(menu_model, menu_controller,m)
|
81
|
-
end
|
82
|
-
concat( "</li>")
|
83
|
-
if(admin_condition and m.children.empty? and admin_depth.include?(m.depth+1))
|
84
|
-
concat( "<ul id=\"ul_menu_#{m.depth+1}\" class=\"ul_menu_depth_#{m.depth+1} ul_menu\">")
|
85
41
|
concat( "<li id=\"root_add_#{m.id}\" class=\"root_add\">")
|
86
42
|
concat( link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_add", :title=> "Add",:id => "add_menu_link_#{m.id}"}))
|
87
43
|
add_menu_form(menu_model, menu_controller, m.id)
|
88
44
|
concat( "</li>")
|
89
|
-
|
45
|
+
end
|
46
|
+
firstm=FALSE
|
47
|
+
end
|
48
|
+
if(m.id!=1 and m.isChildOf(admin_parent))
|
49
|
+
#check if your depth is correct
|
50
|
+
if(admin_depth.include?(m.depth))
|
51
|
+
if(m.depth > pmd or firstm)
|
52
|
+
concat( "<ul id=\"ul_menu_#{m.depth}\" class=\"ul_menu_depth_#{m.depth} ul_menu\">")
|
53
|
+
if(admin_condition)
|
54
|
+
concat( "<li id=\"root_add_#{m.parent_id}\" class=\"root_add\">")
|
55
|
+
concat( link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => m.parent_id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_add", :title=> "Add",:id => "add_menu_link_#{m.id}"}))
|
56
|
+
add_menu_form(menu_model, menu_controller, m.parent_id)
|
57
|
+
concat( "</li>")
|
58
|
+
end
|
59
|
+
firstm=FALSE
|
60
|
+
elsif(m.depth < pmd)
|
61
|
+
pmd.downto(m.depth+1) {concat( "</ul>")}
|
62
|
+
end
|
63
|
+
pmd=m.depth
|
64
|
+
|
65
|
+
#make the selected view appear nicer
|
66
|
+
if(m.id==menu_id.to_i)
|
67
|
+
concat( "<li id=\"li_menu_#{m.id}\" class=\"li_menu_class_selected\">")
|
68
|
+
concat( "<a class=\"selected_menu\", id =\"menu_link_#{m.id}\" href=\"#{m.link}?menu_id=#{m.id}\"> #{m.title} </a>")
|
69
|
+
session[:menu_id]=menu_id
|
70
|
+
else
|
71
|
+
concat( "<li id=\"li_menu_#{m.id}\" class=\"li_menu_class\">")
|
72
|
+
concat( "<a class=\"menu_link\", id =\"menu_link_#{m.id}\" href=\"#{m.link}?menu_id=#{m.id}\"> #{m.title} </a>")
|
73
|
+
end
|
74
|
+
if(admin_condition)
|
75
|
+
#remove the comment on the following line depending on the view you want to have
|
76
|
+
#concat( link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_add", :title=> "Add",:id => "add_menu_link_#{m.id}"}))
|
77
|
+
# DELETE
|
78
|
+
concat( link_to_remote( "<span>Delete</span>", {:url => {:controller => menu_controller, :action => 'delete_menu', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}, :confirm => "Are you sure?"}, {:class => "menu_links_delete", :title=> "Delete",:id => "delete_menu_link_#{m.id}"}))
|
79
|
+
# EDIT
|
80
|
+
concat( link_to_remote( "<span>Edit</span>", {:url => {:controller => menu_controller, :action => 'edit_menu_form', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_edit",:title=> "Edit", :id => "edit_menu_link_#{m.id}"}))
|
81
|
+
# UP
|
82
|
+
concat( link_to_remote( "<span>Up</span>", {:url => {:controller => menu_controller, :action => 'up_menu', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_up", :title=> "Up",:id => "up_menu_link_#{m.id}"}))
|
83
|
+
# DOWN
|
84
|
+
concat( link_to_remote( "<span>Down</span>", {:url => {:controller => menu_controller, :action => 'down_menu', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_down", :title=> "Down", :id => "down_menu_link_#{m.id}"}))
|
85
|
+
# PUBLISH
|
86
|
+
if(m.published==TRUE)
|
87
|
+
mp="menu_links_published"
|
88
|
+
mpt="published"
|
89
|
+
else
|
90
|
+
mp="menu_links_not_published"
|
91
|
+
mpt="not published"
|
92
|
+
end
|
93
|
+
concat( link_to_remote( "<span>Publish</span>", {:url => {:controller => menu_controller, :action => 'publish_menu', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => mp, :title=> mpt, :id => "publish_menu_link_#{m.id}"}))
|
94
|
+
# EDIT FORM
|
95
|
+
edit_menu_form(menu_model, menu_controller,m)
|
96
|
+
end
|
97
|
+
concat( "</li>")
|
98
|
+
if(admin_condition and m.children.empty? and admin_depth.include?(m.depth+1))
|
99
|
+
concat( "<ul id=\"ul_menu_#{m.depth+1}\" class=\"ul_menu_depth_#{m.depth+1} ul_menu\">")
|
100
|
+
concat( "<li id=\"root_add_#{m.id}\" class=\"root_add\">")
|
101
|
+
concat( link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => m.id,:menu_model=>menu_model, :menu_controller=>menu_controller}}, {:class => "menu_links_add", :title=> "Add",:id => "add_menu_link_#{m.id}"}))
|
102
|
+
add_menu_form(menu_model, menu_controller, m.id)
|
103
|
+
concat( "</li>")
|
104
|
+
concat( "</ul>")
|
105
|
+
end
|
90
106
|
end
|
91
107
|
end
|
92
108
|
end
|
@@ -7,10 +7,11 @@ class <%= "#{'Create' + file_name.capitalize + 's'}" %> < ActiveRecord::Migratio
|
|
7
7
|
t.integer :position
|
8
8
|
t.integer :absolute_position
|
9
9
|
t.integer :depth
|
10
|
+
t.bool :published
|
10
11
|
t.timestamps
|
11
12
|
end
|
12
13
|
|
13
|
-
<%= file_name.capitalize %>.create :id => 1, :position=>0, :absolute_position=>0, :depth=>1, :parent_id=>0
|
14
|
+
<%= file_name.capitalize %>.create :id => 1, :position=>0, :absolute_position=>0, :depth=>1, :parent_id=>0,:published=>FALSE
|
14
15
|
end
|
15
16
|
|
16
17
|
|
@@ -0,0 +1 @@
|
|
1
|
+
page.replace "ul_menu_1", :partial => <%= "'#{file_name}editor/#{file_name}'" %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mtoros-mega_menus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marko Toros
|
@@ -51,6 +51,7 @@ files:
|
|
51
51
|
- rails_generators/menu/templates/views/edit_menu.rjs
|
52
52
|
- rails_generators/menu/templates/views/up_menu.rjs
|
53
53
|
- rails_generators/menu/templates/views/down_menu.rjs
|
54
|
+
- rails_generators/menu/templates/views/publish_menu.rjs
|
54
55
|
- rails_generators/menu/templates/views/_menu.html.erb
|
55
56
|
- rails_generators/menu/templates/helpers/menu_helper.rb
|
56
57
|
- rails_generators/menu/templates/models/create_menus.rb
|