From 6ce086520f52b3397704d3e6693ee919cb60c79e Mon Sep 17 00:00:00 2001 From: did Date: Tue, 5 Jul 2011 21:03:10 +0200 Subject: [PATCH] include potatosalad's work about the menu_toggler --- app/helpers/admin/base_helper.rb | 4 ++ app/views/admin/pages/_page.html.haml | 3 +- public/javascripts/admin/pages.js | 3 +- .../javascripts/admin/plugins/menu_toggler.js | 56 ++++++++----------- 4 files changed, 32 insertions(+), 34 deletions(-) diff --git a/app/helpers/admin/base_helper.rb b/app/helpers/admin/base_helper.rb index 099b31be..7a399630 100644 --- a/app/helpers/admin/base_helper.rb +++ b/app/helpers/admin/base_helper.rb @@ -39,6 +39,10 @@ module Admin::BaseHelper end end + def admin_item_toggler(object) + image_tag("admin/list/icons/node_#{(cookies["folder-#{object._id}"] != 'none') ? 'open' : 'closed'}.png", :class => 'toggler') + end + def collection_to_js(collection, options = {}) js = collection.collect { |object| object.to_json } diff --git a/app/views/admin/pages/_page.html.haml b/app/views/admin/pages/_page.html.haml index b1f4f378..9724292c 100644 --- a/app/views/admin/pages/_page.html.haml +++ b/app/views/admin/pages/_page.html.haml @@ -5,7 +5,8 @@ - with_children = !children.empty? - if not page.index? and with_children - = image_tag 'admin/list/icons/node_closed.png', :class => 'toggler' + = admin_item_toggler(page) + %em %strong= link_to truncate(page.title, :length => 80), edit_admin_page_url(page) diff --git a/public/javascripts/admin/pages.js b/public/javascripts/admin/pages.js index a095568e..a3c5e5b7 100644 --- a/public/javascripts/admin/pages.js +++ b/public/javascripts/admin/pages.js @@ -1,7 +1,8 @@ $(document).ready(function() { // open / close folder - $('#pages-list ul.folder img.toggler').toggleMe(); + if (typeof $.fn.toggleMe != 'undefined') + $('#pages-list ul.folder img.toggler').toggleMe(); // sortable folder items $('#pages-list ul.folder').sortable({ diff --git a/public/javascripts/admin/plugins/menu_toggler.js b/public/javascripts/admin/plugins/menu_toggler.js index 8d09879d..1905d066 100644 --- a/public/javascripts/admin/plugins/menu_toggler.js +++ b/public/javascripts/admin/plugins/menu_toggler.js @@ -1,41 +1,33 @@ /** - * Version 1.0 + * Version 1.0.1 * Init and deploy childs on menu (admin) * Benjamin Athlan - Bewcultures + * Andrew Bennett - Delorum */ $.fn.toggleMe = function(settings) { - settings = $.extend({ - }, settings); - - function toggle(element){ - var children = $(element).parent().find('> ul.folder'); - - children.each(function(){ - if ($(this).is(':visible')) { - $(this).slideUp('fast', function() { - element.attr('src', element.attr('src').replace('open', 'closed')); - $.cookie($(this).attr('id'), 'none'); - }); - } else { - $(this).slideDown('fast', function() { - element.attr('src', element.attr('src').replace('closed', 'open')); - $.cookie($(this).attr('id'), 'block'); - }); - } - }); - }; - - return this.each(function(){ - toggle($(this)); - - $(this).bind("click", function(){ - // console.log(this); - toggle($(this)); + settings = $.extend({}, settings); + + var toggle = function(event) { + var toggler = $(this); + var children = toggler.parent().find('> ul.folder'); + + children.each(function() { + var child = $(this); + if (child.is(':visible')) { + child.slideUp('fast', function() { + toggler.attr('src', toggler.attr('src').replace('open', 'closed')); + $.cookie(child.attr('id'), 'none'); + }); + } else { + child.slideDown('fast', function() { + toggler.attr('src', toggler.attr('src').replace('closed', 'open')); + $.cookie(child.attr('id'), 'block'); + }); + } }); - }); - -}; - + }; + return $(this).bind("click", toggle); +}; \ No newline at end of file