django_airavata/static/common/js/components/ConfirmationButton.vue (50 lines of code) (raw):
<template>
<div class="confirmation-button">
<b-button
:variant="variant"
@click="$refs.modal.show()"
:disabled="disabled"
>
{{ label }}
</b-button>
<confirmation-dialog
ref="modal"
:title="dialogTitle"
@ok="$emit('confirmed')"
>
<slot></slot>
</confirmation-dialog>
</div>
</template>
<script>
import ConfirmationDialog from "./ConfirmationDialog.vue";
export default {
name: "confirmation-button",
props: {
dialogTitle: {
type: String,
default: "Please confirm",
},
disabled: {
type: Boolean,
default: false,
},
label: {
type: String,
default: "Update",
},
variant: {
type: String,
default: "danger",
},
},
components: {
ConfirmationDialog,
},
};
</script>
<style scoped>
.confirmation-button {
display: inline-block;
}
</style>