aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin/ajax/undelete.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_trashbin/ajax/undelete.php')
-rw-r--r--apps/files_trashbin/ajax/undelete.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php
new file mode 100644
index 00000000000..a7bb5b9de2d
--- /dev/null
+++ b/apps/files_trashbin/ajax/undelete.php
@@ -0,0 +1,45 @@
+<?php
+
+if(!OCP\User::isLoggedIn()) {
+ exit;
+}
+
+$files = $_REQUEST['files'];
+$dirlisting = $_REQUEST['dirlisting'];
+$list = explode(';', $files);
+
+$error = array();
+$success = array();
+
+$i = 0;
+foreach ($list as $file) {
+ if ( $dirlisting=='0') {
+ $delimiter = strrpos($file, '.d');
+ $filename = substr($file, 0, $delimiter);
+ $timestamp = substr($file, $delimiter+2);
+ } else {
+ $path_parts = pathinfo($file);
+ $filename = $path_parts['basename'];
+ $timestamp = null;
+ }
+
+ if ( !OCA_Trash\Trashbin::restore($file, $filename, $timestamp) ) {
+ $error[] = $filename;
+ } else {
+ $success[$i]['filename'] = $file;
+ $success[$i]['timestamp'] = $timestamp;
+ $i++;
+ }
+
+}
+
+if ( $error ) {
+ $filelist = '';
+ foreach ( $error as $e ) {
+ $filelist .= $e.', ';
+ }
+ OCP\JSON::error(array("data" => array("message" => "Couldn't restore ".rtrim($filelist,', '), "success" => $success, "error" => $error)));
+} else {
+ OCP\JSON::success(array("data" => array("success" => $success)));
+}
+