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)}}
+
@@ -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;
}