123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- const Mn = require('backbone.marionette');
- const App = require('../../main');
- const template = require('./test.ejs');
- module.exports = Mn.View.extend({
- template: template,
- className: 'modal-dialog',
- ui: {
- waiting: '.waiting',
- error: '.error',
- success: '.success',
- close: 'button.cancel'
- },
- events: {
- 'click @ui.close': function (e) {
- e.preventDefault();
- if (this.model.get('back_to_add')) {
- App.Controller.showNginxCertificateForm(this.model);
- } else {
- App.UI.closeModal();
- }
- },
- },
- onRender: function () {
- this.ui.error.hide();
- this.ui.success.hide();
- App.Api.Nginx.Certificates.testHttpChallenge(this.model.get('domain_names'))
- .then((result) => {
- let allOk = true;
- let text = '';
- for (const domain in result) {
- const status = result[domain];
- if (status === 'ok') {
- text += `<p><strong>${domain}:</strong> ${App.i18n('certificates', 'reachability-ok')}</p>`;
- } else {
- allOk = false;
- if (status === 'no-host') {
- text += `<p><strong>${domain}:</strong> ${App.i18n('certificates', 'reachability-not-resolved')}</p>`;
- } else if (status === 'failed') {
- text += `<p><strong>${domain}:</strong> ${App.i18n('certificates', 'reachability-failed-to-check')}</p>`;
- } else if (status === '404') {
- text += `<p><strong>${domain}:</strong> ${App.i18n('certificates', 'reachability-404')}</p>`;
- } else if (status === 'wrong-data') {
- text += `<p><strong>${domain}:</strong> ${App.i18n('certificates', 'reachability-wrong-data')}</p>`;
- } else if (status.startsWith('other:')) {
- const code = status.substring(6);
- text += `<p><strong>${domain}:</strong> ${App.i18n('certificates', 'reachability-other', {code})}</p>`;
- } else {
- // This should never happen
- text += `<p><strong>${domain}:</strong> ?</p>`;
- }
- }
- }
- this.ui.waiting.hide();
- if (allOk) {
- this.ui.success.html(text).show();
- } else {
- this.ui.error.html(text).show();
- }
- this.ui.close.prop('disabled', false);
- })
- .catch((e) => {
- console.error(e);
- this.ui.waiting.hide();
- this.ui.error.text(App.i18n('certificates', 'reachability-failed-to-reach-api')).show();
- this.ui.close.prop('disabled', false);
- });
- }
- });
|