From f63f4e0aa3fb6383e771f4487dd17a90498f6e24 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Sat, 8 Apr 2017 16:42:05 -0400 Subject: [PATCH] change payment method for org --- package.json | 2 +- src/app/filters/jsonDateFilter.js | 8 - ...anizationBillingChangePaymentController.js | 23 ++ .../organizationBillingController.js | 10 +- .../views/organizationBilling.html | 20 +- .../organizationBillingChangePayment.html | 350 ++++++++++++++++++ src/app/services/apiService.js | 1 + src/app/settings.js | 2 +- .../settingsCreateOrganizationController.js | 2 +- src/index.html | 2 +- 10 files changed, 398 insertions(+), 22 deletions(-) delete mode 100644 src/app/filters/jsonDateFilter.js create mode 100644 src/app/organization/organizationBillingChangePaymentController.js create mode 100644 src/app/organization/views/organizationBillingChangePayment.html diff --git a/package.json b/package.json index d379585564..bfb99e9ff6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "bitwarden", "version": "1.9.1", - "production": true, + "production": false, "devDependencies": { "connect": "3.6.0", "lodash": "4.17.4", diff --git a/src/app/filters/jsonDateFilter.js b/src/app/filters/jsonDateFilter.js deleted file mode 100644 index 8d05e4a124..0000000000 --- a/src/app/filters/jsonDateFilter.js +++ /dev/null @@ -1,8 +0,0 @@ -angular - .module('bit.filters') - - .filter('jsonDate', function () { - return function (input) { - return input.split('T').join(' '); - }; - }); diff --git a/src/app/organization/organizationBillingChangePaymentController.js b/src/app/organization/organizationBillingChangePaymentController.js new file mode 100644 index 0000000000..422e001f50 --- /dev/null +++ b/src/app/organization/organizationBillingChangePaymentController.js @@ -0,0 +1,23 @@ +angular + .module('bit.organization') + + .controller('organizationBillingChangePaymentController', function ($scope, $state, $uibModalInstance, apiService, stripe, + $analytics) { + $scope.submit = function () { + $scope.submitPromise = stripe.card.createToken($scope.card).then(function (response) { + var request = { + paymentToken: response.id + }; + + return apiService.organizations.putPayment({ id: $state.params.orgId }, request).$promise; + }).then(function (response) { + $scope.card = null; + $analytics.eventTrack('Changed Payment Method'); + $uibModalInstance.close(); + }); + }; + + $scope.close = function () { + $uibModalInstance.dismiss('cancel'); + }; + }); diff --git a/src/app/organization/organizationBillingController.js b/src/app/organization/organizationBillingController.js index 9202a54edc..1074272279 100644 --- a/src/app/organization/organizationBillingController.js +++ b/src/app/organization/organizationBillingController.js @@ -1,7 +1,7 @@ angular .module('bit.organization') - .controller('organizationBillingController', function ($scope, apiService, $state) { + .controller('organizationBillingController', function ($scope, apiService, $state, $uibModal) { $scope.charges = []; $scope.paymentSource = null; $scope.plan = null; @@ -63,7 +63,15 @@ }); $scope.changePayment = function () { + var modal = $uibModal.open({ + animation: true, + templateUrl: 'app/organization/views/organizationBillingChangePayment.html', + controller: 'organizationBillingChangePaymentController' + }); + modal.result.then(function () { + // TODO: reload + }); }; $scope.cancel = function () { diff --git a/src/app/organization/views/organizationBilling.html b/src/app/organization/views/organizationBilling.html index d77b4fbc6b..9f81765853 100644 --- a/src/app/organization/views/organizationBilling.html +++ b/src/app/organization/views/organizationBilling.html @@ -14,17 +14,17 @@
Name
-
{{plan.name}}
+
{{plan.name || '-'}}
Maximum Users
-
{{plan.maxUsers}}
+
{{plan.maxUsers || '-'}}
Status
-
{{subscription.status}}
+
{{subscription.status || '-'}}
Next Bill Date
-
{{subscription.nextBillDate | jsonDate}}
+
{{subscription.nextBillDate ? (subscription.nextBillDate | date: format: mediumDate) : '-'}}
@@ -67,16 +67,18 @@
Loading...
-
+
No payment method on file.
-
- +
+ + {{paymentSource.description}}
@@ -96,7 +98,7 @@ - {{charge.date | jsonDate}} + {{charge.date | date: format: mediumDate}} {{charge.paymentSource}} diff --git a/src/app/organization/views/organizationBillingChangePayment.html b/src/app/organization/views/organizationBillingChangePayment.html new file mode 100644 index 0000000000..26f1939688 --- /dev/null +++ b/src/app/organization/views/organizationBillingChangePayment.html @@ -0,0 +1,350 @@ + +
+ + +
diff --git a/src/app/services/apiService.js b/src/app/services/apiService.js index 9086bc3016..6afbb4bce4 100644 --- a/src/app/services/apiService.js +++ b/src/app/services/apiService.js @@ -39,6 +39,7 @@ list: { method: 'GET', params: {} }, post: { method: 'POST', params: {} }, put: { method: 'POST', params: { id: '@id' } }, + putPayment: { url: _apiUri + '/organizations/:id/payment', method: 'POST', params: { id: '@id' } }, del: { url: _apiUri + '/organizations/:id/delete', method: 'POST', params: { id: '@id' } } }); diff --git a/src/app/settings.js b/src/app/settings.js index 00329f52c1..5ad8af7f60 100644 --- a/src/app/settings.js +++ b/src/app/settings.js @@ -1,2 +1,2 @@ angular.module("bit") -.constant("appSettings", {"rememberedEmailCookieName":"bit.rememberedEmail","apiUri":"https://api.bitwarden.com","version":"1.9.1","environment":"Production"}); +.constant("appSettings", {"rememberedEmailCookieName":"bit.rememberedEmail","apiUri":"http://localhost:4000","version":"1.9.1","environment":"Development"}); diff --git a/src/app/settings/settingsCreateOrganizationController.js b/src/app/settings/settingsCreateOrganizationController.js index 9ae94a22c2..c1c82eed9c 100644 --- a/src/app/settings/settingsCreateOrganizationController.js +++ b/src/app/settings/settingsCreateOrganizationController.js @@ -77,7 +77,7 @@ name: model.name, planType: model.plan, key: shareKey, - cardToken: response.id, + paymentToken: response.id, additionalUsers: model.additionalUsers, billingEmail: model.billingEmail, businessName: model.ownedBusiness ? model.businessName : null, diff --git a/src/index.html b/src/index.html index 08d168fa44..5e42b0803e 100644 --- a/src/index.html +++ b/src/index.html @@ -93,7 +93,6 @@ - @@ -139,6 +138,7 @@ +