| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- const Mn = require('backbone.marionette');
- const App = require('../../main');
- const SslPassthroughModel = require('../../../models/ssl-passthrough-host');
- const ListView = require('./list/main');
- const ErrorView = require('../../error/main');
- const EmptyView = require('../../empty/main');
- const template = require('./main.ejs');
- module.exports = Mn.View.extend({
- id: 'nginx-ssl-passthrough',
- template: template,
- ui: {
- list_region: '.list-region',
- add: '.add-item',
- help: '.help',
- dimmer: '.dimmer',
- disabled_info: '#ssl-passthrough-disabled-info'
- },
- regions: {
- list_region: '@ui.list_region'
- },
- events: {
- 'click @ui.add': function (e) {
- e.preventDefault();
- App.Controller.showNginxSslPassthroughForm();
- },
- 'click @ui.help': function (e) {
- e.preventDefault();
- App.Controller.showHelp(App.i18n('ssl-passthrough-hosts', 'help-title'), App.i18n('ssl-passthrough-hosts', 'help-content'));
- }
- },
- templateContext: {
- showAddButton: App.Cache.User.canManage('ssl_passthrough_hosts')
- },
- onRender: function () {
- let view = this;
- view.ui.disabled_info.hide();
- App.Api.Nginx.SslPassthroughHosts.getFeatureEnabled().then((response) => {
- console.debug(response)
- if (response.ssl_passthrough_enabled === false) {
- view.ui.disabled_info.show();
- } else {
- view.ui.disabled_info.hide();
- }
- });
- App.Api.Nginx.SslPassthroughHosts.getAll(['owner'])
- .then(response => {
- if (!view.isDestroyed()) {
- if (response && response.length) {
- view.showChildView('list_region', new ListView({
- collection: new SslPassthroughModel.Collection(response)
- }));
- } else {
- let manage = App.Cache.User.canManage('ssl_passthrough_hosts');
- view.showChildView('list_region', new EmptyView({
- title: App.i18n('ssl-passthrough-hosts', 'empty'),
- subtitle: App.i18n('all-hosts', 'empty-subtitle', {manage: manage}),
- link: manage ? App.i18n('ssl-passthrough-hosts', 'add') : null,
- btn_color: 'blue',
- permission: 'ssl-passthrough-hosts',
- action: function () {
- App.Controller.showNginxSslPassthroughForm();
- }
- }));
- }
- }
- })
- .catch(err => {
- view.showChildView('list_region', new ErrorView({
- code: err.code,
- message: err.message,
- retry: function () {
- App.Controller.showNginxSslPassthrough();
- }
- }));
- console.error(err);
- })
- .then(() => {
- view.ui.dimmer.removeClass('active');
- });
- }
- });
|