diff options
Diffstat (limited to 'apps/files_trashbin/ajax/delete.php')
-rw-r--r-- | apps/files_trashbin/ajax/delete.php | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/apps/files_trashbin/ajax/delete.php b/apps/files_trashbin/ajax/delete.php index 5498250dbf5..75d481768ad 100644 --- a/apps/files_trashbin/ajax/delete.php +++ b/apps/files_trashbin/ajax/delete.php @@ -4,14 +4,24 @@ OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); // "empty trash" command -$deleteAll = false; if (isset($_POST['allfiles']) and $_POST['allfiles'] === 'true'){ - $user = \OCP\User::getUser(); - $list = OCA\Files_Trashbin\Helper::getTrashFiles('/'); $deleteAll = true; - $dirlisting = '0'; + $folder = isset($_POST['dir']) ? $_POST['dir'] : '/'; + if ($folder === '/' || $folder === '') { + OCA\Files_Trashbin\Trashbin::deleteAll(); + $list = array(); + } else { + $dirname = dirname($folder); + if ( $dirname !== '/' && $dirname !== '.' ) { + $dirlisting = '1'; + } else { + $dirlisting = '0'; + } + $list[] = $folder; + } } else { + $deleteAll = false; $files = $_POST['files']; $dirlisting = $_POST['dirlisting']; $list = json_decode($files); @@ -19,19 +29,13 @@ else { $error = array(); $success = array(); - $i = 0; foreach ($list as $file) { if ( $dirlisting === '0') { - if ($deleteAll) { - $filename = $file['name']; - $timestamp = $file['timestamp']; - } - else { - $delimiter = strrpos($file, '.d'); - $filename = substr($file, 0, $delimiter); - $timestamp = substr($file, $delimiter+2); - } + $file = ltrim($file, '/'); + $delimiter = strrpos($file, '.d'); + $filename = substr($file, 0, $delimiter); + $timestamp = substr($file, $delimiter+2); } else { $filename = $file; $timestamp = null; |