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:
authorClement Ho <ClemMakesApps@gmail.com>2016-12-09 22:17:19 +0300
committerClement Ho <ClemMakesApps@gmail.com>2017-01-10 01:01:11 +0300
commit002d17f1b7e4d298f45cb7d0dc944e20cbd734b5 (patch)
tree72721c769505e30a93fd1e143ace2cef7406a17d /app/assets/javascripts/droplab
parentddc42a61f064757d69d4c61f784dacbcd1334d4d (diff)
Fix clear button
Diffstat (limited to 'app/assets/javascripts/droplab')
-rw-r--r--app/assets/javascripts/droplab/droplab.js51
1 files changed, 28 insertions, 23 deletions
diff --git a/app/assets/javascripts/droplab/droplab.js b/app/assets/javascripts/droplab/droplab.js
index 6b326338050..42ddb7a4a56 100644
--- a/app/assets/javascripts/droplab/droplab.js
+++ b/app/assets/javascripts/droplab/droplab.js
@@ -51,26 +51,28 @@ Object.assign(DropDown.prototype, {
return this.items;
},
+ clickEvent: function(e) {
+ // climb up the tree to find the LI
+ var selected = utils.closest(e.target, 'LI');
+
+ if(selected) {
+ e.preventDefault();
+ this.hide();
+ var listEvent = new CustomEvent('click.dl', {
+ detail: {
+ list: this,
+ selected: selected,
+ data: e.target.dataset,
+ },
+ });
+ this.list.dispatchEvent(listEvent);
+ }
+ },
+
addEvents: function() {
- var self = this;
+ this.clickWrapper = this.clickEvent.bind(this);
// event delegation.
- this.list.addEventListener('click', function(e) {
- // climb up the tree to find the LI
- var selected = utils.closest(e.target, 'LI');
-
- if(selected) {
- e.preventDefault();
- self.hide();
- var listEvent = new CustomEvent('click.dl', {
- detail: {
- list: self,
- selected: selected,
- data: e.target.dataset,
- },
- });
- self.list.dispatchEvent(listEvent);
- }
- });
+ this.list.addEventListener('click', this.clickWrapper);
},
toggle: function() {
@@ -93,6 +95,7 @@ Object.assign(DropDown.prototype, {
// call render manually on data;
render: function(data){
+ // debugger
// empty the list first
var sampleItem;
var newChildren = [];
@@ -134,17 +137,23 @@ Object.assign(DropDown.prototype, {
},
show: function() {
+ // debugger
this.list.style.display = 'block';
this.hidden = false;
},
hide: function() {
+ // debugger
this.list.style.display = 'none';
this.hidden = true;
},
destroy: function() {
- this.hide();
+ if (!this.hidden) {
+ this.hide();
+ }
+
+ this.list.removeEventListener('click', this.clickWrapper);
}
});
@@ -257,10 +266,6 @@ require('./window')(function(w){
// list = document.querySelector(list);
this.hooks.every(function(hook, i) {
if(hook.trigger === trigger) {
- // Restore initial State
- hook.list.list.innerHTML = hook.list.initialState;
- hook.list.hide();
-
hook.destroy();
this.hooks.splice(i, 1);
this.addHook(trigger, list, plugins, config);