cable 0.9.1 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/app/controllers/admin_controller.rb +1 -0
- data/app/helpers/admin/menus_helper.rb +18 -0
- data/app/views/admin/_admin_user_login.html.erb +4 -2
- data/app/views/layouts/admin.html.erb +16 -0
- data/config/admin_navigation.rb +0 -3
- data/lib/generators/cable/install_generator.rb +24 -8
- data/lib/generators/cable/menu/menu_generator.rb +9 -11
- data/lib/generators/cable/menu/templates/controller.rb +33 -15
- data/lib/generators/cable/menu/templates/erb/menus/_menu.html.erb +7 -6
- data/lib/generators/cable/menu/templates/erb/menus/index.html.erb +12 -23
- data/lib/generators/cable/menu/templates/erb/menus/show.html.erb +21 -15
- data/lib/generators/cable/resource/resource_generator.rb +11 -9
- data/public/images/cable/new-window.png +0 -0
- data/public/images/cable/page.png +0 -0
- data/public/images/cable/{page-icon.png → search.png} +0 -0
- data/public/javascripts/cable_menu.js +40 -23
- data/public/stylesheets/cable/base.css +1 -2
- data/public/stylesheets/cable/buttons.css +7 -4
- data/public/stylesheets/cable/formtastic_changes.css +23 -11
- data/public/stylesheets/cable/menu.css +20 -6
- data/public/stylesheets/cable/regions.css +6 -4
- data/public/stylesheets/cable/tables.css +15 -6
- data/public/stylesheets/jquery/ui/jquery-ui-1.8.7.custom.css +5 -2
- metadata +37 -11
- data/lib/generators/cable/menu/templates/erb/menus/_menu_children_table.html.erb +0 -60
- data/lib/generators/cable/menu/templates/erb/menus/_menu_tree.html.erb +0 -10
- data/lib/generators/cable/menu/templates/erb/menus/_menu_vitals.html.erb +0 -30
- data/lib/generators/cable/menu/templates/erb/menus/_resource.html.erb +0 -29
- data/lib/generators/cable/menu/templates/erb/menus/_resource_fields.html.erb +0 -10
- data/lib/generators/cable/menu/templates/erb/menus/_tree.html.erb +0 -16
- data/lib/generators/cable/menu/templates/erb/menus/move.html.erb +0 -25
- data/lib/generators/cable/menu/templates/erb/menus/table.html.erb +0 -9
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.3
|
@@ -21,4 +21,22 @@ module Admin::MenusHelper
|
|
21
21
|
end
|
22
22
|
ret += "</ul>"
|
23
23
|
end
|
24
|
+
|
25
|
+
def display_tree_plain(tree, parent_id)
|
26
|
+
unless tree.count <= 0
|
27
|
+
ret = "<ul>"
|
28
|
+
tree.each do |node|
|
29
|
+
if node.parent_id == parent_id
|
30
|
+
ret += "<li id='#{dom_id(node)}'>"
|
31
|
+
ret += "#{node.title}"
|
32
|
+
unless node.children.count <= 0
|
33
|
+
ret += display_tree_plain(node.children, node.id)
|
34
|
+
end
|
35
|
+
ret += "</li>"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
ret += "</ul>"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
24
42
|
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
<div class="user-session">
|
2
|
-
<% if admin_user_signed_in? %>
|
3
|
-
|
2
|
+
<% if respond_to?( :admin_user_signed_in?) %>
|
3
|
+
<% if admin_user_signed_in? %>
|
4
|
+
Signed in as: <%= current_admin_user.email %> <%= link_to "Sign out", destroy_admin_user_session_path, :class => 'button'%>
|
5
|
+
<% end %>
|
4
6
|
<% end %>
|
5
7
|
</div>
|
@@ -24,10 +24,25 @@
|
|
24
24
|
</div>
|
25
25
|
<div id="main-wrapper">
|
26
26
|
<div class="container">
|
27
|
+
|
28
|
+
|
29
|
+
<% if @admin_layout == "single" %>
|
30
|
+
<div id="main" class="span-24">
|
31
|
+
<div class="box shadow">
|
32
|
+
<h2 id="title"><%= @page_title %></h2>
|
33
|
+
<div id="help"><%= yield :help %><a class="button">Help</a></div>
|
34
|
+
<%= render :partial => 'layouts/breadcrumb' %>
|
35
|
+
<%= yield :page_menu %>
|
36
|
+
<%= render :partial => 'layouts/messages' %>
|
37
|
+
<%= yield %>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<% else %>
|
27
41
|
<div id="right-col" class="span-4">
|
28
42
|
<div id="secondary-navigation" class="box shadow"><%= render_navigation(:level => 2..5, :context => :admin) %></div>
|
29
43
|
<%= yield :sidebar %>
|
30
44
|
</div>
|
45
|
+
|
31
46
|
<div id="main" class="span-20 last">
|
32
47
|
<div class="box shadow">
|
33
48
|
<h2 id="title"><%= @page_title %></h2>
|
@@ -38,6 +53,7 @@
|
|
38
53
|
<%= yield %>
|
39
54
|
</div>
|
40
55
|
</div>
|
56
|
+
<% end %>
|
41
57
|
</div>
|
42
58
|
</div>
|
43
59
|
<div class="footer">
|
data/config/admin_navigation.rb
CHANGED
@@ -3,9 +3,6 @@ SimpleNavigation::Configuration.run do |navigation|
|
|
3
3
|
admin.item :admin, "Home", '/admin'
|
4
4
|
admin.item :admin, "Menu", "/admin/menus" do |menus|
|
5
5
|
if Cable.class_exists? "Menu"
|
6
|
-
Menu.roots.each do |tree|
|
7
|
-
menus.item :edit, tree.title, "/admin/menus/show/#{tree.id}"
|
8
|
-
end
|
9
6
|
menus.item :new, "New Menu Item", new_admin_menu_path
|
10
7
|
end
|
11
8
|
end
|
@@ -17,24 +17,40 @@ module Cable
|
|
17
17
|
|
18
18
|
def create_settings
|
19
19
|
if options.settings?
|
20
|
-
|
21
|
-
|
20
|
+
begin
|
21
|
+
migration_template 'lib/generators/templates/create_cable_settings.rb', "db/migrate/create_cable_settings.rb"
|
22
|
+
route( 'cable_to :cable_settings' )
|
23
|
+
rescue
|
24
|
+
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
24
28
|
|
25
29
|
def create_blocks
|
26
30
|
if options.blocks?
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
+
begin
|
32
|
+
migration_template 'lib/generators/templates/create_blocks.rb', 'db/migrate/create_blocks.rb'
|
33
|
+
rescue
|
34
|
+
copy_file 'lib/generators/templates/block.rb', 'app/models/block.rb'
|
35
|
+
copy_file 'lib/generators/templates/partials/_block.html.erb', 'app/views/admin/partials/_block.html.erb'
|
36
|
+
copy_file 'lib/generators/templates/partials/_block_form.html.erb', 'app/views/admin/partials/_block_form.html.erb'
|
37
|
+
end
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
34
41
|
def copy_simple_nav
|
35
42
|
if options.simple_nav?
|
36
|
-
|
37
|
-
|
43
|
+
if yes?("Would you like to install simple navigation?")
|
44
|
+
generate("navigation_config")
|
45
|
+
copy_file 'config/admin_navigation.rb', 'config/admin_navigation.rb'
|
46
|
+
# copy_file 'config/navigation.rb', 'config/navigation.rb'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def install_jquery
|
52
|
+
if yes?("Would you like to install jquery?")
|
53
|
+
generate("jquery:install --ui")
|
38
54
|
end
|
39
55
|
end
|
40
56
|
|
@@ -18,28 +18,30 @@ module Cable
|
|
18
18
|
|
19
19
|
def create_migration_file
|
20
20
|
if options.migration?
|
21
|
-
migration_template 'migration.rb', "db/migrate/create_#{model_name.pluralize}.rb"
|
21
|
+
migration_template 'migration.rb', "db/migrate/create_#{model_name.pluralize}.rb" if yes?("Would you like to generate a migration?")
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
def create_model_file
|
26
26
|
if options.model?
|
27
|
-
template 'model.rb' , "app/models/#{model_name}.rb"
|
27
|
+
template 'model.rb' , "app/models/#{model_name}.rb" if yes?("Would you like to generate a model?")
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
def create_controller_file
|
32
32
|
if options.controller?
|
33
|
-
template 'controller.rb', "app/controllers/admin/#{model_name.pluralize}_controller.rb"
|
33
|
+
template 'controller.rb', "app/controllers/admin/#{model_name.pluralize}_controller.rb" if yes?("Would you like to generate a controller?")
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
37
|
def create_views
|
38
38
|
if options.views?
|
39
|
-
|
40
|
-
|
39
|
+
if yes?( "Would you like Cable to generate menu views?")
|
40
|
+
Dir.glob(File.expand_path("../templates", __FILE__) + '/erb/menus/*.erb') do |rb_file|
|
41
|
+
template rb_file, "app/views/admin/#{plural_table_name}/#{File.basename(rb_file)}"
|
42
|
+
end
|
43
|
+
copy_file 'erb/partials/_menu_fields.html.erb', 'app/views/admin/partials/_menu_fields.html.erb'
|
41
44
|
end
|
42
|
-
copy_file 'erb/partials/_menu_fields.html.erb', 'app/views/admin/partials/_menu_fields.html.erb'
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
@@ -48,15 +50,11 @@ module Cable
|
|
48
50
|
route_string = <<EOF
|
49
51
|
cable_to :#{plural_table_name} do |menu|
|
50
52
|
collection do
|
51
|
-
get :rebuild
|
52
|
-
get :table
|
53
53
|
post :sort
|
54
|
-
post :move
|
55
|
-
post :remove_resource
|
56
54
|
end
|
57
55
|
end
|
58
56
|
EOF
|
59
|
-
route( route_string )
|
57
|
+
route( route_string ) if yes?("Would you like to generate routes?")
|
60
58
|
|
61
59
|
end
|
62
60
|
|
@@ -1,8 +1,10 @@
|
|
1
1
|
class Admin::<%= class_name %>sController < AdminController
|
2
|
+
respond_to :html, :xml, :json
|
2
3
|
# GET /pages
|
3
4
|
# GET /pages.xml
|
4
5
|
def index
|
5
6
|
@<%= plural_table_name %> = <%= class_name %>.roots
|
7
|
+
Menu.rebuild!
|
6
8
|
respond_to do |format|
|
7
9
|
format.html # index.html.erb
|
8
10
|
format.xml { render :xml => @<%= plural_table_name %> }
|
@@ -19,7 +21,6 @@ class Admin::<%= class_name %>sController < AdminController
|
|
19
21
|
format.html # show.html.erb
|
20
22
|
format.xml { render :xml => @<%= singular_table_name %> }
|
21
23
|
format.js { render :partial => "admin/menus/parents" }
|
22
|
-
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
@@ -28,6 +29,10 @@ class Admin::<%= class_name %>sController < AdminController
|
|
28
29
|
def new
|
29
30
|
@resources = Cable.available_resources
|
30
31
|
@<%= singular_table_name %> = <%= class_name %>.new
|
32
|
+
if params[:parent_id] && params[:parent_id] != "0"
|
33
|
+
@parent = Menu.find(params[:parent_id])
|
34
|
+
@<%= singular_table_name %>.parent_id = @parent.id
|
35
|
+
end
|
31
36
|
respond_to do |format|
|
32
37
|
format.html # new.html.erb
|
33
38
|
format.xml { render :xml => @<%= singular_table_name %> }
|
@@ -40,11 +45,6 @@ class Admin::<%= class_name %>sController < AdminController
|
|
40
45
|
@resources = Cable.available_resources
|
41
46
|
end
|
42
47
|
|
43
|
-
def move
|
44
|
-
@<%= singular_table_name %> = <%= class_name %>.where(:id => params[:id]).first
|
45
|
-
@<%= plural_table_name %> = <%= class_name %>.roots
|
46
|
-
end
|
47
|
-
|
48
48
|
# POST /pages
|
49
49
|
# POST /pages.xml
|
50
50
|
def create
|
@@ -94,17 +94,35 @@ class Admin::<%= class_name %>sController < AdminController
|
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
-
|
98
|
-
|
99
|
-
|
97
|
+
def sort
|
98
|
+
new_list = params[:ul]
|
99
|
+
previous = nil
|
100
|
+
new_list.each_with_index do |array, index|
|
101
|
+
moved_item_id = array[1][:id].split(/menu_/)
|
102
|
+
@current_menu = Menu.find_by_id(moved_item_id)
|
103
|
+
unless previous.nil?
|
104
|
+
@previous_item = Menu.find_by_id(previous)
|
105
|
+
@current_menu.move_to_right_of(@previous_item)
|
106
|
+
else
|
107
|
+
@current_menu.move_to_root
|
108
|
+
end
|
109
|
+
unless array[1][:children].blank?
|
110
|
+
parse_children(array[1], @current_menu)
|
111
|
+
end
|
112
|
+
previous = moved_item_id
|
113
|
+
end
|
114
|
+
Menu.rebuild!
|
115
|
+
render :nothing => true
|
100
116
|
end
|
101
117
|
|
102
|
-
def
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
118
|
+
def parse_children(mynode, menu)
|
119
|
+
for child in mynode[:children]
|
120
|
+
child_id = child[1][:id].split(/menu_/)
|
121
|
+
child_menu = Menu.find_by_id(child_id)
|
122
|
+
child_menu.move_to_child_of(menu)
|
123
|
+
unless child[1][:children].blank?
|
124
|
+
parse_children(child[1], child_menu)
|
125
|
+
end
|
108
126
|
end
|
109
127
|
end
|
110
128
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%%= semantic_form_for [:admin, @<%= singular_table_name %>] do |f| %>
|
2
2
|
<%% if @<%= singular_table_name %>.errors.any? %>
|
3
3
|
<div id="error_explanation">
|
4
|
-
<
|
4
|
+
<h3><%%= pluralize(@<%= singular_table_name %>.errors.count, "error") %> prohibited this menu from being saved:</h3>
|
5
5
|
<ul>
|
6
6
|
<%% @<%= singular_table_name %>.errors.full_messages.each do |msg| %>
|
7
7
|
<li><%%= msg %></li>
|
@@ -9,13 +9,14 @@
|
|
9
9
|
</ul>
|
10
10
|
</div>
|
11
11
|
<%% end %>
|
12
|
-
<%%= f.inputs do %>
|
12
|
+
<%%= f.inputs "Menu Properties" do %>
|
13
13
|
<%%= f.input :title, :label => "Menu Title", :hint => "This will be used in the menu itself" %>
|
14
14
|
<%%= f.input :meta_description, :label => "Meta Description", :hint => "Meta Description rendered in the head of the document" %>
|
15
15
|
<%%= f.input :meta_keywords, :label => "Meta Keywords", :hint => "Enter Keywords with a comma separating each key" %>
|
16
16
|
<%%= f.input :url, :label => "URL", :as => :string, :hint => "URL for this menu item, Example: /categories/canopies" %>
|
17
|
-
<%%= f.input :parent_id, :as => :select, :collection => nested_set_options(<%= singular_table_name.classify %>) {|i| "#{'-' * i.level} #{i.title}" unless i.level > 1 }.to_a.reject{|i| i[0].nil?}, :hint => "You can move this later" %>
|
18
17
|
<%%= f.input :show_in_menu, :as => :boolean, :wrapper_html => { :class => "yes_no" }, :hint => "You can hide the menu item by unchecking this box." %>
|
18
|
+
<%% end %>
|
19
|
+
<%%= f.inputs "Template and Resource" do %>
|
19
20
|
<%% unless Cable.special_actions.empty? %>
|
20
21
|
<%%= f.input :special_action, :label => "Special Action", :as => :select, :collection => Cable.special_actions, :hint => "(Optional)" %>
|
21
22
|
<%% end %>
|
@@ -25,7 +26,7 @@
|
|
25
26
|
<%% unless @resources.nil? %>
|
26
27
|
<%%= f.input :cable_menuable_id, :label => "Resource", :as => :select, :include_blank => true, :collection => @resources %>
|
27
28
|
<%% end %>
|
28
|
-
|
29
|
-
|
29
|
+
<%% end %>
|
30
|
+
|
30
31
|
<%%= f.buttons %>
|
31
|
-
<%% end %>
|
32
|
+
<%% end %>
|
@@ -1,28 +1,17 @@
|
|
1
1
|
<%% content_for :scripts do %>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
axis: 'y',
|
7
|
-
update: function(e, ui) {
|
8
|
-
sorted = $(this).sortable("serialize");
|
9
|
-
$.ajax({
|
10
|
-
type: 'POST',
|
11
|
-
url: "/admin/<%= plural_table_name %>/sort",
|
12
|
-
data: sorted
|
13
|
-
});
|
14
|
-
}
|
15
|
-
});
|
16
|
-
$(".check-all").click(function(){
|
17
|
-
$("input").each(function(){
|
18
|
-
$(this).attr('checked', !$(this).attr('checked'));
|
19
|
-
});
|
20
|
-
});
|
2
|
+
<%%= javascript_include_tag 'cable_menu.js' %>
|
3
|
+
<script type="text/javascript" charset="utf-8">
|
4
|
+
$(document).ready(function(){
|
5
|
+
$('#menu').cable_menu();
|
21
6
|
});
|
22
7
|
</script>
|
23
8
|
<%% end %>
|
24
9
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
10
|
+
<ul id="menu">
|
11
|
+
<%% @<%= plural_table_name %>.each do |m| -%>
|
12
|
+
<li title="<%%= m.title %>" id="<%%= dom_id(m) %>">
|
13
|
+
<%%= m.title %>
|
14
|
+
<%% if m.descendants %><%%= raw display_tree_plain(m.children, m.id) %><%% end %>
|
15
|
+
</li>
|
16
|
+
<%% end %>
|
17
|
+
</ul>
|
@@ -1,16 +1,22 @@
|
|
1
|
-
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
</div>
|
10
|
-
<%% end %>
|
11
|
-
|
12
|
-
<h3><%%= @<%= singular_table_name %>.title %></h3>
|
13
|
-
|
14
|
-
<%%= render :partial => 'menu_vitals', :locals => {:menu => @<%= singular_table_name %> } %>
|
15
|
-
<%%= render :partial => 'menu_children_table' %>
|
1
|
+
<table>
|
2
|
+
<thead>
|
3
|
+
<tr><th colspan=3>"<%%= @<%= singular_table_name %>.title %>" Properties</th></tr>
|
4
|
+
</thead>
|
5
|
+
<tbody>
|
6
|
+
<tr>
|
7
|
+
<th>URL:</th>
|
8
|
+
<td><%%= link_to "#{@<%= singular_table_name %>.url}", @<%= singular_table_name %>.url, :target => "_blank" %> <%%= link_to image_tag('/images/cable/new-window.png'), @<%= singular_table_name %>.url, :target => "_blank" %> </td>
|
16
9
|
|
10
|
+
</tr>
|
11
|
+
<%% unless @<%= singular_table_name %>.resource.nil? %>
|
12
|
+
<tr>
|
13
|
+
<th class="label">Links to:</th>
|
14
|
+
<td><%%= @<%= singular_table_name %>.cable_<%= singular_table_name %>able_type %> | <%%= link_to @<%= singular_table_name %>.resource.title, [:admin, @<%= singular_table_name %>.resource] %></td>
|
15
|
+
</tr>
|
16
|
+
<%% end %>
|
17
|
+
</tbody>
|
18
|
+
</table>
|
19
|
+
<div class="actions">
|
20
|
+
<%%= link_to "Edit", edit_admin_menu_path(@<%= singular_table_name %>) %>
|
21
|
+
<%%= link_to "Destroy", [:admin, @<%= singular_table_name %>], :confirm => 'Are you sure? This could be a really bad idea!', :method => :delete %>
|
22
|
+
</div>
|
@@ -22,31 +22,33 @@ module Cable
|
|
22
22
|
class_option :orm, :type => :string, :default => "active_record"
|
23
23
|
|
24
24
|
def create_migration_file
|
25
|
-
migration_template 'migration.rb', "db/migrate/create_#{table_name}.rb" if options.migration?
|
25
|
+
migration_template 'migration.rb', "db/migrate/create_#{table_name}.rb" if options.migration? and yes?("Would you like to generate a migration?")
|
26
26
|
end
|
27
27
|
|
28
28
|
def create_model_file
|
29
|
-
template 'model.rb' , "app/models/#{model_name}.rb" if options.model?
|
29
|
+
template 'model.rb' , "app/models/#{model_name}.rb" if options.model? and yes?("Would you like to generate a model?")
|
30
30
|
end
|
31
31
|
|
32
32
|
def create_controller_file
|
33
33
|
if options.controller?
|
34
|
-
template 'controller.rb' , "app/controllers/admin/#{file_name.pluralize}_controller.rb"
|
34
|
+
template 'controller.rb' , "app/controllers/admin/#{file_name.pluralize}_controller.rb" if yes?("Would you like to generate a controller?")
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
def create_scaffold
|
39
39
|
if options.views?
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
if yes?("Would you like Cable to generate views for #{model_name.capitalize}?")
|
41
|
+
template 'erb/scaffold/_form.html.erb', "app/views/admin/#{plural_table_name}/_#{singular_table_name}.html.erb"
|
42
|
+
template 'erb/scaffold/index.html.erb', "app/views/admin/#{plural_table_name}/index.html.erb"
|
43
|
+
template 'erb/scaffold/edit.html.erb', "app/views/admin/#{plural_table_name}/edit.html.erb"
|
44
|
+
template 'erb/scaffold/new.html.erb', "app/views/admin/#{plural_table_name}/new.html.erb"
|
45
|
+
template 'erb/scaffold/show.html.erb', "app/views/admin/#{plural_table_name}/show.html.erb"
|
46
|
+
end
|
45
47
|
end
|
46
48
|
end
|
47
49
|
|
48
50
|
def install_route
|
49
|
-
route("cable_to :#{plural_table_name}") if options.routes?
|
51
|
+
route("cable_to :#{plural_table_name}") if options.routes? and yes?("Would you like to generate routes for #{model_name.capitalize}?")
|
50
52
|
end
|
51
53
|
|
52
54
|
def self.next_migration_number(dirname)
|
Binary file
|
Binary file
|
Binary file
|
@@ -48,8 +48,6 @@
|
|
48
48
|
$('.cable_menu_wrapper > ul').removeAttr("id");
|
49
49
|
|
50
50
|
var the_menu = $('.cable_menu_wrapper > ul').serialize_list();
|
51
|
-
$(".cable_menu_wrapper").removeClass();
|
52
|
-
|
53
51
|
$.post("/admin/menus/sort", the_menu);
|
54
52
|
}
|
55
53
|
|
@@ -57,22 +55,21 @@
|
|
57
55
|
$("#add-menu").remove();
|
58
56
|
|
59
57
|
var $add = $("<li id='add-menu'>Add Menu Item</li>").appendTo($(item));
|
60
|
-
|
61
|
-
// $item.css({"padding-bottom":"40px","height":"300px"});
|
62
|
-
|
58
|
+
|
63
59
|
$add.click(function(){
|
64
60
|
var id = $(item).attr("menu");
|
65
61
|
$("#add-menu-form").html("<img src='/images/cable/loader.gif' />");
|
66
|
-
$("#add-menu-form").load("/admin/menus/new
|
67
|
-
$(
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
62
|
+
$("#add-menu-form").load("/admin/menus/new", function(){
|
63
|
+
$(this).dialog({
|
64
|
+
modal: true,
|
65
|
+
width: 600,
|
66
|
+
resizable: false,
|
67
|
+
title: "New Menu",
|
68
|
+
draggable: false
|
72
69
|
});
|
73
|
-
|
74
70
|
});
|
75
|
-
})
|
71
|
+
});
|
72
|
+
|
76
73
|
}
|
77
74
|
|
78
75
|
function hide_add_menu(item){
|
@@ -170,22 +167,36 @@
|
|
170
167
|
last_width = $wrapper.attr("scrollWidth");
|
171
168
|
$wrapper.stop();
|
172
169
|
$wrapper.animate({ 'scrollLeft': $wrapper.attr("scrollWidth") }, 2000);
|
173
|
-
$("#add-menu-form").html("");
|
174
|
-
$("#save-tree").show();
|
175
|
-
$("#menu-details").html("<img src='/images/cable/loader.gif' />").show();
|
176
170
|
|
171
|
+
update_breadcrumb();
|
172
|
+
}
|
173
|
+
|
174
|
+
function zoom_item(item,wrapper){
|
175
|
+
$item = $(item);
|
176
|
+
$id = $(item).attr("menu");
|
177
|
+
$wrapper = $(wrapper);
|
178
|
+
|
177
179
|
if(xhr != undefined) {
|
178
180
|
xhr.abort();
|
179
181
|
}
|
180
182
|
xhr = $.ajax({
|
181
183
|
url: "/admin/menus/"+$item.attr("menu"),
|
182
184
|
success: function(data) {
|
183
|
-
$("#menu-details").html(data)
|
185
|
+
$("#menu-details").html(data).dialog(
|
186
|
+
{
|
187
|
+
modal: true,
|
188
|
+
width: 600,
|
189
|
+
height: 250,
|
190
|
+
resizable: false,
|
191
|
+
draggable: false,
|
192
|
+
resizable: false,
|
193
|
+
title: "Displaying menu properties"
|
194
|
+
}
|
195
|
+
);
|
184
196
|
}
|
185
197
|
});
|
186
|
-
update_breadcrumb();
|
187
198
|
}
|
188
|
-
|
199
|
+
|
189
200
|
function deselect(item) {
|
190
201
|
var $item = $(item);
|
191
202
|
$item.removeClass('selected');
|
@@ -218,16 +229,18 @@
|
|
218
229
|
var $cloned_li = $(this).clone();
|
219
230
|
if($cloned_li.children().size() > 0){
|
220
231
|
$cloned_li.addClass("has-children");
|
232
|
+
var $id = $cloned_li.attr("id").replace("menu_","");
|
221
233
|
$cloned_li.children().each(function(){
|
222
|
-
var $id = $cloned_li.attr("id").replace("menu_","");
|
223
234
|
build_menu(this,$wrapper,$id);
|
224
235
|
});
|
225
236
|
}
|
237
|
+
$cloned_li.find("ul").remove();
|
238
|
+
$cloned_li.html("<span class='menu-zoom'></span> <span class='menu-title'>"+$cloned_li.text()+"</span>");
|
226
239
|
$cloned_li.appendTo($new_menu);
|
227
240
|
$cloned_li.attr("menu",$cloned_li.attr("id").replace("menu_",""));
|
228
241
|
$cloned_li.removeAttr("id");
|
229
242
|
|
230
|
-
|
243
|
+
|
231
244
|
});
|
232
245
|
}
|
233
246
|
|
@@ -291,10 +304,14 @@
|
|
291
304
|
|
292
305
|
build_menu($tree, $wrapper, 0);
|
293
306
|
|
294
|
-
$wrapper.find("li").click(function(){
|
295
|
-
select_item(this, $wrapper);
|
307
|
+
$wrapper.find("li span.menu-title").click(function(){
|
308
|
+
select_item($(this).parent(), $wrapper);
|
296
309
|
});
|
297
310
|
|
311
|
+
$wrapper.find("li span.menu-zoom").click(function(){
|
312
|
+
zoom_item($(this).parent(), $wrapper);
|
313
|
+
});
|
314
|
+
|
298
315
|
update_tree($wrapper);
|
299
316
|
$tree.remove();
|
300
317
|
|
@@ -4,14 +4,13 @@
|
|
4
4
|
.previous_page,
|
5
5
|
.formtastic input.button,
|
6
6
|
.formtastic input[type=button],
|
7
|
-
.formtastic input[type=file],
|
8
7
|
.formtastic input[type=submit],
|
9
8
|
.actions a,
|
10
|
-
.user-session a
|
9
|
+
.user-session a,
|
10
|
+
form.formtastic input, form.formtastic textarea, form.formtastic select {
|
11
11
|
display:inline-block;
|
12
12
|
font-size: 14px;
|
13
13
|
color: #ffffff;
|
14
|
-
padding: 4px 8px;
|
15
14
|
background: #777;
|
16
15
|
background: -moz-linear-gradient(top,#aaa 0%,#777);
|
17
16
|
background: -webkit-gradient(linear, left top, left bottom,from(#aaa),to(#777));
|
@@ -22,6 +21,11 @@
|
|
22
21
|
-moz-box-shadow: 0px 1px 2px rgba(000,000,000,0.5), inset 0px 0px 1px rgba(255,255,255,1);
|
23
22
|
-webkit-box-shadow: 0px 1px 2px rgba(000,000,000,0.5), inset 0px 0px 1px rgba(255,255,255,1);
|
24
23
|
text-shadow: 0px -1px 0px rgba(000,000,000,0.4), 0px 1px 0px rgba(255,255,255,0.3);
|
24
|
+
padding: 4px 6px;
|
25
|
+
}
|
26
|
+
.formtastic input[type=file]{
|
27
|
+
background: white;
|
28
|
+
color: black;
|
25
29
|
}
|
26
30
|
.user-session a{
|
27
31
|
margin-left:12px;
|
@@ -41,7 +45,6 @@
|
|
41
45
|
cursor:pointer;
|
42
46
|
}
|
43
47
|
.formtastic input[type=button]:hover,
|
44
|
-
.formtastic input[type=file]:hover,
|
45
48
|
.formtastic input[type=submit]:hover{
|
46
49
|
background:#333;
|
47
50
|
text-decoration:none;
|
@@ -4,36 +4,45 @@ form.formtastic legend {
|
|
4
4
|
white-space:normal;
|
5
5
|
color:#333;
|
6
6
|
font-weight: normal;
|
7
|
+
margin-bottom: 1em;
|
8
|
+
display: block;
|
7
9
|
}
|
10
|
+
form.formtastic fieldset.buttons,
|
8
11
|
form.formtastic fieldset.inputs {
|
9
12
|
background: #f9f9f9;
|
10
13
|
margin-bottom: 1em;
|
11
14
|
padding: 1em;
|
12
15
|
}
|
13
|
-
form.formtastic fieldset.buttons
|
14
|
-
padding-left:
|
16
|
+
form.formtastic fieldset.buttons{
|
17
|
+
padding-left: 100px;
|
18
|
+
margin-bottom: 0;
|
15
19
|
}
|
16
20
|
form.formtastic fieldset.buttons li {
|
17
21
|
float:left;
|
18
|
-
padding-right:0.5em;
|
22
|
+
padding-right:0.5em;
|
23
|
+
|
19
24
|
}
|
20
25
|
form.formtastic fieldset > ol > li label {
|
21
26
|
display:block;
|
22
|
-
width:
|
27
|
+
width: 90px;
|
23
28
|
float:left;
|
24
29
|
padding-top:.2em;
|
25
30
|
font-weight: bold;
|
26
31
|
color: #222;
|
32
|
+
margin-right: 10px;
|
33
|
+
}
|
34
|
+
form.formtastic fieldset > ol > li.boolean label {
|
35
|
+
padding-left:100px;
|
36
|
+
width:auto;
|
27
37
|
}
|
28
|
-
|
29
|
-
|
30
38
|
form.formtastic fieldset > ol > li p.inline-hints {
|
31
39
|
color:#000;
|
32
|
-
margin:0.5em 0 0
|
33
|
-
padding: 10px;
|
40
|
+
margin: 0.5em 0 0 100px;
|
34
41
|
border-radius: 4px;
|
35
42
|
-moz-border-radius: 4px;
|
36
43
|
-webkit-border-radius: 4px;
|
44
|
+
clear: both;
|
45
|
+
padding: .25em 10px .25em 0;
|
37
46
|
}
|
38
47
|
|
39
48
|
|
@@ -43,9 +52,12 @@ form.formtastic fieldset > ol > li.password input,
|
|
43
52
|
form.formtastic fieldset > ol > li.numeric input,
|
44
53
|
form.formtastic fieldset > ol > li.url input{
|
45
54
|
padding: .5em;
|
46
|
-
font-size:
|
47
|
-
min-width:
|
55
|
+
font-size: 14px;
|
56
|
+
min-width: 60%;
|
48
57
|
-moz-box-shadow: 0px 0px 4px #ccc inset;
|
49
58
|
-webkit-box-shadow: 0px 0px 4px #ccc inset;
|
50
59
|
box-shadow: 0px 0px 4px #ccc inset;
|
51
|
-
}
|
60
|
+
}
|
61
|
+
form.formtastic fieldset > ol > li { margin-bottom: .5em; border-bottom: 1px dotted #00; }
|
62
|
+
form.formtastic input, form.formtastic textarea, form.formtastic select { font-size:100%;
|
63
|
+
max-width: 300px;}
|
@@ -21,7 +21,6 @@ ul.cable_menu ul {
|
|
21
21
|
margin: 0;
|
22
22
|
width: 170px;
|
23
23
|
background:#fff;
|
24
|
-
border-left:1px solid #eee;
|
25
24
|
}
|
26
25
|
.cable_menu_wrapper li.has-children {
|
27
26
|
width: 129px;
|
@@ -38,14 +37,32 @@ ul.cable_menu ul {
|
|
38
37
|
list-style: none;
|
39
38
|
display: block;
|
40
39
|
overflow: hidden;
|
41
|
-
text-overflow: ellipsis;
|
42
40
|
background-color: white;
|
43
41
|
-webkit-border-radius: 3px;
|
44
42
|
margin-bottom: 3px;
|
45
43
|
}
|
44
|
+
.cable_menu_wrapper li span.menu-zoom{
|
45
|
+
display:inline-block;
|
46
|
+
width:12px;
|
47
|
+
height:12px;
|
48
|
+
margin-top:2px;
|
49
|
+
background: url(/images/cable/search.png) no-repeat right center;
|
50
|
+
visibility:hidden;
|
51
|
+
padding-right:6px;
|
52
|
+
}
|
53
|
+
.cable_menu_wrapper li:hover span.menu-zoom{
|
54
|
+
visibility:visible;
|
55
|
+
}
|
56
|
+
.cable_menu_wrapper li span.menu-title{
|
57
|
+
text-overflow: ellipsis;
|
58
|
+
width:110px;
|
59
|
+
overflow:hidden;
|
60
|
+
display:inline-block;
|
61
|
+
}
|
62
|
+
|
46
63
|
.cable_menu_wrapper li.selected.last,
|
47
64
|
.cable_menu_wrapper li.selected.last.has-children{
|
48
|
-
|
65
|
+
background-color: #2494fc;
|
49
66
|
color: white;
|
50
67
|
}
|
51
68
|
.cable_menu_wrapper .selected {
|
@@ -112,9 +129,6 @@ ul.cable_menu ul {
|
|
112
129
|
ul.cable_menu.empty{
|
113
130
|
background:url(/images/cable/empty-menu.png);
|
114
131
|
}
|
115
|
-
#add-menu-form{
|
116
|
-
margin-top:1em;
|
117
|
-
}
|
118
132
|
#save-tree{
|
119
133
|
margin-bottom:1em;
|
120
134
|
}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
/* @override http://localhost:3000/stylesheets/cable/regions.css */
|
2
2
|
|
3
|
-
|
4
3
|
/* @group Headers */
|
5
4
|
|
6
5
|
#header{
|
@@ -123,14 +122,17 @@
|
|
123
122
|
padding-top: 1em;
|
124
123
|
}
|
125
124
|
#main .box{
|
126
|
-
min-height: 400px;
|
127
|
-
-webkit-border-radius: 4px;
|
128
125
|
}
|
129
|
-
|
126
|
+
h2{
|
130
127
|
font-size: 1.5em;
|
131
128
|
display: block;
|
132
129
|
float: left;
|
133
130
|
}
|
131
|
+
h3{
|
132
|
+
font-size: 1.25em;
|
133
|
+
display: block;
|
134
|
+
|
135
|
+
}
|
134
136
|
#help{
|
135
137
|
float: right;
|
136
138
|
}
|
@@ -1,30 +1,39 @@
|
|
1
1
|
/* @override http://localhost:3000/stylesheets/cable/tables.css */
|
2
2
|
table{
|
3
3
|
border-bottom: 2px solid #ccc;
|
4
|
+
margin-bottom: 1em;
|
4
5
|
}
|
5
6
|
thead th{
|
6
7
|
background: #eee;
|
7
8
|
border-bottom: 2px solid #ccc;
|
8
|
-
font-weight:
|
9
|
-
font-size:
|
9
|
+
font-weight:bold;
|
10
|
+
font-size:1em;
|
10
11
|
}
|
12
|
+
tbody th{
|
13
|
+
background: #eee;
|
14
|
+
border-right: 2px solid #ccc;
|
15
|
+
font-weight:bold;
|
16
|
+
font-size:1em;
|
17
|
+
}
|
18
|
+
|
11
19
|
|
12
20
|
table td{
|
13
|
-
border-bottom: 1px dashed #ccc;
|
14
21
|
border-right: 1px dashed #ccc;
|
15
22
|
}
|
16
23
|
|
17
24
|
tbody tr:nth-child(even) td,
|
18
25
|
tbody tr.even td {
|
19
|
-
background
|
26
|
+
background: #eee;
|
27
|
+
}
|
28
|
+
tbody tr:last td{
|
29
|
+
border-bottom:none;
|
20
30
|
}
|
21
|
-
|
22
31
|
th.actions,
|
23
32
|
td.actions{
|
24
33
|
text-align: right;
|
25
34
|
}
|
26
35
|
td.actions{
|
27
|
-
|
36
|
+
padding: 5px;
|
28
37
|
}
|
29
38
|
tbody tr td:first-child{
|
30
39
|
border-left: none;
|
@@ -1,3 +1,5 @@
|
|
1
|
+
/* @override http://localhost:3000/stylesheets/jquery/ui/jquery-ui-1.8.7.custom.css */
|
2
|
+
|
1
3
|
/*
|
2
4
|
* jQuery UI CSS Framework 1.8.7
|
3
5
|
*
|
@@ -60,7 +62,6 @@
|
|
60
62
|
.ui-widget .ui-widget { font-size: 1em; }
|
61
63
|
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica,Arial,sans-serif; font-size: 1em; }
|
62
64
|
.ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; }
|
63
|
-
.ui-widget-content a { color: #4F4F4F; }
|
64
65
|
.ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }
|
65
66
|
.ui-widget-header {
|
66
67
|
background: url(images/bg_fallback.png) 0 0 repeat-x;
|
@@ -553,7 +554,9 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
|
553
554
|
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; background: url(images/icon_sprite.png) 0 -16px no-repeat; }
|
554
555
|
.ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; }
|
555
556
|
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border: 0; }
|
556
|
-
.ui-dialog .ui-dialog-content { position: relative; border: 0;
|
557
|
+
.ui-dialog .ui-dialog-content { position: relative; border: 0; background: none; overflow: auto; zoom: 1;
|
558
|
+
padding: .5em;
|
559
|
+
}
|
557
560
|
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
558
561
|
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
559
562
|
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: cable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.9.
|
5
|
+
version: 0.9.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Spencer Markowski
|
@@ -12,7 +12,7 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date: 2011-03-
|
15
|
+
date: 2011-03-15 00:00:00 -04:00
|
16
16
|
default_executable:
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
@@ -48,6 +48,39 @@ dependencies:
|
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: *id003
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: formtastic
|
53
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
type: :runtime
|
60
|
+
prerelease: false
|
61
|
+
version_requirements: *id004
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: simple-navigation
|
64
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: "0"
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: *id005
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: jquery-rails
|
75
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: "0"
|
81
|
+
type: :runtime
|
82
|
+
prerelease: false
|
83
|
+
version_requirements: *id006
|
51
84
|
description:
|
52
85
|
email:
|
53
86
|
executables: []
|
@@ -112,18 +145,10 @@ files:
|
|
112
145
|
- lib/generators/cable/menu/menu_generator.rb
|
113
146
|
- lib/generators/cable/menu/templates/controller.rb
|
114
147
|
- lib/generators/cable/menu/templates/erb/menus/_menu.html.erb
|
115
|
-
- lib/generators/cable/menu/templates/erb/menus/_menu_children_table.html.erb
|
116
|
-
- lib/generators/cable/menu/templates/erb/menus/_menu_tree.html.erb
|
117
|
-
- lib/generators/cable/menu/templates/erb/menus/_menu_vitals.html.erb
|
118
|
-
- lib/generators/cable/menu/templates/erb/menus/_resource.html.erb
|
119
|
-
- lib/generators/cable/menu/templates/erb/menus/_resource_fields.html.erb
|
120
|
-
- lib/generators/cable/menu/templates/erb/menus/_tree.html.erb
|
121
148
|
- lib/generators/cable/menu/templates/erb/menus/edit.html.erb
|
122
149
|
- lib/generators/cable/menu/templates/erb/menus/index.html.erb
|
123
|
-
- lib/generators/cable/menu/templates/erb/menus/move.html.erb
|
124
150
|
- lib/generators/cable/menu/templates/erb/menus/new.html.erb
|
125
151
|
- lib/generators/cable/menu/templates/erb/menus/show.html.erb
|
126
|
-
- lib/generators/cable/menu/templates/erb/menus/table.html.erb
|
127
152
|
- lib/generators/cable/menu/templates/erb/partials/_menu_fields.html.erb
|
128
153
|
- lib/generators/cable/menu/templates/migration.rb
|
129
154
|
- lib/generators/cable/menu/templates/model.rb
|
@@ -156,8 +181,9 @@ files:
|
|
156
181
|
- public/images/cable/loader.gif
|
157
182
|
- public/images/cable/new-window.png
|
158
183
|
- public/images/cable/nil-icon.png
|
159
|
-
- public/images/cable/page
|
184
|
+
- public/images/cable/page.png
|
160
185
|
- public/images/cable/product-icon.jpg
|
186
|
+
- public/images/cable/search.png
|
161
187
|
- public/images/cable/story-icon.jpg
|
162
188
|
- public/javascripts/admin.js
|
163
189
|
- public/javascripts/cable_menu.js
|
@@ -1,60 +0,0 @@
|
|
1
|
-
<%% content_for :scripts do %>
|
2
|
-
<script>
|
3
|
-
$(document).ready(function(){
|
4
|
-
$(".sortable").sortable({
|
5
|
-
cursor: 'move',
|
6
|
-
axis: 'y',
|
7
|
-
update: function(e, ui) {
|
8
|
-
sorted = $(this).sortable("serialize");
|
9
|
-
$.ajax({
|
10
|
-
type: 'POST',
|
11
|
-
url: "/admin/menus/sort",
|
12
|
-
data: sorted
|
13
|
-
});
|
14
|
-
}
|
15
|
-
});
|
16
|
-
$(".check-all").click(function(){
|
17
|
-
$("input").each(function(){
|
18
|
-
$(this).attr('checked', !$(this).attr('checked'));
|
19
|
-
});
|
20
|
-
});
|
21
|
-
});
|
22
|
-
</script>
|
23
|
-
<%% end %>
|
24
|
-
|
25
|
-
|
26
|
-
<%% unless @<%= singular_table_name %>.children.blank? %>
|
27
|
-
<%%= semantic_form_for :index, :url => {:controller => "menus", :action => "bulk" } do |f| %>
|
28
|
-
<table id="<%%= dom_id(@<%= singular_table_name %>) %>">
|
29
|
-
<thead>
|
30
|
-
<tr>
|
31
|
-
<th><a class="check-all">All</a></th>
|
32
|
-
<th>Title</th>
|
33
|
-
<th>Children</th>
|
34
|
-
<th>Resource Type</th>
|
35
|
-
<th class="actions">Actions</th>
|
36
|
-
</tr>
|
37
|
-
</thead>
|
38
|
-
<tbody class="sortable">
|
39
|
-
<%% @<%= singular_table_name %>.children.each do |menu| %>
|
40
|
-
<tr id="<%%= dom_id(menu)%>">
|
41
|
-
<td class="edit"><%%= check_box_tag 'menus[]', menu.id %></td>
|
42
|
-
<td class="title"><%%= link_to menu.title, [:admin, menu] %>
|
43
|
-
<%% unless menu.show_in_menu %> <span style="color:red;">[Hidden]</span> <%% end %>
|
44
|
-
</td>
|
45
|
-
<td class="children">
|
46
|
-
<%%= menu.children.count %>
|
47
|
-
</td>
|
48
|
-
<td class="class"><%%= menu.resource.class unless menu.resource.class == NilClass %></td>
|
49
|
-
<td class="actions"><%%= link_to "Show", [:admin,menu], :class => "button small" %> <%%= link_to 'Edit', edit_admin_menu_path(menu), :class=>"button small" %> <%%= link_to 'Destroy', [:admin, menu], :confirm => 'Are you sure?', :method => :delete, :class=>"button small" %></td>
|
50
|
-
</tr>
|
51
|
-
<%% end %>
|
52
|
-
</tbody>
|
53
|
-
</table>
|
54
|
-
<%%= f.inputs :name => "Bulk Operations" do %>
|
55
|
-
<%%= f.commit_button "Delete Selected" %>
|
56
|
-
<%%= f.input :parent_id, :as => :select, :collection => nested_set_options(Menu) {|i| "#{'-' * i.level} #{i.title}" unless i.level > 1 }.to_a.reject{|i| i[0].nil?} %>
|
57
|
-
<%%= f.commit_button "Move Selected" %>
|
58
|
-
<%% end %>
|
59
|
-
<%% end %>
|
60
|
-
<%% end %>
|
@@ -1,30 +0,0 @@
|
|
1
|
-
|
2
|
-
<div class="content box">
|
3
|
-
<table>
|
4
|
-
<thead>
|
5
|
-
<tr><th colspan=3>Menu Properies</th></tr>
|
6
|
-
</thead>
|
7
|
-
<tbody>
|
8
|
-
<tr><td class="label">URL: </td><td><%%= "#{menu.url}" %></td><td class="actions"><%%= link_to "Open in New Window", menu.url, :target => "_blank" %></td></tr>
|
9
|
-
<%% unless menu.children.empty? %>
|
10
|
-
<tr><td class="label">Children: </td><td colspan=2><%%= raw menu.children.collect{|i| link_to i.title, [:admin, i]}.join(", ") %></td></tr>
|
11
|
-
<%% end %>
|
12
|
-
<%% unless menu.root? %>
|
13
|
-
<tr><td class="label">Root:</td><td><%%= link_to menu.root.title, [:admin, menu.root] %></td></tr>
|
14
|
-
<%% end %>
|
15
|
-
<%% unless menu.resource.nil? %>
|
16
|
-
<tr><td class="label">Links to:</td><td><%%= menu.cable_menuable_type %> | <%%= link_to menu.resource.title, [:admin, menu.resource] %></td></tr>
|
17
|
-
<%% end %>
|
18
|
-
<tr>
|
19
|
-
<td colspan=3 class="actions">
|
20
|
-
<%%= link_to "Show", [:admin,menu], :class => "button small" %>
|
21
|
-
<%%= link_to "Edit Menu Properties", edit_admin_menu_path(menu), :class => "button small" %>
|
22
|
-
<%%= link_to "Move", move_admin_menus_path(menu), :class => "button small" %>
|
23
|
-
<%%# if menu.is_deletable? %>
|
24
|
-
<%%= link_to "Destroy", [:admin, menu], :confirm => 'Are you sure? This will also remove associated category image!', :method => :delete, :class => "button small" %>
|
25
|
-
<%%# end %>
|
26
|
-
</td>
|
27
|
-
</tr>
|
28
|
-
</tbody>
|
29
|
-
</table>
|
30
|
-
</div>
|
@@ -1,29 +0,0 @@
|
|
1
|
-
<%% content_for :scripts do %>
|
2
|
-
<script>
|
3
|
-
$(function(){
|
4
|
-
$("#menu_cable_menuable_type").change(function(){
|
5
|
-
$.ajax({ url: "<%%= resources_admin_menus_path %>/"+$(this).val()});
|
6
|
-
});
|
7
|
-
});
|
8
|
-
</script>
|
9
|
-
<%% end %>
|
10
|
-
<%%= semantic_form_for [:admin, @<%= singular_table_name %>] do |f| %>
|
11
|
-
<%%= f.inputs :name => "Add a resource to this menu" do %>
|
12
|
-
<%%= f.input :cable_menuable_type, :label => "Content Model", :as => :select, :collection => ['Page'] %>
|
13
|
-
<%%= f.input :cable_menuable_id, :label => "Resource", :as => :select, :collection => @resources.collect{|r| ["#{r.site.name} - #{r.title}",r.id]} %>
|
14
|
-
<%% end %>
|
15
|
-
|
16
|
-
|
17
|
-
<%% f.buttons do %>
|
18
|
-
<%% unless @<%= singular_table_name %>.resource.nil? %>
|
19
|
-
<%%= f.commit_button "Update Resource" %>
|
20
|
-
<li class="commit"><%%= link_to "Remove this Resource", remove_resource_admin_menus_path(@<%= singular_table_name %>), :class => "button" %></li>
|
21
|
-
<%% else %>
|
22
|
-
<%%= f.commit_button "Add Resource" %>
|
23
|
-
<%% end %>
|
24
|
-
<%% end %>
|
25
|
-
|
26
|
-
|
27
|
-
<%% end %>
|
28
|
-
|
29
|
-
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<fieldset>
|
2
|
-
<li class="select optional" id="menu_cable_menuable_type_input">
|
3
|
-
<label>Resource</label>
|
4
|
-
<select id="menu_cable_menuable_id" name="menu[cable_menuable_id]" MULTIPLE SIZE=10>
|
5
|
-
<%% @resources.each do |resource| %>
|
6
|
-
<option value="<%%= resource.id %>"> <%%= "#{resource.site.name} - #{resource.title}" %></option>
|
7
|
-
<%% end %>
|
8
|
-
</select>
|
9
|
-
</li>
|
10
|
-
</fieldset>
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<%% content_tag :li, :id => dom_id(menu) do %>
|
2
|
-
<div>
|
3
|
-
<%%= check_box_tag 'menus[]', menu.id %>
|
4
|
-
<span class="handle"><%%= menu.title %></span>
|
5
|
-
<%% unless menu.show_in_menu %> <span style="color:red;">[Hidden]</span> <%% end %>
|
6
|
-
<%%= menu.children.count %>
|
7
|
-
<%%= link_to "Show", [:admin,menu], :class => "button small" %> <%%= link_to 'Edit', edit_admin_menu_path(menu), :class=>"button small" %>
|
8
|
-
<%%= link_to 'Destroy', [:admin, menu], :confirm => 'Are you sure?', :method => :delete, :class=>"button small" %>
|
9
|
-
</div>
|
10
|
-
|
11
|
-
<%% content_tag :ul do %>
|
12
|
-
<%% for child in menu.children do %>
|
13
|
-
<%%= render :partial => "admin/menus/tree", :locals => {:menu => child }%>
|
14
|
-
<%% end %>
|
15
|
-
<%% end unless menu.leaf? %>
|
16
|
-
<%% end %>
|
@@ -1,25 +0,0 @@
|
|
1
|
-
<h2>Move Menu</h2>
|
2
|
-
<div id="parent">Select a parent</div><br />
|
3
|
-
<%%= semantic_form_for [:admin, @<%= singular_table_name %>] do |f| %>
|
4
|
-
<%%= f.inputs do %>
|
5
|
-
<%%= f.input :parent_id, :as => :hidden %>
|
6
|
-
<%%= f.input :id, :as => :hidden %>
|
7
|
-
<li class="select optional" id="menu_parent_id_input">
|
8
|
-
<div style="width:100px;">
|
9
|
-
<ul id="menu-tree-list">
|
10
|
-
<li>Site Root <%%= image_tag "/images/arrow-head.png" %>
|
11
|
-
<ul>
|
12
|
-
<%% @<%= plural_table_name %>.each do |m| -%>
|
13
|
-
<li id="<%%= dom_id(m) %>" title="<%%= m.title %>"><%%= m.title %><%% if m.descendants %><%%= raw display_tree_plain(m.children, m.id) %><%% end %></li>
|
14
|
-
<%% end %>
|
15
|
-
</ul>
|
16
|
-
</li>
|
17
|
-
</ul>
|
18
|
-
</div>
|
19
|
-
</li>
|
20
|
-
|
21
|
-
<%% end %>
|
22
|
-
|
23
|
-
<%%= f.buttons %>
|
24
|
-
|
25
|
-
<%% end %>
|