@@ -22,31 +22,50 @@ module.exports = Mn.View.extend({
22
22
other_certificate_key : '#other_certificate_key' ,
23
23
other_intermediate_certificate : '#other_intermediate_certificate' ,
24
24
cloudflare_switch : 'input[name="meta[cloudflare_use]"]' ,
25
+ cloudflare_token : 'input[name="meta[cloudflare_token]"' ,
25
26
cloudflare : '.cloudflare'
26
27
} ,
27
28
28
29
events : {
29
30
'change @ui.cloudflare_switch' : function ( ) {
30
31
let checked = this . ui . cloudflare_switch . prop ( 'checked' ) ;
31
- if ( checked ) {
32
+ if ( checked ) {
33
+ this . ui . cloudflare_token . prop ( 'required' , 'required' ) ;
32
34
this . ui . cloudflare . show ( ) ;
33
- } else {
34
- this . ui . cloudflare . hide ( ) ;
35
+ } else {
36
+ this . ui . cloudflare_token . prop ( 'required' , false ) ;
37
+ this . ui . cloudflare . hide ( ) ;
35
38
}
36
39
} ,
37
40
'click @ui.save' : function ( e ) {
38
41
e . preventDefault ( ) ;
39
42
40
43
if ( ! this . ui . form [ 0 ] . checkValidity ( ) ) {
41
44
$ ( '<input type="submit">' ) . hide ( ) . appendTo ( this . ui . form ) . click ( ) . remove ( ) ;
42
- $ ( this ) . addClass ( 'btn-loading' ) ;
45
+ $ ( this ) . removeClass ( 'btn-loading' ) ;
43
46
return ;
44
47
}
45
48
46
49
let view = this ;
47
50
let data = this . ui . form . serializeJSON ( ) ;
48
51
data . provider = this . model . get ( 'provider' ) ;
49
52
53
+
54
+
55
+ let domain_err = false ;
56
+ if ( ! data . meta . cloudflare_use ) {
57
+ data . domain_names . split ( ',' ) . map ( function ( name ) {
58
+ if ( name . match ( / \* / im) ) {
59
+ domain_err = true ;
60
+ }
61
+ } ) ;
62
+ }
63
+
64
+ if ( domain_err ) {
65
+ alert ( 'Cannot request Let\'s Encrypt Certificate for wildcard domains when not using CloudFlare DNS' ) ;
66
+ return ;
67
+ }
68
+
50
69
// Manipulate
51
70
if ( typeof data . meta !== 'undefined' && typeof data . meta . letsencrypt_agree !== 'undefined' ) {
52
71
data . meta . letsencrypt_agree = ! ! data . meta . letsencrypt_agree ;
0 commit comments