summaryrefslogtreecommitdiff
path: root/modules/organize/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'modules/organize/controllers')
-rw-r--r--modules/organize/controllers/organize.php165
1 files changed, 22 insertions, 143 deletions
diff --git a/modules/organize/controllers/organize.php b/modules/organize/controllers/organize.php
index 8dc8692c..bfd4992d 100644
--- a/modules/organize/controllers/organize.php
+++ b/modules/organize/controllers/organize.php
@@ -19,159 +19,38 @@
*/
class Organize_Controller extends Controller {
function dialog($album_id) {
+ $input = Input::instance();
+
$album = ORM::factory("item", $album_id);
access::required("view", $album);
access::required("edit", $album);
$v = new View("organize_dialog.html");
$v->album = $album;
- $v->album_tree = self::_expanded_tree(ORM::factory("item", 1), $album);
- $v->micro_thumb_grid = self::_get_micro_thumb_grid($album, 0);
- print $v;
- }
-
- function album($album_id, $offset) {
- $album = ORM::factory("item", $album_id);
- access::required("view", $album);
- access::required("edit", $album);
-
- print json_encode(
- array("grid" => (string)self::_get_micro_thumb_grid($album, $offset),
- "sort_column" => $album->sort_column,
- "sort_order" => $album->sort_order));
- }
-
- function move_to($target_album_id) {
- access::verify_csrf();
-
- $target_album = ORM::factory("item", $target_album_id);
- access::required("view", $target_album);
- access::required("add", $target_album);
-
- $source_album = null;
- foreach (Input::instance()->post("source_ids") as $source_id) {
- $source = ORM::factory("item", $source_id);
- if (empty($source_album)) { // get the source_album
- $source_album = $source->parent();
- }
- if (!$source->contains($target_album)) {
- access::required("edit", $source);
- item::move($source, $target_album);
- }
- }
-
- print json_encode(
- array("tree" => (string)self::_expanded_tree(ORM::factory("item", 1), $source_album),
- "grid" => (string)self::_get_micro_thumb_grid($source_album, 0)));
- }
-
- function rearrange($target_id, $before_or_after) {
- access::verify_csrf();
-
- $target = ORM::factory("item", $target_id);
- $album = $target->parent();
- access::required("view", $album);
- access::required("edit", $album);
-
- //if (locales::is_rtl()) { // invert the position if the locale is rtl
- // $before_or_after = $before_or_after == "after" ? "before" : "after";
- //}
-
- $source_ids = Input::instance()->post("source_ids", array());
-
- if ($album->sort_column != "weight") {
- $i = 0;
- foreach ($album->children() as $child) {
- // Do this directly in the database to avoid sending notifications
- db::build()
- ->update("items")
- ->set("weight", ++$i)
- ->where("id", "=", $child->id)
- ->execute();
- }
- $album->sort_column = "weight";
- $album->sort_order = "ASC";
- $album->save();
- $target->reload();
- }
-
- // Find the insertion point
- $target_weight = $target->weight;
- if ($before_or_after == "after") {
- $target_weight++;
- }
-
- // Make a hole
- $count = count($source_ids);
- db::build()
- ->update("items")
- ->set("weight", new Database_Expression("`weight` + $count"))
- ->where("weight", ">=", $target_weight)
- ->where("parent_id", "=", $album->id)
- ->execute();
-
- // Insert source items into the hole
- foreach ($source_ids as $source_id) {
- db::build()
- ->update("items")
- ->set("weight", $target_weight++)
- ->where("id", "=", $source_id)
- ->execute();
+ // @todo turn this into an api call.
+ $v->file_filter = json_encode(array("Images" => "*.jpg; *.jpeg; *.gif; *.png",
+ "Movies" => "*.flv; *.mp4"));
+ $v->domain = $input->server("SERVER_NAME");
+ // @todo figure out how to connect this w/o a dependency
+ $v->base_url = url::abs_site("rest") . "/";
+
+ $v->sort_order = json_encode(array("ASC" => (string)t("Ascending"), "DESC" => (string)t("Descending")));
+ $sort_fields = array();
+ foreach (album::get_sort_order_options() as $field => $description) {
+ $sort_fields[$field] = (string)$description;
}
+ $v->sort_fields = json_encode($sort_fields);
- module::event("album_rearrange", $album);
-
- print json_encode(
- array("grid" => (string)self::_get_micro_thumb_grid($album, 0),
- "sort_column" => $album->sort_column,
- "sort_order" => $album->sort_order));
- }
-
- public function sort_order($album_id, $col, $dir) {
- access::verify_csrf();
-
- $album = ORM::factory("item", $album_id);
- access::required("view", $album);
- access::required("edit", $album);
-
- $options = album::get_sort_order_options();
- if (!isset($options[$col])) {
- return;
- }
-
- $album->sort_column = $col;
- $album->sort_order = $dir;
- $album->save();
-
- print json_encode(
- array("grid" => (string)self::_get_micro_thumb_grid($album, 0),
- "sort_column" => $album->sort_column,
- "sort_order" => $album->sort_order));
- }
-
- private static function _get_micro_thumb_grid(Item_Model $album, $offset) {
- $v = new View("organize_thumb_grid.html");
- $v->album = $album;
- $v->offset = (int) $offset;
- return $v;
+ $user = identity::active_user();
+ $v->api_key = rest::get_access_token($user->id)->access_key;
+ print $v;
}
- public function tree($album_id) {
- $album = ORM::factory("item", $album_id);
- access::required("view", $album);
-
- print self::_expanded_tree($album);
+ function add_album_fields() {
+ print json_encode(array("title" => (string)t("Title"),
+ "description" => (string)t("Description"),
+ "name" => (string)t("Directory name"),
+ "slug" => (string)t("Internet Address")));
}
- /**
- * Create an HTML representation of the tree from the root down to the selected album. We only
- * include albums along the descendant hierarchy that includes the selected album, and the
- * immediate child albums.
- */
- private static function _expanded_tree($root, $selected_album=null) {
- $v = new View("organize_tree.html");
- $v->album = $root;
- $v->selected = $selected_album;
- return $v;
- }
}