summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_pipelines_index/components/async_button.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/vue_pipelines_index/components/async_button.js')
-rw-r--r--app/assets/javascripts/vue_pipelines_index/components/async_button.js93
1 files changed, 0 insertions, 93 deletions
diff --git a/app/assets/javascripts/vue_pipelines_index/components/async_button.js b/app/assets/javascripts/vue_pipelines_index/components/async_button.js
deleted file mode 100644
index 58b8db4d519..00000000000
--- a/app/assets/javascripts/vue_pipelines_index/components/async_button.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/* eslint-disable no-new, no-alert */
-/* global Flash */
-import '~/flash';
-import eventHub from '../event_hub';
-
-export default {
- props: {
- endpoint: {
- type: String,
- required: true,
- },
-
- service: {
- type: Object,
- required: true,
- },
-
- title: {
- type: String,
- required: true,
- },
-
- icon: {
- type: String,
- required: true,
- },
-
- cssClass: {
- type: String,
- required: true,
- },
-
- confirmActionMessage: {
- type: String,
- required: false,
- },
- },
-
- data() {
- return {
- isLoading: false,
- };
- },
-
- computed: {
- iconClass() {
- return `fa fa-${this.icon}`;
- },
-
- buttonClass() {
- return `btn has-tooltip ${this.cssClass}`;
- },
- },
-
- methods: {
- onClick() {
- if (this.confirmActionMessage && confirm(this.confirmActionMessage)) {
- this.makeRequest();
- } else if (!this.confirmActionMessage) {
- this.makeRequest();
- }
- },
-
- makeRequest() {
- this.isLoading = true;
-
- this.service.postAction(this.endpoint)
- .then(() => {
- this.isLoading = false;
- eventHub.$emit('refreshPipelines');
- })
- .catch(() => {
- this.isLoading = false;
- new Flash('An error occured while making the request.');
- });
- },
- },
-
- template: `
- <button
- type="button"
- @click="onClick"
- :class="buttonClass"
- :title="title"
- :aria-label="title"
- data-container="body"
- data-placement="top"
- :disabled="isLoading">
- <i :class="iconClass" aria-hidden="true"/>
- <i class="fa fa-spinner fa-spin" aria-hidden="true" v-if="isLoading" />
- </button>
- `,
-};