Skip to content

Commit 3d7c1cd

Browse files
committed
added implementation for multi event listening
1 parent 9803ff5 commit 3d7c1cd

File tree

5 files changed

+226
-46
lines changed

5 files changed

+226
-46
lines changed

app/concepts/matestack/ui/core/async/async.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,19 @@ const componentDef = {
4545
},
4646
created: function () {
4747
const self = this
48-
matestackEventHub.$on(this.componentConfig["rerender_on"], self.rerender)
49-
matestackEventHub.$on(this.componentConfig["show_on"], self.show)
50-
matestackEventHub.$on(this.componentConfig["hide_on"], self.hide)
48+
if(this.componentConfig["show_on"] != undefined){
49+
this.showing = false
50+
var show_events = this.componentConfig["show_on"].split(",")
51+
show_events.forEach(show_event => matestackEventHub.$on(show_event.trim(), self.show));
52+
}
53+
if(this.componentConfig["hide_on"] != undefined){
54+
var hide_events = this.componentConfig["hide_on"].split(",")
55+
hide_events.forEach(hide_event => matestackEventHub.$on(hide_event.trim(), self.hide));
56+
}
57+
if(this.componentConfig["rerender_on"] != undefined){
58+
var rerender_events = this.componentConfig["rerender_on"].split(",")
59+
rerender_events.forEach(rerender_event => matestackEventHub.$on(rerender_event.trim(), self.rerender));
60+
}
5161
if(this.componentConfig["show_on"] != undefined){
5262
this.showing = false
5363
}
@@ -68,6 +78,18 @@ const componentDef = {
6878
matestackEventHub.$off(this.componentConfig["rerender_on"], self.rerender);
6979
matestackEventHub.$off(this.componentConfig["show_on"], self.show);
7080
matestackEventHub.$off(this.componentConfig["hide_on"], self.hide);
81+
if(this.componentConfig["show_on"] != undefined){
82+
var shown_events = this.componentConfig["show_on"].split(",")
83+
shown_events.forEach(show_event => matestackEventHub.$off(show_event.trim(), self.show));
84+
}
85+
if(this.componentConfig["hide_on"] != undefined){
86+
var hiden_events = this.componentConfig["hide_on"].split(",")
87+
hiden_events.forEach(hide_event => matestackEventHub.$off(hide_event.trim(), self.hide));
88+
}
89+
if(this.componentConfig["rerender_on"] != undefined){
90+
var rerender_events = this.componentConfig["rerender_on"].split(",")
91+
rerender_events.forEach(rerender_event => matestackEventHub.$off(rerender_event.trim(), self.rerender));
92+
}
7193
},
7294
}
7395

app/concepts/matestack/ui/core/form/form.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,19 @@ const componentDef = {
104104
}
105105
},
106106
perform: function(){
107+
const self = this
108+
if (self.componentConfig["emit"] != undefined) {
109+
matestackEventHub.$emit(self.componentConfig["emit"]);
110+
}
111+
if (self.componentConfig["min_defer"] != undefined) {
112+
setTimeout(function () {
113+
self.sendRequest()
114+
}, parseInt(self.componentConfig["min_defer"]));
115+
} else {
116+
this.sendRequest()
117+
}
118+
},
119+
sendRequest: function(){
107120
const self = this
108121
let payload = {}
109122
payload[self.componentConfig["for"]] = self.data

app/concepts/matestack/ui/core/transition/transition.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import Vue from 'vue/dist/vue.esm'
22
import Vuex from 'vuex'
33
import componentMixin from '../component/component'
4+
import matestackEventHub from '../js/event-hub'
45

56
const componentDef = {
67
mixins: [componentMixin],
@@ -14,6 +15,19 @@ const componentDef = {
1415
}),
1516
methods: {
1617
navigateTo: function(url){
18+
const self = this
19+
if (self.componentConfig["emit"] != undefined) {
20+
matestackEventHub.$emit(self.componentConfig["emit"]);
21+
}
22+
if (self.componentConfig["min_defer"] != undefined) {
23+
setTimeout(function () {
24+
self.performNavigation(url)
25+
}, parseInt(self.componentConfig["min_defer"]));
26+
} else {
27+
this.performNavigation(url)
28+
}
29+
},
30+
performNavigation: function(url){
1731
this.$store.dispatch('navigateTo', {url: url, backwards: false}).then((response) => {
1832
// self.asyncTemplate = response;
1933
})

vendor/assets/javascripts/dist/matestack-ui-core.js

Lines changed: 173 additions & 42 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/assets/javascripts/dist/matestack-ui-core.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)