From e05362959f8d9abb5016914693dac01e564354df Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 19 Feb 2020 12:42:54 +0100 Subject: Copy isFileNameValid function, so the filepicker works without the files app Signed-off-by: Joas Schilling --- core/src/OC/dialogs.js | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'core/src') diff --git a/core/src/OC/dialogs.js b/core/src/OC/dialogs.js index e9ffb5a6a15..cea857f6f2e 100644 --- a/core/src/OC/dialogs.js +++ b/core/src/OC/dialogs.js @@ -336,11 +336,39 @@ const Dialogs = { $form.submit() }) + + /** + * Checks whether the given file name is valid. + * + * @param name file name to check + * @return true if the file name is valid. + * @throws a string exception with an error message if + * the file name is not valid + * + * NOTE: This function is duplicated in the files app: + * https://github.com/nextcloud/server/blob/b9bc2417e7a8dc81feb0abe20359bedaf864f790/apps/files/js/files.js#L127-L148 + */ + var isFileNameValid = function (name) { + var trimmedName = name.trim(); + if (trimmedName === '.' || trimmedName === '..') + { + throw t('files', '"{name}" is an invalid file name.', {name: name}) + } else if (trimmedName.length === 0) { + throw t('files', 'File name cannot be empty.') + } else if (trimmedName.indexOf('/') !== -1) { + throw t('files', '"/" is not allowed inside a file name.') + } else if (!!(trimmedName.match(OC.config.blacklist_files_regex))) { + throw t('files', '"{name}" is not an allowed filetype', {name: name}) + } + + return true + } + var checkInput = function() { var filename = $input.val() try { - if (!Files.isFileNameValid(filename)) { - // Files.isFileNameValid(filename) throws an exception itself + if (!isFileNameValid(filename)) { + // isFileNameValid(filename) throws an exception itself } else if (self.filelist.find(function(file) { return file.name === this }, filename)) { -- cgit v1.2.3