import ngModule from '../module'; /** * The main application class. * * @property {String} name The application name. * @property {Snackbar} snackbar The main object to show messages. */ export default class App { constructor() { this.loaderStatus = 0; this.loading = false; this.versionInterval = setInterval(this.getVersion.bind(this), 300000); } showMessage(message) { if (this.logger) this.logger.showMessage(message); } showSuccess(message) { if (this.logger) this.logger.showSuccess(message); } showError(message, additionalData) { if (this.logger) this.logger.showError(message, additionalData); } pushLoader() { this.loaderStatus++; if (this.loaderStatus === 1) this.loading = true; } popLoader() { this.loaderStatus--; if (this.loaderStatus === 0) this.loading = false; } getVersion() { this.logger.$http.get('Applications/status'); } setVersion(newVersion) { if (newVersion) { const currentVersion = localStorage.getItem('salix-version'); if (newVersion != currentVersion) { this.hasNewVersion = true; clearInterval(this.versionInterval); } localStorage.setItem('salix-version', newVersion); } } getUrl(route, appName = 'lilium') { const env = process.env.NODE_ENV; const filter = { where: {and: [ {appName: appName}, {environment: env} ]} }; return this.logger.$http.get('Urls/findOne', {filter}) .then(res => { if (res && res.data) return res.data.url + route; }) .catch(() => { this.showError('Direction not found'); }); } } ngModule.service('vnApp', App);