|
| 1 | +<!-- Header Section when editing --> |
| 2 | +<div *ngIf="editing === 'parties'" class="header-section"> |
| 3 | + <h2>Owner & Contacts > Edit {{ getHeaderPartyType() }}</h2> |
| 4 | +</div> |
| 5 | + |
1 | 6 | <ng-container *ngIf="editing === null"> |
2 | 7 | <!-- Responsible Parties View --> |
3 | 8 | <section class="file-section"> |
4 | | - <h3>Allegedly Responsible Parties</h3> |
| 9 | + <h3 *ngIf="responsibleParties.length === 1">{{ responsibleParties[0].partyType }}</h3> |
| 10 | + <h3 *ngIf="responsibleParties.length > 1">Responsible Parties</h3> |
5 | 11 |
|
6 | 12 | <!-- Crown Party (if property is Crown) --> |
7 | 13 | <div *ngIf="isPropertyCrown" class="party-card"> |
@@ -31,58 +37,105 @@ <h4>Crown</h4> |
31 | 37 | <div class="party-header"> |
32 | 38 | <h4>{{ getPartyDisplayName(party) }}</h4> |
33 | 39 | <div class="party-type-badge" [class.previous]="party.isPrevious"> |
34 | | - {{ getPartyTypeDisplay(party) }} |
| 40 | + <span *ngIf="party.partyType === ResponsiblePartyType.PROPERTY_OWNER && party.ownerSince && !party.isPrevious" class="owner-since-label">Owner Since: </span> |
| 41 | + <span *ngIf="party.partyType === ResponsiblePartyType.PROPERTY_OWNER && party.ownerSince && !party.isPrevious">{{ formatOwnerSince(party.ownerSince) }}</span> |
| 42 | + <span *ngIf="!(party.partyType === ResponsiblePartyType.PROPERTY_OWNER && party.ownerSince && !party.isPrevious)">{{ getPartyTypeDisplay(party) }}</span> |
35 | 43 | </div> |
36 | 44 | </div> |
37 | 45 |
|
38 | 46 | <div class="party-details"> |
39 | | - <!-- Address (if individual) --> |
40 | | - <div *ngIf="party.foippaCategory === FOIPPACategory.INDIVIDUAL && getPartyAddress(party)" class="field"> |
41 | | - <div class="field-heading">Mailing Address</div> |
42 | | - <div>{{ getPartyAddress(party) }}</div> |
43 | | - </div> |
| 47 | + <!-- Contact Information Row (3-column layout) - Only for individuals --> |
| 48 | + <div *ngIf="party.foippaCategory === FOIPPACategory.INDIVIDUAL" class="contact-row"> |
| 49 | + <!-- Address (if individual) --> |
| 50 | + <div *ngIf="getPartyAddress(party)" class="field"> |
| 51 | + <div class="field-heading">Mailing Address</div> |
| 52 | + <div>{{ getPartyAddress(party) }}</div> |
| 53 | + </div> |
| 54 | + |
| 55 | + <!-- Empty div for spacing if no address --> |
| 56 | + <div *ngIf="!getPartyAddress(party)" class="field"> |
| 57 | + </div> |
44 | 58 |
|
45 | | - <!-- Email --> |
46 | | - <div class="field"> |
47 | | - <div class="field-heading">Email</div> |
48 | | - <app-inline-text |
49 | | - [value]="getPartyEmail(party)" |
50 | | - [isEmail]="true" |
51 | | - addText="Add Email" |
52 | | - placeholder="Add Email" |
53 | | - (save)="saveInlineEdit(party, 'email', $event)" |
54 | | - ></app-inline-text> |
| 59 | + <!-- Email --> |
| 60 | + <div class="field"> |
| 61 | + <div class="field-heading">Email</div> |
| 62 | + <app-inline-text |
| 63 | + [value]="getPartyEmail(party)" |
| 64 | + [isEmail]="true" |
| 65 | + addText="Add Email" |
| 66 | + placeholder="Add Email" |
| 67 | + (save)="saveInlineEdit(party, 'email', $event)" |
| 68 | + ></app-inline-text> |
| 69 | + </div> |
| 70 | + |
| 71 | + <!-- Telephone --> |
| 72 | + <div class="field"> |
| 73 | + <div class="field-heading">Telephone</div> |
| 74 | + <app-inline-text |
| 75 | + [value]="getPartyPhone(party)" |
| 76 | + [mask]="'(000) 000-0000'" |
| 77 | + addText="Add Telephone" |
| 78 | + placeholder="Add Telephone" |
| 79 | + (save)="saveInlineEdit(party, 'phone', $event)" |
| 80 | + ></app-inline-text> |
| 81 | + </div> |
55 | 82 | </div> |
56 | 83 |
|
57 | | - <!-- Telephone --> |
58 | | - <div class="field"> |
59 | | - <div class="field-heading">Telephone</div> |
| 84 | + <!-- Notes (for organizations, show under org name) --> |
| 85 | + <div *ngIf="party.foippaCategory === FOIPPACategory.ORGANIZATION" class="field"> |
| 86 | + <div class="field-heading">Note</div> |
60 | 87 | <app-inline-text |
61 | | - [value]="getPartyPhone(party)" |
62 | | - [mask]="'(000) 000-0000'" |
63 | | - addText="Add Telephone" |
64 | | - placeholder="Add Telephone" |
65 | | - (save)="saveInlineEdit(party, 'phone', $event)" |
| 88 | + [value]="getPartyNotes(party)" |
| 89 | + addText="Add Notes" |
| 90 | + placeholder="Add Notes" |
| 91 | + (save)="saveInlineEdit(party, 'notes', $event)" |
66 | 92 | ></app-inline-text> |
67 | 93 | </div> |
68 | | - |
69 | 94 | <!-- Directors (if organization) --> |
70 | 95 | <div *ngIf="party.foippaCategory === FOIPPACategory.ORGANIZATION && party.directors?.length" class="directors-section"> |
71 | | - <div class="field-heading">Directors</div> |
72 | | - <div *ngFor="let director of party.directors" class="director-item"> |
73 | | - <div class="director-name">{{ director.directorName }}</div> |
74 | | - <div class="director-details"> |
75 | | - <div *ngIf="director.directorMailingAddress">{{ director.directorMailingAddress }}</div> |
76 | | - <div *ngIf="director.directorEmail"> |
77 | | - <a [href]="'mailto:' + director.directorEmail">{{ director.directorEmail }}</a> |
| 96 | + <div *ngFor="let director of party.directors; let i = index" class="director-container"> |
| 97 | + <!-- Director Name Row --> |
| 98 | + <div class="director-name-row"> |
| 99 | + <strong>Director: {{ director.directorName }}</strong> |
| 100 | + </div> |
| 101 | + |
| 102 | + <!-- Director Contact Row (3-column layout) --> |
| 103 | + <div class="contact-row"> |
| 104 | + <div class="field"> |
| 105 | + <div class="field-heading">Mailing Address</div> |
| 106 | + <div *ngIf="director.directorMailingAddress; else noAddress">{{ director.directorMailingAddress }}</div> |
| 107 | + <ng-template #noAddress>-</ng-template> |
| 108 | + </div> |
| 109 | + |
| 110 | + <div class="field"> |
| 111 | + <div class="field-heading">Email</div> |
| 112 | + <app-inline-text |
| 113 | + [value]="director.directorEmail || ''" |
| 114 | + [isEmail]="true" |
| 115 | + addText="Add Email" |
| 116 | + placeholder="Add Email" |
| 117 | + (save)="saveDirectorInlineEdit(party, director, 'email', $event)" |
| 118 | + ></app-inline-text> |
| 119 | + </div> |
| 120 | + |
| 121 | + <div class="field"> |
| 122 | + <div class="field-heading">Telephone</div> |
| 123 | + <app-inline-text |
| 124 | + [value]="director.directorTelephone || ''" |
| 125 | + [mask]="'(000) 000-0000'" |
| 126 | + addText="Add Telephone" |
| 127 | + placeholder="Add Telephone" |
| 128 | + (save)="saveDirectorInlineEdit(party, director, 'phone', $event)" |
| 129 | + ></app-inline-text> |
78 | 130 | </div> |
79 | | - <div *ngIf="director.directorTelephone">{{ director.directorTelephone | mask: "(000) 000-0000" }}</div> |
80 | 131 | </div> |
| 132 | + |
| 133 | + <hr *ngIf="i < (party.directors?.length || 0) - 1" class="director-separator"> |
81 | 134 | </div> |
82 | 135 | </div> |
83 | 136 |
|
84 | | - <!-- Notes --> |
85 | | - <div class="field"> |
| 137 | + <!-- Notes (for individuals only, since organizations have it above) --> |
| 138 | + <div *ngIf="party.foippaCategory === FOIPPACategory.INDIVIDUAL" class="field"> |
86 | 139 | <div class="field-heading">Notes</div> |
87 | 140 | <app-inline-text |
88 | 141 | [value]="getPartyNotes(party)" |
@@ -116,7 +169,6 @@ <h4>{{ getPartyDisplayName(party) }}</h4> |
116 | 169 | <ng-container *ngIf="editing === 'parties'"> |
117 | 170 | <form [formGroup]="form"> |
118 | 171 | <section class="form-section"> |
119 | | - <h3>Responsible Parties > Edit Allegedly Responsible Parties</h3> |
120 | 172 | <app-compliance-and-enforcement-responsible-parties |
121 | 173 | #responsiblePartiesComponent |
122 | 174 | [fileUuid]="file?.uuid" |
|
0 commit comments