mirror of https://github.com/requarks/wiki
parent
bf6eae1428
commit
45d94e7e94
@ -1,112 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
import Vue from 'vue'
|
|
||||||
import _ from 'lodash'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Alerts
|
|
||||||
*/
|
|
||||||
class Alerts {
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* @class
|
|
||||||
*/
|
|
||||||
constructor () {
|
|
||||||
let self = this
|
|
||||||
|
|
||||||
self.mdl = new Vue({
|
|
||||||
el: '#alerts',
|
|
||||||
data: {
|
|
||||||
children: []
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
acknowledge: (uid) => {
|
|
||||||
self.close(uid)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
self.uidNext = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show a new Alert
|
|
||||||
*
|
|
||||||
* @param {Object} options Alert properties
|
|
||||||
* @return {null} Void
|
|
||||||
*/
|
|
||||||
push (options) {
|
|
||||||
let self = this
|
|
||||||
|
|
||||||
let nAlert = _.defaults(options, {
|
|
||||||
_uid: self.uidNext,
|
|
||||||
class: 'info',
|
|
||||||
message: '---',
|
|
||||||
sticky: false,
|
|
||||||
title: '---'
|
|
||||||
})
|
|
||||||
|
|
||||||
self.mdl.children.push(nAlert)
|
|
||||||
|
|
||||||
if (!nAlert.sticky) {
|
|
||||||
_.delay(() => {
|
|
||||||
self.close(nAlert._uid)
|
|
||||||
}, 5000)
|
|
||||||
}
|
|
||||||
|
|
||||||
self.uidNext++
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shorthand method for pushing errors
|
|
||||||
*
|
|
||||||
* @param {String} title The title
|
|
||||||
* @param {String} message The message
|
|
||||||
*/
|
|
||||||
pushError (title, message) {
|
|
||||||
this.push({
|
|
||||||
class: 'error',
|
|
||||||
message,
|
|
||||||
sticky: false,
|
|
||||||
title
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shorthand method for pushing success messages
|
|
||||||
*
|
|
||||||
* @param {String} title The title
|
|
||||||
* @param {String} message The message
|
|
||||||
*/
|
|
||||||
pushSuccess (title, message) {
|
|
||||||
this.push({
|
|
||||||
class: 'success',
|
|
||||||
message,
|
|
||||||
sticky: false,
|
|
||||||
title
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Close an alert
|
|
||||||
*
|
|
||||||
* @param {Integer} uid The unique ID of the alert
|
|
||||||
*/
|
|
||||||
close (uid) {
|
|
||||||
let self = this
|
|
||||||
|
|
||||||
let nAlertIdx = _.findIndex(self.mdl.children, ['_uid', uid])
|
|
||||||
let nAlert = _.nth(self.mdl.children, nAlertIdx)
|
|
||||||
|
|
||||||
if (nAlertIdx >= 0 && nAlert) {
|
|
||||||
nAlert.class += ' exit'
|
|
||||||
Vue.set(self.mdl.children, nAlertIdx, nAlert)
|
|
||||||
_.delay(() => {
|
|
||||||
self.mdl.children.splice(nAlertIdx, 1)
|
|
||||||
}, 500)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Alerts
|
|
Loading…
Reference in new issue