diff --git a/apps/lfx-one/public/images/logo_lf_white.svg b/apps/lfx-one/public/images/logo_lf_white.svg new file mode 100644 index 000000000..cd4d7d083 --- /dev/null +++ b/apps/lfx-one/public/images/logo_lf_white.svg @@ -0,0 +1,12 @@ + + + + + + diff --git a/apps/lfx-one/public/images/logo_lfx_white.svg b/apps/lfx-one/public/images/logo_lfx_white.svg new file mode 100644 index 000000000..75e8f8210 --- /dev/null +++ b/apps/lfx-one/public/images/logo_lfx_white.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/lfx-one/public/images/org-placeholder-logo.png b/apps/lfx-one/public/images/org-placeholder-logo.png new file mode 100644 index 000000000..c4d978cbc Binary files /dev/null and b/apps/lfx-one/public/images/org-placeholder-logo.png differ diff --git a/apps/lfx-one/src/app/app.routes.ts b/apps/lfx-one/src/app/app.routes.ts index 7269dde23..b0a866a24 100644 --- a/apps/lfx-one/src/app/app.routes.ts +++ b/apps/lfx-one/src/app/app.routes.ts @@ -3,6 +3,7 @@ import { Routes } from '@angular/router'; +import { PlaceholderPageComponent } from './shared/components/placeholder-page/placeholder-page.component'; import { authGuard } from './shared/guards/auth.guard'; export const routes: Routes = [ @@ -47,6 +48,21 @@ export const routes: Routes = [ path: 'profile', loadChildren: () => import('./modules/profile/profile.routes').then((m) => m.PROFILE_ROUTES), }, + // Me lens — new pages + { path: 'me/actions', component: PlaceholderPageComponent, data: { title: 'My Actions' } }, + { path: 'me/events', component: PlaceholderPageComponent, data: { title: 'My Events' } }, + { path: 'me/training', component: PlaceholderPageComponent, data: { title: 'Trainings & Certifications' } }, + { path: 'me/badges', component: PlaceholderPageComponent, data: { title: 'Badges' } }, + { path: 'me/easycla', component: PlaceholderPageComponent, data: { title: 'EasyCLA' } }, + { path: 'me/transactions', component: PlaceholderPageComponent, data: { title: 'Transactions' } }, + // Foundation lens — new pages + { path: 'foundation/projects', component: PlaceholderPageComponent, data: { title: 'Projects' } }, + { path: 'foundation/events', component: PlaceholderPageComponent, data: { title: 'Events' } }, + // Org lens — module + { + path: 'org', + loadChildren: () => import('./modules/org-lens/org-lens.routes').then((m) => m.ORG_LENS_ROUTES), + }, ], }, { diff --git a/apps/lfx-one/src/app/layouts/dev-toolbar/dev-toolbar.component.html b/apps/lfx-one/src/app/layouts/dev-toolbar/dev-toolbar.component.html index e07a744de..b21b23873 100644 --- a/apps/lfx-one/src/app/layouts/dev-toolbar/dev-toolbar.component.html +++ b/apps/lfx-one/src/app/layouts/dev-toolbar/dev-toolbar.component.html @@ -2,7 +2,7 @@ @if (showDevToolbar()) { -
+
@@ -38,8 +38,27 @@
} - - @if (showOrganizationSelector() && isOnBoardDashboard()) { + + @if (showOrgUserTypeSelector()) { +
+ + +
+ } + + + @if (showOrgSelector()) {
this.showOrganizationSelector() && (this.activeLens() === 'org' || this.isOnBoardDashboard())); + // Organization selector options protected readonly availableAccounts = ACCOUNTS; // Persona options for SelectButton protected readonly personaOptions = PERSONA_OPTIONS; + // Org user type options + protected readonly orgUserTypeOptions = ORG_USER_TYPE_OPTIONS; + + // Show org user type selector only in org lens + protected readonly showOrgUserTypeSelector = computed(() => this.activeLens() === 'org'); + // Board member project override — delegates to centralized isBoardScoped signal protected readonly isBoardMember = this.personaService.isBoardScoped; @@ -55,6 +67,7 @@ export class DevToolbarComponent { persona: new FormControl(this.personaService.currentPersona(), [Validators.required]), selectedAccountId: new FormControl(this.accountContextService.selectedAccount().accountId), selectedProjectUid: new FormControl(this.projectContextService.selectedFoundation()?.uid || ''), + orgUserType: new FormControl(this.appService.orgUserType()), }); // Subscribe to persona changes @@ -105,6 +118,14 @@ export class DevToolbarComponent { this.projectContextService.setFoundation(project); } }); + + // Subscribe to org user type changes + this.form + .get('orgUserType') + ?.valueChanges.pipe(takeUntilDestroyed()) + .subscribe((value: OrgUserType) => { + this.appService.setOrgUserType(value); + }); } /** diff --git a/apps/lfx-one/src/app/layouts/main-layout/main-layout.component.html b/apps/lfx-one/src/app/layouts/main-layout/main-layout.component.html index a22e3fcf8..8f3ea16cb 100644 --- a/apps/lfx-one/src/app/layouts/main-layout/main-layout.component.html +++ b/apps/lfx-one/src/app/layouts/main-layout/main-layout.component.html @@ -4,10 +4,17 @@ -
- -