From a81d7cd79ff78122521dc0c8db864a9654710863 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= <jfd@butonic.de>
Date: Thu, 22 Nov 2012 13:03:17 +0100
Subject: [PATCH] introduce Files.containsInvalidCharacters(), use when
 creating or renaming files

---
 apps/files/js/filelist.js |  3 +++
 apps/files/js/files.js    | 27 ++++++++++++++++-----------
 2 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index a5550dc992..5674206632 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -151,6 +151,9 @@ var FileList={
 			event.stopPropagation();
 			event.preventDefault();
 			var newname=input.val();
+			if (Files.containsInvalidCharacters(newname)) {
+				return false;
+			}
 			if (newname != name) {
 				if (FileList.checkName(name, newname, false)) {
 					newname = name;
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 8d0f9e06ad..9fa2a384b5 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -25,6 +25,18 @@ Files={
 			delete uploadingFiles[index];
 		});
 		procesSelection();
+	},
+	containsInvalidCharacters:function (name) {
+		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;
+			}
+		}
+		$('#notification').fadeOut();
+		return false;
 	}
 };
 $(document).ready(function() {
@@ -505,17 +517,10 @@ $(document).ready(function() {
 		$(this).append(input);
 		input.focus();
 		input.change(function(){
-            if (type != 'web') {
-                var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*'];
-                for (var i = 0; i < invalid_characters.length; i++) {
-                    if ($(this).val().indexOf(invalid_characters[i]) != -1) {
-                        $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed."));
-                        $('#notification').fadeIn();
-                        return;
-                    }
-                }
-            }
-            var name = getUniqueName($(this).val());
+			if (type != 'web' && Files.containsInvalidCharacters($(this).val())) {
+				return;
+			}
+			var name = getUniqueName($(this).val());
 			if (name != $(this).val()) {
 				FileList.checkName(name, $(this).val(), true);
 				var hidden = true;
-- 
GitLab