WIP
This commit is contained in:
+3
-11
@@ -1,8 +1,7 @@
|
||||
import { Component, ViewEncapsulation, OnInit } from '@angular/core';
|
||||
import { Component, ViewEncapsulation } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { RouterOutlet } from '@angular/router';
|
||||
import { DialogModule } from '@progress/kendo-angular-dialog';
|
||||
import { AuthService } from './shared/services/auth.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
@@ -16,13 +15,6 @@ import { AuthService } from './shared/services/auth.service';
|
||||
styleUrls: ['./app.scss', '../styles.scss'],
|
||||
encapsulation: ViewEncapsulation.None
|
||||
})
|
||||
export class App implements OnInit {
|
||||
title = 'RBJ Identity';
|
||||
|
||||
constructor(private authService: AuthService) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
// Initialize authentication state from refresh token cookie
|
||||
this.authService.initializeFromRefreshToken();
|
||||
}
|
||||
export class App {
|
||||
title = 'ROLCC AC';
|
||||
}
|
||||
|
||||
@@ -14,21 +14,21 @@
|
||||
<div class="logo-container">
|
||||
<img src="assets/rbj-logo.svg" alt="RBJ Logo" class="logo-image">
|
||||
<div class="logo-text">
|
||||
<h1>RBJ Identity</h1>
|
||||
<span class="tagline">Escrow Management Portal</span>
|
||||
<h1>ROLCC AC</h1>
|
||||
<span class="tagline">Church Management Portal</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="welcome-text">
|
||||
<h2>Welcome Back</h2>
|
||||
<p>Access your escrow transactions, manage client communications, and track document workflows
|
||||
<p>Access your church transactions, manage client communications, and track document workflows
|
||||
securely.</p>
|
||||
</div>
|
||||
|
||||
<div class="features-list">
|
||||
<div class="feature-item">
|
||||
<div class="feature-icon">🔒</div>
|
||||
<span>Secure Escrow Management</span>
|
||||
<span>Secure Church Management</span>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<div class="feature-icon">💬</div>
|
||||
@@ -53,7 +53,7 @@
|
||||
<div *ngIf="!showLoginForm" class="initial-state">
|
||||
<div class="login-header">
|
||||
<h3>Access Your Account</h3>
|
||||
<p>Sign in to manage your escrow transactions and client communications</p>
|
||||
<p>Sign in to manage your church transactions and client communications</p>
|
||||
</div>
|
||||
|
||||
<div class="login-actions">
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<kendo-appbar-section class="k-flex-basis-0 k-flex-grow k-gap-2">
|
||||
<button kendoButton [svgIcon]="menuIcon" fillMode="clear" title="Menu" (click)="onMenuClick()"></button>
|
||||
<a href="#" class="k-d-none k-d-sm-flex logo-link">
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ RBJ Identity logo" />
|
||||
<span class="logo-text">RBJ Identity Portal</span>
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ ROLCC AC logo" />
|
||||
<span class="logo-text">ROLCC AC Portal</span>
|
||||
</a>
|
||||
<a href="#" class="k-d-flex k-d-sm-none">
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ RBJ Identity compact logo" />
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ ROLCC AC compact logo" />
|
||||
</a>
|
||||
</kendo-appbar-section>
|
||||
<kendo-appbar-section class="k-flex-basis-0 k-flex-grow k-justify-content-center">
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
<kendo-appbar-section class="k-flex-basis-0 k-flex-grow k-gap-2">
|
||||
<button kendoButton [svgIcon]="menuIcon" fillMode="clear" title="Menu" (click)="onMenuClick()"></button>
|
||||
<a href="#" class="k-d-none k-d-sm-flex logo-link">
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ RBJ Identity logo" />
|
||||
<span class="logo-text">RBJ Identity Portal</span>
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ ROLCC AC logo" />
|
||||
<span class="logo-text">ROLCC AC Portal</span>
|
||||
</a>
|
||||
<a href="#" class="k-d-flex k-d-sm-none">
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ RBJ Identity compact logo" />
|
||||
<img src="assets/rbj-logo.svg" class="k-h-8" alt="RBJ ROLCC AC compact logo" />
|
||||
</a>
|
||||
</kendo-appbar-section>
|
||||
<kendo-appbar-section class="k-flex-basis-0 k-flex-grow k-justify-content-center">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="drawer-content">
|
||||
<div class="drawer-header">
|
||||
<h3>User Portal</h3>
|
||||
<p>RBJ Identity Portal</p>
|
||||
<p>ROLCC AC Portal</p>
|
||||
</div>
|
||||
|
||||
<nav class="drawer-nav">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="welcome-section">
|
||||
<div class="welcome-content">
|
||||
<h1>Welcome back, {{ getDisplayName() || 'User' }}!</h1>
|
||||
<p>Here's a mock overview of the RBJ Identity escrow dashboard.</p>
|
||||
<p>Here's a mock overview of the ROLCC AC church dashboard.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
</div>
|
||||
<div class="action-content">
|
||||
<div class="action-title">New Transaction</div>
|
||||
<div class="action-description">Start a new escrow process</div>
|
||||
<div class="action-description">Start a new church process</div>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<div class="logo-section">
|
||||
<img src="assets/rbj-logo.svg" alt="RBJ Logo" class="logo-image">
|
||||
<div class="logo-text" *ngIf="!sidebarCollapsed">
|
||||
<h2>RBJ Identity</h2>
|
||||
<h2>ROLCC AC</h2>
|
||||
<span class="tagline">Escrow Portal</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Placeholder enums — expand as the escrow module is built out
|
||||
// Placeholder enums — expand as the church module is built out
|
||||
export enum EscrowStatus {
|
||||
Open = 'Open',
|
||||
Closed = 'Closed',
|
||||
|
||||
@@ -46,6 +46,8 @@ export interface TokenVerificationResult {
|
||||
isValid: boolean;
|
||||
/** Constructed from JWT claims when using secret-link login. */
|
||||
user?: UserInfo;
|
||||
/** The raw JWT from the URL — use as the access token for this session. */
|
||||
accessToken?: string;
|
||||
message?: string;
|
||||
expiresAt?: Date;
|
||||
requiresMfa?: boolean;
|
||||
@@ -56,7 +58,11 @@ export interface TokenVerificationResult {
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class AuthService {
|
||||
|
||||
/** In-memory only — never written to localStorage. */
|
||||
/**
|
||||
* In-memory only — never written to localStorage.
|
||||
* Non-private intentionally: unit tests seed state via these subjects directly.
|
||||
* Production code must use getToken(), getCurrentUser(), and setCurrentUser().
|
||||
*/
|
||||
accessToken$ = new BehaviorSubject<string | null>(null);
|
||||
currentUser$ = new BehaviorSubject<UserInfo | null>(null);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ export class UiUtilsService {
|
||||
constructor() { }
|
||||
|
||||
/**
|
||||
* Get CSS class for escrow status
|
||||
* Get CSS class for church status
|
||||
*/
|
||||
getStatusClass(status: EscrowStatus): string {
|
||||
switch (status) {
|
||||
@@ -35,7 +35,7 @@ export class UiUtilsService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get display label for escrow status
|
||||
* Get display label for church status
|
||||
*/
|
||||
getEscrowStatusLabel(status: EscrowStatus): string {
|
||||
switch (status) {
|
||||
@@ -67,7 +67,7 @@ export class UiUtilsService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get icon for escrow status
|
||||
* Get icon for church status
|
||||
*/
|
||||
getStatusIcon(status: EscrowStatus): SVGIcon | undefined {
|
||||
switch (status) {
|
||||
@@ -96,7 +96,7 @@ export class UiUtilsService {
|
||||
return 'role-agent';
|
||||
case CbAssigneeRole.EscrowOfficer:
|
||||
case CbAssigneeRole.EscrowAssignee:
|
||||
return 'role-escrow';
|
||||
return 'role-church';
|
||||
case CbAssigneeRole.LoanBroker:
|
||||
case CbAssigneeRole.Lender:
|
||||
return 'role-lender';
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
color: #16a34a;
|
||||
}
|
||||
|
||||
&.role-escrow {
|
||||
&.role-church {
|
||||
background: rgba(245, 158, 11, 0.1);
|
||||
color: #d97706;
|
||||
}
|
||||
@@ -248,7 +248,7 @@
|
||||
color: #4ade80;
|
||||
}
|
||||
|
||||
&.role-escrow {
|
||||
&.role-church {
|
||||
background: rgba(245, 158, 11, 0.2);
|
||||
color: #fbbf24;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user