diff --git a/webadmin/src/js/setupdns.js b/webadmin/src/js/setupdns.js new file mode 100644 index 000000000..ae68864ae --- /dev/null +++ b/webadmin/src/js/setupdns.js @@ -0,0 +1,74 @@ +'use strict'; + +// create main application module +var app = angular.module('Application', ['angular-md5', 'ui-notification']); + +app.controller('SetupController', ['$scope', '$http', 'Client', function ($scope, $http, Client) { + $scope.initialized = false; + $scope.busy = false; + $scope.error = null; + $scope.provider = ''; + $scope.showDNSSetup = false; + $scope.dnsProvider = [ + { name: 'Manual/Wildcard', value: 'manual' }, + { name: 'Wildcard', value: 'wildcard' }, + { name: 'No-op', value: 'noop' }, + { name: 'AWS Route53', value: 'route53' }, + { name: 'Digital Ocean', value: 'digitalocean' } + ]; + $scope.dnsCredentials = { + error: null, + busy: false, + domain: '', + accessKeyId: '', + secretAccessKey: '', + digitalOceanToken: '', + provider: 'route53' + }; + + $scope.setDNSCredentials = function () { + $scope.busy = true; + + var data = { + domain: $scope.dnsCredentials.domain, + provider: $scope.dnsCredentials.provider, + accessKeyId: $scope.dnsCredentials.accessKeyId, + secretAccessKey: $scope.dnsCredentials.secretAccessKey, + token: $scope.dnsCredentials.digitalOceanToken + }; + + // special case the wildcard provider + if (data.provider === 'wildcard') { + data.provider = 'manual'; + data.wildcard = true; + } + + Client.setDnsConfig(data, function (error) { + if (error) { + $scope.busy = false; + $scope.dnsCredentials.error = error.message; + return; + } + + setTimeout(function () { + // TODO wait until domain is propagated and cert got acquired + window.location.href = 'https://my.' + $scope.dnsCredentials.domain; + }, 5000); + }); + }; + + Client.getStatus(function (error, status) { + if (error) { + window.location.href = '/error.html'; + return; + } + + if (status.activated || status.provider === 'caas') { + window.location.href = '/'; + return; + } + + $scope.provider = status.provider; + $scope.initialized = true; + }); +}]); diff --git a/webadmin/src/setupdns.html b/webadmin/src/setupdns.html new file mode 100644 index 000000000..d1bd6a8d4 --- /dev/null +++ b/webadmin/src/setupdns.html @@ -0,0 +1,146 @@ + + + + + + + Cloudron Setup + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

No setup token provided.

+ Please use the setup link for this cloudron. +
+ +
+
+
+
+
+ +
+
+
+
+
+

Welcome to your Cloudron

+

Create an Admin Account

+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+ Password must be 8-30 character with at least one uppercase, one numeric and one special character +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+

Domain Setup

+

Specify the domain for your Cloudron

+

Apps will be installed on subdomains of that domain.

+
+
+
+
+

{{ dnsCredentials.error }}

+ +
+ +
+ +
+ + +
+ + +
+ + +
+
+ + +
+ + +
+ + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ + +