Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* Remove the @todo in module event and always try to call gallery_eve…
…nt::$function first

* Refactor gallery.php to move site_menu, admin_menu, and context_menu to gallery_event.php
* Change Theme_View and Admin_view to call module::event("site_menu|admin_menu|context_menu"...)
  • Loading branch information
Tim Almdal committed Sep 29, 2009
1 parent dd5471b commit 89a67db
Show file tree
Hide file tree
Showing 5 changed files with 264 additions and 250 deletions.
247 changes: 0 additions & 247 deletions modules/gallery/helpers/gallery.php
Expand Up @@ -99,251 +99,4 @@ static function find_file($directory, $file, $required=false) {
return is_string($file_name) ? substr($file_name, strlen(DOCROOT)) : $file_name;
}

static function site_menu($menu, $theme) {
if ($theme->page_type != "login") {
$menu->append(Menu::factory("link")
->id("home")
->label(t("Home"))
->url(item::root()->url()));

$item = $theme->item();

$can_edit = $item && access::can("edit", $item);
$can_add = $item && access::can("add", $item);

if ($can_add) {
$menu->append($add_menu = Menu::factory("submenu")
->id("add_menu")
->label(t("Add")));
$is_album_writable =
is_writable($item->is_album() ? $item->file_path() : $item->parent()->file_path());
if ($is_album_writable) {
$add_menu->append(Menu::factory("dialog")
->id("add_photos_item")
->label(t("Add photos"))
->url(url::site("simple_uploader/app/$item->id")));
if ($item->is_album()) {
$add_menu->append(Menu::factory("dialog")
->id("add_album_item")
->label(t("Add an album"))
->url(url::site("form/add/albums/$item->id?type=album")));
}
} else {
message::warning(t("The album '%album_name' is not writable.",
array("album_name" => $item->title)));
}
}

switch ($item->type) {
case "album":
$option_text = t("Album options");
$edit_text = t("Edit album");
break;
case "movie":
$option_text = t("Movie options");
$edit_text = t("Edit movie");
break;
default:
$option_text = t("Photo options");
$edit_text = t("Edit photo");
}

$menu->append($options_menu = Menu::factory("submenu")
->id("options_menu")
->label($option_text));
if ($item && ($can_edit || $can_add)) {
if ($can_edit) {
$options_menu->append(Menu::factory("dialog")
->id("edit_item")
->label($edit_text)
->url(url::site("form/edit/{$item->type}s/$item->id")));
}

if ($item->is_album()) {
if ($can_edit) {
$options_menu->append(Menu::factory("dialog")
->id("edit_permissions")
->label(t("Edit permissions"))
->url(url::site("permissions/browse/$item->id")));
}
}
}

if (user::active()->admin) {
$menu->append($admin_menu = Menu::factory("submenu")
->id("admin_menu")
->label(t("Admin")));
gallery::admin_menu($admin_menu, $theme);
module::event("admin_menu", $admin_menu, $theme);
}

module::event("site_menu", $menu, $theme);
}
}

static function admin_menu($menu, $theme) {
$menu
->append(Menu::factory("link")
->id("dashboard")
->label(t("Dashboard"))
->url(url::site("admin")))
->append(Menu::factory("submenu")
->id("settings_menu")
->label(t("Settings"))
->append(Menu::factory("link")
->id("graphics_toolkits")
->label(t("Graphics"))
->url(url::site("admin/graphics")))
->append(Menu::factory("link")
->id("languages")
->label(t("Languages"))
->url(url::site("admin/languages")))
->append(Menu::factory("link")
->id("advanced")
->label(t("Advanced"))
->url(url::site("admin/advanced_settings"))))
->append(Menu::factory("link")
->id("modules")
->label(t("Modules"))
->url(url::site("admin/modules")))
->append(Menu::factory("submenu")
->id("content_menu")
->label(t("Content")))
->append(Menu::factory("submenu")
->id("appearance_menu")
->label(t("Appearance"))
->append(Menu::factory("link")
->id("themes")
->label(t("Theme Choice"))
->url(url::site("admin/themes")))
->append(Menu::factory("link")
->id("theme_options")
->label(t("Theme Options"))
->url(url::site("admin/theme_options"))))
->append(Menu::factory("submenu")
->id("statistics_menu")
->label(t("Statistics")))
->append(Menu::factory("link")
->id("maintenance")
->label(t("Maintenance"))
->url(url::site("admin/maintenance")));
return $menu;
}

