mirror of https://github.com/Requarks/wiki.git
5 changed files with 12 additions and 125 deletions
Split View
Diff Options
-
2client/js/app.js
-
112client/js/components/alerts.js
-
17client/js/pages/source.component.js
-
2client/scss/components/_editor.scss
-
4server/views/pages/source.pug
@ -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 |
Write
Preview
Loading…
Cancel
Save