Browse Source

add error message if user wants to rename a file which no longer exists

tags/v8.0.0alpha1
Bjoern Schiessle 10 years ago
parent
commit
b3cff4beb6
2 changed files with 18 additions and 4 deletions
  1. 4
    0
      apps/files/js/filelist.js
  2. 14
    4
      apps/files/lib/app.php

+ 4
- 0
apps/files/js/filelist.js View File

@@ -1322,6 +1322,10 @@
if (!result || result.status === 'error') {
OC.dialogs.alert(result.data.message, t('core', 'Could not rename file'));
fileInfo = oldFileInfo;
if (result.data.code === 'sourcenotfound') {
self.remove(result.data.newname, {updateSummary: true});
return;
}
}
else {
fileInfo = result.data;

+ 14
- 4
apps/files/lib/app.php View File

@@ -71,15 +71,25 @@ class App {
'data' => NULL
);

$normalizedOldPath = \OC\Files\Filesystem::normalizePath($dir . '/' . $oldname);
$normalizedNewPath = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname);

// rename to non-existing folder is denied
if (!$this->view->file_exists($dir)) {
if (!$this->view->file_exists($normalizedOldPath)) {
$result['data'] = array(
'message' => $this->l10n->t('%s could not be renamed as it has been deleted', array($oldname)),
'code' => 'sourcenotfound',
'oldname' => $oldname,
'newname' => $newname,
);
}else if (!$this->view->file_exists($dir)) {
$result['data'] = array('message' => (string)$this->l10n->t(
'The target folder has been moved or deleted.',
array($dir)),
'code' => 'targetnotfound'
);
// rename to existing file is denied
} else if ($this->view->file_exists($dir . '/' . $newname)) {
} else if ($this->view->file_exists($normalizedNewPath)) {

$result['data'] = array(
'message' => $this->l10n->t(
@@ -90,10 +100,10 @@ class App {
// rename to "." is denied
$newname !== '.' and
// THEN try to rename
$this->view->rename($dir . '/' . $oldname, $dir . '/' . $newname)
$this->view->rename($normalizedOldPath, $normalizedNewPath)
) {
// successful rename
$meta = $this->view->getFileInfo($dir . '/' . $newname);
$meta = $this->view->getFileInfo($normalizedNewPath);
$fileinfo = \OCA\Files\Helper::formatFileInfo($meta);
$result['success'] = true;
$result['data'] = $fileinfo;

Loading…
Cancel
Save