diff options
-rw-r--r-- | actions/deletetag.php | 54 | ||||
-rw-r--r-- | actions/photos/image/untag.php | 24 | ||||
-rw-r--r-- | classes/TidypicsImage.php | 4 | ||||
-rw-r--r-- | languages/en.php | 11 | ||||
-rw-r--r-- | start.php | 2 | ||||
-rw-r--r-- | views/default/js/photos/tagging.php | 13 | ||||
-rw-r--r-- | views/default/photos/tagging/tag.php | 16 |
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. @@ -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; |