|
|
@@ -26,10 +26,20 @@ module.exports = Mn.View.extend({
|
|
|
access_list_select: 'select[name="access_list_id"]',
|
|
|
ssl_forced: 'input[name="ssl_forced"]',
|
|
|
http2_support: 'input[name="http2_support"]',
|
|
|
+ forward_scheme: 'select[name="forward_scheme"]',
|
|
|
+ ignore_ssl: 'input[name="ignore_invalid_upstream_ssl"]',
|
|
|
letsencrypt: '.letsencrypt'
|
|
|
},
|
|
|
|
|
|
events: {
|
|
|
+ 'change @ui.forward_scheme': function () {
|
|
|
+ let val = this.ui.forward_scheme.val();
|
|
|
+ this.ui.ignore_ssl
|
|
|
+ .prop('disabled', val === 'http')
|
|
|
+ .parents('.form-group')
|
|
|
+ .css('opacity', val === 'https' ? 1 : 0.5);
|
|
|
+ },
|
|
|
+
|
|
|
'change @ui.certificate_select': function () {
|
|
|
let id = this.ui.certificate_select.val();
|
|
|
if (id === 'new') {
|
|
|
@@ -43,8 +53,6 @@ module.exports = Mn.View.extend({
|
|
|
.prop('disabled', !enabled)
|
|
|
.parents('.form-group')
|
|
|
.css('opacity', enabled ? 1 : 0.5);
|
|
|
-
|
|
|
- this.ui.http2_support.prop('disabled', !enabled);
|
|
|
},
|
|
|
|
|
|
'click @ui.save': function (e) {
|
|
|
@@ -59,10 +67,11 @@ module.exports = Mn.View.extend({
|
|
|
let data = this.ui.form.serializeJSON();
|
|
|
|
|
|
// Manipulate
|
|
|
- data.forward_port = parseInt(data.forward_port, 10);
|
|
|
- data.block_exploits = !!data.block_exploits;
|
|
|
- data.caching_enabled = !!data.caching_enabled;
|
|
|
- data.allow_websocket_upgrade = !!data.allow_websocket_upgrade;
|
|
|
+ data.forward_port = parseInt(data.forward_port, 10);
|
|
|
+ data.block_exploits = !!data.block_exploits;
|
|
|
+ data.caching_enabled = !!data.caching_enabled;
|
|
|
+ data.allow_websocket_upgrade = !!data.allow_websocket_upgrade;
|
|
|
+ data.ignore_invalid_upstream_ssl = data.forward_scheme === 'https' ? !!data.ignore_invalid_upstream_ssl : false;
|
|
|
|
|
|
if (typeof data.ssl_forced !== 'undefined' && data.ssl_forced === '1') {
|
|
|
data.ssl_forced = true;
|
|
|
@@ -92,7 +101,7 @@ module.exports = Mn.View.extend({
|
|
|
|
|
|
data.meta.letsencrypt_agree = data.meta.letsencrypt_agree === '1';
|
|
|
} else {
|
|
|
- data.certificate_id = parseInt(data.certificate_id, 0);
|
|
|
+ data.certificate_id = parseInt(data.certificate_id, 10);
|
|
|
}
|
|
|
|
|
|
let method = App.Api.Nginx.ProxyHosts.create;
|
|
|
@@ -147,7 +156,6 @@ module.exports = Mn.View.extend({
|
|
|
});
|
|
|
|
|
|
// Access Lists
|
|
|
- this.ui.letsencrypt.hide();
|
|
|
this.ui.access_list_select.selectize({
|
|
|
valueField: 'id',
|
|
|
labelField: 'name',
|
|
|
@@ -207,6 +215,8 @@ module.exports = Mn.View.extend({
|
|
|
view.ui.certificate_select[0].selectize.setValue(view.model.get('certificate_id'));
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ this.ui.forward_scheme.trigger('change');
|
|
|
},
|
|
|
|
|
|
initialize: function (options) {
|