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...
+
-
-
Fallback Certificate (optional)
-
- 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();
}