From 740b6623aad0b69e7f16348ad3d4a098a0a9e598 Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Tue, 18 Dec 2012 16:37:27 +0100 Subject: show notification when renaming a file to '' --- apps/files/js/filelist.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 96dd0323d29..cf86cc60979 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -151,6 +151,10 @@ var FileList={ var newname=input.val(); if (Files.containsInvalidCharacters(newname)) { return false; + } else if (newname.length == 0) { + $('#notification').text(t('files', "Name cannot be empty.")); + $('#notification').fadeIn(); + return false; } if (newname != name) { if (FileList.checkName(name, newname, false)) { -- cgit v1.2.3 From a6733ff012b2d6c41c6d551ad1353856f9dfa14b Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Tue, 18 Dec 2012 16:39:01 +0100 Subject: abort rename on ESC keyup --- apps/files/js/filelist.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index cf86cc60979..1fbfc24e1e4 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -189,6 +189,13 @@ var FileList={ td.children('a.name').show(); return false; }); + input.keyup(function(event){ + if (event.keyCode == 27) { + tr.data('renaming',false); + form.remove(); + td.children('a.name').show(); + } + }); input.click(function(event){ event.stopPropagation(); event.preventDefault(); -- cgit v1.2.3 From a5dcbc3d8acfcf2845db281ef73df466508734c5 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 5 Jan 2013 03:30:05 +0100 Subject: Files: prevent people from renaming files to '.' --- apps/files/ajax/rename.php | 2 +- apps/files/js/filelist.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php index 45448279fa1..cb0bec399d1 100644 --- a/apps/files/ajax/rename.php +++ b/apps/files/ajax/rename.php @@ -12,7 +12,7 @@ $file = stripslashes($_GET["file"]); $newname = stripslashes($_GET["newname"]); // Delete -if( OC_Files::move( $dir, $file, $dir, $newname )) { +if( $newname !== '.' and OC_Files::move( $dir, $file, $dir, $newname )) { OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname ))); } else{ diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 96dd0323d29..cc47ec2612e 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -149,7 +149,7 @@ var FileList={ event.stopPropagation(); event.preventDefault(); var newname=input.val(); - if (Files.containsInvalidCharacters(newname)) { + if (Files.containsInvalidCharacters(newname) || newname === '.') { return false; } if (newname != name) { -- cgit v1.2.3 From b4191b7da53f4aaf7e0a80c6513db3499a76aeda Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Sun, 6 Jan 2013 12:52:00 +0100 Subject: rename containsInvalidCharacters() to isFileNameValid() - NOTE: semantic has changed! adding file name checks and notifications to isFileNameValid() for . and empty file name --- apps/files/js/filelist.js | 2 +- apps/files/js/files.js | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index cc47ec2612e..22d701d8ff9 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -149,7 +149,7 @@ var FileList={ event.stopPropagation(); event.preventDefault(); var newname=input.val(); - if (Files.containsInvalidCharacters(newname) || newname === '.') { + if (!Files.isFileNameValid(newname)) { return false; } if (newname != name) { diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 6a37d9e7f53..ba2495eb728 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -26,17 +26,29 @@ Files={ }); procesSelection(); }, - containsInvalidCharacters:function (name) { + isFileNameValid:function (name) { + if (name === '.') { + $('#notification').text(t('files', "'.' is an invalid file name.")); + $('#notification').fadeIn(); + return false; + } + if (name.length == 0) { + $('#notification').text(t('files', "File name cannot be empty.")); + $('#notification').fadeIn(); + return false; + } + + // check for invalid characters var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; for (var i = 0; i < invalid_characters.length; i++) { if (name.indexOf(invalid_characters[i]) != -1) { $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); $('#notification').fadeIn(); - return true; + return false; } } $('#notification').fadeOut(); - return false; + return true; } }; $(document).ready(function() { @@ -509,7 +521,7 @@ $(document).ready(function() { $(this).append(input); input.focus(); input.change(function(){ - if (type != 'web' && Files.containsInvalidCharacters($(this).val())) { + if (type != 'web' && !Files.isFileNameValid($(this).val())) { return; } else if( type == 'folder' && $('#dir').val() == '/' && $(this).val() == 'Shared') { $('#notification').text(t('files','Invalid folder name. Usage of "Shared" is reserved by Owncloud')); -- cgit v1.2.3 From cbb118d4a3a26c9471ffc40cc387df4333031da1 Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Mon, 7 Jan 2013 10:39:35 +0100 Subject: adapt to isFileNameValid, whitespace cleanup --- apps/files/js/filelist.js | 7 +------ apps/files/js/files.js | 40 ++++++++++++++++++---------------------- 2 files changed, 19 insertions(+), 28 deletions(-) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index c4c53ca878a..66697bbbf56 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -151,12 +151,7 @@ var FileList={ var newname=input.val(); if (!Files.isFileNameValid(newname)) { return false; - } else if (newname.length == 0) { - $('#notification').text(t('files', "Name cannot be empty.")); - $('#notification').fadeIn(); - return false; - } - if (newname != name) { + } else if (newname != name) { if (FileList.checkName(name, newname, false)) { newname = name; } else { diff --git a/apps/files/js/files.js b/apps/files/js/files.js index a824b9d3059..91204f041e5 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -26,19 +26,19 @@ Files={ }); procesSelection(); }, - isFileNameValid:function (name) { - if (name === '.') { - $('#notification').text(t('files', "'.' is an invalid file name.")); - $('#notification').fadeIn(); - return false; - } - if (name.length == 0) { - $('#notification').text(t('files', "File name cannot be empty.")); - $('#notification').fadeIn(); - return false; - } - - // check for invalid characters + isFileNameValid:function (name) { + if (name === '.') { + $('#notification').text(t('files', '\'.\' is an invalid file name.')); + $('#notification').fadeIn(); + return false; + } + if (name.length == 0) { + $('#notification').text(t('files', 'File name cannot be empty.')); + $('#notification').fadeIn(); + return false; + } + + // check for invalid characters var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; for (var i = 0; i < invalid_characters.length; i++) { if (name.indexOf(invalid_characters[i]) != -1) { @@ -526,18 +526,14 @@ $(document).ready(function() { event.stopPropagation(); event.preventDefault(); var newname=input.val(); - if(type != 'web' && !Files.isFileNameValid(newname)){ - return false; - } else if (newname.length == 0) { - if(type == 'web') { - $('#notification').text(t('files', "URL cannot be empty.")); - } else { - $('#notification').text(t('files', "Name cannot be empty.")); - } + if(type == 'web' && newname.length == 0) { + $('#notification').text(t('files', 'URL cannot be empty.')); $('#notification').fadeIn(); return false; + } else if (type != 'web' && !Files.isFileNameValid(newname)) { + return false; } else if( type == 'folder' && $('#dir').val() == '/' && newname == 'Shared') { - $('#notification').text(t('files','Invalid folder name. Usage of "Shared" is reserved by Owncloud')); + $('#notification').text(t('files','Invalid folder name. Usage of \'Shared\' is reserved by Owncloud')); $('#notification').fadeIn(); return false; } -- cgit v1.2.3