diff --git a/src/app/organization/organizationBillingAdjustSeatsController.js b/src/app/organization/organizationBillingAdjustSeatsController.js new file mode 100644 index 00000000..750558af --- /dev/null +++ b/src/app/organization/organizationBillingAdjustSeatsController.js @@ -0,0 +1,36 @@ +angular + .module('bit.organization') + + .controller('organizationBillingAdjustSeatsController', function ($scope, $state, $uibModalInstance, apiService, + $analytics, toastr, add) { + $scope.add = add; + $scope.seatAdjustment = 0; + + $scope.submit = function () { + var request = { + seatAdjustment: $scope.seatAdjustment + }; + + if (!add) { + request.seatAdjustment *= -1; + } + + $scope.submitPromise = apiService.organizations.putSeat({ id: $state.params.orgId }, request) + .$promise.then(function (response) { + if (add) { + $analytics.eventTrack('Added Seats'); + toastr.success('You have added ' + $scope.seatAdjustment + ' seats.'); + } + else { + $analytics.eventTrack('Removed Seats'); + toastr.success('You have removed ' + $scope.seatAdjustment + ' seats.'); + } + + $uibModalInstance.close(); + }); + }; + + $scope.close = function () { + $uibModalInstance.dismiss('cancel'); + }; + }); diff --git a/src/app/organization/organizationBillingController.js b/src/app/organization/organizationBillingController.js index 5c372a87..08845bd0 100644 --- a/src/app/organization/organizationBillingController.js +++ b/src/app/organization/organizationBillingController.js @@ -29,6 +29,23 @@ }); }; + $scope.adjustSeats = function (add) { + var modal = $uibModal.open({ + animation: true, + templateUrl: 'app/organization/views/organizationBillingAdjustSeats.html', + controller: 'organizationBillingAdjustSeatsController', + resolve: { + add: function () { + return add; + } + } + }); + + modal.result.then(function () { + load(); + }); + }; + $scope.cancel = function () { }; diff --git a/src/app/organization/views/organizationBilling.html b/src/app/organization/views/organizationBilling.html index e3203008..92175800 100644 --- a/src/app/organization/views/organizationBilling.html +++ b/src/app/organization/views/organizationBilling.html @@ -72,10 +72,10 @@ diff --git a/src/app/organization/views/organizationBillingAdjustSeats.html b/src/app/organization/views/organizationBillingAdjustSeats.html new file mode 100644 index 00000000..9769de96 --- /dev/null +++ b/src/app/organization/views/organizationBillingAdjustSeats.html @@ -0,0 +1,32 @@ + +
+ + +
diff --git a/src/app/services/apiService.js b/src/app/services/apiService.js index 6afbb4bc..90fc32de 100644 --- a/src/app/services/apiService.js +++ b/src/app/services/apiService.js @@ -40,6 +40,9 @@ post: { method: 'POST', params: {} }, put: { method: 'POST', params: { id: '@id' } }, putPayment: { url: _apiUri + '/organizations/:id/payment', method: 'POST', params: { id: '@id' } }, + putSeat: { url: _apiUri + '/organizations/:id/seat', method: 'POST', params: { id: '@id' } }, + putUpgrade: { url: _apiUri + '/organizations/:id/upgrade', method: 'POST', params: { id: '@id' } }, + putCancel: { url: _apiUri + '/organizations/:id/cancel', method: 'POST', params: { id: '@id' } }, del: { url: _apiUri + '/organizations/:id/delete', method: 'POST', params: { id: '@id' } } }); diff --git a/src/index.html b/src/index.html index 5e42b080..e1899604 100644 --- a/src/index.html +++ b/src/index.html @@ -139,6 +139,7 @@ +