summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2012-06-29 15:23:04 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2012-06-29 15:23:04 +0200
commitb95996c02c8b94a69eba21e31e0c5a3d30756d6d (patch)
tree7f197402a7ea7535deaf7292e1c958d660907509
parent60ec46f706fde158ec66b447446ed0b763e40076 (diff)
downloadnextcloud-server-b95996c02c8b94a69eba21e31e0c5a3d30756d6d.tar.gz
nextcloud-server-b95996c02c8b94a69eba21e31e0c5a3d30756d6d.zip
- when creating a new text file or directory which name already exist use the same pattern as for file uploads in such a case (add a (N) to the name)
- don't allow renaming if a file/directory with the name already exists
-rw-r--r--apps/files/js/files.js13
-rw-r--r--lib/files.php4
2 files changed, 13 insertions, 4 deletions
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 3ba473e023d..86c5185bf72 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -451,7 +451,7 @@ $(document).ready(function() {
$(this).append(input);
input.focus();
input.change(function(){
- var name=$(this).val();
+ var name=getUniqueName($(this).val());
if(type != 'web' && name.indexOf('/')!=-1){
$('#notification').text(t('files','Invalid name, \'/\' is not allowed.'));
$('#notification').fadeIn();
@@ -496,6 +496,7 @@ $(document).ready(function() {
}else{//or the domain
localName=(localName.match(/:\/\/(.[^/]+)/)[1]).replace('www.','');
}
+ localName = getUniqueName(localName);
$.post(
OC.filePath('files','ajax','newfile.php'),
{dir:$('#dir').val(),source:name,filename:localName},
@@ -737,7 +738,10 @@ getMimeIcon.cache={};
function getUniqueName(name){
if($('tr').filterAttr('data-file',name).length>0){
var parts=name.split('.');
- var extension=parts.pop();
+ var extension = "";
+ if (parts.length > 1) {
+ extension=parts.pop();
+ }
var base=parts.join('.');
numMatch=base.match(/\((\d+)\)/);
var num=2;
@@ -747,7 +751,10 @@ function getUniqueName(name){
base.pop();
base=base.join('(').trim();
}
- name=base+' ('+num+').'+extension;
+ name=base+' ('+num+')';
+ if (extension) {
+ name = name+'.'+extension;
+ }
return getUniqueName(name);
}
return name;
diff --git a/lib/files.php b/lib/files.php
index 469c3a15b8e..cee273d95c9 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -167,10 +167,12 @@ class OC_Files {
* @param file $target
*/
public static function move($sourceDir,$source,$targetDir,$target){
- if(OC_User::isLoggedIn() && ($sourceDir != '' || $source != 'Shared')){
+ if(OC_User::isLoggedIn() && ($sourceDir != '' || $source != 'Shared') && !OC_Filesystem::file_exists($tagetDir.'/'.$target)){
$targetFile=self::normalizePath($targetDir.'/'.$target);
$sourceFile=self::normalizePath($sourceDir.'/'.$source);
return OC_Filesystem::rename($sourceFile,$targetFile);
+ } else {
+ return false;
}
}