diff --git a/src/js/client.js b/src/js/client.js index 314c5aa63..4e6085039 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -396,10 +396,11 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N memoryLimit: config.memoryLimit, xFrameOptions: config.xFrameOptions, robotsTxt: config.robotsTxt || null, - enableBackup: config.enableBackup + enableBackup: config.enableBackup, }; if ('mailboxName' in config) data.mailboxName = config.mailboxName; + if ('alternateDomains' in config) data.alternateDomains = config.alternateDomains; post('/api/v1/apps/' + id + '/configure', data).success(function (data, status) { if (status !== 202) return callback(new ClientError(status, data)); diff --git a/src/views/apps.html b/src/views/apps.html index 5014b4c0d..dc77331ae 100644 --- a/src/views/apps.html +++ b/src/views/apps.html @@ -117,7 +117,26 @@ + +
{{ appConfigure.error.alternateDomains }}
+
+ +
+ + +
+ + +
+
diff --git a/src/views/apps.js b/src/views/apps.js index 7463da348..eb1030206 100644 --- a/src/views/apps.js +++ b/src/views/apps.js @@ -34,6 +34,8 @@ angular.module('Application').controller('AppsController', ['$scope', '$location accessRestrictionOption: 'any', accessRestriction: { users: [], groups: [] }, xFrameOptions: '', + alternateSubdomain: '', + alternateDomain: '', ssoAuth: false, isAccessRestrictionValid: function () { @@ -51,6 +53,8 @@ angular.module('Application').controller('AppsController', ['$scope', '$location $scope.appConfigure.portBindingsInfo = app.manifest.tcpPorts || {}; // Portbinding map only for information $scope.appConfigure.memoryLimit = app.memoryLimit || app.manifest.memoryLimit || (256 * 1024 * 1024); $scope.appConfigure.xFrameOptions = app.xFrameOptions.indexOf('ALLOW-FROM') === 0 ? app.xFrameOptions.split(' ')[1] : ''; + $scope.appConfigure.alternateSubdomain = app.alternateDomains[0] ? app.alternateDomains[0].subdomain : ''; + $scope.appConfigure.alternateDomain = app.alternateDomains[0] ? app.alternateDomains[0].domain : ''; $scope.appConfigure.robotsTxt = app.robotsTxt; $scope.appConfigure.enableBackup = app.enableBackup; $scope.appConfigure.mailboxName = app.mailboxName || ''; @@ -100,6 +104,7 @@ angular.module('Application').controller('AppsController', ['$scope', '$location $scope.appConfigure.error.other = null; $scope.appConfigure.error.location = null; $scope.appConfigure.error.xFrameOptions = null; + $scope.appConfigure.error.alternateDomains = null; $scope.appConfigure.error.mailboxName = null; // only use enabled ports from portBindings @@ -130,6 +135,9 @@ angular.module('Application').controller('AppsController', ['$scope', '$location enableBackup: $scope.appConfigure.enableBackup }; + // The backend supports multiple alternateDomains, however we only have ui for one + if ($scope.appConfigure.alternateDomain) data.alternateDomains = [{ domain: $scope.appConfigure.alternateDomain, subdomain: $scope.appConfigure.alternateSubdomain }]; + if ($scope.appConfigure.mailboxName !== $scope.appConfigure.app.mailboxName) data.mailboxName = $scope.appConfigure.mailboxName; Client.configureApp($scope.appConfigure.app.id, data, function (error) { @@ -154,6 +162,10 @@ angular.module('Application').controller('AppsController', ['$scope', '$location $scope.appConfigure.error.xFrameOptions = error.message; $scope.appConfigureForm.xFrameOptions.$setPristine(); $('#appConfigureXFrameOptionsInput').focus(); + } else if (error.statusCode === 400 && error.message.indexOf('alternateDomains') !== -1 ) { + $scope.appConfigure.error.alternateDomains = error.message; + $scope.appConfigureForm.alternateDomains.$setPristine(); + $('#appConfigureAlternateSubdomainInput').focus(); } else { $scope.appConfigure.error.other = error.message; }