summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/droplab
diff options
context:
space:
mode:
authorJacob Schatz <jschatz@gitlab.com>2017-01-21 04:23:02 +0000
committerJacob Schatz <jschatz@gitlab.com>2017-01-21 04:23:02 +0000
commitf19724de34cb1488e4b6e649a1914cc513657fa9 (patch)
treec3aca86db6b66ac7ceedd08548f9db57623597e6 /app/assets/javascripts/droplab
parent611917eca06b3d7134dddaf3b1c6079b88b7fc5c (diff)
downloadgitlab-ce-f19724de34cb1488e4b6e649a1914cc513657fa9.tar.gz
Revert "Merge branch '26785-fix-droplab-in-ie-11-v1' into 'master'"
This reverts merge request !8675
Diffstat (limited to 'app/assets/javascripts/droplab')
-rw-r--r--app/assets/javascripts/droplab/droplab.js49
1 files changed, 20 insertions, 29 deletions
diff --git a/app/assets/javascripts/droplab/droplab.js b/app/assets/javascripts/droplab/droplab.js
index c79f0230951..6c6d650db3a 100644
--- a/app/assets/javascripts/droplab/droplab.js
+++ b/app/assets/javascripts/droplab/droplab.js
@@ -62,7 +62,6 @@ var DropDown = function(list) {
this.list = list;
this.items = [];
this.getItems();
- this.initTemplateString();
this.addEvents();
this.initialState = list.innerHTML;
};
@@ -73,17 +72,6 @@ Object.assign(DropDown.prototype, {
return this.items;
},
- initTemplateString: function() {
- var items = this.items || this.getItems();
-
- var templateString = '';
- if(items.length > 0) {
- templateString = items[items.length - 1].outerHTML;
- }
- this.templateString = templateString;
- return this.templateString;
- },
-
clickEvent: function(e) {
// climb up the tree to find the LI
var selected = utils.closest(e.target, 'LI');
@@ -123,21 +111,30 @@ Object.assign(DropDown.prototype, {
addData: function(data) {
this.data = (this.data || []).concat(data);
- this.render(this.data);
+ this.render(data);
},
// call render manually on data;
render: function(data){
// debugger
// empty the list first
- var templateString = this.templateString;
+ var sampleItem;
var newChildren = [];
var toAppend;
- newChildren = (data ||[]).map(function(dat){
- var html = utils.t(templateString, dat);
+ for(var i = 0; i < this.items.length; i++) {
+ var item = this.items[i];
+ sampleItem = item;
+ if(item.parentNode && item.parentNode.dataset.hasOwnProperty('dynamic')) {
+ item.parentNode.removeChild(item);
+ }
+ }
+
+ newChildren = this.data.map(function(dat){
+ var html = utils.t(sampleItem.outerHTML, dat);
var template = document.createElement('div');
template.innerHTML = html;
+ // console.log(template.content)
// Help set the image src template
var imageTags = template.querySelectorAll('img[data-src]');
@@ -176,7 +173,10 @@ Object.assign(DropDown.prototype, {
},
destroy: function() {
- this.hide();
+ if (!this.hidden) {
+ this.hide();
+ }
+
this.list.removeEventListener('click', this.clickWrapper);
}
});
@@ -462,8 +462,6 @@ Object.assign(HookInput.prototype, {
var self = this;
this.mousedown = function mousedown(e) {
- if(self.hasRemovedEvents) return;
-
var mouseEvent = new CustomEvent('mousedown.dl', {
detail: {
hook: self,
@@ -476,8 +474,6 @@ Object.assign(HookInput.prototype, {
}
this.input = function input(e) {
- if(self.hasRemovedEvents) return;
-
var inputEvent = new CustomEvent('input.dl', {
detail: {
hook: self,
@@ -491,14 +487,10 @@ Object.assign(HookInput.prototype, {
}
this.keyup = function keyup(e) {
- if(self.hasRemovedEvents) return;
-
keyEvent(e, 'keyup.dl');
}
this.keydown = function keydown(e) {
- if(self.hasRemovedEvents) return;
-
keyEvent(e, 'keydown.dl');
}
@@ -528,8 +520,7 @@ Object.assign(HookInput.prototype, {
this.trigger.addEventListener('keydown', this.keydown);
},
- removeEvents: function() {
- this.hasRemovedEvents = true;
+ removeEvents: function(){
this.trigger.removeEventListener('mousedown', this.mousedown);
this.trigger.removeEventListener('input', this.input);
this.trigger.removeEventListener('keyup', this.keyup);
@@ -677,14 +668,14 @@ var camelize = function(str) {
};
var closest = function(thisTag, stopTag) {
- while(thisTag && thisTag.tagName !== stopTag && thisTag.tagName !== 'HTML'){
+ while(thisTag.tagName !== stopTag && thisTag.tagName !== 'HTML'){
thisTag = thisTag.parentNode;
}
return thisTag;
};
var isDropDownParts = function(target) {
- if(!target || target.tagName === 'HTML') { return false; }
+ if(target.tagName === 'HTML') { return false; }
return (
target.hasAttribute(DATA_TRIGGER) ||
target.hasAttribute(DATA_DROPDOWN)