diff --git a/frontend/js/app/nginx/certificates/form.ejs b/frontend/js/app/nginx/certificates/form.ejs
index 2af43454..19ea2c76 100644
--- a/frontend/js/app/nginx/certificates/form.ejs
+++ b/frontend/js/app/nginx/certificates/form.ejs
@@ -34,7 +34,7 @@
diff --git a/frontend/js/app/nginx/certificates/form.js b/frontend/js/app/nginx/certificates/form.js
index de4432bc..5d263df6 100644
--- a/frontend/js/app/nginx/certificates/form.js
+++ b/frontend/js/app/nginx/certificates/form.js
@@ -22,16 +22,19 @@ module.exports = Mn.View.extend({
other_certificate_key: '#other_certificate_key',
other_intermediate_certificate: '#other_intermediate_certificate',
cloudflare_switch: 'input[name="meta[cloudflare_use]"]',
+ cloudflare_token: 'input[name="meta[cloudflare_token]"',
cloudflare: '.cloudflare'
},
events: {
'change @ui.cloudflare_switch': function() {
let checked = this.ui.cloudflare_switch.prop('checked');
- if (checked) {
+ if (checked) {
+ this.ui.cloudflare_token.prop('required', 'required');
this.ui.cloudflare.show();
- } else {
- this.ui.cloudflare.hide();
+ } else {
+ this.ui.cloudflare_token.prop('required', false);
+ this.ui.cloudflare.hide();
}
},
'click @ui.save': function (e) {
@@ -39,7 +42,7 @@ module.exports = Mn.View.extend({
if (!this.ui.form[0].checkValidity()) {
$('').hide().appendTo(this.ui.form).click().remove();
- $(this).addClass('btn-loading');
+ $(this).removeClass('btn-loading');
return;
}
@@ -47,6 +50,22 @@ module.exports = Mn.View.extend({
let data = this.ui.form.serializeJSON();
data.provider = this.model.get('provider');
+
+
+ let domain_err = false;
+ if (!data.meta.cloudflare_use) {
+ data.domain_names.split(',').map(function (name) {
+ if (name.match(/\*/im)) {
+ domain_err = true;
+ }
+ });
+ }
+
+ if (domain_err) {
+ alert('Cannot request Let\'s Encrypt Certificate for wildcard domains when not using CloudFlare DNS');
+ return;
+ }
+
// Manipulate
if (typeof data.meta !== 'undefined' && typeof data.meta.letsencrypt_agree !== 'undefined') {
data.meta.letsencrypt_agree = !!data.meta.letsencrypt_agree;