Add support for one alternate domain which redirects
This commit is contained in:
@@ -117,7 +117,26 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="has-error" ng-show="appConfigure.error.alternateDomains">{{ appConfigure.error.alternateDomains }}</div>
|
||||
<div class="form-group" ng-class="{ 'has-error': (appConfigureForm.alternateSubdomain.$dirty && appConfigureForm.alternateSubdomain.$invalid) || (!appConfigureForm.alternateSubdomain.$dirty && appConfigure.error.alternateDomains) }">
|
||||
<label class="control-label" for="appConfigureAlternateSubdomainInput">Alternate domain, which redirects to this app</label>
|
||||
<div class="input-group form-inline">
|
||||
<input type="text" class="form-control" ng-model="appConfigure.alternateSubdomain" id="appConfigureAlternateSubdomainInput" name="alternateSubdomain" placeholder="{{ 'Leave empty to use bare domain' }}">
|
||||
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
{{ (!appConfigure.alternateSubdomain ? '' : '.') + appConfigure.alternateDomain }}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
<li ng-repeat="domain in domains">
|
||||
<a href="" ng-click="appConfigure.alternateDomain = domain.domain">{{ domain.domain }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group" ng-class="{ 'has-error': !appConfigureForm.xFrameOptions.$dirty && appConfigure.error.xFrameOptions }">
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user