diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/organize/controllers/organize.php | 27 | ||||
-rw-r--r-- | modules/organize/css/organize.css | 50 | ||||
-rw-r--r-- | modules/organize/js/organize.js | 30 | ||||
-rw-r--r-- | modules/organize/views/organize.html.php | 3 | ||||
-rw-r--r-- | modules/organize/views/organize_edit.html.php | 35 | ||||
-rw-r--r-- | modules/tag/helpers/tag_event.php | 33 | ||||
-rw-r--r-- | modules/tag/views/tag_organize.html.php | 25 |
7 files changed, 165 insertions, 38 deletions
diff --git a/modules/organize/controllers/organize.php b/modules/organize/controllers/organize.php index f48d1bf4..f2827d30 100644 --- a/modules/organize/controllers/organize.php +++ b/modules/organize/controllers/organize.php @@ -30,9 +30,8 @@ class Organize_Controller extends Controller { $v->item = $item; $v->album_tree = $this->tree($item, $root); - $v->edit_form = new View("organize_edit.html"); $v->button_pane = new View("organize_button_pane.html"); - + print $v; } @@ -43,7 +42,7 @@ class Organize_Controller extends Controller { $offset = $this->input->get("offset", 0); $thumbsize = self::$_MICRO_THUMB_SIZE + 2 * self::$_MICRO_THUMB_PADDING; $page_size = ceil($width / $thumbsize) * ceil($height / $thumbsize); - + $v = new View("organize_thumb_grid.html"); $v->children = $item->children($page_size, $offset); $v->thumbsize = self::$_MICRO_THUMB_SIZE; @@ -70,7 +69,7 @@ class Organize_Controller extends Controller { $v = new View("organize_album.html"); $v->album = $parent; $v->selected = $parent->id == $item->id; - + if ($albums->count()) { $v->album_icon = $parent->id == 1 || $v->selected ? "ui-icon-minus" : "ui-icon-plus"; } else { @@ -87,7 +86,7 @@ class Organize_Controller extends Controller { function startTask($operation, $id) { access::verify_csrf(); $items = $this->input->post("item"); - + $item = ORM::factory("item", $id); $definition = $this->_getOperationDefinition($item, $operation); @@ -174,7 +173,7 @@ class Organize_Controller extends Controller { "state" => $task->state, "done" => $task->done))); } - + function cancelTask($task_id) { access::verify_csrf(); @@ -195,7 +194,7 @@ class Organize_Controller extends Controller { $task->status = t("Rotation was cancelled prior to completion"); break; } - $task->save(); + $task->save(); } batch::stop(); @@ -207,7 +206,19 @@ class Organize_Controller extends Controller { "state" => $task->state, "done" => $task->done))); } - + + function editForm() { + $event_parms = new stdClass(); + $event_parms->panes = array(); + $event_parms->itemids = $this->input->get("item");; + + module::event("organize_form_creation", $event_parms); + + $v = new View("organize_edit.html"); + $v->panes = $event_parms->panes; + print $v->render(); + } + private function _getOperationDefinition($item, $operation) { switch ($operation) { case "move": diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index 765ef169..cef25f1c 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -155,6 +155,7 @@ background-color: #fff; border: 1px solid #13A; display: none; + height: 195px; } #gOrganizeEditDrawerHandle { @@ -211,9 +212,15 @@ position: relative; } +/* yui-u gives 80% width, but then we wrap so do it ourselves */ +#gOrganizeEditForm { + float: right; + width: 79%; +// height: 100px; +} + #gOrganizeFormThumbs { overflow: hidden; - min-height: 150px; } #gOrganizeFormThumbs div { @@ -228,3 +235,44 @@ opacity: 1; position: absolute; } + +/**************************************************************** + * Organize Edit From tabs styling + */ +#gOrganizeEditForm.ui-tabs .ui-tabs-hide { + display: block !important; + left: -10000px; + position: absolute; +} + +#gOrganizeEditForm.ui-widget { + font-size: .75em; +} + +.gOrganizeEditPane { + height: 135px; + overflow-y: auto; +} + +.textbox, +.textarea { + border: 1px solid #e8e8e8; + border-top-color: #ccc; + border-left-color: #ccc; + color: #333; + width: 100%; +} + +.textarea { + height: 6em; +} + +.textbox { + height: 1.3em; + width: 50% +} + +.gTagGroup { + float:left; + margin: .5em; +} diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 63cc81d9..538e366d 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -148,6 +148,11 @@ var selectable = { }, unselected: function(event, ui) { setDrawerButtonState(); + }, + stop: function(event, ui) { + if ($("#gMicroThumbGrid li.ui-selected").length > 0) { + getEditForm(); + } } }; @@ -160,6 +165,9 @@ var onMicroThumbContainerMouseup = function(event) { $(this).toggleClass("ui-selected"); setDrawerButtonState(); + if ($("#gMicroThumbGrid li.ui-selected").length > 0) { + getEditForm(); + } }; // MicroThumbContainer mousemove @@ -398,6 +406,8 @@ function get_url(uri, parms) { * there is only 1 image selected */ function setDrawerButtonState() { + $("#gOrganizeFormThumbStack").empty(); + $("#gOrganizeEditForm").empty(); switch ($("#gMicroThumbGrid li.ui-selected").length) { case 0: if ($("#gOrganizeEditDrawerPanel::visible").length) { @@ -409,16 +419,18 @@ function setDrawerButtonState() { case 1: $("#gOrganizeEditHandleButtonsLeft a").removeAttr("disabled"); $("#gOrganizeEditHandleButtonsLeft a").removeClass("ui-state-disabled"); + setSelectedThumbs(); +// getEditForm(); break; default: $("#gOrganizeEditHandleButtonsLeft a[ref='albumCover']").attr("disabled", true); $("#gOrganizeEditHandleButtonsLeft a[ref='albumCover']").addClass("ui-state-disabled"); + setSelectedThumbs(); +// getEditForm(); } - setSelectedThumbs(); } function setSelectedThumbs() { - $("#gOrganizeFormThumbStack").empty(); if (!$("#gOrganizeEditDrawerPanel::visible").length) { return; } @@ -443,6 +455,20 @@ function setSelectedThumbs() { }); } +function getEditForm() { + var postData = ""; + $("li.ui-selected").each(function(i) { + postData += "&item[]=" + $(this).attr("ref"); + }); + var url_data = get_url("organize/editForm", {}) + postData; + $.get(url_data, function(data, textStatus) { + $("#gOrganizeEditForm").tabs("destroy"); + //$("#gOrganizeEditForm").empty(); + $("#gOrganizeEditForm").html(data); + $("#gOrganizeEditForm").tabs(); + }); +} + function serializeItemIds(selector) { var postData = ""; $(selector).each(function(i) { diff --git a/modules/organize/views/organize.html.php b/modules/organize/views/organize.html.php index 3df40c14..60c4a524 100644 --- a/modules/organize/views/organize.html.php +++ b/modules/organize/views/organize.html.php @@ -41,7 +41,8 @@ <div id="gOrganizeFormThumbs" class="yui-u first"> <ul id="gOrganizeFormThumbStack" /> </div> - <?= $edit_form ?> + <div id="gOrganizeEditForm"> + </div> </div> <div id="gOrganizeEditDrawerHandle"> <div id="gOrganizeEditHandleButtonsLeft"> diff --git a/modules/organize/views/organize_edit.html.php b/modules/organize/views/organize_edit.html.php index f3b6eb87..c0fc43e5 100644 --- a/modules/organize/views/organize_edit.html.php +++ b/modules/organize/views/organize_edit.html.php @@ -1,27 +1,10 @@ <?php defined("SYSPATH") or die("No direct script access.") ?> -<div id="gOrganizeForm" class="yui-u"> - <?= form::open(url::site("organize/update/__ITEM_ID__?csrf=__CSRF__&action=__ACTION__"), array("method" => "post")) ?> - - <!-- div id="gOrganizeFormInfo" style="display:none" - ref="<?= url::site("organize/detail/__ITEM_ID__") ?>"> - <ul> - <li> - Title: <span id="gOrganizeFormTitle"></span> - </li> - <li> - Owner: <span id="gOrganizeFormOwner"></span> - </li> - <li> - Date: <span id="gOrganizeFormDate"></span> - </li> - <li> - Description: <span id="gOrganizeFormDescription"> </span> - </li> - </ul> - </div --> - - <span id="gOrganizeFormButtons"> - <?= form::submit(array("id" => "gOrganizeApplyButton", "name" => "apply", "disabled" => true, "class" => "submit"), t("Apply")) ?> - </span> - <?= form::close() ?> -</div>
\ No newline at end of file +<ul> +<? foreach ($panes as $idx => $pane): ?> + <li><a href="#pane-<?= $idx ?>"><?= $pane["label"] ?></a></li> +<? endforeach?> +</ul> + +<? foreach ($panes as $idx => $pane): ?> + <div id="pane-<?= $idx ?>" class="gOrganizeEditPane"><?= $pane["content"] ?></div> +<? endforeach?> diff --git a/modules/tag/helpers/tag_event.php b/modules/tag/helpers/tag_event.php index 43ff6a15..a13ae99c 100644 --- a/modules/tag/helpers/tag_event.php +++ b/modules/tag/helpers/tag_event.php @@ -60,4 +60,37 @@ class tag_event_Core { $db->delete("items_tags", array("item_id" => "$item->id")); } + static function organize_form_creation($event_parms) { + $v = new View("tag_organize.html"); + $v->tags = array(); + + $ids = implode(", ", $event_parms->itemids); + $db = Database::instance(); + $tags = $db->query("SELECT it.tag_id, t.name, + COUNT(DISTINCT it.item_id) as item_count, + UPPER(SUBSTR(t.name, 1, 1)) as first_letter + FROM {items_tags} it, {tags} t + WHERE it.tag_id = t.id + AND it.item_id in($ids) + GROUP BY it.tag_id + ORDER BY first_letter ASC, t.name ASC"); + foreach ($tags as $tag) { + $v->tags[$tag->first_letter]["taglist"][] = + array("id" => $tag->tag_id, "tag" => $tag->name, "count" => $tag->item_count); + } + $v->tag_count = $tags->count(); + + $letters = $db->query("SELECT COUNT(DISTINCT it.item_id) as letter_count, + UPPER(SUBSTR(t.name, 1, 1)) as first_letter + FROM {items_tags} it, {tags} t + WHERE it.tag_id = t.id + AND it.item_id in($ids) + GROUP BY first_letter + ORDER BY first_letter ASC"); + foreach ($letters as $letter) { + $v->tags[$letter->first_letter]["count"] = $letter->letter_count; + } + + $event_parms->panes[] = array("label" => t("Manage Tags"), "content" => $v); + } } diff --git a/modules/tag/views/tag_organize.html.php b/modules/tag/views/tag_organize.html.php new file mode 100644 index 00000000..bb46b861 --- /dev/null +++ b/modules/tag/views/tag_organize.html.php @@ -0,0 +1,25 @@ +<?php defined("SYSPATH") or die("No direct script access.") ?> +<span id="gTagCount"><?= t2("There is one tag", "There are %count tags", $tag_count) ?></span> +<span id="gAddTag"> + <a id="gAddTagButton" href="#" class="gButtonLink"><?= t("Click to Add Tag") ?></a> +</span> +<? foreach ($tags as $firstLetter => $tagGroup): ?> +<div class="gTagGroup"> + <strong><?= $firstLetter ?></strong><span class="understate"> (<?= $tagGroup["count"] ?>)</span> + <ul> + <? foreach ($tagGroup["taglist"] as $taglist): ?> + <li> + <span id="gTag-<?= $taglist['id'] ?>" class="gEditable tag-name"><?= $taglist["tag"] ?></span> + <span class="understate">(<?= $taglist["count"] ?>)</span> + + <!-- a href="<?= url::site("admin/tags/form_delete/{$taglist['id']}") ?>" + class="gDialogLink delete-link gButtonLink" --> + <a href="#" + class="gDialogLink delete-link gButtonLink"> + <span class="ui-icon ui-icon-trash"><?= t("Delete tag") ?></span> + </a> + </li> + <? endforeach ?> + </ul> +</div> +<? endforeach ?>
\ No newline at end of file |