Skip to content

Commit cef6f7b

Browse files
authored
Merge branch 'main' into clive-fix-1
Signed-off-by: Jordan Clive <[email protected]>
2 parents 64c1e37 + 8b2114e commit cef6f7b

File tree

15 files changed

+392
-286
lines changed

15 files changed

+392
-286
lines changed

apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.html

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<!-- Project Logo -->
1010
@if (project()?.logo_url) {
1111
<div class="flex items-center justify-center mb-6">
12-
<img [src]="project()?.logo_url" [alt]="project()?.name" class="w-auto h-20" />
12+
<img [src]="project()?.logo_url" [alt]="project()?.name" class="w-auto h-10 md:h-20" />
1313
</div>
1414
}
1515

@@ -68,7 +68,7 @@
6868
</div>
6969

7070
<!-- Content Row: Title/Details + Join Button (if immediate) -->
71-
<div class="flex justify-between items-start gap-6 mb-4">
71+
<div class="flex flex-col md:flex-row justify-between items-start gap-6 mb-4">
7272
<!-- Left Column: Title + Details -->
7373
<div class="flex-1 flex flex-col gap-4 justify-between h-full">
7474
<div class="flex flex-col gap-4 h-full">
@@ -147,7 +147,7 @@ <h1 class="font-medium text-base text-neutral-950 leading-tight" [attr.data-test
147147
<!-- Right Column: Join Button (immediate meetings) or RSVP (future meetings) -->
148148
@if (canJoinMeeting()) {
149149
<!-- Join Button - Immediate Meeting -->
150-
<div class="w-[296px]">
150+
<div class="w-full md:w-[296px]">
151151
<lfx-button
152152
label="Join Meeting"
153153
icon="fa-light fa-video"
@@ -163,7 +163,7 @@ <h1 class="font-medium text-base text-neutral-950 leading-tight" [attr.data-test
163163
</div>
164164
} @else if (authenticated() && meeting().organizer) {
165165
<!-- RSVP Details - Future Meeting (Authenticated Organizers) -->
166-
<div class="w-[296px] flex flex-col gap-3">
166+
<div class="w-full md:w-[296px] flex flex-col gap-3">
167167
<lfx-meeting-rsvp-details
168168
[meeting]="meeting()"
169169
[project]="project()"
@@ -190,7 +190,7 @@ <h1 class="font-medium text-base text-neutral-950 leading-tight" [attr.data-test
190190
</div>
191191
} @else if (authenticated()) {
192192
<!-- RSVP Container - Future Meeting (Authenticated Non-Organizers) -->
193-
<div class="w-[296px]">
193+
<div class="w-full md:w-[296px]">
194194
<lfx-rsvp-button-group [meeting]="meeting()" [occurrenceId]="currentOccurrence()?.occurrence_id"> </lfx-rsvp-button-group>
195195
</div>
196196
}
@@ -237,15 +237,19 @@ <h3 class="text-gray-600 text-sm font-normal">Resources</h3>
237237
<div class="flex flex-col gap-2">
238238
@for (attachment of attachments(); track attachment.uid; let i = $index) {
239239
<a
240-
[href]="'/api/meetings/' + meeting().uid + '/attachments/' + attachment.uid"
240+
[href]="attachment.type === 'link' ? attachment.link : '/api/meetings/' + meeting().uid + '/attachments/' + attachment.uid"
241241
target="_blank"
242242
rel="noopener noreferrer"
243243
class="bg-gray-200 hover:bg-gray-300 rounded px-3 py-2 flex items-center gap-3 min-w-[180px] transition-colors cursor-pointer"
244244
[attr.data-testid]="'meeting-attachment-' + i">
245-
<!-- File Icon -->
246-
<i [class]="(attachment.mime_type || '' | fileTypeIcon) + ' text-3xl text-black'"></i>
247-
248-
<!-- File Name -->
245+
<!-- Icon - File or Link -->
246+
@if (attachment.type === 'link') {
247+
<i class="fa-light fa-arrow-up-right-from-square text-3xl text-black w-8 flex-shrink-0"></i>
248+
} @else {
249+
<i [class]="(attachment.mime_type || '' | fileTypeIcon) + ' text-3xl text-black w-8 flex-shrink-0'"></i>
250+
}
251+
252+
<!-- Attachment Name -->
249253
<span class="text-sm text-neutral-950 overflow-ellipsis overflow-hidden whitespace-nowrap flex-1 font-sans">{{ attachment.name }}</span>
250254
</a>
251255
}
@@ -272,7 +276,7 @@ <h3 class="text-gray-600 text-sm font-normal">Resources</h3>
272276

273277
<div class="bg-[#f8fbff] border-[0.5px] border-[#009aff] border-solid rounded-[4px] p-[12px] flex items-center gap-3">
274278
<!-- Avatar -->
275-
<div class="w-12 h-12 bg-blue-600 rounded-full flex items-center justify-center">
279+
<div class="hidden md:flex w-12 h-12 bg-blue-600 rounded-full items-center justify-center">
276280
<span class="text-white text-2xl font-medium">{{ (user.name || 'User').substring(0, 2).toUpperCase() }}</span>
277281
</div>
278282

@@ -287,7 +291,7 @@ <h3 class="text-gray-600 text-sm font-normal">Resources</h3>
287291
<!-- Signed Out State -->
288292
<div class="flex flex-col gap-6">
289293
<!-- Sign In CTA -->
290-
<div class="bg-blue-50 border border-blue-500/50 rounded px-3 py-2 flex items-center justify-between gap-3">
294+
<div class="bg-blue-50 border border-blue-500/50 rounded px-3 py-2 flex flex-wrap items-center justify-between gap-3">
291295
<div class="flex items-center gap-3">
292296
<i class="fa-light fa-arrow-right-to-bracket text-blue-600 text-2xl"></i>
293297
<div>
@@ -296,7 +300,14 @@ <h3 class="text-gray-600 text-sm font-normal">Resources</h3>
296300
</div>
297301
</div>
298302

299-
<lfx-button size="small" label="Sign In" icon="fa-light fa-arrow-right-to-bracket" severity="info" [href]="'/login?returnTo=' + returnTo()">
303+
<lfx-button
304+
class="w-full md:w-auto"
305+
styleClass="w-full md:w-auto"
306+
size="small"
307+
label="Sign In"
308+
icon="fa-light fa-arrow-right-to-bracket"
309+
severity="info"
310+
[href]="'/login?returnTo=' + returnTo()">
300311
</lfx-button>
301312
</div>
302313

@@ -311,7 +322,7 @@ <h3 class="text-gray-600 text-sm font-normal">Resources</h3>
311322

312323
<form [formGroup]="joinForm" class="flex flex-col gap-4">
313324
<!-- Name + Email Row -->
314-
<div class="flex gap-4">
325+
<div class="flex flex-col md:flex-row gap-4">
315326
<div class="flex-1">
316327
<label class="flex items-center gap-1 text-xs text-blue-900 mb-2">
317328
<i class="fa-light fa-user text-gray-600"></i>
@@ -363,8 +374,10 @@ <h3 class="text-gray-600 text-sm font-normal">Resources</h3>
363374
</div>
364375

365376
<!-- Submit Button -->
366-
<div class="flex justify-end">
377+
<div class="flex justify-end md:justify-center">
367378
<lfx-button
379+
class="w-full md:w-auto"
380+
styleClass="w-full md:w-auto"
368381
size="small"
369382
label="Join Meeting"
370383
icon="fa-light fa-arrow-right-to-bracket"

apps/lfx-one/src/app/modules/meetings/meeting-join/meeting-join.component.ts

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,7 @@ import { MeetingRegistrantsComponent } from '@components/meeting-registrants/mee
1818
import { MeetingRsvpDetailsComponent } from '@components/meeting-rsvp-details/meeting-rsvp-details.component';
1919
import { RsvpButtonGroupComponent } from '@components/rsvp-button-group/rsvp-button-group.component';
2020
import { environment } from '@environments/environment';
21-
import {
22-
canJoinMeeting,
23-
extractUrlsWithDomains,
24-
getCurrentOrNextOccurrence,
25-
Meeting,
26-
MeetingAttachment,
27-
MeetingOccurrence,
28-
Project,
29-
User,
30-
} from '@lfx-one/shared';
21+
import { canJoinMeeting, getCurrentOrNextOccurrence, Meeting, MeetingAttachment, MeetingOccurrence, Project, User } from '@lfx-one/shared';
3122
import { FileTypeIconPipe } from '@pipes/file-type-icon.pipe';
3223
import { MeetingTimePipe } from '@pipes/meeting-time.pipe';
3324
import { MeetingService } from '@services/meeting.service';
@@ -78,7 +69,6 @@ export class MeetingJoinComponent {
7869
public meeting: Signal<Meeting & { project: Project }>;
7970
public currentOccurrence: Signal<MeetingOccurrence | null>;
8071
public meetingTypeBadge: Signal<{ badgeClass: string; icon?: string; text: string } | null>;
81-
public importantLinks: Signal<{ url: string; domain: string }[]>;
8272
public returnTo: Signal<string | undefined>;
8373
public password: WritableSignal<string | null> = signal<string | null>(null);
8474
public canJoinMeeting: Signal<boolean>;
@@ -103,7 +93,6 @@ export class MeetingJoinComponent {
10393
this.joinForm = this.initializeJoinForm();
10494
this.formValues = this.initializeFormValues();
10595
this.meetingTypeBadge = this.initializeMeetingTypeBadge();
106-
this.importantLinks = this.initializeImportantLinks();
10796
this.returnTo = this.initializeReturnTo();
10897
this.canJoinMeeting = this.initializeCanJoinMeeting();
10998
this.fetchedJoinUrl = this.initializeFetchedJoinUrl();
@@ -268,20 +257,6 @@ export class MeetingJoinComponent {
268257
});
269258
}
270259

271-
private initializeImportantLinks(): Signal<{ url: string; domain: string }[]> {
272-
return computed(() => {
273-
const meeting = this.meeting();
274-
const currentOccurrence = this.currentOccurrence();
275-
276-
// Use current occurrence description if available, otherwise fallback to meeting description
277-
const description = currentOccurrence?.description || meeting?.description;
278-
if (!description) {
279-
return [];
280-
}
281-
return extractUrlsWithDomains(description);
282-
});
283-
}
284-
285260
private initializeReturnTo(): Signal<string | undefined> {
286261
return computed(() => {
287262
return `${environment.urls.home}/meetings/${this.meeting().uid}?password=${this.password()}`;

apps/lfx-one/src/app/modules/project/committees/components/upcoming-committee-meeting/upcoming-committee-meeting.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<a
88
[routerLink]="['/project', project()?.slug, 'meetings', upcomingMeeting()!.uid]"
99
class="text-sm font-medium text-primary hover:text-primary-600 hover:underline line-clamp-2"
10-
[title]="upcomingMeeting()!.title || 'Meeting'">
10+
[pTooltip]="upcomingMeeting()!.title || 'Meeting'">
1111
{{ upcomingMeeting()!.title || 'Meeting' }}
1212
</a>
1313
</div>

apps/lfx-one/src/app/modules/project/dashboard/project-dashboard/project.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ <h3 class="text-sm font-display text-gray-500">Upcoming Meetings</h3>
183183
<ng-template #body let-row>
184184
<tr>
185185
<td class="w-1/2 max-w-0">
186-
<a class="block truncate text-sm" [title]="row.title" [routerLink]="[row.url]" [relativeTo]="activatedRoute">{{ row.title }}</a>
186+
<a class="block truncate text-sm" [pTooltip]="row.title" [routerLink]="[row.url]" [relativeTo]="activatedRoute">{{ row.title }}</a>
187187
</td>
188188
<td class="w-1/2">
189189
<div class="flex justify-end whitespace-nowrap">
@@ -242,7 +242,7 @@ <h3 class="text-sm font-display text-gray-500">Recently Updated Committees</h3>
242242
<ng-template #body let-row>
243243
<tr>
244244
<td class="w-1/2 max-w-0">
245-
<a class="block truncate text-sm" [title]="row.title" [routerLink]="row.url">{{ row.title }}</a>
245+
<a class="block truncate text-sm" [pTooltip]="row.title" [routerLink]="row.url">{{ row.title }}</a>
246246
</td>
247247
<td class="w-1/2">
248248
<div class="flex justify-end whitespace-nowrap">

apps/lfx-one/src/app/modules/project/meetings/components/meeting-manage/meeting-manage.component.html

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,11 @@ <h1 class="text-xl font-semibold text-slate-900" data-testid="meeting-manage-tit
5555
[existingAttachments]="attachments()"
5656
[isEditMode]="isEditMode()"
5757
[deletingAttachmentId]="deletingAttachmentId()"
58+
[pendingAttachmentDeletions]="pendingAttachmentDeletions()"
5859
(goToStep)="goToStep($event)"
59-
(deleteAttachment)="deleteAttachment($event)">
60+
(deleteAttachment)="deleteAttachment($event)"
61+
(undoDeleteAttachment)="undoDeleteAttachment($event)"
62+
(deleteLinkAttachment)="deleteLinkAttachment($event)">
6063
</lfx-meeting-resources-summary>
6164
</ng-template>
6265
</p-step-panel>
@@ -114,8 +117,10 @@ <h2 class="text-lg font-semibold text-slate-900 mb-4">Resources & Summary</h2>
114117
[existingAttachments]="attachments()"
115118
[isEditMode]="isEditMode()"
116119
[deletingAttachmentId]="deletingAttachmentId()"
120+
[pendingAttachmentDeletions]="pendingAttachmentDeletions()"
117121
(goToStep)="goToStep($event)"
118-
(deleteAttachment)="deleteAttachment($event)">
122+
(deleteAttachment)="deleteAttachment($event)"
123+
(undoDeleteAttachment)="undoDeleteAttachment($event)">
119124
</lfx-meeting-resources-summary>
120125
</div>
121126
</div>

0 commit comments

Comments
 (0)