Moved domain rules page out from modal into it's own page
This commit is contained in:
parent
3f6637eb8f
commit
55a5fd49dc
|
@ -87,6 +87,12 @@ angular
|
||||||
controller: 'settingsController',
|
controller: 'settingsController',
|
||||||
data: { pageTitle: 'Settings' }
|
data: { pageTitle: 'Settings' }
|
||||||
})
|
})
|
||||||
|
.state('backend.settingsDomains', {
|
||||||
|
url: '^/settings/domains',
|
||||||
|
templateUrl: 'app/settings/views/settingsDomains.html',
|
||||||
|
controller: 'settingsDomainsController',
|
||||||
|
data: { pageTitle: 'Domain Settings' }
|
||||||
|
})
|
||||||
.state('backend.tools', {
|
.state('backend.tools', {
|
||||||
url: '^/tools',
|
url: '^/tools',
|
||||||
templateUrl: 'app/tools/views/tools.html',
|
templateUrl: 'app/tools/views/tools.html',
|
||||||
|
|
|
@ -48,10 +48,6 @@ angular
|
||||||
$scope.$broadcast('vaultAddFolder');
|
$scope.$broadcast('vaultAddFolder');
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.domains = function () {
|
|
||||||
$scope.$broadcast('settingsDomains');
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.import = function () {
|
$scope.import = function () {
|
||||||
$scope.$broadcast('toolsImport');
|
$scope.$broadcast('toolsImport');
|
||||||
};
|
};
|
||||||
|
|
|
@ -67,14 +67,6 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.domains = function () {
|
|
||||||
$uibModal.open({
|
|
||||||
animation: true,
|
|
||||||
templateUrl: 'app/settings/views/settingsDomains.html',
|
|
||||||
controller: 'settingsDomainsController'
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.delete = function () {
|
$scope.delete = function () {
|
||||||
$uibModal.open({
|
$uibModal.open({
|
||||||
animation: true,
|
animation: true,
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
angular
|
angular
|
||||||
.module('bit.settings')
|
.module('bit.settings')
|
||||||
|
|
||||||
.controller('settingsDomainsController', function ($scope, $state, apiService, $uibModalInstance, toastr, $analytics, $uibModal) {
|
.controller('settingsDomainsController', function ($scope, $state, apiService, toastr, $analytics, $uibModal) {
|
||||||
$analytics.eventTrack('settingsDomainsController', { category: 'Modal' });
|
|
||||||
|
|
||||||
$scope.globalEquivalentDomains = [];
|
$scope.globalEquivalentDomains = [];
|
||||||
$scope.equivalentDomains = [];
|
$scope.equivalentDomains = [];
|
||||||
|
|
||||||
|
@ -44,7 +42,6 @@
|
||||||
animation: true,
|
animation: true,
|
||||||
templateUrl: 'app/settings/views/settingsAddEditEquivalentDomain.html',
|
templateUrl: 'app/settings/views/settingsAddEditEquivalentDomain.html',
|
||||||
controller: 'settingsAddEditEquivalentDomainController',
|
controller: 'settingsAddEditEquivalentDomainController',
|
||||||
size: 'sm',
|
|
||||||
resolve: {
|
resolve: {
|
||||||
domainIndex: function () { return i; },
|
domainIndex: function () { return i; },
|
||||||
domains: function () { return i !== null ? $scope.equivalentDomains[i] : null; }
|
domains: function () { return i !== null ? $scope.equivalentDomains[i] : null; }
|
||||||
|
@ -65,7 +62,15 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.save = function () {
|
$scope.saveGlobal = function () {
|
||||||
|
$scope.globalPromise = save();
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.saveCustom = function () {
|
||||||
|
$scope.customPromise = save();
|
||||||
|
};
|
||||||
|
|
||||||
|
var save = function () {
|
||||||
var request = {
|
var request = {
|
||||||
ExcludedGlobalEquivalentDomains: [],
|
ExcludedGlobalEquivalentDomains: [],
|
||||||
EquivalentDomains: []
|
EquivalentDomains: []
|
||||||
|
@ -89,13 +94,8 @@
|
||||||
request.ExcludedGlobalEquivalentDomains = null;
|
request.ExcludedGlobalEquivalentDomains = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.submitPromise = apiService.settings.putDomains(request, function (domains) {
|
return apiService.settings.putDomains(request, function (domains) {
|
||||||
$scope.close();
|
|
||||||
toastr.success('Domains have been updated.', 'Success!');
|
toastr.success('Domains have been updated.', 'Success!');
|
||||||
}).$promise;
|
}).$promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.close = function () {
|
|
||||||
$uibModalInstance.dismiss('cancel');
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -17,10 +17,12 @@
|
||||||
<label for="name">Domains</label> <span>*</span>
|
<label for="name">Domains</label> <span>*</span>
|
||||||
<textarea id="domains" name="Domains" ng-model="domains" class="form-control" placeholder="ex. google.com, gmail.com"
|
<textarea id="domains" name="Domains" ng-model="domains" class="form-control" placeholder="ex. google.com, gmail.com"
|
||||||
style="height: 100px;" required></textarea>
|
style="height: 100px;" required></textarea>
|
||||||
|
|
||||||
<p class="help-block">
|
<p class="help-block">
|
||||||
Only "base" domains are allowed. Do not enter subdomains.
|
Only "base" domains are allowed. Do not enter subdomains. For example, enter "google.com" instead of
|
||||||
For example, enter "google.com" instead of "www.google.com".
|
"www.google.com".
|
||||||
|
</p>
|
||||||
|
<p class="help-block">
|
||||||
|
You can also enter "androidapp://package.name" to associate an android app with other website domains.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,83 +1,94 @@
|
||||||
<div class="modal-header">
|
<section class="content-header">
|
||||||
<button type="button" class="close" ng-click="close()" aria-label="Close"><span aria-hidden="true">×</span></button>
|
<h1>Domain Rules</h1>
|
||||||
<h4 class="modal-title"><i class="fa fa-globe"></i> Domain Rules</h4>
|
</section>
|
||||||
</div>
|
<section class="content">
|
||||||
<form name="domainsForm" ng-submit="domainsForm.$valid && save()" api-form="submitPromise">
|
<p>
|
||||||
<div class="modal-body">
|
If you have the same login across multiple different website domains, you can mark the website as "equivalent".
|
||||||
<p>
|
"Global" domains are ones already created for you by bitwarden.
|
||||||
If you have the same login across multiple different website domains, you can mark the website as "equivalent".
|
</p>
|
||||||
"Global" domains are ones created for you by bitwarden.
|
<form name="customForm" ng-submit="customForm.$valid && saveCustom()" api-form="customPromise">
|
||||||
</p>
|
<div class="box box-default">
|
||||||
<div class="table-responsive">
|
<div class="box-header with-border">
|
||||||
<table class="table table-striped table-hover">
|
<h3 class="box-title">Custom Equivalent Domains</h3>
|
||||||
<thead>
|
<div class="box-tools pull-right">
|
||||||
<tr>
|
<button type="button" class="btn btn-box-tool" ng-click="addEdit(null)">
|
||||||
<th colspan="2">Global Equivalent Domains</th>
|
<i class="fa fa-plus"></i> Add New
|
||||||
</tr>
|
</button>
|
||||||
</thead>
|
</div>
|
||||||
<tbody ng-if="globalEquivalentDomains.length">
|
</div>
|
||||||
<tr ng-repeat="globalDomain in globalEquivalentDomains">
|
<div class="box-body no-padding">
|
||||||
<td style="width: 80px; min-width: 80px;">
|
<div class="table-responsive">
|
||||||
<button type="button" class="btn btn-link btn-table" uib-tooltip="Exclude"
|
<table class="table table-striped table-hover">
|
||||||
ng-if="!globalDomain.excluded" ng-click="toggleExclude(globalDomain)">
|
<tbody ng-if="equivalentDomains.length">
|
||||||
<i class="fa fa-lg fa-ban"></i>
|
<tr ng-repeat="customDomain in equivalentDomains track by $index">
|
||||||
</button>
|
<td style="width: 80px; min-width: 80px;">
|
||||||
<button type="button" class="btn btn-link btn-table" uib-tooltip="Include"
|
<button type="button" class="btn btn-link btn-table" uib-tooltip="Edit" ng-click="addEdit($index)">
|
||||||
ng-if="globalDomain.excluded" ng-click="toggleExclude(globalDomain)">
|
<i class="fa fa-lg fa-pencil"></i>
|
||||||
<i class="fa fa-lg fa-plus"></i>
|
</button>
|
||||||
</button>
|
<button type="button" class="btn btn-link btn-table" uib-tooltip="Delete" ng-click="delete($index)">
|
||||||
<button type="button" class="btn btn-link btn-table" uib-tooltip="Customize"
|
<i class="fa fa-lg fa-trash"></i>
|
||||||
ng-click="customize(globalDomain)">
|
</button>
|
||||||
<i class="fa fa-lg fa-cut"></i>
|
</td>
|
||||||
</button>
|
<td>{{customDomain}}</td>
|
||||||
</td>
|
</tr>
|
||||||
<td ng-class="{strike: globalDomain.excluded}">{{globalDomain.domains}}</td>
|
</tbody>
|
||||||
</tr>
|
<tbody ng-if="!equivalentDomains.length">
|
||||||
</tbody>
|
<tr>
|
||||||
<tbody ng-if="!globalEquivalentDomains.length">
|
<td>No domains to list.</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td>No domains to list.</td>
|
</tbody>
|
||||||
</tr>
|
</table>
|
||||||
</tbody>
|
</div>
|
||||||
</table>
|
</div>
|
||||||
|
<div class="box-footer">
|
||||||
|
<button type="submit" class="btn btn-primary btn-flat" ng-disabled="customForm.$loading">
|
||||||
|
<i class="fa fa-refresh fa-spin loading-icon" ng-show="customForm.$loading"></i>Save
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-responsive">
|
</form>
|
||||||
<table class="table table-striped table-hover">
|
|
||||||
<thead>
|
<form name="globalForm" ng-submit="globalForm.$valid && saveGlobal()" api-form="globalPromise">
|
||||||
<tr>
|
<div class="box box-default">
|
||||||
<th colspan="2">
|
<div class="box-header with-border">
|
||||||
Custom Equivalent Domains
|
<h3 class="box-title">Global Equivalent Domains</h3>
|
||||||
<a href="javascript:void(0)" ng-click="addEdit(null)">
|
</div>
|
||||||
<i class="fa fa-plus"></i> Add New
|
<div class="box-body no-padding">
|
||||||
</a>
|
<div class="table-responsive">
|
||||||
</th>
|
<table class="table table-striped table-hover">
|
||||||
</tr>
|
<tbody ng-if="globalEquivalentDomains.length">
|
||||||
</thead>
|
<tr ng-repeat="globalDomain in globalEquivalentDomains">
|
||||||
<tbody ng-if="equivalentDomains.length">
|
<td style="width: 80px; min-width: 80px;">
|
||||||
<tr ng-repeat="customDomain in equivalentDomains track by $index">
|
<button type="button" class="btn btn-link btn-table" uib-tooltip="Exclude"
|
||||||
<td style="width: 80px; min-width: 80px;">
|
ng-if="!globalDomain.excluded" ng-click="toggleExclude(globalDomain)">
|
||||||
<button type="button" class="btn btn-link btn-table" uib-tooltip="Edit" ng-click="addEdit($index)">
|
<i class="fa fa-lg fa-ban"></i>
|
||||||
<i class="fa fa-lg fa-pencil"></i>
|
</button>
|
||||||
</button>
|
<button type="button" class="btn btn-link btn-table" uib-tooltip="Include"
|
||||||
<button type="button" class="btn btn-link btn-table" uib-tooltip="Delete" ng-click="delete($index)">
|
ng-if="globalDomain.excluded" ng-click="toggleExclude(globalDomain)">
|
||||||
<i class="fa fa-lg fa-trash"></i>
|
<i class="fa fa-lg fa-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
<button type="button" class="btn btn-link btn-table" uib-tooltip="Customize"
|
||||||
<td>{{customDomain}}</td>
|
ng-click="customize(globalDomain)">
|
||||||
</tr>
|
<i class="fa fa-lg fa-cut"></i>
|
||||||
</tbody>
|
</button>
|
||||||
<tbody ng-if="!equivalentDomains.length">
|
</td>
|
||||||
<tr>
|
<td ng-class="{strike: globalDomain.excluded}">{{globalDomain.domains}}</td>
|
||||||
<td>No domains to list.</td>
|
</tr>
|
||||||
</tr>
|
</tbody>
|
||||||
</tbody>
|
<tbody ng-if="!globalEquivalentDomains.length">
|
||||||
</table>
|
<tr>
|
||||||
|
<td>No domains to list.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box-footer">
|
||||||
|
<button type="submit" class="btn btn-primary btn-flat" ng-disabled="globalForm.$loading">
|
||||||
|
<i class="fa fa-refresh fa-spin loading-icon" ng-show="globalForm.$loading"></i>Save
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<div class="modal-footer">
|
</section>
|
||||||
<button type="submit" class="btn btn-primary btn-flat" ng-disabled="domainsForm.$loading">
|
|
||||||
<i class="fa fa-refresh fa-spin loading-icon" ng-show="domainsForm.$loading"></i>Save
|
|
||||||
</button>
|
|
||||||
<button type="button" class="btn btn-default btn-flat" ng-click="close()">Close</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
|
@ -56,11 +56,12 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="treeview" ng-class="{active: $state.includes('backend.settings')}">
|
<li class="treeview"
|
||||||
|
ng-class="{active: $state.includes('backend.settings') || $state.includes('backend.settingsDomains')}">
|
||||||
<a ui-sref="backend.settings"><i class="fa fa-cogs"></i> <span>Settings</span></a>
|
<a ui-sref="backend.settings"><i class="fa fa-cogs"></i> <span>Settings</span></a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li>
|
<li>
|
||||||
<a href="javascript:void(0)" ng-click="domains()">
|
<a ui-sref="backend.settingsDomains">
|
||||||
<i class="fa fa-circle-o"></i> Domain Rules
|
<i class="fa fa-circle-o"></i> Domain Rules
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
Loading…
Reference in New Issue