1c2862dccSSurenNewareimport StatusIcon from '../Global/StatusIcon'; 2*de23ea23SSurya Vimport i18n from '@/i18n'; 3f92e2969SYoshie Muranaka 40fc91e79SYoshie Muranakaconst BVToastMixin = { 5c2862dccSSurenNeware components: { 6602e98aaSDerick Montague StatusIcon, 7c2862dccSSurenNeware }, 80fc91e79SYoshie Muranaka methods: { 9f92e2969SYoshie Muranaka $_BVToastMixin_createTitle(title, status) { 10f92e2969SYoshie Muranaka const statusIcon = this.$createElement('StatusIcon', { 11f92e2969SYoshie Muranaka props: { status }, 12f92e2969SYoshie Muranaka }); 13c2862dccSSurenNeware const titleWithIcon = this.$createElement( 14c2862dccSSurenNeware 'strong', 15c2862dccSSurenNeware { class: 'toast-icon' }, 168132399cSEd Tanous [statusIcon, title], 17c2862dccSSurenNeware ); 18c2862dccSSurenNeware return titleWithIcon; 19c2862dccSSurenNeware }, 20f92e2969SYoshie Muranaka $_BVToastMixin_createBody(messageBody) { 21f92e2969SYoshie Muranaka if (Array.isArray(messageBody)) { 22f92e2969SYoshie Muranaka return messageBody.map((message) => 238132399cSEd Tanous this.$createElement('p', { class: 'mb-0' }, message), 24f92e2969SYoshie Muranaka ); 25f92e2969SYoshie Muranaka } else { 26f92e2969SYoshie Muranaka return [this.$createElement('p', { class: 'mb-0' }, messageBody)]; 27f92e2969SYoshie Muranaka } 28f92e2969SYoshie Muranaka }, 29f92e2969SYoshie Muranaka $_BVToastMixin_createTimestamp() { 30*de23ea23SSurya V const timestamp = this.$filters.formatTime(new Date()); 31f92e2969SYoshie Muranaka return this.$createElement('p', { class: 'mt-3 mb-0' }, timestamp); 32f92e2969SYoshie Muranaka }, 33f92e2969SYoshie Muranaka $_BVToastMixin_createRefreshAction() { 34f92e2969SYoshie Muranaka return this.$createElement( 35f92e2969SYoshie Muranaka 'BLink', 36f92e2969SYoshie Muranaka { 37f92e2969SYoshie Muranaka class: 'd-inline-block mt-3', 38f92e2969SYoshie Muranaka on: { 39f92e2969SYoshie Muranaka click: () => { 40f92e2969SYoshie Muranaka this.$root.$emit('refresh-application'); 41f92e2969SYoshie Muranaka }, 42f92e2969SYoshie Muranaka }, 43f92e2969SYoshie Muranaka }, 44*de23ea23SSurya V i18n.global.t('global.action.refresh'), 45f92e2969SYoshie Muranaka ); 46f92e2969SYoshie Muranaka }, 47f92e2969SYoshie Muranaka $_BVToastMixin_initToast(body, title, variant) { 48f92e2969SYoshie Muranaka this.$root.$bvToast.toast(body, { 49f92e2969SYoshie Muranaka title, 50f92e2969SYoshie Muranaka variant, 510fc91e79SYoshie Muranaka autoHideDelay: 10000, //auto hide in milliseconds 52f92e2969SYoshie Muranaka noAutoHide: variant !== 'success', 530fc91e79SYoshie Muranaka isStatus: true, 54602e98aaSDerick Montague solid: true, 550fc91e79SYoshie Muranaka }); 560fc91e79SYoshie Muranaka }, 57f92e2969SYoshie Muranaka successToast( 58f92e2969SYoshie Muranaka message, 59f92e2969SYoshie Muranaka { 60*de23ea23SSurya V title: t = i18n.global.t('global.status.success'), 61f92e2969SYoshie Muranaka timestamp, 62f92e2969SYoshie Muranaka refreshAction, 638132399cSEd Tanous } = {}, 64f92e2969SYoshie Muranaka ) { 65f92e2969SYoshie Muranaka const body = this.$_BVToastMixin_createBody(message); 66f92e2969SYoshie Muranaka const title = this.$_BVToastMixin_createTitle(t, 'success'); 67f92e2969SYoshie Muranaka if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); 68f92e2969SYoshie Muranaka if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); 69f92e2969SYoshie Muranaka this.$_BVToastMixin_initToast(body, title, 'success'); 70183c2754SYoshie Muranaka }, 71f92e2969SYoshie Muranaka errorToast( 72f92e2969SYoshie Muranaka message, 73f92e2969SYoshie Muranaka { 74*de23ea23SSurya V title: t = i18n.global.t('global.status.error'), 75f92e2969SYoshie Muranaka timestamp, 76f92e2969SYoshie Muranaka refreshAction, 778132399cSEd Tanous } = {}, 78f92e2969SYoshie Muranaka ) { 79f92e2969SYoshie Muranaka const body = this.$_BVToastMixin_createBody(message); 80f92e2969SYoshie Muranaka const title = this.$_BVToastMixin_createTitle(t, 'danger'); 81f92e2969SYoshie Muranaka if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); 82f92e2969SYoshie Muranaka if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); 83f92e2969SYoshie Muranaka this.$_BVToastMixin_initToast(body, title, 'danger'); 844e90eed0SDerick Montague }, 85f92e2969SYoshie Muranaka warningToast( 86f92e2969SYoshie Muranaka message, 87f92e2969SYoshie Muranaka { 88*de23ea23SSurya V title: t = i18n.global.t('global.status.warning'), 89f92e2969SYoshie Muranaka timestamp, 90f92e2969SYoshie Muranaka refreshAction, 918132399cSEd Tanous } = {}, 92f92e2969SYoshie Muranaka ) { 93f92e2969SYoshie Muranaka const body = this.$_BVToastMixin_createBody(message); 94f92e2969SYoshie Muranaka const title = this.$_BVToastMixin_createTitle(t, 'warning'); 95f92e2969SYoshie Muranaka if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); 96f92e2969SYoshie Muranaka if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); 97f92e2969SYoshie Muranaka this.$_BVToastMixin_initToast(body, title, 'warning'); 98f92e2969SYoshie Muranaka }, 99f92e2969SYoshie Muranaka infoToast( 100f92e2969SYoshie Muranaka message, 101f92e2969SYoshie Muranaka { 102*de23ea23SSurya V title: t = i18n.global.t('global.status.informational'), 103f92e2969SYoshie Muranaka timestamp, 104f92e2969SYoshie Muranaka refreshAction, 1058132399cSEd Tanous } = {}, 106f92e2969SYoshie Muranaka ) { 107f92e2969SYoshie Muranaka const body = this.$_BVToastMixin_createBody(message); 108f92e2969SYoshie Muranaka const title = this.$_BVToastMixin_createTitle(t, 'info'); 109f92e2969SYoshie Muranaka if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); 110f92e2969SYoshie Muranaka if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); 111f92e2969SYoshie Muranaka this.$_BVToastMixin_initToast(body, title, 'info'); 112602e98aaSDerick Montague }, 113602e98aaSDerick Montague }, 1140fc91e79SYoshie Muranaka}; 1150fc91e79SYoshie Muranaka 1160fc91e79SYoshie Muranakaexport default BVToastMixin; 117