static function context_menu($menu, $theme, $item, $thumb_css_selector) {
$menu->append($options_menu = Menu::factory("submenu")
->id("options_menu")
->label(t("Options"))
->css_class("ui-icon-carat-1-n"));

if (access::can("edit", $item)) {
$page_type = $theme->page_type();
switch ($item->type) {
case "movie":
$edit_title = t("Edit this movie");
$delete_title = t("Delete this movie");
break;

case "album":
$edit_title = t("Edit this album");
$delete_title = t("Delete this album");
break;

default:
$edit_title = t("Edit this photo");
$delete_title = t("Delete this photo");
break;
}
$cover_title = t("Choose as the album cover");
$move_title = t("Move to another album");

$csrf = access::csrf_token();

$options_menu->append(Menu::factory("dialog")
->id("edit")
->label($edit_title)
->css_class("ui-icon-pencil")
->url(url::site("quick/form_edit/$item->id?page_type=$page_type")));


if ($item->is_photo() && graphics::can("rotate")) {
$options_menu
->append(
Menu::factory("ajax_link")
->id("rotate_ccw")
->label(t("Rotate 90° counter clockwise"))
->css_class("ui-icon-rotate-ccw")
->ajax_handler("function(data) { " .
"\$.gallery_replace_image(data, \$('$thumb_css_selector')) }")
->url(url::site("quick/rotate/$item->id/ccw?csrf=$csrf&page_type=$page_type")))
->append(
Menu::factory("ajax_link")
->id("rotate_cw")
->label(t("Rotate 90° clockwise"))
->css_class("ui-icon-rotate-cw")
->ajax_handler("function(data) { " .
"\$.gallery_replace_image(data, \$('$thumb_css_selector')) }")
->url(url::site("quick/rotate/$item->id/cw?csrf=$csrf&page_type=$page_type")));
}

// Don't move photos from the photo page; we don't yet have a good way of redirecting after
// move
if ($page_type == "album") {
$options_menu
->append(Menu::factory("dialog")
->id("move")
->label($move_title)
->css_class("ui-icon-folder-open")
->url(url::site("move/browse/$item->id")));
}

$parent = $item->parent();
if (access::can("edit", $parent)) {
// We can't make this item the highlight if it's an album with no album cover, or if it's
// already the album cover.
if (($item->type == "album" && empty($item->album_cover_item_id)) ||
($item->type == "album" && $parent->album_cover_item_id == $item->album_cover_item_id) ||
$parent->album_cover_item_id == $item->id) {
$disabledState = " ui-state-disabled";
} else {
$disabledState = " ";
}
if ($item->parent()->id != 1) {
$options_menu
->append(Menu::factory("ajax_link")
->id("make_album_cover")
->label($cover_title)
->css_class("ui-icon-star")
->ajax_handler("function(data) { window.location.reload() }")
->url(url::site("quick/make_album_cover/$item->id?csrf=$csrf")));
}
$options_menu
->append(Menu::factory("dialog")
->id("delete")
->label($delete_title)
->css_class("ui-icon-trash")
->css_id("gQuickDelete")
->url(url::site("quick/form_delete/$item->id?csrf=$csrf&page_type=$page_type")));
}

if ($item->is_album()) {
$options_menu
->append(Menu::factory("dialog")
->id("add_item")
->label(t("Add a photo"))
->css_class("ui-icon-plus")
->url(url::site("simple_uploader/app/$item->id")))
->append(Menu::factory("dialog")
->id("add_album")
->label(t("Add an album"))
->css_class("ui-icon-note")
->url(url::site("form/add/albums/$item->id?type=album")))
->append(Menu::factory("dialog")
->id("edit_permissions")
->label(t("Edit permissions"))
->css_class("ui-icon-key")
->url(url::site("permissions/browse/$item->id")));
}
}
}
}

0 comments on commit 89a67db

Please sign in to comment.