|
28 | 28 | [rounded]="true" |
29 | 29 | size="small" |
30 | 30 | severity="secondary" |
31 | | - (click)="onMenuToggle($event, actionMenu)"></lfx-button> |
| 31 | + (click)="actionMenu.toggle($event)"></lfx-button> |
32 | 32 | </div> |
33 | 33 | <!-- Action Menu --> |
34 | 34 | <lfx-menu #actionMenu [model]="actionMenuItems()" [popup]="true" appendTo="body"></lfx-menu> |
@@ -73,6 +73,12 @@ <h3 class="text-xl font-display font-semibold text-gray-900 mb-3"> |
73 | 73 | <i [class]="meeting().recording_enabled ? 'fa-light fa-check-circle text-green-500' : 'fa-light fa-times-circle text-gray-400'" class="text-base"></i> |
74 | 74 | <span class="text-sm text-gray-600">Recording</span> |
75 | 75 | </div> |
| 76 | + <div class="flex flex-wrap gap-3"> |
| 77 | + <div class="flex items-center gap-2"> |
| 78 | + <i [class]="meeting().restricted ? 'fa-light fa-check-circle text-green-500' : 'fa-light fa-times-circle text-gray-400'" class="text-base"></i> |
| 79 | + <span class="text-sm text-gray-600">Restricted</span> |
| 80 | + </div> |
| 81 | + </div> |
76 | 82 | @if (meeting().recording_enabled) { |
77 | 83 | <div class="flex items-center gap-2"> |
78 | 84 | <i [class]="meeting().youtube_enabled ? 'fa-light fa-check-circle text-green-500' : 'fa-light fa-times-circle text-gray-400'" class="text-base"></i> |
@@ -146,13 +152,41 @@ <h3 class="text-xl font-display font-semibold text-gray-900 mb-3"> |
146 | 152 |
|
147 | 153 | @if (!participantsLoading()) { |
148 | 154 | <div class="grid grid-cols-3 gap-2 mt-4"> |
| 155 | + <!-- Add Participant Option --> |
| 156 | + <div |
| 157 | + pAnimateOnScroll |
| 158 | + class="animate-delay-2000" |
| 159 | + enterClass="animate-enter fade-in-10 slide-in-from-b-8 animate-duration-1000" |
| 160 | + leaveClass="animate-leave fade-out-0"> |
| 161 | + <div |
| 162 | + class="flex items-center gap-2 cursor-pointer hover:bg-blue-50 p-2 rounded-md transition-colors border-2 border-dashed border-blue-200 hover:border-blue-400" |
| 163 | + (click)="openAddParticipantModal()" |
| 164 | + data-testid="add-participant-button"> |
| 165 | + <div class="relative"> |
| 166 | + <div class="w-8 h-8 bg-blue-100 border border-blue-200 rounded-full flex items-center justify-center"> |
| 167 | + <i class="fa-light fa-plus text-blue-500"></i> |
| 168 | + </div> |
| 169 | + </div> |
| 170 | + <div class="flex flex-col"> |
| 171 | + <div class="flex items-center gap-1 text-xs"> |
| 172 | + <span class="text-sm text-blue-600 font-medium">Add Guests</span> |
| 173 | + </div> |
| 174 | + <span class="text-xs text-blue-500">Click to add new guests</span> |
| 175 | + </div> |
| 176 | + </div> |
| 177 | + </div> |
| 178 | + |
149 | 179 | @for (participant of participants(); track participant.id) { |
150 | 180 | <div |
151 | 181 | pAnimateOnScroll |
152 | 182 | class="animate-delay-2000" |
153 | 183 | enterClass="animate-enter fade-in-10 slide-in-from-b-8 animate-duration-1000" |
154 | 184 | leaveClass="animate-leave fade-out-0"> |
155 | | - <div class="flex items-center gap-2" [ngClass]="{ 'gap-3': !pastMeeting() }"> |
| 185 | + <div |
| 186 | + class="flex items-center gap-2 cursor-pointer hover:bg-gray-50 p-2 rounded-md transition-colors" |
| 187 | + [ngClass]="{ 'gap-3': !pastMeeting() }" |
| 188 | + (click)="onParticipantEdit(participant, $event)" |
| 189 | + [attr.data-testid]="'participant-' + participant.id"> |
156 | 190 | @if (pastMeeting()) { |
157 | 191 | @if (participant.attended) { |
158 | 192 | <i class="fa-light fa-check-circle text-green-500" pTooltip="Attended"></i> |
@@ -194,3 +228,6 @@ <h3 class="text-xl font-display font-semibold text-gray-900 mb-3"> |
194 | 228 | </div> |
195 | 229 | } |
196 | 230 | } |
| 231 | + |
| 232 | +<!-- Confirmation Dialog --> |
| 233 | +<p-confirmDialog></p-confirmDialog> |
0 commit comments