diff --git a/src/js/client.js b/src/js/client.js
index 46adbe614..6bf513e1e 100644
--- a/src/js/client.js
+++ b/src/js/client.js
@@ -2071,12 +2071,13 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
});
};
- Client.prototype.addDomain = function (domain, zoneName, provider, config, fallbackCertificate, tlsConfig, callback) {
+ Client.prototype.addDomain = function (domain, zoneName, provider, config, fallbackCertificate, tlsConfig, wellKnown, callback) {
var data = {
domain: domain,
provider: provider,
config: config,
- tlsConfig: tlsConfig
+ tlsConfig: tlsConfig,
+ wellKnown: wellKnown
};
if (zoneName) data.zoneName = zoneName;
var that = this;
@@ -2092,11 +2093,12 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
});
};
- Client.prototype.updateDomain = function (domain, zoneName, provider, config, fallbackCertificate, tlsConfig, callback) {
+ Client.prototype.updateDomain = function (domain, zoneName, provider, config, fallbackCertificate, tlsConfig, wellKnown, callback) {
var data = {
provider: provider,
config: config,
- tlsConfig: tlsConfig
+ tlsConfig: tlsConfig,
+ wellKnown: wellKnown
};
if (zoneName) data.zoneName = zoneName;
var that = this;
diff --git a/src/views/domains.html b/src/views/domains.html
index 015e4abc6..5a2a22446 100644
--- a/src/views/domains.html
+++ b/src/views/domains.html
@@ -136,6 +136,16 @@
{{ 'domains.domainDialog.advancedAction' | tr }}
+
+
+
+
diff --git a/src/views/domains.js b/src/views/domains.js
index a0b3f3584..315c7104d 100644
--- a/src/views/domains.js
+++ b/src/views/domains.js
@@ -149,6 +149,9 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
provider: 'route53',
zoneName: '',
+ mastodonHostname: '',
+ matrixHostname: '',
+
tlsConfig: {
provider: 'letsencrypt-prod-wildcard'
},
@@ -212,6 +215,21 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
if (domain.tlsConfig.wildcard) $scope.domainConfigure.tlsConfig.provider += '-wildcard';
}
$scope.domainConfigure.zoneName = domain.zoneName;
+
+
+ $scope.domainConfigure.matrixHostname = '';
+ $scope.domainConfigure.mastodonHostname = '';
+
+ try {
+ if (domain.wellKnown && domain.wellKnown['matrix']) {
+ $scope.domainConfigure.matrixHostname = JSON.parse(domain.wellKnown['matrix'])['m.server'];
+ }
+ if (domain.wellKnown && domain.wellKnown['host-meta']) {
+ $scope.domainConfigure.mastodonHostname = domain.wellKnown['host-meta'].match(new RegExp('template="https://(.*?)/'))[1];
+ }
+ } catch (e) {
+ console.error(e);
+ }
} else {
$scope.domainConfigure.adding = true;
}
@@ -285,10 +303,21 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
tlsConfig.wildcard = true;
}
+ var wellKnown = {};
+ if ($scope.domainConfigure.matrixHostname) {
+ wellKnown['matrix'] = JSON.stringify({ 'm.server': $scope.domainConfigure.matrixHostname });
+ }
+ if ($scope.domainConfigure.mastodonHostname) {
+ wellKnown['host-meta'] = '\n'
+ + '
\n'
+ + '\n'
+ + '';
+ }
+
// 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, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, tlsConfig);
- else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, tlsConfig);
+ if ($scope.domainConfigure.adding) func = Client.addDomain.bind(Client, $scope.domainConfigure.newDomain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, tlsConfig, wellKnown);
+ else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, tlsConfig, wellKnown);
func(function (error) {
$scope.domainConfigure.busy = false;