From d509637623f096ee3c490adcece74274b7dac7fa Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Sat, 30 Jun 2018 13:36:39 -0400 Subject: [PATCH] adjust payment --- jslib | 2 +- src/app/app.module.ts | 2 + .../settings/adjust-payment.component.html | 22 ++++++ src/app/settings/adjust-payment.component.ts | 64 ++++++++++++++++++ .../settings/adjust-storage.component.html | 1 + src/app/settings/payment.component.html | 4 +- src/app/settings/payment.component.ts | 3 + src/app/settings/premium.component.html | 2 +- src/app/settings/user-billing.component.html | 9 ++- src/app/settings/user-billing.component.ts | 18 +++-- src/images/cards.png | Bin 13071 -> 17502 bytes src/locales/en/messages.json | 9 +++ src/scss/styles.scss | 5 ++ 13 files changed, 128 insertions(+), 13 deletions(-) create mode 100644 src/app/settings/adjust-payment.component.html create mode 100644 src/app/settings/adjust-payment.component.ts diff --git a/jslib b/jslib index c0e7e588ed..f5287e29a2 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit c0e7e588ed59832a6f579ff63d85bfcdfb400d78 +Subproject commit f5287e29a2a135c131d00c4a56a90b18bc4afaab diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 50c2be5b0d..1fb0a0a5e0 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -33,6 +33,7 @@ import { TwoFactorOptionsComponent } from './accounts/two-factor-options.compone import { TwoFactorComponent } from './accounts/two-factor.component'; import { AccountComponent } from './settings/account.component'; +import { AdjustPaymentComponent } from './settings/adjust-payment.component'; import { AdjustStorageComponent } from './settings/adjust-storage.component'; import { ChangeEmailComponent } from './settings/change-email.component'; import { ChangePasswordComponent } from './settings/change-password.component'; @@ -107,6 +108,7 @@ import { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe'; declarations: [ AccountComponent, AddEditComponent, + AdjustPaymentComponent, AdjustStorageComponent, ApiActionDirective, AppComponent, diff --git a/src/app/settings/adjust-payment.component.html b/src/app/settings/adjust-payment.component.html new file mode 100644 index 0000000000..03c45e7836 --- /dev/null +++ b/src/app/settings/adjust-payment.component.html @@ -0,0 +1,22 @@ + +

{{'contactSupportPaymentMethod' | i18n}}

+ + {{'contactSupport' | i18n}} + + +
+
+
+

{{(currentType != null ? 'changePaymentMethod' : 'addPaymentMethod') | i18n}}

+ + + +
+
diff --git a/src/app/settings/adjust-payment.component.ts b/src/app/settings/adjust-payment.component.ts new file mode 100644 index 0000000000..767600fb60 --- /dev/null +++ b/src/app/settings/adjust-payment.component.ts @@ -0,0 +1,64 @@ +import { + Component, + EventEmitter, + Input, + Output, + ViewChild, +} from '@angular/core'; + +import { ToasterService } from 'angular2-toaster'; +import { Angulartics2 } from 'angulartics2'; + +import { ApiService } from 'jslib/abstractions/api.service'; +import { I18nService } from 'jslib/abstractions/i18n.service'; + +import { PaymentRequest } from 'jslib/models/request/paymentRequest'; + +import { PaymentMethodType } from 'jslib/enums/paymentMethodType'; + +import { PaymentComponent } from './payment.component'; + +@Component({ + selector: 'app-adjust-payment', + templateUrl: 'adjust-payment.component.html', +}) +export class AdjustPaymentComponent { + @ViewChild(PaymentComponent) paymentComponent: PaymentComponent; + + @Input() currentType?: PaymentMethodType; + @Input() user = true; + @Output() onAdjusted = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + paymentMethodType = PaymentMethodType; + formPromise: Promise; + + constructor(private apiService: ApiService, private i18nService: I18nService, + private analytics: Angulartics2, private toasterService: ToasterService) { } + + async submit() { + try { + const request = new PaymentRequest(); + this.formPromise = this.paymentComponent.createPaymentToken().then((token) => { + request.paymentToken = token; + if (this.user) { + return this.apiService.postAccountPayment(request); + } + }); + await this.formPromise; + this.analytics.eventTrack.next({ + action: this.currentType == null ? 'Added Payment Method' : 'Changed Payment Method', + }); + this.toasterService.popAsync('success', null, this.i18nService.t('updatedPaymentMethod')); + this.onAdjusted.emit(); + } catch { } + } + + cancel() { + this.onCanceled.emit(); + } + + get canChange() { + return this.currentType == null || this.currentType === PaymentMethodType.Card; + } +} diff --git a/src/app/settings/adjust-storage.component.html b/src/app/settings/adjust-storage.component.html index 02c9eb2ba7..f4ed1f5fdb 100644 --- a/src/app/settings/adjust-storage.component.html +++ b/src/app/settings/adjust-storage.component.html @@ -1,5 +1,6 @@
+

{{(add ? 'addStorage' : 'removeStorage') | i18n}}

diff --git a/src/app/settings/payment.component.html b/src/app/settings/payment.component.html index 2a1f48bc7f..58e1611b82 100644 --- a/src/app/settings/payment.component.html +++ b/src/app/settings/payment.component.html @@ -1,4 +1,4 @@ -
+
- +
diff --git a/src/app/settings/payment.component.ts b/src/app/settings/payment.component.ts index 103e43205d..7ca2dc64fb 100644 --- a/src/app/settings/payment.component.ts +++ b/src/app/settings/payment.component.ts @@ -1,5 +1,6 @@ import { Component, + Input, OnInit, } from '@angular/core'; @@ -18,6 +19,8 @@ const Keys = { templateUrl: 'payment.component.html', }) export class PaymentComponent implements OnInit { + @Input() showOptions = true; + method = 'card'; card: any = { number: null, diff --git a/src/app/settings/premium.component.html b/src/app/settings/premium.component.html index d5756c0189..44ebb866eb 100644 --- a/src/app/settings/premium.component.html +++ b/src/app/settings/premium.component.html @@ -42,7 +42,7 @@ {{'total' | i18n}}: {{total | currency:'USD $'}} /{{'year' | i18n}}
{{'paymentChargedAnnually' | i18n}} -

{{'paymentInformation' | i18n}}

+

{{'paymentInformation' | i18n}}

-
@@ -89,9 +89,12 @@ 'fa-paypal text-primary': paymentSource.type === paymentMethodType.PayPal}"> {{paymentSource.description}}

- + +

{{'charges' | i18n}}

{{'noCharges' | i18n}}

diff --git a/src/app/settings/user-billing.component.ts b/src/app/settings/user-billing.component.ts index 2e8d03a068..1a559577f2 100644 --- a/src/app/settings/user-billing.component.ts +++ b/src/app/settings/user-billing.component.ts @@ -27,6 +27,7 @@ export class UserBillingComponent implements OnInit { firstLoaded = false; adjustStorageAdd = true; showAdjustStorage = false; + showAdjustPayment = false; billing: BillingResponse; paymentMethodType = PaymentMethodType; @@ -109,17 +110,22 @@ export class UserBillingComponent implements OnInit { this.showAdjustStorage = true; } - adjustedStorage(gbAmount: number) { - this.showAdjustStorage = false; - this.load(); - } - - canceledAdjustStorage() { + closeStorage(load: boolean) { this.showAdjustStorage = false; + if (load) { + this.load(); + } } changePayment() { + this.showAdjustPayment = true; + } + closePayment(load: boolean) { + this.showAdjustPayment = false; + if (load) { + this.load(); + } } get subscriptionMarkedForCancel() { diff --git a/src/images/cards.png b/src/images/cards.png index 8adeaf5143b00cb557de78931efcae31b982938c..16722411c12c6376f01906dc115e0cd4426ef930 100644 GIT binary patch literal 17502 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 literal 13071 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 diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json index 936f77f584..600dcf1b73 100644 --- a/src/locales/en/messages.json +++ b/src/locales/en/messages.json @@ -1404,5 +1404,14 @@ "example": "5" } } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "contactSupportPaymentMethod": { + "message": "If you would like to change from this payment method please contact customer support." + }, + "updatedPaymentMethod": { + "message": "Updated payment method." } } diff --git a/src/scss/styles.scss b/src/scss/styles.scss index 6aa34c9e72..e0e5091006 100644 --- a/src/scss/styles.scss +++ b/src/scss/styles.scss @@ -132,6 +132,11 @@ body { } } +.card-body-header { + font-size: $h3-font-size * 1.12; + @extend .mb-4 +} + .card ul.fa-ul.card-ul { margin-left: 1.9em;