From 9c7b7b0d75ef96451b12c539b84d615d96f8453d Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Tue, 20 Nov 2018 16:38:00 -0500 Subject: [PATCH] premium access addon for orgs --- jslib | 2 +- .../create-organization.component.html | 13 ++++++++++++ .../settings/create-organization.component.ts | 20 ++++++++++++++++++- src/locales/en/messages.json | 16 +++++++++++++++ src/scss/styles.scss | 2 +- 5 files changed, 50 insertions(+), 3 deletions(-) diff --git a/jslib b/jslib index 464bca8c4d..5d5200b12e 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 464bca8c4d745eb86bdb0b36e6e4a983caa3c891 +Subproject commit 5d5200b12e36dc170d7d3ec7bd34f0e7f99cd422 diff --git a/src/app/settings/create-organization.component.html b/src/app/settings/create-organization.component.html index 7aed5268aa..5115053bd5 100644 --- a/src/app/settings/create-organization.component.html +++ b/src/app/settings/create-organization.component.html @@ -124,6 +124,15 @@ {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (storageGb.price | currency:'$') : ('month' | i18n)}} +
+
+
+ + +
+ {{'premiumAccessDesc' | i18n : (3.33 | currency:'$') : ('month' | i18n)}} +
+

{{'summary' | i18n}}

@@ -143,6 +152,10 @@ {{'additionalStorageGb' | i18n}}: {{additionalStorage || 0}} × {{storageGb.price | currency:'$'}} ×12 {{'monthAbbr' | i18n}} = {{additionalStorageTotal(true) | currency:'$'}} /{{'year' | i18n}} + + {{'premiumAccess' | i18n}}: + {{3.33 | currency:'$'}} ×12 {{'monthAbbr' | i18n}} = {{40 | currency:'$'}} /{{'year' | i18n}} +
diff --git a/src/app/settings/create-organization.component.ts b/src/app/settings/create-organization.component.ts index a880893757..88cdd71818 100644 --- a/src/app/settings/create-organization.component.ts +++ b/src/app/settings/create-organization.component.ts @@ -31,6 +31,7 @@ export class CreateOrganizationComponent implements OnInit { selfHosted = false; ownedBusiness = false; + premiumAccessAddon = false; storageGbPriceMonthly = 0.33; additionalStorage = 0; additionalSeats = 0; @@ -58,6 +59,7 @@ export class CreateOrganizationComponent implements OnInit { baseSeats: 5, noAdditionalSeats: true, annualPlanType: PlanType.FamiliesAnnually, + canBuyPremiumAccessAddon: true, }, teams: { basePrice: 5, @@ -144,6 +146,8 @@ export class CreateOrganizationComponent implements OnInit { request.businessName = this.ownedBusiness ? this.businessName : null; request.additionalSeats = this.additionalSeats; request.additionalStorageGb = this.additionalStorage; + request.premiumAccessAddon = this.plans[this.plan].canBuyPremiumAccessAddon && + this.premiumAccessAddon; request.country = this.paymentComponent.getCountry(); if (this.interval === 'month') { request.planType = this.plans[this.plan].monthPlanType; @@ -170,6 +174,10 @@ export class CreateOrganizationComponent implements OnInit { } changedPlan() { + if (!this.plans[this.plan].canBuyPremiumAccessAddon) { + this.premiumAccessAddon = false; + } + if (this.plans[this.plan].monthPlanType == null) { this.interval = 'year'; } @@ -217,8 +225,18 @@ export class CreateOrganizationComponent implements OnInit { } } + premiumAccessTotal(annual: boolean): number { + if (this.plans[this.plan].canBuyPremiumAccessAddon && this.premiumAccessAddon) { + if (annual) { + return 40; + } + } + return 0; + } + get total(): number { const annual = this.interval === 'year'; - return this.baseTotal(annual) + this.seatTotal(annual) + this.additionalStorageTotal(annual); + return this.baseTotal(annual) + this.seatTotal(annual) + this.additionalStorageTotal(annual) + + this.premiumAccessTotal(annual); } } diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json index 83edd0c2ec..e35816234b 100644 --- a/src/locales/en/messages.json +++ b/src/locales/en/messages.json @@ -1386,6 +1386,22 @@ "addons": { "message": "Addons" }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, "additionalStorageGb": { "message": "Additional Storage (GB)" }, diff --git a/src/scss/styles.scss b/src/scss/styles.scss index 9eb0f10fd9..aecafba17c 100644 --- a/src/scss/styles.scss +++ b/src/scss/styles.scss @@ -250,7 +250,7 @@ input, select, textarea { @include border-radius($modal-content-border-radius); } -label:not(.form-check-label):not(.btn) { +label:not(.form-check-label):not(.btn), label.bold { font-weight: 600; }