| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							- '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
 
 
  |