diff options
-rw-r--r-- | modules/tag/controllers/admin_tags.php | 4 | ||||
-rw-r--r-- | modules/tag/js/tag.js | 51 | ||||
-rw-r--r-- | modules/tag/views/admin_tags.html.php | 12 | ||||
-rw-r--r-- | themes/admin_default/css/screen.css | 3 |
4 files changed, 68 insertions, 2 deletions
diff --git a/modules/tag/controllers/admin_tags.php b/modules/tag/controllers/admin_tags.php index d6ae310b..90b051aa 100644 --- a/modules/tag/controllers/admin_tags.php +++ b/modules/tag/controllers/admin_tags.php @@ -103,7 +103,9 @@ class Admin_Tags_Controller extends Admin_Controller { print json_encode( array("result" => "success", - "location" => url::site("admin/tags"))); + "location" => url::site("admin/tags"), + "tag_id" => $tag->id, + "new_tagname" => $tag->name)); } else { print json_encode( array("result" => "error", diff --git a/modules/tag/js/tag.js b/modules/tag/js/tag.js index 3cbc30bf..b0ba2516 100644 --- a/modules/tag/js/tag.js +++ b/modules/tag/js/tag.js @@ -15,3 +15,54 @@ function ajaxify_tag_form() { } }); } + +function closeEditInPlaceForms() { + // closes currently open inplace edit forms + if ($("#gRenameTagForm").length) { + var li = $("#gRenameTagForm").parent(); + $("#gRenameTagForm").parent().html($("#gRenameTagForm").parent().data("revert")); + li.height(""); + $(".gEditable", li).bind("click", editInplace); + $(".gDialogLink", li).bind("click", handleDialogEvent); + } +} + +function editInplace(element) { + closeEditInPlaceForms(); + + // creat edit form + var tag_id = $(this).attr('id').substr(5); + var tag_name = $(this).text(); + var tag_width = $(this).width(); + $(this).parent().data("revert", $(this).parent().html()); + var form = '<form id="gRenameTagForm" method="post" class="ui-helper-clearfix" '; + form += 'action="/gallery3/index.php/admin/tags/rename/' + tag_id + '">'; + form += '<input name="csrf" type="hidden" value="' + csrf_token + '" />'; + form += '<input id="name" name="name" type="text" class="textbox" value="' + tag_name + '" />'; + form += '<input type="submit" class="submit ui-state-default ui-corner-all" value="' + save_i18n + '" />'; + form += '<span>' + or_i18n + '</span> <a href="#">' + cancel_i18n + '</a>'; + form += '</form>'; + + // add edit form + $(this).parent().html(form); + $("#gRenameTagForm #name") + .width(tag_width+30) + .focus(); + //$("#gRenameTagForm").parent().height( $("#gRenameTagForm").height() ); + $("#gRenameTagForm a").bind("click", closeEditInPlaceForms); + + ajaxify_editInplaceForm = function() { + $("#gRenameTagForm").ajaxForm({ + dataType: "json", + success: function(data) { + if (data.result == "success") { + closeEditInPlaceForms(); // close form + $("#gTag-" + data.tag_id).text(data.new_tagname); // update tagname + console.log(data); + window.location.reload(); + } + } + }); + }; + ajaxify_editInplaceForm(); +}
\ No newline at end of file diff --git a/modules/tag/views/admin_tags.html.php b/modules/tag/views/admin_tags.html.php index 484cb759..db51555a 100644 --- a/modules/tag/views/admin_tags.html.php +++ b/modules/tag/views/admin_tags.html.php @@ -1,9 +1,19 @@ <?php defined("SYSPATH") or die("No direct script access.") ?> +<script src="<?= url::file("modules/tag/js/tag.js") ?>" type="text/javascript"></script> <script> $("document").ready(function() { - // $("#gTagAdmin .tag-name").attr("title", "<?= t("Click to edit this tag") ?>"); + // using JS for adding link titles to avoid running t() for each tag + $("#gTagAdmin .tag-name").attr("title", "<?= t("Click to edit this tag") ?>"); $("#gTagAdmin .delete-link").attr("title", $(".delete-link:first span").html()); + + // In-place editing for tag admin + $(".gEditable").bind("click", editInplace); }); + // make some values available within tag.js + var csrf_token = "<?= access::csrf_token() ?>"; + var save_i18n = '<?= t("save") ?>'; + var or_i18n = '<?= t("or") ?>'; + var cancel_i18n = '<?= t("cancel") ?>'; </script> <div class="gBlock"> <h2> diff --git a/themes/admin_default/css/screen.css b/themes/admin_default/css/screen.css index 4a0614cd..cd68674c 100644 --- a/themes/admin_default/css/screen.css +++ b/themes/admin_default/css/screen.css @@ -255,6 +255,9 @@ li.gGroup { } /**** Stuff that needs a home! ****/ +#gTagAdmin { + table-layout: fixed; +} #gTagAdmin td { border: 0; } |