aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/deletetag.php54
-rw-r--r--actions/photos/image/untag.php24
-rw-r--r--classes/TidypicsImage.php4
-rw-r--r--languages/en.php11
-rw-r--r--start.php2
-rw-r--r--views/default/js/photos/tagging.php13
-rw-r--r--views/default/photos/tagging/tag.php16
7 files changed, 58 insertions, 66 deletions
diff --git a/actions/deletetag.php b/actions/deletetag.php
deleted file mode 100644
index 97c1081f8..000000000
--- a/actions/deletetag.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Tidypics Delete Photo Tag
- *
- */
-
-gatekeeper();
-action_gatekeeper();
-
-$image_guid = get_input('image_guid');
-$tags = get_input('tags');
-
-
-if ($image_guid == 0) {
- register_error(elgg_echo("tidypics:phototagging:error"));
- forward($_SERVER['HTTP_REFERER']);
-}
-
-$image = get_entity($image_guid);
-if (!$image) {
- register_error(elgg_echo("tidypics:phototagging:error"));
- forward($_SERVER['HTTP_REFERER']);
-}
-
-foreach ($tags as $id => $value) {
- // delete normal tag if it exists
- if (is_array($image->tags)) {
- $index = array_search($value, $image->tags);
- if ($index !== false) {
- $tagarray = $image->tags;
- unset($tagarray[$index]);
- $image->clearMetadata('tags');
- $image->tags = $tagarray;
- }
- } else {
- if ($value === $image->tags) {
- $image->clearMetadata('tags');
- }
- }
-
- // delete relationship if this tag is a user
- $annotation = get_annotation($id);
- $photo_tag = unserialize($annotation->value);
- if ($photo_tag->type == 'user') {
- remove_entity_relationship($photo_tag->value, 'phototag', $image_guid);
- }
-
- // delete the photo tag annotation
- delete_annotation($id);
-}
-
-system_message(elgg_echo("tidypics:deletetag:success"));
-
-forward($_SERVER['HTTP_REFERER']);
diff --git a/actions/photos/image/untag.php b/actions/photos/image/untag.php
new file mode 100644
index 000000000..012f98930
--- /dev/null
+++ b/actions/photos/image/untag.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Remove photo tag action
+ */
+
+$annotation = get_annotation(get_input('annotation_id'));
+
+if (!$annotation instanceof ElggAnnotation || $annotation->name != 'phototag') {
+ register_error(elgg_echo("tidypics:phototagging:delete:error"));
+ forward(REFERER);
+}
+
+if (!$annotation->canEdit()) {
+ register_error(elgg_echo("tidypics:phototagging:delete:error"));
+ forward(REFERER);
+}
+
+if ($annotation->delete()) {
+ system_message(elgg_echo("tidypics:phototagging:delete:success"));
+} else {
+ system_message(elgg_echo("tidypics:phototagging:delete:error"));
+}
+
+forward(REFERER);
diff --git a/classes/TidypicsImage.php b/classes/TidypicsImage.php
index b97a2b05e..a64743017 100644
--- a/classes/TidypicsImage.php
+++ b/classes/TidypicsImage.php
@@ -348,7 +348,9 @@ class TidypicsImage extends ElggFile {
'annotation_name' => 'phototag',
));
foreach ($annotations as $annotation) {
- $tags[] = unserialize($annotation->value);
+ $tag = unserialize($annotation->value);
+ $tag->annotation_id = $annotation->id;
+ $tags[] = $tag;
}
return $tags;
diff --git a/languages/en.php b/languages/en.php
index 69ba9d245..efae155b3 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -187,18 +187,21 @@ $english = array(
// tagging
'tidypics:taginstruct' => 'Select the area that you want to tag or %s',
- 'tidypics:deltag_title' => 'Select tags to delete',
'tidypics:finish_tagging' => 'Stop tagging',
'tidypics:tagthisphoto' => 'Tag this photo',
- 'tidypics:deletetag' => 'Delete a photo tag',
'tidypics:actiontag' => 'Tag',
- 'tidypics:actiondelete' => 'Delete',
'tidypics:actioncancel' => 'Cancel',
'tidypics:inthisphoto' => 'In this photo',
'tidypics:usertag' => "Photos tagged with user %s",
'tidypics:phototagging:success' => 'Photo tag was successfully added',
'tidypics:phototagging:error' => 'Unexpected error occurred during tagging',
- 'tidypics:deletetag:success' => 'Selected tags were successfully deleted',
+
+ 'tidypics:phototagging:delete:success' => 'Photo tag was removed.',
+ 'tidypics:phototagging:delete:error' => 'Unexpceted error occurred when removing photo tag.',
+ 'tidypics:phototagging:delete:confirm' => 'Remove this tag?',
+
+
+
'tidypics:tag:subject' => "You have been tagged in a photo",
'tidypics:tag:body' => "You have been tagged in the photo %s by %s.
diff --git a/start.php b/start.php
index a2dc75ab1..6ef3af541 100644
--- a/start.php
+++ b/start.php
@@ -98,7 +98,7 @@ function tidypics_init() {
//register_action("tidypics/ajax_upload", true, "$base_dir/ajax_upload.php");
//register_action("tidypics/ajax_upload_complete", true, "$base_dir/ajax_upload_complete.php");
elgg_register_action("photos/image/tag", "$base_dir/image/tag.php");
- //register_action("tidypics/deletetag", false, "$base_dir/deletetag.php");
+ elgg_register_action("photos/image/untag", "$base_dir/image/untag.php");
elgg_register_action("photos/admin/settings", "$base_dir/admin/settings.php", 'admin');
elgg_register_action("photos/admin/create_thumbnails", "$base_dir/admin/create_thumbnails.php", 'admin');
diff --git a/views/default/js/photos/tagging.php b/views/default/js/photos/tagging.php
index a3c7efc1c..f444aa44c 100644
--- a/views/default/js/photos/tagging.php
+++ b/views/default/js/photos/tagging.php
@@ -7,7 +7,7 @@
*/
?>
-
+//<script>
elgg.provide('elgg.tidypics.tagging');
elgg.tidypics.tagging.init = function() {
@@ -82,10 +82,13 @@ elgg.tidypics.tagging.startSelect = function(img, selection) {
coords += '"height":"' + selection.height + '"';
$("input[name=coordinates]").val(coords);
- $('#tidypics-tagging-select').show().css({
- 'top' : selection.y2 + 10,
- 'left' : selection.x2
- });
+ $('#tidypics-tagging-select').show()
+ .css({
+ 'top' : selection.y2 + 10,
+ 'left' : selection.x2
+ })
+ .find('input[type=text]').focus();
+
};
/**
diff --git a/views/default/photos/tagging/tag.php b/views/default/photos/tagging/tag.php
index 93ea16218..6f6af968a 100644
--- a/views/default/photos/tagging/tag.php
+++ b/views/default/photos/tagging/tag.php
@@ -28,9 +28,23 @@ if ($vars['tag']->type == 'user') {
$label = $vars['tag']->value;
}
+$delete = '';
+$annotation = get_annotation($vars['tag']->annotation_id);
+
+if ($annotation->canEdit()) {
+ $url = elgg_http_add_url_query_elements('action/photos/image/untag', array(
+ 'annotation_id' => $vars['tag']->annotation_id
+ ));
+ $delete = elgg_view('output/confirmlink', array(
+ 'href' => $url,
+ 'text' => elgg_view_icon('delete', 'float mas'),
+ 'confirm' => elgg_echo('tidypics:phototagging:delete:confirm')
+ ));
+}
+
echo <<<HTML
<div class="tidypics-tag-wrapper">
- <div $attributes></div>
+ <div $attributes>$delete</div>
<div class="elgg-module-popup tidypics-tag-label">$label</div>
</div>
HTML;