linode: dns frontend

This commit is contained in:
Girish Ramakrishnan
2020-03-12 17:13:21 -07:00
parent fdda28d67f
commit d84900d601
4 changed files with 35 additions and 4 deletions
+11 -1
View File
@@ -84,6 +84,12 @@
<input type="email" class="form-control" ng-model="domainConfigure.cloudflareEmail" name="cloudflareEmail" placeholder="Cloudflare Account Email" ng-required="domainConfigure.provider === 'cloudflare' && domainConfigure.cloudflareTokenType === 'GlobalApiKey'" ng-disabled="domainConfigure.busy">
</div>
<!-- Linode -->
<div class="form-group" ng-class="{ 'has-error': false }" ng-show="domainConfigure.provider === 'linode'">
<label class="control-label">Linode Token</label>
<input type="text" class="form-control" ng-model="domainConfigure.linodeToken" name="linodeToken" ng-disabled="domainConfigure.busy" ng-required="domainConfigure.provider === 'linode'">
</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>
@@ -101,12 +107,16 @@
</div>
<div class="form-group" ng-class="{ 'has-error': false }" ng-show="domainConfigure.provider === 'namecheap'">
<label class="control-label">API Key</label>
<p class="small text-info" ng-show="domainConfigure.provider === 'namecheap'">
<p class="small text-info">
<b>The server IP needs to be whitelisted for this API Key.</b>
</p>
<input type="text" class="form-control" ng-model="domainConfigure.namecheapApiKey" name="namecheapApiKey" ng-disabled="domainConfigure.busy" ng-minlength="1" ng-required="domainConfigure.provider === 'namecheap'">
</div>
<p class="small text-warning" ng-show="domainConfigure.provider === 'linode'">
<b>Linode DNS average <a target="_blank" ng-href="{{ config.webServerOrigin }}/documentation/domains/#linode-dns">propagation time</a> is 30 minutes. Installing apps &amp; and getting a Let's Encrypt certificate will take a while.</b>
</p>
<p class="small text-info" ng-show="domainConfigure.provider === 'wildcard'">
Setup <i>A</i> records for <b>*.{{ domainConfigure.newDomain || domainConfigure.domain.domain }}</b> and <b>{{ domainConfigure.newDomain || domainConfigure.domain.domain }}</b> to this server's IP.
</p>
+6
View File
@@ -28,6 +28,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
{ name: 'Gandi LiveDNS', value: 'gandi' },
{ name: 'GoDaddy', value: 'godaddy' },
{ name: 'Google Cloud DNS', value: 'gcdns' },
{ name: 'Linode', value: 'linode' },
{ name: 'Name.com', value: 'namecom' },
{ name: 'Namecheap', value: 'namecheap' },
{ name: 'Wildcard', value: 'wildcard' },
@@ -42,6 +43,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
case 'cloudflare': return 'Cloudflare';
case 'digitalocean': return 'DigitalOcean';
case 'gandi': return 'Gandi LiveDNS';
case 'linode': return 'Linode';
case 'namecom': return 'Name.com';
case 'namecheap': return 'Namecheap';
case 'gcdns': return 'Google Cloud';
@@ -119,6 +121,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
cloudflareToken: '',
cloudflareEmail: '',
cloudflareTokenType: 'GlobalApiKey',
linodeToken: '',
nameComToken: '',
nameComUsername: '',
namecheapUsername: '',
@@ -166,6 +169,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
});
}
$scope.domainConfigure.digitalOceanToken = domain.provider === 'digitalocean' ? domain.config.token : '';
$scope.domainConfigure.linodeToken = domain.provider === 'linode' ? domain.config.token : '';
$scope.domainConfigure.gandiApiKey = domain.provider === 'gandi' ? domain.config.token : '';
$scope.domainConfigure.cloudflareToken = domain.provider === 'cloudflare' ? domain.config.token : '';
$scope.domainConfigure.cloudflareEmail = domain.provider === 'cloudflare' ? domain.config.email : '';
@@ -226,6 +230,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
}
} else if (provider === 'digitalocean') {
data.token = $scope.domainConfigure.digitalOceanToken;
} else if (provider === 'linode') {
data.token = $scope.domainConfigure.linodeToken;
} else if (provider === 'gandi') {
data.token = $scope.domainConfigure.gandiApiKey;
} else if (provider === 'godaddy') {