]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fixed cancelling of uploads and wrong merge conflict resolution
authorSimon Birnbach <simon@simon-birnbach.de>
Sun, 15 Apr 2012 21:52:36 +0000 (23:52 +0200)
committerSimon Birnbach <simon@simon-birnbach.de>
Sun, 15 Apr 2012 21:52:36 +0000 (23:52 +0200)
files/css/files.css
files/js/files.js

index 544b323bb29e872026ae226ca73525aeffa26003..5dc7983bec40bc88655ee282c8b363948ed84bdc 100644 (file)
@@ -42,9 +42,9 @@ tbody tr { background-color:#fff; height:2.5em; }
 tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; }
 tbody tr.selected { background-color:#eee; }
 tbody a { color:#000; }
-span.extention, span.uploading, td.date { color:#999; }
-span.extention { opacity:0; -webkit-transition:opacity 500ms; -moz-transition:opacity 500ms; -o-transition:opacity 500ms; transition:opacity 500ms; }
-tr:hover span.extention { opacity:1; }
+span.extension, span.uploading, td.date { color:#999; }
+span.extension { text-transform:lowercase; opacity:0; -webkit-transition:opacity 500ms; -moz-transition:opacity 500ms; -o-transition:opacity 500ms; transition:opacity 500ms; }
+tr:hover span.extension { opacity:1; }
 div.crumb { float:left; display:block; background:no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; }
 div.crumb:first-child { padding-left:1em; }
 div.crumb.last { font-weight:bold; }
index a7a4d3077c162a9f57810f5e774706ffcc1ab3d2..56fff753737f66c101653955943e002ff21eefc3 100644 (file)
@@ -9,13 +9,20 @@ Files={
                return false;
        },
        cancelUploads:function() {
-               $.each(uploadingFiles,function(index,file){
-                       file.abort();
+               $.each(uploadingFiles,function(index,file) {
+                       if(typeof file['abort'] === 'function') {
+                               file.abort();
+                               var filename = $('tr').filterAttr('data-file',index);
+                               filename.hide();
+                               filename.find('input[type="checkbox"]').removeAttr('checked');
+                               filename.removeClass('selected');
+                       } else {
+                               $.each(file,function(i,f) {
+                                       f.abort();
+                                       delete file[i];
+                               });
+                       }
                        delete uploadingFiles[index];
-                       var filename = $('tr').filterAttr('data-file',index);
-                       filename.hide();
-                       filename.find('input[type="checkbox"]').removeAttr('checked');
-                       filename.removeClass('selected');
                });
                procesSelection();
        }
@@ -206,8 +213,9 @@ $(document).ready(function() {
                                }else{
                                if($.support.xhrFileUpload) {
                                        for(var i=0;i<files.length;i++){
+                                               var fileName = files[i].name
                                                var dropTarget = $(e.originalEvent.target).closest('tr');
-                                               if(dropTarget && dropTarget.attr('data-type') === 'dir') {
+                                               if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder
                                                        var dirName = dropTarget.attr('data-file')
                                                        var jqXHR =  $('.file_upload_start').fileupload('send', {files: files[i],
                                                                        formData: function(form) {
@@ -222,7 +230,7 @@ $(document).ready(function() {
                                                                                        $('#notification').fadeIn();
                                                                                }
                                                                                var file=response[0];
-                                                                               delete uploadingFiles[file.name];
+                                                                               delete uploadingFiles[dirName][file.name];
                                                                                var currentUploads = parseInt(uploadtext.attr('currentUploads'));
                                                                                currentUploads -= 1;
                                                                                uploadtext.attr('currentUploads', currentUploads);
@@ -238,12 +246,28 @@ $(document).ready(function() {
                                                                        })
                                                        .error(function(jqXHR, textStatus, errorThrown) {
                                                                if(errorThrown === 'abort') {
+                                                                       var currentUploads = parseInt(uploadtext.attr('currentUploads'));
+                                                                       currentUploads -= 1;
+                                                                       uploadtext.attr('currentUploads', currentUploads);
+                                                                       if(currentUploads === 0) {
+                                                                               var img = OC.imagePath('core', 'filetypes/folder.png');
+                                                                               var tr=$('tr').filterAttr('data-file',dirName);
+                                                                               tr.find('td.filename').attr('style','background-image:url('+img+')');
+                                                                               uploadtext.text('');
+                                                                               uploadtext.hide();
+                                                                       } else {
+                                                                               uploadtext.text(currentUploads + ' files uploading')
+                                                                       }
                                                                        $('#notification').hide();
                                                                        $('#notification').text(t('files', 'Upload cancelled.'));
                                                                        $('#notification').fadeIn();
                                                                }
                                                        });
-                                                       uploadingFiles[dirName+"/"+files[i].name] = jqXHR;
+                                                       //TODO test with filenames containing slashes
+                                                       if(uploadingFiles[dirName] === undefined) {
+                                                               uploadingFiles[dirName] = {};
+                                                       }
+                                                       uploadingFiles[dirName][fileName] = jqXHR;
                                                } else {
                                                        var jqXHR =  $('.file_upload_start').fileupload('send', {files: files[i]})
                                                                        .success(function(result, textStatus, jqXHR) {