diff --git a/src/app/services/apiService.js b/src/app/services/apiService.js index 4a6cf78ff4..2bb1fc0fec 100644 --- a/src/app/services/apiService.js +++ b/src/app/services/apiService.js @@ -47,6 +47,11 @@ postDelete: { url: _apiUri + '/accounts/delete', method: 'POST', params: {} } }); + _service.settings = $resource(_apiUri + '/settings', {}, { + getDomains: { url: _apiUri + '/settings/domains', method: 'GET', params: {} }, + putDomains: { url: _apiUri + '/settings/domains', method: 'POST', params: {} }, + }); + _service.auth = $resource(_apiUri + '/auth', {}, { token: { url: _apiUri + '/auth/token', method: 'POST', params: {} }, tokenTwoFactor: { url: _apiUri + '/auth/token/two-factor', method: 'POST', params: {} } diff --git a/src/app/settings/settingsAddEditEquivalentDomainController.js b/src/app/settings/settingsAddEditEquivalentDomainController.js new file mode 100644 index 0000000000..f0a786be3f --- /dev/null +++ b/src/app/settings/settingsAddEditEquivalentDomainController.js @@ -0,0 +1,18 @@ +angular + .module('bit.vault') + + .controller('settingsAddEditEquivalentDomainController', function ($scope, $uibModalInstance, $analytics, domainIndex, domains) { + $analytics.eventTrack('settingsAddEditEquivalentDomainController', { category: 'Modal' }); + + $scope.domains = domains; + $scope.index = domainIndex; + + $scope.submit = function (form) { + $analytics.eventTrack((domainIndex ? 'Edited' : 'Added') + ' Equivalent Domain'); + $uibModalInstance.close({ domains: $scope.domains, index: domainIndex }); + }; + + $scope.close = function () { + $uibModalInstance.dismiss('close'); + }; + }); diff --git a/src/app/settings/settingsDomainsController.js b/src/app/settings/settingsDomainsController.js index 9a3e13853c..179b862004 100644 --- a/src/app/settings/settingsDomainsController.js +++ b/src/app/settings/settingsDomainsController.js @@ -1,13 +1,13 @@ angular .module('bit.settings') - .controller('settingsDomainsController', function ($scope, $state, apiService, $uibModalInstance, toastr, $analytics) { + .controller('settingsDomainsController', function ($scope, $state, apiService, $uibModalInstance, toastr, $analytics, $uibModal) { $analytics.eventTrack('settingsDomainsController', { category: 'Modal' }); $scope.globalEquivalentDomains = []; $scope.equivalentDomains = []; - apiService.accounts.getDomains({}, function (response) { + apiService.settings.getDomains({}, function (response) { if (response.EquivalentDomains) { for (var i = 0; i < response.EquivalentDomains.length; i++) { $scope.equivalentDomains.push(response.EquivalentDomains[i].join(', ')); @@ -38,7 +38,29 @@ $scope.equivalentDomains.splice(i, 1); } - $scope.submit = function () { + $scope.addEdit = function (i) { + var addEditModal = $uibModal.open({ + animation: true, + templateUrl: 'app/settings/views/settingsAddEditEquivalentDomain.html', + controller: 'settingsAddEditEquivalentDomainController', + size: 'sm', + resolve: { + domainIndex: function () { return i; }, + domains: function () { return i !== null ? $scope.equivalentDomains[i] : null; } + } + }); + + addEditModal.result.then(function (returnObj) { + if (returnObj.index !== null) { + $scope.equivalentDomains[returnObj.index] = returnObj.domains; + } + else { + $scope.equivalentDomains.push(returnObj.domains); + } + }); + } + + $scope.save = function () { var request = { ExcludedGlobalEquivalentDomains: [], EquivalentDomains: [] @@ -51,7 +73,7 @@ } for (i = 0; i < $scope.equivalentDomains.length; i++) { - request.EquivalentDomains.push($scope.equivalentDomains[i].split(' ').join('').split(', ')); + request.EquivalentDomains.push($scope.equivalentDomains[i].split(' ').join('').split(',')); } if (!request.EquivalentDomains.length) { @@ -62,7 +84,7 @@ request.ExcludedGlobalEquivalentDomains = null; } - $scope.submitPromise = apiService.accounts.putDomains(request, function (domains) { + $scope.submitPromise = apiService.settings.putDomains(request, function (domains) { $scope.close(); toastr.success('Domains have been updated.', 'Success!'); }).$promise; diff --git a/src/app/settings/views/settingsAddEditEquivalentDomain.html b/src/app/settings/views/settingsAddEditEquivalentDomain.html new file mode 100644 index 0000000000..64a8c618fa --- /dev/null +++ b/src/app/settings/views/settingsAddEditEquivalentDomain.html @@ -0,0 +1,33 @@ + +
+ + +
\ No newline at end of file diff --git a/src/app/settings/views/settingsDomains.html b/src/app/settings/views/settingsDomains.html index 47418accdf..3cd05ce332 100644 --- a/src/app/settings/views/settingsDomains.html +++ b/src/app/settings/views/settingsDomains.html @@ -2,7 +2,7 @@ -
+