| 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');            });    }});
 |