]> source.dussan.org Git - nextcloud-server.git/commitdiff
Contacts: Temporary files weren't deleted if crop window was closed without saving.
authorThomas Tanghus <thomas@tanghus.net>
Mon, 4 Jun 2012 10:52:04 +0000 (12:52 +0200)
committerThomas Tanghus <thomas@tanghus.net>
Mon, 4 Jun 2012 11:14:31 +0000 (13:14 +0200)
apps/contacts/ajax/cleanupphoto.php [new file with mode: 0644]
apps/contacts/ajax/savecrop.php
apps/contacts/js/contacts.js

diff --git a/apps/contacts/ajax/cleanupphoto.php b/apps/contacts/ajax/cleanupphoto.php
new file mode 100644 (file)
index 0000000..6fd2c35
--- /dev/null
@@ -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();
+}
+?>
index fe9e5c5b99190ade5f0d59f84f8f2bfed96a7a50..e335c76fd9accde743fcd5e663f03124adcc35e3 100644 (file)
  * 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');
index d8aa724a22185237d06909785040b7a0100115e5..61591782064dcbc584768c9b33f38d68eafe7034 100644 (file)
@@ -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();