From 5a11e739b4fe3562df139798eac3566fa4809d60 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@arthur-schiwon.de>
Date: Mon, 18 Apr 2011 16:48:35 +0200
Subject: [PATCH] implemented deleting multiple files

---
 files/ajax/delete.php | 21 +++++++++++++++------
 files/js/files.js     | 19 +++++++++++++++++++
 2 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/files/ajax/delete.php b/files/ajax/delete.php
index 113476f025..79caf4d0bb 100644
--- a/files/ajax/delete.php
+++ b/files/ajax/delete.php
@@ -14,14 +14,23 @@ if( !OC_USER::isLoggedIn()){
 
 // Get data
 $dir = $_GET["dir"];
-$file = $_GET["file"];
+$files = isset($_GET["file"]) ? $_GET["file"] : $_GET["files"];
 
-// Delete
-if( OC_FILES::delete( $dir, $file )){
-	echo json_encode( array( "status" => "success", "data" => array( "dir" => $dir, "file" => $file )));
+$files = explode(';', $files);
+$filesWithError = '';
+$status = 'success';
+//Now delete
+foreach($files as $file) {
+    if( !OC_FILES::delete( $dir, $file )){
+		$filesWithError .= $file . "\n";
+		$status = 'error';
+	}
 }
-else{
-	echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to delete file" )));
+
+if($status == 'success') {
+	echo json_encode( array( "status" => $status, "data" => array( "dir" => $dir, "files" => $files )));
+} else {
+	echo json_encode( array( "status" => $status, "data" => array( "message" => "Could not delete:\n" . $filesWithError )));
 }
 
 ?>
diff --git a/files/js/files.js b/files/js/files.js
index 4bf1c77fdb..06d5dbf032 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -113,6 +113,25 @@ $(document).ready(function() {
 		window.location='ajax/download.php?files='+files+'&dir='+dir;
 		return false;
 	});
+	
+	$('.delete').click(function(event) {
+		var files='';
+		$('td.selection input:checkbox:checked').parent().parent().children('.filename').each(function(i,element){
+			files+=';'+$(element).text();
+		});
+		files=files.substr(1);//remove leading ;
+		
+		//send the browser to the download location
+		$.ajax({
+			url: 'ajax/delete.php',
+			data: "dir="+$('#dir').val()+"&files="+files,
+			complete: function(data){
+				boolOperationFinished(data, false);
+			}
+		});
+		
+		return false;
+	});
 });
 
 function uploadFinished() {
-- 
GitLab