summaryrefslogtreecommitdiff
path: root/modules/gallery
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gallery')
-rw-r--r--modules/gallery/controllers/move.php10
-rw-r--r--modules/gallery/helpers/item.php15
-rw-r--r--modules/gallery/helpers/item_rest.php16
3 files changed, 22 insertions, 19 deletions
diff --git a/modules/gallery/controllers/move.php b/modules/gallery/controllers/move.php
index f8b85b6f..3ce44546 100644
--- a/modules/gallery/controllers/move.php
+++ b/modules/gallery/controllers/move.php
@@ -34,12 +34,10 @@ class Move_Controller extends Controller {
$source = ORM::factory("item", $source_id);
$target = ORM::factory("item", Input::instance()->post("target_id"));
- access::required("view", $source);
- access::required("edit", $source);
- access::required("view", $target);
- access::required("edit", $target);
-
- item::move($source, $target);
+ $message = item::move($source, $target);
+ if (!empty($message)) {
+ message.info($message);
+ }
print json_encode(
array("result" => "success",
diff --git a/modules/gallery/helpers/item.php b/modules/gallery/helpers/item.php
index 15bbe977..6a740de4 100644
--- a/modules/gallery/helpers/item.php
+++ b/modules/gallery/helpers/item.php
@@ -47,27 +47,28 @@ class item_Core {
$orig_name_filename = pathinfo($source->name, PATHINFO_FILENAME);
$orig_name_extension = pathinfo($source->name, PATHINFO_EXTENSION);
$orig_slug = $source->slug;
+ $message = "";
for ($i = 0; $i < 5; $i++) {
try {
$source->save();
if ($orig_name != $source->name) {
switch ($source->type) {
case "album":
- message::info(
+ $message =
t("Album <b>%old_name</b> renamed to <b>%new_name</b> to avoid a conflict",
- array("old_name" => $orig_name, "new_name" => $source->name)));
+ array("old_name" => $orig_name, "new_name" => $source->name));
break;
case "photo":
- message::info(
+ $message =
t("Photo <b>%old_name</b> renamed to <b>%new_name</b> to avoid a conflict",
- array("old_name" => $orig_name, "new_name" => $source->name)));
+ array("old_name" => $orig_name, "new_name" => $source->name));
break;
case "movie":
- message::info(
+ $message =
t("Movie <b>%old_name</b> renamed to <b>%new_name</b> to avoid a conflict",
- array("old_name" => $orig_name, "new_name" => $source->name)));
+ array("old_name" => $orig_name, "new_name" => $source->name));
break;
}
}
@@ -95,6 +96,8 @@ class item_Core {
if ($target->album_cover_item_id == null) {
item::make_album_cover($source);
}
+
+ return $message;
}
static function make_album_cover($item) {
diff --git a/modules/gallery/helpers/item_rest.php b/modules/gallery/helpers/item_rest.php
index 0839b144..692d0895 100644
--- a/modules/gallery/helpers/item_rest.php
+++ b/modules/gallery/helpers/item_rest.php
@@ -99,7 +99,7 @@ class item_rest_Core {
if ($entity = $request->params->entity) {
// Only change fields from a whitelist.
foreach (array("album_cover", "captured", "description",
- "height", "mime_type", "name", "parent", "rand_key", "resize_dirty",
+ "height", "mime_type", "name", "rand_key", "resize_dirty",
"resize_height", "resize_width", "slug", "sort_column", "sort_order",
"thumb_dirty", "thumb_height", "thumb_width", "title", "view_count",
"width") as $key) {
@@ -113,11 +113,6 @@ class item_rest_Core {
break;
case "parent":
- if (property_exists($entity, "parent")) {
- $parent = rest::resolve($entity->parent);
- access::required("edit", $parent);
- $item->parent_id = $parent->id;
- }
break;
default:
if (property_exists($entity, $key)) {
@@ -125,8 +120,15 @@ class item_rest_Core {
}
}
}
+
+ // There is an explicit save in item::move
+ if (property_exists($entity, "parent")) {
+ $parent = rest::resolve($entity->parent);
+ item::move($item, $parent);
+ } else {
+ $item->save();
+ }
}
- $item->save();
if (isset($request->params->members) && $item->sort_column == "weight") {
$weight = 0;