From 31a5fdbebbb597779cc38f67dfbc3ee0a5166f42 Mon Sep 17 00:00:00 2001 From: Robyn MacCallum Date: Tue, 12 Jul 2022 13:27:03 -0400 Subject: [PATCH] [SG-68] Implement org info step (#3083) * Implement org info step * Set org info sub label properly --- .../trial-initiation.component.html | 17 +++++++---- .../trial-initiation.component.ts | 29 ++++++++++++++++++- .../trial-initiation.module.ts | 4 +++ 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/apps/web/src/app/modules/trial-initiation/trial-initiation.component.html b/apps/web/src/app/modules/trial-initiation/trial-initiation.component.html index 7f94c3ffae..b0c98486dc 100644 --- a/apps/web/src/app/modules/trial-initiation/trial-initiation.component.html +++ b/apps/web/src/app/modules/trial-initiation/trial-initiation.component.html @@ -28,18 +28,23 @@ Start your 7-Day free trial of Bitwarden for {{ org }} - - + - - -

This is content of "Step 2"

- + + + diff --git a/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts b/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts index b8c5a75acf..0e6772ff3d 100644 --- a/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts +++ b/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts @@ -1,4 +1,7 @@ +import { StepperSelectionEvent } from "@angular/cdk/stepper"; +import { TitleCasePipe } from "@angular/common"; import { Component, OnInit, ViewChild } from "@angular/core"; +import { FormBuilder, Validators } from "@angular/forms"; import { ActivatedRoute } from "@angular/router"; import { first } from "rxjs"; @@ -11,9 +14,23 @@ import { VerticalStepperComponent } from "../vertical-stepper/vertical-stepper.c export class TrialInitiationComponent implements OnInit { email = ""; org = "teams"; + orgInfoSubLabel = ""; @ViewChild("stepper", { static: true }) verticalStepper: VerticalStepperComponent; - constructor(private route: ActivatedRoute) {} + orgInfoFormGroup = this.formBuilder.group({ + name: ["", [Validators.required]], + additionalStorage: [0, [Validators.min(0), Validators.max(99)]], + additionalSeats: [0, [Validators.min(0), Validators.max(100000)]], + businessName: [""], + plan: [], + product: [], + }); + + constructor( + private route: ActivatedRoute, + private formBuilder: FormBuilder, + private titleCasePipe: TitleCasePipe + ) {} ngOnInit(): void { this.route.queryParams.pipe(first()).subscribe((qParams) => { @@ -26,6 +43,16 @@ export class TrialInitiationComponent implements OnInit { }); } + stepSelectionChange(event: StepperSelectionEvent) { + // Set org info sub label + if (event.selectedIndex === 1 && this.orgInfoFormGroup.controls.name.value === "") { + this.orgInfoSubLabel = + "Enter your " + this.titleCasePipe.transform(this.org) + " organization information"; + } else if (event.previouslySelectedIndex === 1) { + this.orgInfoSubLabel = this.orgInfoFormGroup.controls.name.value; + } + } + createdAccount(email: string) { this.email = email; this.verticalStepper.next(); diff --git a/apps/web/src/app/modules/trial-initiation/trial-initiation.module.ts b/apps/web/src/app/modules/trial-initiation/trial-initiation.module.ts index 9b091ed4c9..1df9391580 100644 --- a/apps/web/src/app/modules/trial-initiation/trial-initiation.module.ts +++ b/apps/web/src/app/modules/trial-initiation/trial-initiation.module.ts @@ -1,8 +1,10 @@ import { CdkStepperModule } from "@angular/cdk/stepper"; +import { TitleCasePipe } from "@angular/common"; import { NgModule } from "@angular/core"; import { FormFieldModule } from "@bitwarden/components"; +import { OrganizationCreateModule } from "../organizations/create/organization-create.module"; import { RegisterFormModule } from "../register-form/register-form.module"; import { SharedModule } from "../shared.module"; import { VerticalStepperModule } from "../vertical-stepper/vertical-stepper.module"; @@ -19,6 +21,7 @@ import { TrialInitiationComponent } from "./trial-initiation.component"; VerticalStepperModule, FormFieldModule, RegisterFormModule, + OrganizationCreateModule, ], declarations: [ TrialInitiationComponent, @@ -27,5 +30,6 @@ import { TrialInitiationComponent } from "./trial-initiation.component"; TeamsContentComponent, ], exports: [TrialInitiationComponent], + providers: [TitleCasePipe], }) export class TrialInitiationModule {}