From 100a0534cbeafb55f3e600256baca81606a049c3 Mon Sep 17 00:00:00 2001 From: Nicolas Giard Date: Tue, 8 Nov 2022 10:53:08 -0500 Subject: [PATCH] fix: agenda mobile dropdown links + footer padding + tz start/end date --- client/agenda/Agenda.vue | 14 ++++++++++++-- client/agenda/AgendaScheduleList.vue | 6 +++++- ietf/templates/meeting/agenda.html | 7 +++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/client/agenda/Agenda.vue b/client/agenda/Agenda.vue index 05095782f..27f5e071f 100644 --- a/client/agenda/Agenda.vue +++ b/client/agenda/Agenda.vue @@ -298,8 +298,18 @@ const titleExtra = computed(() => { return title }) const meetingDate = computed(() => { - const start = DateTime.fromISO(agendaStore.meeting.startDate, { zone: agendaStore.meeting.timezone }).setZone(agendaStore.timezone) - const end = DateTime.fromISO(agendaStore.meeting.endDate, { zone: agendaStore.meeting.timezone }).setZone(agendaStore.timezone) + // Adjust to first meeting start time (to ensure proper start date when switching timezones) + const firstEventStartTime = { hour: 0, minute: 0 } + if (agendaStore.schedule.length > 0) { + const evStartObj = DateTime.fromISO(agendaStore.schedule[0].startDateTime, { zone: agendaStore.meeting.timezone }).toObject() + firstEventStartTime.hour = evStartObj.hour + firstEventStartTime.minute = evStartObj.minute + } + + // Adjust start and end dates for current timezone + const start = DateTime.fromISO(agendaStore.meeting.startDate, { zone: agendaStore.meeting.timezone }).set(firstEventStartTime).setZone(agendaStore.timezone) + const end = DateTime.fromISO(agendaStore.meeting.endDate, { zone: agendaStore.meeting.timezone }).set({ hour: 23, minute: 59}).setZone(agendaStore.timezone) + if (start.month === end.month) { return `${start.toFormat('MMMM d')} - ${end.toFormat('d, y')}` } else { diff --git a/client/agenda/AgendaScheduleList.vue b/client/agenda/AgendaScheduleList.vue index 64c6eabc0..57940e63d 100644 --- a/client/agenda/AgendaScheduleList.vue +++ b/client/agenda/AgendaScheduleList.vue @@ -112,7 +112,7 @@ :options='item.links' key-field='id' :render-icon='renderLinkIcon' - @select='goToSessionLink' + :render-label='renderLinkLabel' ) n-button(size='tiny') i.bi.bi-three-dots @@ -557,6 +557,10 @@ function renderLinkIcon (opt) { return h('i', { class: `bi bi-${opt.icon} text-${opt.color}` }) } +function renderLinkLabel (opt) { + return h('a', { href: opt.href, target: '_blank' }, opt.label) +} + function recalculateRedLine () { state.currentMinute = DateTime.local().minute const lastEventId = agendaStore.findCurrentEventId() diff --git a/ietf/templates/meeting/agenda.html b/ietf/templates/meeting/agenda.html index 98f45aa38..090b49119 100644 --- a/ietf/templates/meeting/agenda.html +++ b/ietf/templates/meeting/agenda.html @@ -20,6 +20,13 @@ body { font-family: 'Montserrat', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; } +/* Avoid hiding the page footer when on mobile with the footer toolbar overlay */ +@media screen and (max-width: 992px) { + body { + padding-bottom: 50px; + } +} + @keyframes initspinner { to { transform: rotate(360deg); } }