mtoros-mega_menus 0.6.6 → 0.6.8

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.
data/README.rdoc CHANGED
@@ -25,6 +25,11 @@ The current version creates:
25
25
  * Rails 2.2
26
26
 
27
27
  == NOTES:
28
+ * You can have multiple partials rendering different parts of the menu. Include in your partial the following line:
29
+ - <% mega_menus(name_of_the_menu_model, 'name_of_the_menu_controller', par, arr, parent_id) %>
30
+ - where par is the either TRUE(editor mode) or FALSE(normal mode), arr is an array containing the interval of depths to be shown(2..3 means display menus with depths 2 and 3), parent_id determines to which parent are this children related to( 5 would mean show only children whoose ancestor has id parent_id)
31
+ * If you have multiple partials you should edit the rjs files in order to assure proper updating of each partial. By default only the generated partial is updated.
32
+
28
33
  * The menu is located in <ul id="ul_menu_#{m.depth}" class="ul_menu_depth_#{m.depth}">
29
34
  * The selected menu is located in <li class="li_menu_class_selected">
30
35
  * This two id and class values can be easly changed by editing the mega_menu partial and its helper.
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'rake'
4
4
  begin
5
5
  require 'echoe'
6
6
 
7
- Echoe.new('mega_menus', '0.6.6') do |p|
7
+ Echoe.new('mega_menus', '0.6.8') 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']
@@ -5,6 +5,22 @@ module MegaMenus
5
5
  base.extend ClassMethods
6
6
  end
7
7
 
8
+ def isChildOf( parent_id)
9
+ menu_id=self.id
10
+ while(menu_id != 1)
11
+ menu_id= self.class.parent_menu(menu_id).id
12
+ if(menu_id===parent_id)
13
+ return TRUE
14
+ end
15
+ end
16
+ return FALSE
17
+ end
18
+
19
+ def children
20
+ self.class.children(self.id)
21
+ end
22
+
23
+
8
24
  module ClassMethods
9
25
  def acts_as_menu
10
26
  self.send :extend, MenuClassMethods
@@ -63,10 +79,6 @@ module MegaMenus
63
79
  self.find(:all, :order=> "position" ,:conditions => { :parent_id=>menu_id})
64
80
  end
65
81
 
66
- def all_children(menu_id)
67
- #to be written
68
- end
69
-
70
82
  def parent_menu(menu_id)
71
83
  m=self.find(menu_id)
72
84
  self.find(:first,:conditions => { :id=>m.parent_id})
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.6.6"
3
+ s.version = "0.6.8"
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"]
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
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"]
12
12
  s.has_rdoc = true
13
13
  s.homepage = %q{}
14
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Mega_menus", "--main", "README.rdoc"]
14
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Mega_menus", "--main", "README.rdoc~"]
15
15
  s.require_paths = ["lib"]
16
16
  s.rubyforge_project = %q{mega_menus}
17
17
  s.rubygems_version = %q{1.2.0}
@@ -1,11 +1,11 @@
1
1
  module <%= "#{file_name.capitalize}Helper" %>
2
- def mega_menus(menu_model, menu_controller, admin_condition, admin_depth)
2
+ def mega_menus(menu_model, menu_controller, admin_condition, admin_depth, admin_parent)
3
3
  #Checks
4
4
  if(!menu_checks(menu_model))
5
5
  return nil
6
6
  end
7
7
  #HTML generation
8
- html_generation(menu_model, menu_controller,admin_condition, admin_depth)
8
+ html_generation(menu_model, menu_controller,admin_condition, admin_depth, admin_parent)
9
9
  end
10
10
 
11
11
  def menu_checks(menu_model)
@@ -20,7 +20,7 @@ module <%= "#{file_name.capitalize}Helper" %>
20
20
  return TRUE
21
21
  end
22
22
 
23
- def html_generation(menu_model, menu_controller,admin_condition, admin_depth)
23
+ def html_generation(menu_model, menu_controller,admin_condition, admin_depth, admin_parent)
24
24
  allmenus=menu_model.find(:all, :order => "absolute_position")
25
25
  #mdp...previous menu depth
26
26
  pmd=1
@@ -30,32 +30,27 @@ module <%= "#{file_name.capitalize}Helper" %>
30
30
  elsif(!session[:menu_id].nil?)
31
31
  menu_id=session[:menu_id]
32
32
  end
33
- #concat "p= #{params[:menu_id]} ... s= #{session[:menu_id]} .... menu_id = #{menu_id} "
34
-
33
+
35
34
  firstm=TRUE
36
35
  allmenus.each do |m|
