Commit acc3ec6f authored by Regis's avatar Regis

fixed issue - description in function (check diff)

parent 2f1701c5
...@@ -12,7 +12,27 @@ ...@@ -12,7 +12,27 @@
}, },
props: ['stage', 'svgs', 'match'], props: ['stage', 'svgs', 'match'],
methods: { methods: {
fetchBuilds() { fetchBuilds(e) {
/**
This is a very interesting UI problem
Essentially we have to clear builds on blur no matter what
This was preventing turbolinks to make the request to the link clicked
Vue will always look at the VDOM element which is the button
It has a special attribute 'aria-describedby' which will not exist:
- once the build link is clicked
- when someone clicks outside of the dropdown
In order for this to work:
- here we setTimeout to give enough time to initialize the request
- but short enough that a subsequent click will reset that state
*/
if (!e.currentTarget.attributes['aria-describedby']) {
setTimeout(() => {
this.request = false;
}, 100);
return null;
}
if (this.request) return this.clearBuilds(); if (this.request) return this.clearBuilds();
return this.$http.get(this.stage.dropdown_path) return this.$http.get(this.stage.dropdown_path)
...@@ -56,8 +76,8 @@ ...@@ -56,8 +76,8 @@
template: ` template: `
<div> <div>
<button <button
@click='fetchBuilds' @click='fetchBuilds($event)'
@blur='fetchBuilds' @blur='fetchBuilds($event)'
:class="triggerButtonClass" :class="triggerButtonClass"
:title='stage.title' :title='stage.title'
data-placement="top" data-placement="top"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment