Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bennett <lukeeeebennettplus@gmail.com>2016-09-12 23:02:09 +0300
committerLuke Bennett <lukeeeebennettplus@gmail.com>2016-09-14 14:15:01 +0300
commit32979803f232c43c7b87e30bec275b79182b06ad (patch)
tree9f64b393587697deb36c6c8c64ff928b0fc5c3b3 /app/assets/javascripts/gl_dropdown.js
parenteab72755cd9e0ac7f9ba6d30ad877b3aef14841b (diff)
Replace single quotes with escaped single quotes and write spec to test multiple lable selection over a page load
Added spec for removing label with space and single quote Fixed removing label with single quote
Diffstat (limited to 'app/assets/javascripts/gl_dropdown.js')
-rw-r--r--app/assets/javascripts/gl_dropdown.js13
1 files changed, 7 insertions, 6 deletions
diff --git a/app/assets/javascripts/gl_dropdown.js b/app/assets/javascripts/gl_dropdown.js
index bea141bae51..b95b7f29d1e 100644
--- a/app/assets/javascripts/gl_dropdown.js
+++ b/app/assets/javascripts/gl_dropdown.js
@@ -600,14 +600,15 @@
selectedObject = this.renderedData[selectedIndex];
}
}
+ field = [];
fieldName = typeof this.options.fieldName === 'function' ? this.options.fieldName(selectedObject) : this.options.fieldName;
value = this.options.id ? this.options.id(selectedObject, el) : selectedObject.id;
if (isInput) {
field = $(this.el);
- } else {
- field = this.dropdown.parent().find("input[name='" + fieldName + "'][value='" + escape(value) + "']");
+ } else if(value) {
+ field = this.dropdown.parent().find("input[name='" + fieldName + "'][value='" + value.toString().replace(/'/g, '\\\'') + "']");
}
- if (el.hasClass(ACTIVE_CLASS)) {
+ if (field.length && el.hasClass(ACTIVE_CLASS)) {
el.removeClass(ACTIVE_CLASS);
if (isInput) {
field.val('');
@@ -617,7 +618,7 @@
} else if (el.hasClass(INDETERMINATE_CLASS)) {
el.addClass(ACTIVE_CLASS);
el.removeClass(INDETERMINATE_CLASS);
- if (value == null) {
+ if (field.length && value == null) {
field.remove();
}
if (!field.length && fieldName) {
@@ -630,7 +631,7 @@
this.dropdown.parent().find("input[name='" + fieldName + "']").remove();
}
}
- if (value == null) {
+ if (field.length && value == null) {
field.remove();
}
// Toggle active class for the tick mark
@@ -638,7 +639,7 @@
if (value != null) {
if (!field.length && fieldName) {
this.addInput(fieldName, value, selectedObject);
- } else {
+ } else if (field.length) {
field.val(value).trigger('change');
}
}