summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Tanghus <thomas@tanghus.net>2012-06-04 12:52:04 +0200
committerThomas Tanghus <thomas@tanghus.net>2012-06-04 13:14:31 +0200
commit855f404e5c2ea1cee67b5261b66eed2d7c3514de (patch)
tree73ef4afa0b08daef786da029f43a61147ec4dc81
parent59bbf0acee01b64991cbda73270adffe9ff9006b (diff)
downloadnextcloud-server-855f404e5c2ea1cee67b5261b66eed2d7c3514de.tar.gz
nextcloud-server-855f404e5c2ea1cee67b5261b66eed2d7c3514de.zip
Contacts: Temporary files weren't deleted if crop window was closed without saving.
-rw-r--r--apps/contacts/ajax/cleanupphoto.php41
-rw-r--r--apps/contacts/ajax/savecrop.php5
-rw-r--r--apps/contacts/js/contacts.js19
3 files changed, 59 insertions, 6 deletions
diff --git a/apps/contacts/ajax/cleanupphoto.php b/apps/contacts/ajax/cleanupphoto.php
new file mode 100644
index 00000000000..6fd2c351565
--- /dev/null
+++ b/apps/contacts/ajax/cleanupphoto.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * ownCloud - Addressbook
+ *
+ * @author Thomas Tanghus
+ * @copyright 2012 Thomas Tanghus <thomas@tanghus.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * TODO: Translatable strings.
+ * Remember to delete tmp file at some point.
+ */
+// Check if we are a user
+OCP\JSON::checkLoggedIn();
+OCP\JSON::checkAppEnabled('contacts');
+
+$tmp_path = isset($_POST['tmp_path']) ? $_POST['tmp_path'] : '';
+
+// give some time to save the photo
+sleep(5);
+
+if($tmp_path != '' && file_exists($tmp_path)) {
+ unlink($tmp_path);
+ OCP\JSON::success();
+ exit();
+} else {
+ error_log('Couldn\'t find: '.$tmp_path);
+ OCP\JSON::error();
+}
+?>
diff --git a/apps/contacts/ajax/savecrop.php b/apps/contacts/ajax/savecrop.php
index fe9e5c5b991..e335c76fd9a 100644
--- a/apps/contacts/ajax/savecrop.php
+++ b/apps/contacts/ajax/savecrop.php
@@ -19,12 +19,7 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
* TODO: Translatable strings.
- * Remember to delete tmp file at some point.
*/
-// Init owncloud
-
-OCP\Util::writeLog('contacts','ajax/savecrop.php: Huzzah!!!', OCP\Util::DEBUG);
-
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
diff --git a/apps/contacts/js/contacts.js b/apps/contacts/js/contacts.js
index d8aa724a221..61591782064 100644
--- a/apps/contacts/js/contacts.js
+++ b/apps/contacts/js/contacts.js
@@ -134,7 +134,15 @@ Contacts={
$('#edit_name').keydown(function(){Contacts.UI.Card.editName()});
/* Initialize the photo edit dialog */
- $('#edit_photo_dialog').dialog({ autoOpen: false, modal: true, height: 'auto', width: 'auto' });
+ $('#edit_photo_dialog').dialog({
+ autoOpen: false,
+ modal: true,
+ height: 'auto', width: 'auto',
+ beforeClose: function(event, ui) {
+ Contacts.UI.Card.cleanupPhoto(this);
+ return true;
+ }
+ });
$('#edit_photo_dialog' ).dialog( 'option', 'buttons', [
{
text: "Ok",
@@ -1189,6 +1197,15 @@ Contacts={
});
Contacts.UI.Contacts.refreshThumbnail(this.id);
},
+ cleanupPhoto:function(){
+ var tmp_path = $('#cropform').find('#tmp_path').val();
+ console.log('Trying to remove: ' + tmp_path);
+ $.post(OC.filePath('contacts', 'ajax', 'cleanupphoto.php'), {tmp_path: tmp_path}, function(data){
+ if(data.status != 'success'){
+ console.log('Error deleting ' + tmp_path);
+ }
+ });
+ },
addMail:function() {
//alert('addMail');
$('#emaillist li.template:first-child').clone(true).appendTo($('#emaillist')).show().find('a .tip').tipsy();