37
- #check if your depth is correct
38
- if(admin_depth.include?(m.depth))
39
- if(firstm)
40
- concat( "<ul id=\"ul_menu_#{m.depth}\" class=\"ul_menu_depth_#{m.depth} ul_menu\">")
41
- if(admin_condition)
42
- if(admin_depth.include?(1))
43
- concat( "<li id=\"root_add\" class=\"root_add\">")
44
- concat link_to_remote( "<span>Add</span>", {:url => {:controller => menu_controller, :action => 'add_menu_form', :menu_id => 1,:menu_model=>menu_model, :menu_controller=>menu_controller } }, {:class => "menu_links_add", :id => "add_menu_link_1"})
45
- add_menu_form(menu_model, menu_controller,1)
36
+ #write the actual menu line for each record
37
+ if(m.id!=1 and m.isChildOf(admin_parent))
38
+ #check if your depth is correct
39
+ if(admin_depth.include?(m.depth))
40
+ if(m.depth > pmd or firstm)
41
+ concat( "<ul id=\"ul_menu_#{m.depth}\" class=\"ul_menu_depth_#{m.depth} ul_menu\">")
42
+ if(admin_condition)
43
+ concat( "<li id=\"root_add_#{m.parent_id}\" class=\"root_add\">")
44
+ 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}"}))
45
+ add_menu_form(menu_model, menu_controller, m.parent_id)
46
46
  concat( "</li>")
47
47
  end
48
+ firstm=FALSE
49
+ elsif(m.depth < pmd)
50
+ pmd.downto(m.depth+1) {concat( "</ul>")}
48
51
  end
49
- firstm=FALSE
50
- elsif(m.depth > pmd)
51
- concat( "<ul id=\"ul_menu_#{m.depth}\" class=\"ul_menu_depth_#{m.depth} ul_menu\">")
52
- elsif(m.depth < pmd)
53
- pmd.downto(m.depth+1) {concat( "</ul>")}
54
- end
55
- pmd=m.depth
52
+ pmd=m.depth
56
53
 
57
- #write the actual menu line for each record
58
- if(m.id!=1)
59
54
  #make the selected view appear nicer
60
55
  if(m.id==menu_id.to_i)
61
56
  concat( "<li id=\"li_menu_#{m.id}\" class=\"li_menu_class_selected\">")
@@ -66,15 +61,23 @@ module <%= "#{file_name.capitalize}Helper" %>
66
61
  concat( "<a class=\"menu_link\", id =\"menu_link_#{m.id}\" href=\"#{m.link}?menu_id=#{m.id}\"> #{m.title} </a>")
67
62
  end
68
63
  if(admin_condition)
69
- 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}"}))
64
+ #remove the comment on the following line depending on the view you want to have
65
+ #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}"}))
70
66
  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}}, {:class => "menu_links_delete", :title=> "Delete",:id => "delete_menu_link_#{m.id}"}))
71
67
  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}"}))
72
68
  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}"}))
73
69
  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}"}))
74
- add_menu_form(menu_model, menu_controller,m.id)
75
70
  edit_menu_form(menu_model, menu_controller,m)
76
71
  end
77
72
  concat( "</li>")
73
+ if(admin_condition and m.children.empty? and admin_depth.include?(m.depth+1))
74
+ concat( "<ul id=\"ul_menu_#{m.depth+1}\" class=\"ul_menu_depth_#{m.depth+1} ul_menu\">")
75
+ concat( "<li id=\"root_add_#{m.id}\" class=\"root_add\">")
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
+ add_menu_form(menu_model, menu_controller, m.id)
78
+ concat( "</li>")
79
+ concat( "</ul>")
80
+ end
78
81
  end
79
82
  end
80
83
  end
@@ -85,9 +88,9 @@ module <%= "#{file_name.capitalize}Helper" %>
85
88
  def add_menu_form(menu_model, menu_controller, menu_id)
86
89
  form_remote_tag( :url => {:controller=>menu_controller, :action=> 'add_menu'}, :html => {:id => "add_menu_form_#{menu_id}", :class => "add_menu_form", :style=>"display: none"}) do
87
90
  concat( "Title:" )
88
- concat( text_field_tag( "title", "title"))
91
+ concat( text_field_tag( "title"))
89
92
  concat( "Link:")
90
- concat( text_field_tag("link", "link"))
93
+ concat( text_field_tag("link"))
91
94
  concat( hidden_field_tag(:menu_id, menu_id))
92
95
  #content_tag :button, "Submit", {:type=>"submit", :class=>"button-submit"}
93
96
  concat( submit_tag( "Add", :class => "add_button"))
@@ -1,4 +1,4 @@
1
1
  <%#"The 3. parameter determines normal mode(FALSE) or edit mode(TRUE)...remove this annoying line" %>
2
2
  <%# "The 4. parameter determines the depth of the menus to be shown...remove this annoying line" %>
3
- <%% mega_menus(<%= file_name.capitalize %>, <%= "'#{file_name+ "editor"}'"%>, TRUE, 1..10) %>
3
+ <%% mega_menus(<%= file_name.capitalize %>, <%= "'#{file_name+ "editor"}'"%>, TRUE, 1..10,1) %>
4
4
 
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.6.6
4
+ version: 0.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marko Toros
@@ -65,7 +65,7 @@ rdoc_options:
65
65
  - --title
66
66
  - Mega_menus
67
67
  - --main
68
- - README.rdoc
68
+ - README.rdoc~
69
69
  require_paths:
70
70
  - lib
71
71
  required_ruby_version: !ruby/object:Gem::Requirement