From 855f404e5c2ea1cee67b5261b66eed2d7c3514de Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Mon, 4 Jun 2012 12:52:04 +0200 Subject: [PATCH] Contacts: Temporary files weren't deleted if crop window was closed without saving. --- apps/contacts/ajax/cleanupphoto.php | 41 +++++++++++++++++++++++++++++ apps/contacts/ajax/savecrop.php | 5 ---- apps/contacts/js/contacts.js | 19 ++++++++++++- 3 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 apps/contacts/ajax/cleanupphoto.php 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 @@ + + * + * 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 . + * + * 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 . * * 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(); -- 2.39.5