1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-26 12:25:20 +01:00

Show upgrade plan button for free orgs. (#1269)

* Show upgrade plan button for free orgs.

* Add families plan callout for subscription upgrade
This commit is contained in:
Matt Gibson 2021-11-01 14:29:46 -05:00 committed by GitHub
parent 2700caf2a8
commit bb0b5f2d87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 17 deletions

View File

@ -70,6 +70,15 @@
</div> </div>
</ng-container> </ng-container>
</div> </div>
<ng-container>
<div class="d-flex">
<button type="button" class="btn btn-outline-secondary" (click)="changePlan()" *ngIf="showChangePlanButton">
{{'changeBillingPlan' | i18n}}
</button>
</div>
<app-change-plan [organizationId]="organizationId" (onChanged)="closeChangePlan(true)"
(onCanceled)="closeChangePlan(false)" *ngIf="showChangePlan"></app-change-plan>
</ng-container>
<h2 class="spaced-header">{{'manageSubscription' | i18n}}</h2> <h2 class="spaced-header">{{'manageSubscription' | i18n}}</h2>
<p class="mb-4">{{subscriptionDesc}}</p> <p class="mb-4">{{subscriptionDesc}}</p>
<ng-container *ngIf="subscription && canAdjustSeats && !subscription.cancelled && !subscriptionMarkedForCancel"> <ng-container *ngIf="subscription && canAdjustSeats && !subscription.cancelled && !subscriptionMarkedForCancel">
@ -118,8 +127,6 @@
<span>{{'cancelSubscription' | i18n}}</span> <span>{{'cancelSubscription' | i18n}}</span>
</button> </button>
</div> </div>
<app-change-plan [organizationId]="organizationId" (onChanged)="closeChangePlan(true)"
(onCanceled)="closeChangePlan(false)" *ngIf="showChangePlan"></app-change-plan>
<div class="mt-3" *ngIf="showDownloadLicense"> <div class="mt-3" *ngIf="showDownloadLicense">
<app-download-license [organizationId]="organizationId" (onDownloaded)="closeDownloadLicense()" <app-download-license [organizationId]="organizationId" (onDownloaded)="closeDownloadLicense()"
(onCanceled)="closeDownloadLicense()"></app-download-license> (onCanceled)="closeDownloadLicense()"></app-download-license>

View File

@ -110,15 +110,7 @@ export class OrganizationSubscriptionComponent implements OnInit {
} }
async changePlan() { async changePlan() {
if (this.subscription == null && this.sub.planType === PlanType.Free) { this.showChangePlan = !this.showChangePlan;
this.showChangePlan = !this.showChangePlan;
return;
}
const contactSupport = await this.platformUtilsService.showDialog(this.i18nService.t('changeBillingPlanDesc'),
this.i18nService.t('changeBillingPlan'), this.i18nService.t('contactSupport'), this.i18nService.t('close'));
if (contactSupport) {
this.platformUtilsService.launchUri('https://bitwarden.com/contact');
}
} }
closeChangePlan(changed: boolean) { closeChangePlan(changed: boolean) {
@ -221,7 +213,11 @@ export class OrganizationSubscriptionComponent implements OnInit {
} }
get subscriptionDesc() { get subscriptionDesc() {
if (this.sub.maxAutoscaleSeats === this.sub.seats && this.sub.seats != null) { if (this.sub.planType === PlanType.Free) {
return this.i18nService.t('subscriptionFreePlan', this.sub.seats.toString());
} else if (this.sub.planType === PlanType.FamiliesAnnually || this.sub.planType === PlanType.FamiliesAnnually2019) {
return this.i18nService.t('subscriptionFamiliesPlan', this.sub.seats.toString());
} else if (this.sub.maxAutoscaleSeats === this.sub.seats && this.sub.seats != null) {
return this.i18nService.t('subscriptionMaxReached', this.sub.seats.toString()); return this.i18nService.t('subscriptionMaxReached', this.sub.seats.toString());
} else if (this.sub.maxAutoscaleSeats == null) { } else if (this.sub.maxAutoscaleSeats == null) {
return this.i18nService.t('subscriptionUserSeatsUnlimitedAutoscale'); return this.i18nService.t('subscriptionUserSeatsUnlimitedAutoscale');
@ -229,4 +225,8 @@ export class OrganizationSubscriptionComponent implements OnInit {
return this.i18nService.t('subscriptionUserSeatsLimitedAutoscale', this.sub.maxAutoscaleSeats.toString()); return this.i18nService.t('subscriptionUserSeatsLimitedAutoscale', this.sub.maxAutoscaleSeats.toString());
} }
} }
get showChangePlanButton() {
return this.subscription == null && this.sub.planType === PlanType.Free && !this.showChangePlan;
}
} }

View File

@ -2804,17 +2804,13 @@
"description": "A billing plan/package. For example: families, teams, enterprise, etc." "description": "A billing plan/package. For example: families, teams, enterprise, etc."
}, },
"changeBillingPlan": { "changeBillingPlan": {
"message": "Change Plan", "message": "Upgrade Plan",
"description": "A billing plan/package. For example: families, teams, enterprise, etc." "description": "A billing plan/package. For example: families, teams, enterprise, etc."
}, },
"changeBillingPlanUpgrade": { "changeBillingPlanUpgrade": {
"message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.",
"description": "A billing plan/package. For example: families, teams, enterprise, etc." "description": "A billing plan/package. For example: families, teams, enterprise, etc."
}, },
"changeBillingPlanDesc": {
"message": "Contact customer support if you would like to change your plan. Please ensure that you have an active payment method added to the account.",
"description": "A billing plan/package. For example: families, teams, enterprise, etc."
},
"invoiceNumber": { "invoiceNumber": {
"message": "Invoice #$NUMBER$", "message": "Invoice #$NUMBER$",
"description": "ex. Invoice #79C66F0-0001", "description": "ex. Invoice #79C66F0-0001",
@ -2938,6 +2934,24 @@
} }
} }
}, },
"subscriptionFreePlan": {
"message": "You cannot invite more than $COUNT$ users without upgrading your plan.",
"placeholders": {
"count": {
"content": "$1",
"example": "2"
}
}
},
"subscriptionFamiliesPlan": {
"message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.",
"placeholders": {
"count": {
"content": "$1",
"example": "6"
}
}
},
"subscriptionMaxReached": { "subscriptionMaxReached": {
"message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.",
"placeholders": { "placeholders": {