summaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_trashbin')
-rw-r--r--apps/files_trashbin/ajax/delete.php24
-rw-r--r--apps/files_trashbin/js/disableDefaultActions.js1
-rw-r--r--apps/files_trashbin/js/trash.js25
-rw-r--r--apps/files_trashbin/l10n/es.php3
-rw-r--r--apps/files_trashbin/l10n/sv.php1
-rw-r--r--apps/files_trashbin/lib/trash.php39
6 files changed, 93 insertions, 0 deletions
diff --git a/apps/files_trashbin/ajax/delete.php b/apps/files_trashbin/ajax/delete.php
new file mode 100644
index 00000000000..a166ce55c88
--- /dev/null
+++ b/apps/files_trashbin/ajax/delete.php
@@ -0,0 +1,24 @@
+<?php
+
+OCP\JSON::checkLoggedIn();
+OCP\JSON::callCheck();
+
+$file = $_REQUEST['file'];
+
+$path_parts = pathinfo($file);
+if ($path_parts['dirname'] == '.') {
+ $delimiter = strrpos($file, '.d');
+ $filename = substr($file, 0, $delimiter);
+ $timestamp = substr($file, $delimiter+2);
+} else {
+ $filename = $file;
+ $timestamp = null;
+}
+
+if (OCA_Trash\Trashbin::delete($filename, $timestamp)) {
+ error_log("feinifeini");
+ OCP\JSON::success(array("data" => array("filename" => $file)));
+} else {
+ OCP\JSON::error(array("data" => array("message" => "Couldn't delete ".$file. " permanently")));
+}
+
diff --git a/apps/files_trashbin/js/disableDefaultActions.js b/apps/files_trashbin/js/disableDefaultActions.js
index 56b95407dd3..27c3e13db4d 100644
--- a/apps/files_trashbin/js/disableDefaultActions.js
+++ b/apps/files_trashbin/js/disableDefaultActions.js
@@ -1,3 +1,4 @@
/* disable download and sharing actions */
var disableDownloadActions = true;
var disableSharing = true;
+var trashBinApp = true; \ No newline at end of file
diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js
index f1241fce51e..6c810e4c2bd 100644
--- a/apps/files_trashbin/js/trash.js
+++ b/apps/files_trashbin/js/trash.js
@@ -22,6 +22,31 @@ $(document).ready(function() {
});
};
+ FileActions.register('all', 'Delete', OC.PERMISSION_READ, function () {
+ return OC.imagePath('core', 'actions/delete');
+ }, function (filename) {
+ $('.tipsy').remove();
+
+ var tr=$('tr').filterAttr('data-file', filename);
+ var deleteAction = $('tr').filterAttr('data-file',filename).children("td.date").children(".action.delete");
+ var oldHTML = deleteAction[0].outerHTML;
+ var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'delete file permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
+ deleteAction[0].outerHTML = newHTML;
+
+ $.post(OC.filePath('files_trashbin','ajax','delete.php'),
+ {file:tr.attr('data-file') },
+ function(result){
+ if ( result.status == 'success' ) {
+ var row = document.getElementById(result.data.filename);
+ row.parentNode.removeChild(row);
+ } else {
+ deleteAction[0].outerHTML = oldHTML;
+ OC.dialogs.alert(result.data.message, 'Error');
+ }
+ });
+
+ });
+
// Sets the select_all checkbox behaviour :
$('#select_all').click(function() {
if($(this).attr('checked')){
diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php
index 798322cab24..b191ffc4246 100644
--- a/apps/files_trashbin/l10n/es.php
+++ b/apps/files_trashbin/l10n/es.php
@@ -1,8 +1,11 @@
<?php $TRANSLATIONS = array(
+"perform restore operation" => "Restaurar",
"Name" => "Nombre",
+"Deleted" => "Eliminado",
"1 folder" => "1 carpeta",
"{count} folders" => "{count} carpetas",
"1 file" => "1 archivo",
"{count} files" => "{count} archivos",
+"Nothing in here. Your trash bin is empty!" => "Nada aqui. La papelera esta vacia!",
"Restore" => "Recuperar"
);
diff --git a/apps/files_trashbin/l10n/sv.php b/apps/files_trashbin/l10n/sv.php
index ca4dba04967..5bde85e7056 100644
--- a/apps/files_trashbin/l10n/sv.php
+++ b/apps/files_trashbin/l10n/sv.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"perform restore operation" => "utför återställning",
"Name" => "Namn",
"Deleted" => "Raderad",
"1 folder" => "1 mapp",
diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php
index a7eff3d44e0..e41dcb096c9 100644
--- a/apps/files_trashbin/lib/trash.php
+++ b/apps/files_trashbin/lib/trash.php
@@ -151,6 +151,45 @@ class Trashbin {
}
/**
+ * delete file from trash bin permanently
+ * @param $filename path to the file
+ * @param $timestamp of deletion time
+ * @return true/false
+ */
+ public static function delete($filename, $timestamp=null) {
+
+ $user = \OCP\User::getUser();
+ $view = new \OC_FilesystemView('/'.$user);
+
+ if ( $timestamp ) {
+ $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?');
+ $query->execute(array($user,$filename,$timestamp));
+ $file = $filename.'.d'.$timestamp;
+ } else {
+ $file = $filename;
+ }
+
+ if ( \OCP\App::isEnabled('files_versions') ) {
+ if ($view->is_dir('versions_trashbin/'.$file)) {
+ $view->unlink('versions_trashbin/'.$file);
+ } else if ( $versions = self::getVersionsFromTrash($file, $timestamp) ) {
+ foreach ($versions as $v) {
+ if ($timestamp ) {
+ $view->unlink('versions_trashbin/'.$filename.'.v'.$v.'.d'.$timestamp);
+ } else {
+ $view->unlink('versions_trashbin/'.$file.'.v'.$v);
+ }
+ }
+ }
+ }
+
+ $view->unlink('/files_trashbin/'.$file);
+
+ return true;
+ }
+
+
+ /**
* clean up the trash bin
*/
private static function expire() {