summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2012-09-05 22:13:50 -0400
committerMichael Gapczynski <mtgap@owncloud.com>2012-09-05 22:13:50 -0400
commit837eb1871d9b99fce32a418dd13284edfc41a398 (patch)
treeeef3abab36c1cdd720fda44d8e12b48cb1c28c88
parenta5211e31bc170f44edce3c80df831e7705e93396 (diff)
downloadnextcloud-server-837eb1871d9b99fce32a418dd13284edfc41a398.tar.gz
nextcloud-server-837eb1871d9b99fce32a418dd13284edfc41a398.zip
Don't delete the file anymore to replace it in the UI, just overwrite it
-rw-r--r--apps/files/js/filelist.js27
-rw-r--r--lib/filecache.php4
-rw-r--r--lib/files.php2
3 files changed, 16 insertions, 17 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index a9e48f24052..b777785f4d9 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -240,22 +240,17 @@ var FileList={
},
finishReplace:function() {
if (!FileList.replaceCanceled && FileList.replaceOldName && FileList.replaceNewName) {
- // Delete the file being replaced and rename the replacement
- FileList.deleteCanceled = false;
- FileList.deleteFiles = [FileList.replaceNewName];
- FileList.finishDelete(function() {
- $.ajax({url: OC.filePath('files', 'ajax', 'rename.php'), async: false, data: { dir: $('#dir').val(), newname: FileList.replaceNewName, file: FileList.replaceOldName }, success: function(result) {
- if (result && result.status == 'success') {
- $('tr').filterAttr('data-replace', 'true').removeAttr('data-replace');
- } else {
- OC.dialogs.alert(result.data.message, 'Error moving file');
- }
- FileList.replaceCanceled = true;
- FileList.replaceOldName = null;
- FileList.replaceNewName = null;
- FileList.lastAction = null;
- }});
- }, true);
+ $.ajax({url: OC.filePath('files', 'ajax', 'rename.php'), async: false, data: { dir: $('#dir').val(), newname: FileList.replaceNewName, file: FileList.replaceOldName }, success: function(result) {
+ if (result && result.status == 'success') {
+ $('tr').filterAttr('data-replace', 'true').removeAttr('data-replace');
+ } else {
+ OC.dialogs.alert(result.data.message, 'Error moving file');
+ }
+ FileList.replaceCanceled = true;
+ FileList.replaceOldName = null;
+ FileList.replaceNewName = null;
+ FileList.lastAction = null;
+ }});
}
},
do_delete:function(files){
diff --git a/lib/filecache.php b/lib/filecache.php
index 364b908bcfa..811e8a3e6a2 100644
--- a/lib/filecache.php
+++ b/lib/filecache.php
@@ -155,6 +155,10 @@ class OC_FileCache{
if($root===false){
$root=OC_Filesystem::getRoot();
}
+ // If replacing an existing file, delete the file
+ if (self::inCache($newPath, $root)) {
+ self::delete($newPath, $root);
+ }
$oldPath=$root.$oldPath;
$newPath=$root.$newPath;
$newParent=self::getParentId($newPath);
diff --git a/lib/files.php b/lib/files.php
index b8af5e04b71..00cbc63aba0 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -202,7 +202,7 @@ class OC_Files {
* @param file $target
*/
public static function move($sourceDir,$source,$targetDir,$target){
- if(OC_User::isLoggedIn() && ($sourceDir != '' || $source != 'Shared') && !OC_Filesystem::file_exists($targetDir.'/'.$target)){
+ if(OC_User::isLoggedIn() && ($sourceDir != '' || $source != 'Shared')){
$targetFile=self::normalizePath($targetDir.'/'.$target);
$sourceFile=self::normalizePath($sourceDir.'/'.$source);
return OC_Filesystem::rename($sourceFile,$targetFile);