diff options
-rw-r--r-- | core/controllers/l10n_client.php | 11 | ||||
-rw-r--r-- | core/helpers/core_menu.php | 57 | ||||
-rw-r--r-- | core/views/scaffold.html.php | 7 |
3 files changed, 47 insertions, 28 deletions
diff --git a/core/controllers/l10n_client.php b/core/controllers/l10n_client.php index 41e05c98..3e95248a 100644 --- a/core/controllers/l10n_client.php +++ b/core/controllers/l10n_client.php @@ -20,6 +20,7 @@ class L10n_Client_Controller extends Controller { public function save($string) { access::verify_csrf(); + user::active()->admin or access::forbidden(); $input = Input::instance(); $message = $input->post("l10n-message-source"); @@ -55,6 +56,16 @@ class L10n_Client_Controller extends Controller { print json_encode(new stdClass()); } + public function toggle_l10n_mode() { + access::verify_csrf(); + + $session = Session::instance(); + $session->set("l10n_mode", + !$session->get("l10n_mode", false)); + + url::redirect(url::site("albums/1")); + } + private static function _l10n_client_form() { $form = new Forge("l10n_client/save", "", "post", array("id" => "gL10nClientSaveForm")); $group = $form->group("l10n_message"); diff --git a/core/helpers/core_menu.php b/core/helpers/core_menu.php index 35a0cb99..c1472001 100644 --- a/core/helpers/core_menu.php +++ b/core/helpers/core_menu.php @@ -32,31 +32,46 @@ class core_menu_Core { $item = $theme->item(); - if ($item && access::can("edit", $item)) { + if (user::active()->admin || ($item && access::can("edit", $item))) { $menu->append($options_menu = Menu::factory("submenu") - ->id("options_menu") - ->label(t("Options")) - ->append(Menu::factory("dialog") - ->id("edit_item") - ->label($item->is_album() ? t("Edit album") : t("Edit photo")) - ->url(url::site("form/edit/{$item->type}s/$item->id")))); + ->id("options_menu") + ->label(t("Options"))); - // @todo Move album options menu to the album quick edit pane - // @todo Create resized item quick edit pane menu - if ($item->is_album()) { + if ($item && access::can("edit", $item)) { $options_menu ->append(Menu::factory("dialog") - ->id("add_item") - ->label(t("Add a photo")) - ->url(url::site("form/add/albums/$item->id?type=photo"))) - ->append(Menu::factory("dialog") - ->id("add_album") - ->label(t("Add an album")) - ->url(url::site("form/add/albums/$item->id?type=album"))) - ->append(Menu::factory("dialog") - ->id("edit_permissions") - ->label(t("Edit permissions")) - ->url(url::site("permissions/browse/$item->id"))); + ->id("edit_item") + ->label($item->is_album() ? t("Edit album") : t("Edit photo")) + ->url(url::site("form/edit/{$item->type}s/$item->id"))); + + // @todo Move album options menu to the album quick edit pane + // @todo Create resized item quick edit pane menu + if ($item->is_album()) { + $options_menu + ->append(Menu::factory("dialog") + ->id("add_item") + ->label(t("Add a photo")) + ->url(url::site("form/add/albums/$item->id?type=photo"))) + ->append(Menu::factory("dialog") + ->id("add_album") + ->label(t("Add an album")) + ->url(url::site("form/add/albums/$item->id?type=album"))) + ->append(Menu::factory("dialog") + ->id("edit_permissions") + ->label(t("Edit permissions")) + ->url(url::site("permissions/browse/$item->id"))); + } + } + + if (user::active()->admin) { + $options_menu + ->append(Menu::factory("link") + ->id("l10n_mode") + ->label(Session::instance()->get("l10n_mode", false) + ? t("Disable translation mode") + : t("Enable translation mode")) + ->url(url::site("l10n_client/toggle_l10n_mode?csrf=" . + access::csrf_token()))); } } diff --git a/core/views/scaffold.html.php b/core/views/scaffold.html.php index b54e6cd2..2dd256c2 100644 --- a/core/views/scaffold.html.php +++ b/core/views/scaffold.html.php @@ -440,13 +440,6 @@ <?= html::anchor("scaffold/session/debug?value=1", "on") ?> <b>off</b> <? endif ?> </li> - <li> Translation Mode: - <? if (Session::instance()->get("l10n_mode", false)): ?> - <b>on</b> <?= html::anchor("scaffold/session/l10n_mode?value=0", "off") ?> - <? else: ?> - <?= html::anchor("scaffold/session/l10n_mode?value=1", "on") ?> <b>off</b> - <? endif ?> - </li> </ul> </div> |