diff --git a/src/js/client.js b/src/js/client.js index 7da5f4e95..a0dedfe74 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -1198,13 +1198,14 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N }).error(defaultErrorHandler(callback)); // this doesn't call defaultErrorHandler till we fix domains code to use this directly }; - Client.prototype.addDomain = function (domain, provider, config, fallbackCertificate, tlsConfig, callback) { + Client.prototype.addDomain = function (domain, zoneName, provider, config, fallbackCertificate, tlsConfig, callback) { var data = { domain: domain, provider: provider, config: config, tlsConfig: tlsConfig }; + if (zoneName) data.zoneName = zoneName; var that = this; if (fallbackCertificate) data.fallbackCertificate = fallbackCertificate; @@ -1217,12 +1218,13 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N }).error(defaultErrorHandler(callback)); }; - Client.prototype.updateDomain = function (domain, provider, config, fallbackCertificate, tlsConfig, callback) { + Client.prototype.updateDomain = function (domain, zoneName, provider, config, fallbackCertificate, tlsConfig, callback) { var data = { provider: provider, config: config, tlsConfig: tlsConfig }; + if (zoneName) data.zoneName = zoneName; var that = this; if (fallbackCertificate) data.fallbackCertificate = fallbackCertificate; diff --git a/src/views/domains.html b/src/views/domains.html index 27af44363..296b516eb 100644 --- a/src/views/domains.html +++ b/src/views/domains.html @@ -115,31 +115,43 @@ All DNS records have to be setup manually before each app installation.

-
+ Advanced settings... +
- - -

- Certificates are automatically obtained and renewed from Let’s Encrypt. See the current rate limit here. - If provided, this wildcard certificate will be used for apps, should getting a Let’s Encrypt certificate fail. -

-
-
- - - - - -
-
-
-
- - - - - -
+
+ + +
+ +
+ + +
+ + + +

+ Certificates are automatically obtained and renewed from Let’s Encrypt. See the current rate limit here. + If provided, this wildcard certificate will be used for apps, should getting a Let’s Encrypt certificate fail. +

+
+
+ + + + + +
+
+
+
+ + + + + +
+
diff --git a/src/views/domains.js b/src/views/domains.js index c79ea712d..f587514c3 100644 --- a/src/views/domains.js +++ b/src/views/domains.js @@ -7,9 +7,11 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat $scope.dnsConfig = null; $scope.domains = []; $scope.ready = false; - $scope.tlsConfig = { - provider: $location.search().env === 'dev' ? 'letsencrypt-staging' : 'letsencrypt-prod' - }; + $scope.tlsProvider = [ + { name: 'Let\'s Encrypt Prod', value: 'letsencrypt-prod' }, + { name: 'Let\'s Encrypt Staging', value: 'letsencrypt-staging' }, + { name: 'Fallback', value: 'fallback' }, + ]; // keep in sync with setupdns.js $scope.dnsProvider = [ @@ -63,6 +65,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat error: null, busy: false, domain: null, + advancedVisible: false, // form model newDomain: '', @@ -78,6 +81,11 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat nameComToken: '', nameComUsername: '', provider: 'route53', + zoneName: '', + + tlsConfig: { + provider: 'letsencrypt-prod' + }, fallbackCert: { certificateFile: null, @@ -116,6 +124,9 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat $scope.domainConfigure.provider = domain.provider; $scope.domainConfigure.provider = ($scope.domainConfigure.provider === 'manual' && domain.config.wildcard) ? 'wildcard' : domain.provider; + + $scope.domainConfigure.tlsConfig.provider = domain.tlsConfig.provider; + $scope.domainConfigure.zoneName = domain.zoneName; } else { $scope.domainConfigure.adding = true; } @@ -183,8 +194,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat // choose the right api, since we reuse this for adding and configuring domains var func; - if ($scope.domainConfigure.adding) func = Client.addDomain.bind(Client, $scope.domainConfigure.newDomain, provider, data, fallbackCertificate, $scope.tlsConfig); - else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, provider, data, fallbackCertificate, $scope.tlsConfig); + if ($scope.domainConfigure.adding) func = Client.addDomain.bind(Client, $scope.domainConfigure.newDomain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, $scope.domainConfigure.tlsConfig); + else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, $scope.domainConfigure.tlsConfig); func(function (error) { $scope.domainConfigure.busy = false; @@ -207,6 +218,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat reset: function () { $scope.domainConfigure.adding = false; + $scope.domainConfigure.advancedVisible = false; $scope.domainConfigure.newDomain = ''; $scope.domainConfigure.busy = false; @@ -226,6 +238,9 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat $scope.domainConfigure.nameComToken = ''; $scope.domainConfigure.nameComUsername = ''; + $scope.domainConfigure.tlsConfig.provider = 'letsencrypt-prod'; + $scope.domainConfigure.zoneName = ''; + $scope.domainConfigureForm.$setPristine(); $scope.domainConfigureForm.$setUntouched(); }