#6051 [ux][files] Move File Spinner

Added spinner to file icon when moving to new folder or out of folder.

Commit is related to #6051
This commit is contained in:
zombiehugs 2013-12-04 11:27:24 -06:00
parent 737b9a990f
commit be0197a29a
1 changed files with 37 additions and 5 deletions

View File

@ -493,7 +493,7 @@ var createDragShadow = function(event) {
var dir=$('#dir').val(); var dir=$('#dir').val();
$(selectedFiles).each(function(i,elem) { $(selectedFiles).each(function(i,elem) {
var newtr = $('<tr/>').attr('data-dir', dir).attr('data-filename', elem.name); var newtr = $('<tr/>').attr('data-dir', dir).attr('data-filename', elem.name).attr('data-origin', elem.origin);
newtr.append($('<td/>').addClass('filename').text(elem.name)); newtr.append($('<td/>').addClass('filename').text(elem.name));
newtr.append($('<td/>').addClass('size').text(humanFileSize(elem.size))); newtr.append($('<td/>').addClass('size').text(humanFileSize(elem.size)));
tbody.append(newtr); tbody.append(newtr);
@ -511,11 +511,28 @@ var createDragShadow = function(event) {
}; };
//options for file drag/drop //options for file drag/drop
//start&stop handlers needs some cleaning up
var dragOptions={ var dragOptions={
revert: 'invalid', revertDuration: 300, revert: 'invalid', revertDuration: 300,
opacity: 0.7, zIndex: 100, appendTo: 'body', cursorAt: { left: 24, top: 18 }, opacity: 0.7, zIndex: 100, appendTo: 'body', cursorAt: { left: 24, top: 18 },
helper: createDragShadow, cursor: 'move', helper: createDragShadow, cursor: 'move',
start: function(event, ui){
var $selectedFiles = $('td.filename input:checkbox:checked');
if($selectedFiles.length > 1){
$selectedFiles.parents('tr').fadeTo(250, 0.2);
}
else{
$(this).fadeTo(250, 0.2);
}
},
stop: function(event, ui) { stop: function(event, ui) {
var $selectedFiles = $('td.filename input:checkbox:checked');
if($selectedFiles.length > 1){
$selectedFiles.parents('tr').fadeTo(250, 1);
}
else{
$(this).fadeTo(250, 1);
}
$('#fileList tr td.filename').addClass('ui-draggable'); $('#fileList tr td.filename').addClass('ui-draggable');
} }
}; };
@ -525,6 +542,7 @@ if ( $('html.ie').length === 0) {
} }
var folderDropOptions={ var folderDropOptions={
hoverClass: "canDrop",
drop: function( event, ui ) { drop: function( event, ui ) {
//don't allow moving a file into a selected folder //don't allow moving a file into a selected folder
if ($(event.target).parents('tr').find('td input:first').prop('checked') === true) { if ($(event.target).parents('tr').find('td input:first').prop('checked') === true) {
@ -537,6 +555,11 @@ var folderDropOptions={
$(files).each(function(i,row) { $(files).each(function(i,row) {
var dir = $(row).data('dir'); var dir = $(row).data('dir');
var file = $(row).data('filename'); var file = $(row).data('filename');
//slapdash selector, tracking down our original element that the clone budded off of.
var origin = $('tr[data-id=' + $(row).data('origin') + ']');
var td = origin.children('td.filename');
var oldBackgroundImage = td.css('background-image');
td.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
$.post(OC.filePath('files', 'ajax', 'move.php'), { dir: dir, file: file, target: dir+'/'+target }, function(result) { $.post(OC.filePath('files', 'ajax', 'move.php'), { dir: dir, file: file, target: dir+'/'+target }, function(result) {
if (result) { if (result) {
if (result.status === 'success') { if (result.status === 'success') {
@ -557,6 +580,7 @@ var folderDropOptions={
} else { } else {
OC.dialogs.alert(t('files', 'Error moving file'), t('files', 'Error')); OC.dialogs.alert(t('files', 'Error moving file'), t('files', 'Error'));
} }
td.css('background-image', oldBackgroundImage);
}); });
}); });
}, },
@ -581,6 +605,11 @@ var crumbDropOptions={
$(files).each(function(i,row) { $(files).each(function(i,row) {
var dir = $(row).data('dir'); var dir = $(row).data('dir');
var file = $(row).data('filename'); var file = $(row).data('filename');
//slapdash selector, tracking down our original element that the clone budded off of.
var origin = $('tr[data-id=' + $(row).data('origin') + ']');
var td = origin.children('td.filename');
var oldBackgroundImage = td.css('background-image');
td.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
$.post(OC.filePath('files', 'ajax', 'move.php'), { dir: dir, file: file, target: target }, function(result) { $.post(OC.filePath('files', 'ajax', 'move.php'), { dir: dir, file: file, target: target }, function(result) {
if (result) { if (result) {
if (result.status === 'success') { if (result.status === 'success') {
@ -595,6 +624,7 @@ var crumbDropOptions={
} else { } else {
OC.dialogs.alert(t('files', 'Error moving file'), t('files', 'Error')); OC.dialogs.alert(t('files', 'Error moving file'), t('files', 'Error'));
} }
td.css('background-image', oldBackgroundImage);
}); });
}); });
}, },
@ -660,7 +690,8 @@ function getSelectedFilesTrash(property) {
mime:$(element).data('mime'), mime:$(element).data('mime'),
type:$(element).data('type'), type:$(element).data('type'),
size:$(element).data('size'), size:$(element).data('size'),
etag:$(element).data('etag') etag:$(element).data('etag'),
origin: $(element).data('id')
}; };
if (property) { if (property) {
files.push(file[property]); files.push(file[property]);
@ -780,3 +811,4 @@ function onClickBreadcrumb(e) {
FileList.changeDirectory(decodeURIComponent($targetDir)); FileList.changeDirectory(decodeURIComponent($targetDir));
} }
} }