Add name.com DNS provider

This commit is contained in:
Johannes Zellner
2018-05-09 12:24:46 +02:00
parent 791f5af3e0
commit c0d4100dd1
2 changed files with 26 additions and 0 deletions

View File

@@ -73,6 +73,16 @@
<input type="email" class="form-control" ng-model="domainConfigure.cloudflareEmail" name="cloudflareEmail" placeholder="Cloudflare Account Email" ng-required="domainConfigure.provider === 'cloudflare'" ng-disabled="domainConfigure.busy">
</div>
<!-- Name.com -->
<div class="form-group" ng-class="{ 'has-error': false }" ng-show="domainConfigure.provider === 'namecom'">
<label class="control-label">Name.com username</label>
<input type="text" class="form-control" ng-model="domainConfigure.nameComUsername" name="nameComUsername" ng-disabled="domainConfigure.busy" ng-required="domainConfigure.provider === 'namecom'">
</div>
<div class="form-group" ng-class="{ 'has-error': false }" ng-show="domainConfigure.provider === 'namecom'">
<label class="control-label">Name.com API token <sup><a href="https://www.name.com/account/settings/api" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<input type="text" class="form-control" ng-model="domainConfigure.nameComToken" name="nameComToken" ng-disabled="domainConfigure.busy" ng-minlength="1" ng-required="domainConfigure.provider === 'namecom'">
</div>
<p ng-show="domainConfigure.provider === 'route53'">
This domain must be hosted on <a href="https://aws.amazon.com/route53/?nc2=h_m1" target="_blank">AWS Route53</a>.
</p>
@@ -89,6 +99,10 @@
This domain must be hosted on <a href="http://doc.livedns.gandi.net/" target="_blank">Gandi LiveDNS</a>.
</p>
<p ng-show="domainConfigure.provider === 'namecom'">
This domain must be hosted on <a href="https://www.name.com/" target="_blank">Name.com</a>.
</p>
<p ng-show="domainConfigure.provider === 'cloudflare'">
This domain must be hosted on <a href="https://www.cloudflare.com" target="_blank">Cloudflare</a>.
</p>

View File

@@ -19,6 +19,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
{ name: 'Gandi LiveDNS', value: 'gandi' },
{ name: 'GoDaddy', value: 'godaddy' },
{ name: 'Google Cloud DNS', value: 'gcdns' },
{ name: 'Name.com', value: 'namecom' },
{ name: 'Wildcard', value: 'wildcard' },
{ name: 'Manual (not recommended)', value: 'manual' },
{ name: 'No-op (only for development)', value: 'noop' }
@@ -31,6 +32,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
case 'cloudflare': return 'Cloudflare (DNS only)';
case 'digitalocean': return 'Digital Ocean';
case 'gandi': return 'Gandi LiveDNS';
case 'namecom': return 'Name.com';
case 'gcdns': return 'Google Cloud';
case 'godaddy': return 'GoDaddy';
case 'manual': return domain.config.wildcard ? 'Wildcard' : 'Manual';
@@ -73,6 +75,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
godaddyApiSecret: '',
cloudflareToken: '',
cloudflareEmail: '',
nameComToken: '',
nameComUsername: '',
provider: 'route53',
fallbackCert: {
@@ -107,6 +111,9 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
$scope.domainConfigure.godaddyApiKey = domain.provider === 'godaddy' ? domain.config.apiKey : '';
$scope.domainConfigure.godaddyApiSecret = domain.provider === 'godaddy' ? domain.config.apiSecret : '';
$scope.domainConfigure.nameComToken = domain.provider === 'namecom' ? domain.config.token : '';
$scope.domainConfigure.nameComUsername = domain.provider === 'namecom' ? domain.config.username : '';
$scope.domainConfigure.provider = domain.provider;
$scope.domainConfigure.provider = ($scope.domainConfigure.provider === 'manual' && domain.config.wildcard) ? 'wildcard' : domain.provider;
} else {
@@ -161,6 +168,9 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
} else if (provider === 'cloudflare') {
data.token = $scope.domainConfigure.cloudflareToken;
data.email = $scope.domainConfigure.cloudflareEmail;
} else if (provider === 'namecom') {
data.token = $scope.domainConfigure.nameComToken;
data.username = $scope.domainConfigure.nameComUsername;
}
var fallbackCertificate = null;
@@ -213,6 +223,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
$scope.domainConfigure.godaddyApiSecret = '';
$scope.domainConfigure.cloudflareToken = '';
$scope.domainConfigure.cloudflareEmail = '';
$scope.domainConfigure.nameComToken = '';
$scope.domainConfigure.nameComUsername = '';
$scope.domainConfigureForm.$setPristine();
$scope.domainConfigureForm.$setUntouched();