diff options
Diffstat (limited to 'apps/files/js/filelist.js')
-rw-r--r-- | apps/files/js/filelist.js | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index e19a35bbc5b..c6663836fd7 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -208,13 +208,44 @@ var FileList={ if (FileList.checkName(name, newname, false)) { newname = name; } else { - $.get(OC.filePath('files','ajax','rename.php'), { dir : $('#dir').val(), newname: newname, file: name },function(result) { - if (!result || result.status == 'error') { - OC.dialogs.alert(result.data.message, 'Error moving file'); - newname = name; + // save background image, because it's replaced by a spinner while async request + var oldBackgroundImage = td.css('background-image'); + // mark as loading + td.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')'); + $.ajax({ + url: OC.filePath('files','ajax','rename.php'), + data: { + dir : $('#dir').val(), + newname: newname, + file: name + }, + success: function(result) { + if (!result || result.status === 'error') { + OC.Notification.show(result.data.message); + newname = name; + // revert changes + tr.attr('data-file', newname); + var path = td.children('a.name').attr('href'); + td.children('a.name').attr('href', path.replace(encodeURIComponent(name), encodeURIComponent(newname))); + if (newname.indexOf('.') > 0 && tr.data('type') !== 'dir') { + var basename=newname.substr(0,newname.lastIndexOf('.')); + } else { + var basename=newname; + } + td.find('a.name span.nametext').text(basename); + if (newname.indexOf('.') > 0 && tr.data('type') !== 'dir') { + if (td.find('a.name span.extension').length === 0 ) { + td.find('a.name span.nametext').append('<span class="extension"></span>'); + } + td.find('a.name span.extension').text(newname.substr(newname.lastIndexOf('.'))); + } + tr.find('.fileactions').effect('highlight', {}, 5000); + tr.effect('highlight', {}, 5000); + } + // remove loading mark and recover old image + td.css('background-image', oldBackgroundImage); } }); - } } tr.data('renaming',false); |