summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-04-26 10:55:20 +0100
committerFilipa Lacerda <filipa@gitlab.com>2017-04-26 10:55:20 +0100
commitfd99c43677129de25dec3242e2ec94f21632efa8 (patch)
treec12456e51951ee94acb723005960cf6667ac1eff
parent078c946d02c80c846dd2099e4e8c0dfe1824d457 (diff)
downloadgitlab-ce-fd99c43677129de25dec3242e2ec94f21632efa8.tar.gz
Guatantee we don't open a blank dropdown
-rw-r--r--app/assets/javascripts/mini_pipeline_graph_dropdown.js4
-rw-r--r--app/assets/javascripts/pipelines/components/stage.js10
-rw-r--r--spec/javascripts/mini_pipeline_graph_dropdown_spec.js2
-rw-r--r--spec/javascripts/pipelines/stage_spec.js2
4 files changed, 13 insertions, 5 deletions
diff --git a/app/assets/javascripts/mini_pipeline_graph_dropdown.js b/app/assets/javascripts/mini_pipeline_graph_dropdown.js
index 5036187d5c2..64c1447f427 100644
--- a/app/assets/javascripts/mini_pipeline_graph_dropdown.js
+++ b/app/assets/javascripts/mini_pipeline_graph_dropdown.js
@@ -93,7 +93,9 @@ export default class MiniPipelineGraph {
},
error: () => {
this.toggleLoading(button);
- $(button).dropdown('toggle');
+ if ($(button).parent().hasClass('open')) {
+ $(button).dropdown('toggle');
+ }
new Flash('An error occurred while fetching the builds.', 'alert');
},
});
diff --git a/app/assets/javascripts/pipelines/components/stage.js b/app/assets/javascripts/pipelines/components/stage.js
index 21f68fc6f89..203485f2990 100644
--- a/app/assets/javascripts/pipelines/components/stage.js
+++ b/app/assets/javascripts/pipelines/components/stage.js
@@ -33,7 +33,11 @@ export default {
this.builds = JSON.parse(response.body).html;
})
.catch(() => {
- $(this.$refs.dropdown).dropdown('toggle');
+ // If dropdown is opened we'll close it.
+ if (this.$el.classList.contains('open')) {
+ $(this.$refs.dropdown).dropdown('toggle');
+ }
+
const flash = new Flash('Something went wrong on our end.');
return flash;
});
@@ -94,7 +98,9 @@ export default {
class="fa fa-caret-down"
aria-hidden="true" />
</button>
- <ul class="dropdown-menu mini-pipeline-graph-dropdown-menu js-builds-dropdown-container">
+ <ul
+ ref="dropdown-content"
+ class="dropdown-menu mini-pipeline-graph-dropdown-menu js-builds-dropdown-container">
<div
class="arrow-up"
aria-hidden="true"></div>
diff --git a/spec/javascripts/mini_pipeline_graph_dropdown_spec.js b/spec/javascripts/mini_pipeline_graph_dropdown_spec.js
index e8d4d129e06..51aac90ed05 100644
--- a/spec/javascripts/mini_pipeline_graph_dropdown_spec.js
+++ b/spec/javascripts/mini_pipeline_graph_dropdown_spec.js
@@ -79,7 +79,7 @@ describe('Mini Pipeline Graph Dropdown', () => {
document.querySelector('.js-builds-dropdown-button').click();
setTimeout(() => {
- expect($('.js-builds-dropdown-container').is('visible')).toEqual(false);
+ expect($('.js-builds-dropdown-container').parent().hasClass('open')).toEqual(false);
done();
}, 0);
});
diff --git a/spec/javascripts/pipelines/stage_spec.js b/spec/javascripts/pipelines/stage_spec.js
index 6f9e4c4f704..72ba257829e 100644
--- a/spec/javascripts/pipelines/stage_spec.js
+++ b/spec/javascripts/pipelines/stage_spec.js
@@ -74,7 +74,7 @@ describe('Pipelines Stage', () => {
});
expect(
- $(component.$el, '.js-builds-dropdown-container').is('visible'),
+ component.$el.classList.contains('open'),
).toEqual(false);
});
});