summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/js/filelist.js10
1 files changed, 9 insertions, 1 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index cd0eb390ee3..bb50814dfdc 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1180,7 +1180,7 @@
var innernameSpan = $('<span></span>').addClass('innernametext').text(basename);
if (path && path !== '/') {
- var conflictingItems = this.$fileList.find('tr[data-file="' + name.replace( /(:|\.|\[|\]|,|=)/g, "\\$1") + '"]');
+ var conflictingItems = this.$fileList.find('tr[data-file="' + this._jqSelEscape(name) + '"]');
if (conflictingItems.length !== 0) {
if (conflictingItems.length === 1) {
// Update the path on the first conflicting item
@@ -1266,6 +1266,14 @@
return tr;
},
+ /* escape a selector expression for jQuery */
+ _jqSelEscape: function (expression) {
+ if (expression) {
+ return expression.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]^`{|}~]/g, '\\$&');
+ }
+ return null;
+ },
+
/**
* Adds an entry to the files array and also into the DOM
* in a sorted manner.