summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/organize/controllers/organize.php27
-rw-r--r--modules/organize/css/organize.css50
-rw-r--r--modules/organize/js/organize.js30
-rw-r--r--modules/organize/views/organize.html.php3
-rw-r--r--modules/organize/views/organize_edit.html.php35
-rw-r--r--modules/tag/helpers/tag_event.php33
-rw-r--r--modules/tag/views/tag_organize.html.php25
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">&nbsp;</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">&nbsp;(<?= $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