2018-06-19 18:48:14 -04:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const Backbone = require('backbone');
|
|
|
|
const Cache = require('./cache');
|
|
|
|
const Tokens = require('./tokens');
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {String} route
|
|
|
|
* @param {Object} [options]
|
|
|
|
* @returns {Boolean}
|
|
|
|
*/
|
|
|
|
navigate: function (route, options) {
|
|
|
|
options = options || {};
|
|
|
|
Backbone.history.navigate(route.toString(), options);
|
|
|
|
return true;
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Login
|
|
|
|
*/
|
|
|
|
showLogin: function () {
|
|
|
|
window.location = '/login';
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Users
|
|
|
|
*/
|
2018-06-20 02:51:18 -04:00
|
|
|
showUsers: function () {
|
2018-06-19 18:48:14 -04:00
|
|
|
let controller = this;
|
|
|
|
if (Cache.User.isAdmin()) {
|
|
|
|
require(['./main', './users/main'], (App, View) => {
|
|
|
|
controller.navigate('/users');
|
2018-06-20 02:51:18 -04:00
|
|
|
App.UI.showAppContent(new View());
|
2018-06-19 18:48:14 -04:00
|
|
|
});
|
|
|
|
} else {
|
2018-06-20 02:51:18 -04:00
|
|
|
this.showDashboard();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* User Form
|
|
|
|
*
|
|
|
|
* @param model
|
|
|
|
*/
|
|
|
|
showUserForm: function (model) {
|
|
|
|
if (Cache.User.isAdmin()) {
|
|
|
|
require(['./main', './user/form'], function (App, View) {
|
|
|
|
App.UI.showModalDialog(new View({model: model}));
|
|
|
|
});
|
2018-06-19 18:48:14 -04:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Error
|
|
|
|
*
|
|
|
|
* @param {Error} err
|
|
|
|
* @param {String} nice_msg
|
|
|
|
*/
|
|
|
|
/*
|
|
|
|
showError: function (err, nice_msg) {
|
|
|
|
require(['./main', './error/main'], (App, View) => {
|
|
|
|
App.UI.showAppContent(new View({
|
|
|
|
err: err,
|
|
|
|
nice_msg: nice_msg
|
|
|
|
}));
|
|
|
|
});
|
|
|
|
},
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Dashboard
|
|
|
|
*/
|
|
|
|
showDashboard: function () {
|
|
|
|
let controller = this;
|
|
|
|
|
|
|
|
require(['./main', './dashboard/main'], (App, View) => {
|
|
|
|
controller.navigate('/');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Dashboard
|
|
|
|
*/
|
|
|
|
showProfile: function () {
|
|
|
|
let controller = this;
|
|
|
|
|
|
|
|
require(['./main', './profile/main'], (App, View) => {
|
|
|
|
controller.navigate('/profile');
|
|
|
|
App.UI.showAppContent(new View());
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Logout
|
|
|
|
*/
|
|
|
|
logout: function () {
|
|
|
|
Tokens.dropTopToken();
|
|
|
|
this.showLogin();
|
|
|
|
}
|
|
|
|
};
|