From 96c6b870cb58a166d8b4a4f81bdb9015aa79efdd Mon Sep 17 00:00:00 2001 From: Jason Ng Date: Wed, 9 Aug 2023 14:10:01 -0400 Subject: [PATCH] PM-2593 Update Premium Urls to target cloudWebVaultUrl (#5861) * updated urls in premium web component and premium libs to use the cloudwebvaulturl * moved premium.component in web from base settings to a new settings folder inside vault --- .../src/popup/settings/premium.component.ts | 14 ++++++++++++-- .../src/vault/app/accounts/premium.component.ts | 14 ++++++++++++-- .../settings/subscription-routing.module.ts | 2 +- apps/web/src/app/shared/loose-components.module.ts | 2 +- .../{ => vault}/settings/premium.component.html | 2 +- .../app/{ => vault}/settings/premium.component.ts | 10 +++++++--- .../src/vault/components/premium.component.ts | 13 +++++++++---- 7 files changed, 43 insertions(+), 14 deletions(-) rename apps/web/src/app/{ => vault}/settings/premium.component.html (98%) rename apps/web/src/app/{ => vault}/settings/premium.component.ts (91%) diff --git a/apps/browser/src/popup/settings/premium.component.ts b/apps/browser/src/popup/settings/premium.component.ts index 5c179a12d72..459cd2a6cb2 100644 --- a/apps/browser/src/popup/settings/premium.component.ts +++ b/apps/browser/src/popup/settings/premium.component.ts @@ -4,6 +4,7 @@ import { Component } from "@angular/core"; import { DialogServiceAbstraction } from "@bitwarden/angular/services/dialog"; import { PremiumComponent as BasePremiumComponent } from "@bitwarden/angular/vault/components/premium.component"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; +import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; @@ -24,9 +25,18 @@ export class PremiumComponent extends BasePremiumComponent { logService: LogService, private location: Location, private currencyPipe: CurrencyPipe, - dialogService: DialogServiceAbstraction + dialogService: DialogServiceAbstraction, + environmentService: EnvironmentService ) { - super(i18nService, platformUtilsService, apiService, logService, stateService, dialogService); + super( + i18nService, + platformUtilsService, + apiService, + logService, + stateService, + dialogService, + environmentService + ); // Support old price string. Can be removed in future once all translations are properly updated. const thePrice = this.currencyPipe.transform(this.price, "$"); diff --git a/apps/desktop/src/vault/app/accounts/premium.component.ts b/apps/desktop/src/vault/app/accounts/premium.component.ts index 13116fd3ed4..fd275d6ed7d 100644 --- a/apps/desktop/src/vault/app/accounts/premium.component.ts +++ b/apps/desktop/src/vault/app/accounts/premium.component.ts @@ -3,6 +3,7 @@ import { Component } from "@angular/core"; import { DialogServiceAbstraction } from "@bitwarden/angular/services/dialog"; import { PremiumComponent as BasePremiumComponent } from "@bitwarden/angular/vault/components/premium.component"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; +import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; @@ -19,8 +20,17 @@ export class PremiumComponent extends BasePremiumComponent { apiService: ApiService, logService: LogService, stateService: StateService, - dialogService: DialogServiceAbstraction + dialogService: DialogServiceAbstraction, + environmentService: EnvironmentService ) { - super(i18nService, platformUtilsService, apiService, logService, stateService, dialogService); + super( + i18nService, + platformUtilsService, + apiService, + logService, + stateService, + dialogService, + environmentService + ); } } diff --git a/apps/web/src/app/billing/settings/subscription-routing.module.ts b/apps/web/src/app/billing/settings/subscription-routing.module.ts index 35b98b75d6a..43c7a6d7222 100644 --- a/apps/web/src/app/billing/settings/subscription-routing.module.ts +++ b/apps/web/src/app/billing/settings/subscription-routing.module.ts @@ -4,7 +4,7 @@ import { RouterModule, Routes } from "@angular/router"; import { BillingHistoryViewComponent } from "../../billing/settings/billing-history-view.component"; import { PaymentMethodComponent } from "../../billing/settings/payment-method.component"; import { UserSubscriptionComponent } from "../../billing/settings/user-subscription.component"; -import { PremiumComponent } from "../../settings/premium.component"; +import { PremiumComponent } from "../../vault/settings/premium.component"; import { SubscriptionComponent } from "./subscription.component"; diff --git a/apps/web/src/app/shared/loose-components.module.ts b/apps/web/src/app/shared/loose-components.module.ts index 74a422d3b21..0acb456a41e 100644 --- a/apps/web/src/app/shared/loose-components.module.ts +++ b/apps/web/src/app/shared/loose-components.module.ts @@ -81,7 +81,6 @@ import { DeleteAccountComponent } from "../settings/delete-account.component"; import { DomainRulesComponent } from "../settings/domain-rules.component"; import { LowKdfComponent } from "../settings/low-kdf.component"; import { PreferencesComponent } from "../settings/preferences.component"; -import { PremiumComponent } from "../settings/premium.component"; import { ProfileComponent } from "../settings/profile.component"; import { PurgeVaultComponent } from "../settings/purge-vault.component"; import { SecurityKeysComponent } from "../settings/security-keys.component"; @@ -107,6 +106,7 @@ import { ShareComponent } from "../vault/individual-vault/share.component"; import { AddEditComponent as OrgAddEditComponent } from "../vault/org-vault/add-edit.component"; import { AttachmentsComponent as OrgAttachmentsComponent } from "../vault/org-vault/attachments.component"; import { CollectionsComponent as OrgCollectionsComponent } from "../vault/org-vault/collections.component"; +import { PremiumComponent } from "../vault/settings/premium.component"; import { EnvironmentSelectorModule } from "./../components/environment-selector/environment-selector.module"; import { AccountFingerprintComponent } from "./components/account-fingerprint/account-fingerprint.component"; diff --git a/apps/web/src/app/settings/premium.component.html b/apps/web/src/app/vault/settings/premium.component.html similarity index 98% rename from apps/web/src/app/settings/premium.component.html rename to apps/web/src/app/vault/settings/premium.component.html index 3c7fadd86ff..b47bfc1be2b 100644 --- a/apps/web/src/app/settings/premium.component.html +++ b/apps/web/src/app/vault/settings/premium.component.html @@ -54,7 +54,7 @@

; @@ -39,9 +41,11 @@ export class PremiumComponent implements OnInit { private messagingService: MessagingService, private syncService: SyncService, private logService: LogService, - private stateService: StateService + private stateService: StateService, + private environmentService: EnvironmentService ) { this.selfHosted = platformUtilsService.isSelfHost(); + this.cloudWebVaultUrl = this.environmentService.getCloudWebVaultUrl(); } async ngOnInit() { diff --git a/libs/angular/src/vault/components/premium.component.ts b/libs/angular/src/vault/components/premium.component.ts index af66db7f4b6..b13cfa428d3 100644 --- a/libs/angular/src/vault/components/premium.component.ts +++ b/libs/angular/src/vault/components/premium.component.ts @@ -1,6 +1,7 @@ import { Directive, OnInit } from "@angular/core"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; +import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; @@ -13,6 +14,7 @@ export class PremiumComponent implements OnInit { isPremium = false; price = 10; refreshPromise: Promise; + cloudWebVaultUrl: string; constructor( protected i18nService: I18nService, @@ -20,8 +22,11 @@ export class PremiumComponent implements OnInit { protected apiService: ApiService, private logService: LogService, protected stateService: StateService, - protected dialogService: DialogServiceAbstraction - ) {} + protected dialogService: DialogServiceAbstraction, + private environmentService: EnvironmentService + ) { + this.cloudWebVaultUrl = this.environmentService.getCloudWebVaultUrl(); + } async ngOnInit() { this.isPremium = await this.stateService.getCanAccessPremium(); @@ -46,7 +51,7 @@ export class PremiumComponent implements OnInit { }); if (confirmed) { - this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=purchase"); + this.platformUtilsService.launchUri(`${this.cloudWebVaultUrl}/#/?premium=purchase`); } } @@ -58,7 +63,7 @@ export class PremiumComponent implements OnInit { }); if (confirmed) { - this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=manage"); + this.platformUtilsService.launchUri(`${this.cloudWebVaultUrl}/#/?premium=manage`); } } }