aboutsummaryrefslogtreecommitdiffstats
path: root/files/js/filelist.js
diff options
context:
space:
mode:
Diffstat (limited to 'files/js/filelist.js')
-rw-r--r--files/js/filelist.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/files/js/filelist.js b/files/js/filelist.js
index 243c1113a47..b4d0adf982c 100644
--- a/files/js/filelist.js
+++ b/files/js/filelist.js
@@ -149,5 +149,66 @@ FileList={
input.blur(function(){
form.trigger('submit');
});
+ },
+ delete:function(files){
+ if(FileList.deleteFiles){//finish any ongoing deletes first
+ FileList.finishDelete(function(){
+ FileList.delete(files);
+ });
+ return;
+ }
+ if(files.substr){
+ files=[files];
+ }
+ $.each(files,function(index,file){
+ $('tr[data-file="'+file+'"]').hide();
+ $('tr[data-file="'+file+'"]').find('input[type="checkbox"]').removeAttr('checked');
+ $('tr[data-file="'+file+'"]').removeClass('selected');
+ });
+ procesSelection();
+ FileList.deleteCanceled=false;
+ FileList.deleteFiles=files;
+ $('#notification').text(files.length+' file'+((files.length>1)?'s':'')+' deleted, click here to undo');
+
+ $('#notification').show();
+ },
+ finishDelete:function(ready,sync){
+ if(!FileList.deleteCanceled && FileList.deleteFiles){
+ var fileNames=FileList.deleteFiles.join(';');
+ $.ajax({
+ url: 'ajax/delete.php',
+ async:!sync,
+ data: "dir="+$('#dir').val()+"&files="+encodeURIComponent(fileNames),
+ complete: function(data){
+ boolOperationFinished(data, function(){
+ $('#notification').hide();
+ $.each(FileList.deleteFiles,function(index,file){
+// alert(file);
+ FileList.remove(file);
+ });
+ FileList.deleteCanceled=true;
+ FileList.deleteFiles=null;
+ if(ready){
+ ready();
+ }
+ });
+ }
+ });
+ }
}
}
+
+$(document).ready(function(){
+ $('#notification').click(function(){
+ FileList.deleteCanceled=true;
+ $('#notification').hide();
+ $.each(FileList.deleteFiles,function(index,file){
+ $('tr[data-file="'+file+'"]').show();
+// alert(file);
+ });
+ FileList.deleteFiles=null;
+ });
+ $(window).bind('beforeunload', function (){
+ FileList.finishDelete(null,true);
+ });
+});