nginx-proxy-manager/src/frontend/js/app/controller.js

177 lines
4.0 KiB
JavaScript
Raw Normal View History

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
*/
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');
App.UI.showAppContent(new View());
2018-06-19 18:48:14 -04:00
});
} else {
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
}
},
2018-06-25 02:56:13 -04:00
/**
* User Password Form
*
* @param model
*/
showUserPasswordForm: function (model) {
if (Cache.User.isAdmin() || model.get('id') === Cache.User.get('id')) {
require(['./main', './user/password'], 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());
});
},
/**
* Nginx Proxy Hosts
*/
showNginxProxy: function () {
let controller = this;
require(['./main', './nginx/proxy/main'], (App, View) => {
controller.navigate('/nginx/proxy');
App.UI.showAppContent(new View());
});
},
/**
* Nginx Redirection Hosts
*/
showNginxRedirection: function () {
let controller = this;
require(['./main', './nginx/redirection/main'], (App, View) => {
controller.navigate('/nginx/redirection');
App.UI.showAppContent(new View());
});
},
/**
* Nginx Stream Hosts
*/
showNginxStream: function () {
let controller = this;
require(['./main', './nginx/stream/main'], (App, View) => {
controller.navigate('/nginx/stream');
App.UI.showAppContent(new View());
});
},
/**
* Nginx 404 Hosts
*/
showNginx404: function () {
let controller = this;
require(['./main', './nginx/404/main'], (App, View) => {
controller.navigate('/nginx/404');
App.UI.showAppContent(new View());
});
},
/**
* Nginx Access
*/
showNginxAccess: function () {
let controller = this;
require(['./main', './nginx/access/main'], (App, View) => {
controller.navigate('/nginx/access');
App.UI.showAppContent(new View());
});
},
2018-06-19 18:48:14 -04:00
/**
* 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();
}
};