@@ -29,32 +29,40 @@ <h1>{{trackName | trackName : 'plural'}}</h1>
2929 </ ion-button >
3030 </ div >
3131
32- <!-- Regular sessions display -->
33- < ion-list *ngIf ="!isOpenSpaceView ">
34- < ion-item *ngFor ="let session of displaySessions " [hidden] ="session.hide " detail ="true " routerLink ="/app/tabs/schedule/session/{{session.id}} " [attr.track] ="session.track | lowercase " class ="session-list-item ">
35- < ion-label >
36- < h2 class ="session-name ">
37- < ion-icon *ngIf ="session.favorite " name ="star " color ="warning " style ="font-size: 0.85em; margin-right: 4px; "> </ ion-icon >
38- {{session.name}}
39- </ h2 >
40- < div class ="session-badges ">
41- < span class ="track-badge " [attr.data-track] ="session.track | lowercase "> {{session.track | trackName}}</ span >
42- < span *ngIf ="session?.isSpanish " class ="track-badge spanish-badge "> En Español</ span >
43- < span *ngIf ="session?.preRegistered " class ="track-badge prereg-badge "> Pre-registration required</ span >
44- </ div >
45- < p class ="session-meta ">
46- < span class ="meta-item "> < ion-icon name ="time-outline "> </ ion-icon > {{session.day}} {{session.timeStart}} – {{session.timeEnd}}</ span >
47- < span *ngIf ="session.displayLocation || session.location " class ="meta-item "> < ion-icon name ="location-outline "> </ ion-icon > {{session.displayLocation || session.location}}</ span >
48- </ p >
49- < div *ngIf ="session.speakers?.length " class ="speaker-avatars ">
50- < ion-avatar *ngFor ="let speaker of session.speakers " class ="speaker-avatar-small ">
51- < img [src] ="speaker.profilePic " [alt] ="speaker.name ">
52- </ ion-avatar >
53- < span class ="speaker-names "> {{session.speakerNames.join(', ')}}</ span >
54- </ div >
55- </ ion-label >
56- </ ion-item >
57- </ ion-list >
32+ <!-- Regular sessions display, grouped by conference day -->
33+ < div *ngIf ="!isOpenSpaceView ">
34+ < div *ngFor ="let day of visibleDays ">
35+ < ion-item-divider *ngIf ="sessionsByDay[day]?.length > 0 " class ="day-header ">
36+ < ion-label > {{ dayLabel(day) }}</ ion-label >
37+ </ ion-item-divider >
38+
39+ < ion-list *ngIf ="sessionsByDay[day]?.length > 0 " lines ="full ">
40+ < ion-item *ngFor ="let session of sessionsByDay[day] " [hidden] ="session.hide " detail ="true " routerLink ="/app/tabs/schedule/session/{{session.id}} " [attr.track] ="session.track | lowercase " class ="session-list-item ">
41+ < ion-label >
42+ < h2 class ="session-name ">
43+ < ion-icon *ngIf ="session.favorite " name ="star " color ="warning " style ="font-size: 0.85em; margin-right: 4px; "> </ ion-icon >
44+ {{session.name}}
45+ </ h2 >
46+ < div class ="session-badges ">
47+ < span class ="track-badge " [attr.data-track] ="session.track | lowercase "> {{session.track | trackName}}</ span >
48+ < span *ngIf ="session?.isSpanish " class ="track-badge spanish-badge "> En Español</ span >
49+ < span *ngIf ="session?.preRegistered " class ="track-badge prereg-badge "> Pre-registration required</ span >
50+ </ div >
51+ < p class ="session-meta ">
52+ < span class ="meta-item "> < ion-icon name ="time-outline "> </ ion-icon > {{session.timeStart}} – {{session.timeEnd}}</ span >
53+ < span *ngIf ="session.displayLocation || session.location " class ="meta-item "> < ion-icon name ="location-outline "> </ ion-icon > {{session.displayLocation || session.location}}</ span >
54+ </ p >
55+ < div *ngIf ="session.speakers?.length " class ="speaker-avatars ">
56+ < ion-avatar *ngFor ="let speaker of session.speakers " class ="speaker-avatar-small ">
57+ < img [src] ="speaker.profilePic " [alt] ="speaker.name ">
58+ </ ion-avatar >
59+ < span class ="speaker-names "> {{session.speakerNames.join(', ')}}</ span >
60+ </ div >
61+ </ ion-label >
62+ </ ion-item >
63+ </ ion-list >
64+ </ div >
65+ </ div >
5866
5967 < div *ngIf ="isOpenSpaceView " class ="ion-padding-horizontal ">
6068 < p >
0 commit comments