summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gallery.dialog.js2
-rw-r--r--modules/tag/views/admin_tags.html.php95
-rw-r--r--themes/admin_default/js/ui.init.js34
-rw-r--r--themes/default/js/ui.init.js2
4 files changed, 116 insertions, 17 deletions
diff --git a/lib/gallery.dialog.js b/lib/gallery.dialog.js
index cfc89227..ed17cf9d 100644
--- a/lib/gallery.dialog.js
+++ b/lib/gallery.dialog.js
@@ -4,7 +4,7 @@
* @see openDialog()
*/
function handleDialogEvent(event) {
- openDialog(event.data.element);
+ openDialog(event.currentTarget);
event.preventDefault();
}
diff --git a/modules/tag/views/admin_tags.html.php b/modules/tag/views/admin_tags.html.php
index 8700fc09..c1d32de5 100644
--- a/modules/tag/views/admin_tags.html.php
+++ b/modules/tag/views/admin_tags.html.php
@@ -1,15 +1,78 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
-<h1> <?= t("Tags") ?> </h1>
-
-<div id="gTagSearch">
- <form method="get" action="<?= url::site("admin/tags") ?>">
- <fieldset>
- <legend> <?= t("Search Tags") ?> </legend>
- <input name="filter" value="<?= $filter ?>"/>
- <input type="submit" value="<?= t("Search Tags") ?>"/>
- </fieldset>
- </form>
-</div>
+<style>
+ #gTagAdmin ul {
+ padding-bottom: .3em;
+ }
+ #gTagAdmin li {
+ padding: .1em 0 .2em .3em;
+ }
+ #gTagAdmin .gColumn {
+ float: left;
+ width: 200px;
+ }
+ .gEditable {
+ padding: .1em .3em .2em .3em;
+ }
+ .gEditable:hover {
+ background-color: #ffc;
+ cursor: text;
+ }
+ #gRenameTagForm input {
+ padding: 0 .2em 0 .2em;
+ clear: none;
+ float: left;
+ }
+ #gRenameTagForm input[type="submit"] {
+ height: 25px;
+ }
+ #gRenameTagForm a, #gEditTagForm span {
+ display: block;
+ float: left;
+ padding: .2em 0 0 .3em;
+ }
+</style>
+<div class="gBlock">
+ <h2>
+ <?= t("Tag Admin") ?>
+ </h2>
+
+ <? $tags_per_column = $tags->count()/5 ?>
+ <? $column_tag_number = 0 ?>
+
+ <div id="gTagAdmin" class="gBlockContent">
+ <div class="gColumn">
+ <? foreach ($tags as $i => $tag): ?>
+ <? $current_letter = strtoupper(substr($tag->name, 0, 1)) ?>
+
+ <? if ($i == 0): ?>
+ <strong><?= $current_letter ?></strong>
+ <ul>
+ <? elseif ($last_letter != $current_letter): ?>
+ <? if ($column_tag_number > $tags_per_column): ?>
+ </div>
+ <div class="gColumn">
+ <? $column_tag_number = 0 ?>
+ <? endif ?>
+ </ul>
+ <strong><?= $current_letter ?></strong>
+ <ul>
+ <? endif ?>
+
+ <li>
+ <span id="gTag-<?= $tag->id ?>" class="gEditable"
+ title="<?= t("Click to edit this tag") ?>"><?= $tag->name ?></span>
+ <span class="understate">(<?= $tag->count ?>)</span>
+ <a href="<?= url::site("admin/tags/form_delete/$tag->id") ?>" class="gDialogLink"
+ title="<?= t("Delete this tag") ?>">X</a>
+ </li>
+
+ <? $column_tag_number++ ?>
+ <? $last_letter = $current_letter ?>
+ <? endforeach ?>
+ </ul>
+
+ </div>
+ </div>
<table>
<tr>
@@ -40,3 +103,13 @@
</tr>
<? endforeach ?>
</table>
+
+<div id="gTagSearch">
+ <form method="get" action="<?= url::site("admin/tags") ?>">
+ <fieldset>
+ <legend> <?= t("Search Tags") ?> </legend>
+ <input name="filter" value="<?= $filter ?>"/>
+ <input type="submit" value="<?= t("Search Tags") ?>"/>
+ </fieldset>
+ </form>
+</div>
diff --git a/themes/admin_default/js/ui.init.js b/themes/admin_default/js/ui.init.js
index 04b7ab0c..efc2af04 100644
--- a/themes/admin_default/js/ui.init.js
+++ b/themes/admin_default/js/ui.init.js
@@ -17,13 +17,13 @@ $(document).ready(function(){
// Apply modal dialogs
var dialogLinks = $(".gDialogLink");
for (var i=0; i < dialogLinks.length; i++) {
- $(dialogLinks[i]).bind("click", {element: dialogLinks[i]}, handleDialogEvent);
+ $(dialogLinks[i]).bind("click", handleDialogEvent);
}
// Apply hide/show functionality on user admin view
var panelLinks = $(".gPanelLink");
for (i=0; i<panelLinks.length; i++) {
- $(panelLinks[i]).bind("click", {element: panelLinks[i]}, handlePanelEvent);
+ $(panelLinks[i]).bind("click", handlePanelEvent);
}
// Round corners
@@ -33,11 +33,35 @@ $(document).ready(function(){
// Add drop shadows
$(".gSelected").dropShadow();
-
+
+ // In-place editing for tag admin
+ $(".gEditable").bind("click", editInplace);
});
+function editInplace(element){
+ // close already open inplace edit forms
+ if ($("#gRenameTagForm").length) {
+ var li = $("#gRenameTagForm").parent();
+ $("#gRenameTagForm").parent().html($("#gRenameTagForm").parent().data("revert"));
+ //li.$(".gEditable"); // TODO: would be good if below statements could only execute within li
+ $(".gEditable").bind("click", editInplace);
+ $(".dialogLink").bind("click", handleDialogEvent);
+ }
+
+ var tag_id = $(this).attr('id').substr(5);
+ $(this).parent().data("revert", $(this).parent().html());
+ var form = '<form id="gRenameTagForm" method="post" action="/gallery3/index.php/admin/tags/rename/' + tag_id + '">';
+ form += '<input id="name" name="name" type="text" class="textbox" value="' + tag_name + '" />';
+ form += '<input type="submit" class="submit" value="Save" />';
+ form += '<span>or</span> <a href="#">cancel</a>';
+ form += '</form>';
+
+ $(this).parent().html(form);
+ $("#gRenameTagForm .textbox").focus();
+}
+
function handlePanelEvent(event) {
- togglePanel(event.data.element);
+ togglePanel(event.currentTarget);
event.preventDefault();
}
@@ -89,3 +113,5 @@ function togglePanel(element, on_success) {
}
return false;
}
+
+
diff --git a/themes/default/js/ui.init.js b/themes/default/js/ui.init.js
index 57b7ddec..2b8db1b7 100644
--- a/themes/default/js/ui.init.js
+++ b/themes/default/js/ui.init.js
@@ -50,7 +50,7 @@ $(document).ready(function() {
$("#gLoginLink").addClass("gDialogLink");
var dialogLinks = $(".gDialogLink");
for (var i=0; i < dialogLinks.length; i++) {
- $(dialogLinks[i]).bind("click", {element: dialogLinks[i]}, handleDialogEvent);
+ $(dialogLinks[i]).bind("click", handleDialogEvent);
}
// Short forms