diff --git a/frontend/js/app/nginx/proxy/form.ejs b/frontend/js/app/nginx/proxy/form.ejs
index 1a49830..5ca45a4 100644
--- a/frontend/js/app/nginx/proxy/form.ejs
+++ b/frontend/js/app/nginx/proxy/form.ejs
@@ -35,7 +35,7 @@
diff --git a/frontend/js/app/nginx/proxy/form.js b/frontend/js/app/nginx/proxy/form.js
index 8802b95..63be896 100644
--- a/frontend/js/app/nginx/proxy/form.js
+++ b/frontend/js/app/nginx/proxy/form.js
@@ -43,7 +43,10 @@ module.exports = Mn.View.extend({
dns_provider_credentials: 'textarea[name="meta[dns_provider_credentials]"]',
propagation_seconds: 'input[name="meta[propagation_seconds]"]',
forward_scheme: 'select[name="forward_scheme"]',
- letsencrypt: '.letsencrypt'
+ letsencrypt: '.letsencrypt',
+ root_dir: 'input[name="root_dir"]',
+ index_file: 'input[name="index_file"]',
+ static: 'input[type="checkbox"].static-checkbox',
},
regions: {
@@ -113,7 +116,7 @@ module.exports = Mn.View.extend({
} else {
this.ui.dns_provider.prop('required', false);
this.ui.dns_provider_credentials.prop('required', false);
- this.ui.dns_challenge_content.hide();
+ this.ui.dns_challenge_content.hide();
}
},
@@ -125,17 +128,26 @@ module.exports = Mn.View.extend({
this.ui.credentials_file_content.show();
} else {
this.ui.dns_provider_credentials.prop('required', false);
- this.ui.credentials_file_content.hide();
+ this.ui.credentials_file_content.hide();
}
},
'click @ui.add_location_btn': function (e) {
e.preventDefault();
-
+
const model = new ProxyLocationModel.Model();
this.locationsCollection.add(model);
},
+ 'click @ui.static': function(e){
+ const map = {};
+ let value = e.target.value
+ if(e.target.type == 'checkbox') value = e.target.checked;
+ map[e.target.name] = value;
+ this.model.set(map);
+ setTimeout(this.render.bind(this), 300)
+ },
+
'click @ui.save': function (e) {
e.preventDefault();
this.ui.le_error_info.hide();
@@ -167,17 +179,18 @@ module.exports = Mn.View.extend({
data.hsts_enabled = !!data.hsts_enabled;
data.hsts_subdomains = !!data.hsts_subdomains;
data.ssl_forced = !!data.ssl_forced;
-
+ data.static = !!data.static;
+
if (typeof data.meta === 'undefined') data.meta = {};
data.meta.letsencrypt_agree = data.meta.letsencrypt_agree == 1;
data.meta.dns_challenge = data.meta.dns_challenge == 1;
-
+
if(!data.meta.dns_challenge){
data.meta.dns_provider = undefined;
data.meta.dns_provider_credentials = undefined;
data.meta.propagation_seconds = undefined;
} else {
- if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined;
+ if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined;
}
if (typeof data.domain_names === 'string' && data.domain_names) {
@@ -185,7 +198,7 @@ module.exports = Mn.View.extend({
}
// Check for any domain names containing wildcards, which are not allowed with letsencrypt
- if (data.certificate_id === 'new') {
+ if (data.certificate_id === 'new') {
let domain_err = false;
if (!data.meta.dns_challenge) {
data.domain_names.map(function (name) {
diff --git a/frontend/js/app/nginx/proxy/list/item.ejs b/frontend/js/app/nginx/proxy/list/item.ejs
index d90ace4..88aa265 100644
--- a/frontend/js/app/nginx/proxy/list/item.ejs
+++ b/frontend/js/app/nginx/proxy/list/item.ejs
@@ -23,7 +23,13 @@
- <%- forward_scheme %>://<%- forward_host %>:<%- forward_port %>
+
+ <% if (!static) { %>
+ <%- forward_scheme %>://<%- forward_host %>:<%- forward_port %>
+ <% } else { %>
+ <%- root_dir %>
+ <%- index_file %>
+ <% } %>
|
<%- certificate && certificate_id ? i18n('ssl', certificate.provider) : i18n('ssl', 'none') %>
diff --git a/frontend/js/app/nginx/proxy/location-item.ejs b/frontend/js/app/nginx/proxy/location-item.ejs
index 39445f7..4673a0f 100644
--- a/frontend/js/app/nginx/proxy/location-item.ejs
+++ b/frontend/js/app/nginx/proxy/location-item.ejs
@@ -16,7 +16,7 @@
-
+
+
+
+
+ autocomplete="off" maxlength="200">
+
+
+
+
+
+ autocomplete="off" maxlength="200">
+
+
+
+
+
+
+
diff --git a/frontend/js/app/nginx/proxy/location.js b/frontend/js/app/nginx/proxy/location.js
index e9513a4..b12b621 100644
--- a/frontend/js/app/nginx/proxy/location.js
+++ b/frontend/js/app/nginx/proxy/location.js
@@ -7,13 +7,15 @@ const LocationView = Mn.View.extend({
className: 'location_block',
ui: {
- toggle: 'input[type="checkbox"]',
+ settings: 'input[type="checkbox"].settings-checkbox',
+ static: 'input[type="checkbox"].location-static-checkbox',
config: '.config',
delete: '.location-delete'
},
events: {
- 'change @ui.toggle': function(el) {
+
+ 'change @ui.settings': function(el) {
if (el.target.checked) {
this.ui.config.show();
} else {
@@ -22,11 +24,20 @@ const LocationView = Mn.View.extend({
},
'change .model': function (e) {
+
const map = {};
- map[e.target.name] = e.target.value;
+
+ let value = e.target.value
+ if(e.target.type == 'checkbox') value = e.target.checked ? 1 : 0
+ map[e.target.name] = value
this.model.set(map);
+
+ setTimeout(this.render.bind(this), 300)
+
},
+ // 'click @ui.static': 'render',
+
'click @ui.delete': function () {
this.model.destroy();
}
diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json
index 202e94a..b23386a 100644
--- a/frontend/js/i18n/messages.json
+++ b/frontend/js/i18n/messages.json
@@ -123,6 +123,9 @@
"forward-scheme": "Scheme",
"forward-host": "Forward Hostname / IP",
"forward-port": "Forward Port",
+ "root-dir": "Root Directory",
+ "static": "Static File Proxy",
+ "index-file": "Index File",
"delete": "Delete Proxy Host",
"delete-confirm": "Are you sure you want to delete the Proxy host for: {domains}?",
"help-title": "What is a Proxy Host?",
diff --git a/frontend/js/models/proxy-host-location.js b/frontend/js/models/proxy-host-location.js
index 2a35059..9ce641d 100644
--- a/frontend/js/models/proxy-host-location.js
+++ b/frontend/js/models/proxy-host-location.js
@@ -9,8 +9,11 @@ const model = Backbone.Model.extend({
path: '',
advanced_config: '',
forward_scheme: 'http',
- forward_host: '',
- forward_port: '80'
+ forward_host: null,
+ forward_port: '80',
+ root_dir: null,
+ static: false,
+ index_file: 'index.html',
}
},
diff --git a/frontend/js/models/proxy-host.js b/frontend/js/models/proxy-host.js
index b82d09f..fca51b2 100644
--- a/frontend/js/models/proxy-host.js
+++ b/frontend/js/models/proxy-host.js
@@ -10,8 +10,11 @@ const model = Backbone.Model.extend({
modified_on: null,
domain_names: [],
forward_scheme: 'http',
- forward_host: '',
+ forward_host: null,
forward_port: null,
+ root_dir: null,
+ static: false,
+ index_file: 'index.html',
access_list_id: 0,
certificate_id: 0,
ssl_forced: false,
|