From 1e90e40d3a9fe2cb826b56686f23a33879418048 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 28 Jul 2009 13:47:22 -0700 Subject: Use events to generate menus, instead of having xxx_menu helpers. This is the first step towards having a simple, lightweight and unified API for module interaction. --- modules/organize/helpers/organize_event.php | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 modules/organize/helpers/organize_event.php (limited to 'modules/organize/helpers/organize_event.php') diff --git a/modules/organize/helpers/organize_event.php b/modules/organize/helpers/organize_event.php new file mode 100644 index 00000000..99a28673 --- /dev/null +++ b/modules/organize/helpers/organize_event.php @@ -0,0 +1,33 @@ +item(); + + if ($item && access::can("edit", $item) && $item->is_album()) { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("organize") + ->label(t("Organize Album")) + ->css_id("gOrganizeLink") + ->url(url::site("organize/index/{$item->id}"))); + } + } +} -- cgit v1.2.3 From 794a7a5abf38ed828329cb0023df938479e90901 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 6 Aug 2009 14:55:03 -0700 Subject: Leverage the gallery.dialog/js functionality in order to reduce duplicate code --- modules/organize/helpers/organize_event.php | 2 +- modules/organize/helpers/organize_theme.php | 7 +- modules/organize/js/organize.js | 131 +++++++++--------------- modules/organize/views/organize_dialog.html.php | 10 ++ 4 files changed, 61 insertions(+), 89 deletions(-) (limited to 'modules/organize/helpers/organize_event.php') diff --git a/modules/organize/helpers/organize_event.php b/modules/organize/helpers/organize_event.php index 99a28673..887d9c2d 100644 --- a/modules/organize/helpers/organize_event.php +++ b/modules/organize/helpers/organize_event.php @@ -23,7 +23,7 @@ class organize_event_Core { if ($item && access::can("edit", $item) && $item->is_album()) { $menu->get("options_menu") - ->append(Menu::factory("link") + ->append(Menu::factory("dialog") ->id("organize") ->label(t("Organize Album")) ->css_id("gOrganizeLink") diff --git a/modules/organize/helpers/organize_theme.php b/modules/organize/helpers/organize_theme.php index f01ab88b..0fd117c3 100644 --- a/modules/organize/helpers/organize_theme.php +++ b/modules/organize/helpers/organize_theme.php @@ -19,8 +19,9 @@ */ class organize_theme { static function head($theme) { - //$theme->script("organize_init.js"); - $theme->script("organize.js"); - $theme->css("organize.css"); + if (access::can("view", $theme->item()) && access::can("edit", $theme->item())) { + $theme->script("organize.js"); + $theme->css("organize.css"); + } } } diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 3e58f3f3..e4d4a9a2 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -1,91 +1,52 @@ (function($) { - $.fn.organize = function() { - var size = $.getViewportSize(); - var height = size.height() - 100; // Leave 50 pixels on the top and bottom of the dialog - var width = size.width() - 100; // Leave 50 pixels on the left and right of the dialog - return this.each(function() { - $(this).click(function(event) { - var href = event.target.href; - - $("body").append('
'); - - $("#gOrganizeDialog").dialog({ - autoOpen: false, - modal: true, - resizable: false, - width: width, - height: height, - position: "center", - close: function () { - $("#gOrganizeDialog").dialog("destroy").remove(); - document.location.reload(); - }, - zIndex: 75 - }); - $.get(href, _init); - return false; + $.organize = { + /** + * Dynamically initialize the organize dialog when it is displayed + */ + init: function(data) { + // Deal with ui.jquery bug: http://dev.jqueryui.com/ticket/4475 (target 1.8?) + $(".sf-menu li.sfHover ul").css("z-index", 70); + + var height = $("#gOrganizeDetail").innerHeight(); + $("#gMicroThumbPanel").height(height - $("#gOrganizeEditDrawerHandle").outerHeight()); + + $("#gDialog #gMicroThumbDone").click(function(event) { + $("#gDialog").dialog("close"); + window.location.reload(); }); - }); - }; - - /** - * Dynamically initialize the organize dialog when it is displayed - */ - function _init(data) { - // Deal with ui.jquery bug: http://dev.jqueryui.com/ticket/4475 (target 1.8?) - $(".sf-menu li.sfHover ul").css("z-index", 70); - $("#gOrganizeDialog").html(data); - $("#gOrganizeDialog").dialog("open"); - - var height = $("#gOrganizeDetail").innerHeight(); - $("#gMicroThumbPanel").height(height - $("#gOrganizeEditDrawerHandle").outerHeight()); - - if ($("#gOrganizeDialog h1").length) { - $("#gOrganizeDialog").dialog('option', 'title', $("#gOrganizeDialog h1:eq(0)").html()); - } else if ($("#gOrganizeDialog fieldset legend").length) { - $("#gOrganizeDialog").dialog('option', 'title', $("#gOrganizeDialog fieldset legend:eq(0)").html()); + $(".gBranchText span").click($.organize.collapse_or_expand_tree); + $(".gBranchText").click($.organize.setContents); + }, + + /** + * Open or close a branch. If the children is a div placeholder, replace with