Skip to content

Commit 6ba9114

Browse files
authored
fix(agenda-neue): responsive UI fixes + no materials warning icon (ietf-tools#4229)
* fix: agenda-neue - go to current meeting in URL if not provided * fix: agenda neue - various responsive UI fixes + no materials icon
1 parent 0038151 commit 6ba9114

4 files changed

Lines changed: 80 additions & 17 deletions

File tree

.devcontainer/devcontainer.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,17 @@
8888
"forwardPorts": [8000, 3306],
8989

9090
"portsAttributes": {
91-
"8000": {
92-
"label": "Datatracker",
93-
"onAutoForward": "notify"
91+
"3000": {
92+
"label": "Vite",
93+
"onAutoForward": "silent"
9494
},
9595
"3306": {
9696
"label": "MariaDB",
9797
"onAutoForward": "silent"
98+
},
99+
"8000": {
100+
"label": "Datatracker",
101+
"onAutoForward": "notify"
98102
}
99103
},
100104

client/agenda/Agenda.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@
140140

141141
<script setup>
142142
import { computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'
143+
import { useRoute, useRouter } from 'vue-router'
143144
import { DateTime } from 'luxon'
144145
import debounce from 'lodash/debounce'
145146
@@ -172,6 +173,11 @@ const message = useMessage()
172173
173174
const agendaStore = useAgendaStore()
174175
176+
// ROUTER
177+
178+
const router = useRouter()
179+
const route = useRoute()
180+
175181
// DATA
176182
177183
const state = reactive({
@@ -335,6 +341,12 @@ onBeforeUnmount(() => {
335341
// MOUNTED
336342
337343
onMounted(() => {
344+
// -> Go to current meeting if not provided
345+
if (!route.params.meetingNumber && agendaStore.meeting.number) {
346+
router.replace({ params: { meetingNumber: agendaStore.meeting.number } })
347+
}
348+
349+
// -> Hide Loading Screen
338350
agendaStore.hideLoadingScreen()
339351
})
340352

client/agenda/AgendaScheduleList.vue

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,13 @@
121121
template(#trigger)
122122
i.bi.bi-collection(@click='showMaterials(item.key)')
123123
span Show meeting materials
124+
template(v-else-if='item.type === `regular`')
125+
n-popover
126+
template(#trigger)
127+
i.no-meeting-materials
128+
i.bi.bi-clipboard-x
129+
i.bi.bi-exclamation-triangle-fill.ms-1
130+
span No meeting materials yet.
124131
n-popover(v-for='lnk of item.links', :key='lnk.id')
125132
template(#trigger)
126133
a(
@@ -219,7 +226,7 @@ const meetingEvents = computed(() => {
219226
220227
return reduce(sortBy(agendaStore.scheduleAdjusted, 'adjustedStartDate'), (acc, item) => {
221228
const isLive = current >= item.adjustedStart && current < item.adjustedEnd
222-
const itemTimeSlot = agendaStore.viewport > 600 ?
229+
const itemTimeSlot = agendaStore.viewport > 576 ?
223230
`${item.adjustedStart.toFormat('HH:mm')} - ${item.adjustedEnd.toFormat('HH:mm')}` :
224231
`${item.adjustedStart.toFormat('HH:mm')} ${item.adjustedEnd.toFormat('HH:mm')}`
225232
@@ -656,7 +663,7 @@ onBeforeUnmount(() => {
656663
font-weight: 600;
657664
border-right: 1px solid #FFF;
658665
659-
@media screen and (max-width: $bs5-break-sm) {
666+
@media screen and (max-width: $bs5-break-md) {
660667
font-size: .8em;
661668
padding: 0 6px;
662669
}
@@ -675,14 +682,14 @@ onBeforeUnmount(() => {
675682
width: 100px;
676683
}
677684
678-
@media screen and (max-width: $bs5-break-sm) {
685+
@media screen and (max-width: $bs5-break-md) {
679686
width: 30px;
680687
}
681688
}
682689
&.agenda-table-head-location {
683690
width: 250px;
684691
685-
@media screen and (max-width: $bs5-break-sm) {
692+
@media screen and (max-width: $bs5-break-md) {
686693
width: auto;
687694
}
688695
}
@@ -730,7 +737,7 @@ onBeforeUnmount(() => {
730737
font-weight: 600;
731738
scroll-margin-top: 25px;
732739
733-
@media screen and (max-width: $bs5-break-sm) {
740+
@media screen and (max-width: $bs5-break-md) {
734741
font-size: .9em;
735742
}
736743
}
@@ -742,7 +749,7 @@ onBeforeUnmount(() => {
742749
padding: 0 12px;
743750
color: #333;
744751
745-
@media screen and (max-width: $bs5-break-sm) {
752+
@media screen and (max-width: $bs5-break-md) {
746753
padding: 0 6px;
747754
}
748755
@@ -755,7 +762,7 @@ onBeforeUnmount(() => {
755762
color: $blue-700;
756763
font-weight: 600;
757764
758-
@media screen and (max-width: $bs5-break-sm) {
765+
@media screen and (max-width: $bs5-break-md) {
759766
font-size: .9em;
760767
}
761768
}
@@ -766,7 +773,7 @@ onBeforeUnmount(() => {
766773
padding: 0 12px;
767774
color: #333;
768775
769-
@media screen and (max-width: $bs5-break-sm) {
776+
@media screen and (max-width: $bs5-break-md) {
770777
padding: 2px 6px;
771778
}
772779
@@ -794,7 +801,7 @@ onBeforeUnmount(() => {
794801
font-size: .85rem;
795802
}
796803
797-
@media screen and (max-width: $bs5-break-sm) {
804+
@media screen and (max-width: $bs5-break-md) {
798805
white-space: initial;
799806
word-wrap: break-word;
800807
max-width: 70px;
@@ -822,7 +829,7 @@ onBeforeUnmount(() => {
822829
border-bottom-left-radius: 0;
823830
margin-right: 6px;
824831
825-
@media screen and (max-width: $bs5-break-sm) {
832+
@media screen and (max-width: $bs5-break-md) {
826833
display: none;
827834
}
828835
}
@@ -833,7 +840,7 @@ onBeforeUnmount(() => {
833840
border-right: 1px solid $gray-300 !important;
834841
white-space: nowrap;
835842
836-
@media screen and (max-width: $bs5-break-sm) {
843+
@media screen and (max-width: $bs5-break-md) {
837844
font-size: .7rem;
838845
word-break: break-all;
839846
}
@@ -863,17 +870,25 @@ onBeforeUnmount(() => {
863870
}
864871
865872
&.agenda-table-cell-name {
866-
@media screen and (max-width: $bs5-break-sm) {
873+
@media screen and (max-width: $bs5-break-md) {
867874
font-size: .7rem;
875+
word-break: break-word;
876+
word-wrap: break-word;
868877
}
869878
870879
.badge.is-bof {
871880
background-color: $teal-500;
872881
margin: 0 8px;
882+
883+
@media screen and (max-width: $bs5-break-md) {
884+
width: 30px;
885+
display: block;
886+
margin: 2px 0 0 0;
887+
}
873888
}
874889
875890
> .bi {
876-
@media screen and (max-width: $bs5-break-sm) {
891+
@media screen and (max-width: $bs5-break-md) {
877892
display: none;
878893
}
879894
@@ -991,6 +1006,14 @@ onBeforeUnmount(() => {
9911006
background-color: rgba($teal-400, .3);
9921007
}
9931008
}
1009+
&.no-meeting-materials {
1010+
background-color: $red-400;
1011+
color: #FFF;
1012+
1013+
> i:nth-child(2) {
1014+
color: $red-100;
1015+
}
1016+
}
9941017
}
9951018
}
9961019
}
@@ -1009,6 +1032,10 @@ onBeforeUnmount(() => {
10091032
font-size: .9rem;
10101033
}
10111034
1035+
@media screen and (max-width: $bs5-break-md) {
1036+
font-size: .8rem;
1037+
}
1038+
10121039
@media screen and (max-width: $bs5-break-sm) {
10131040
white-space: initial;
10141041
font-size: .7rem;
@@ -1271,4 +1298,13 @@ onBeforeUnmount(() => {
12711298
}
12721299
}
12731300
1301+
@keyframes fadeInAnim {
1302+
0% {
1303+
opacity: 0;
1304+
}
1305+
100% {
1306+
opacity: 1;
1307+
}
1308+
}
1309+
12741310
</style>

client/agenda/FloorPlan.vue

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ import { computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch }
5757
import find from 'lodash/find'
5858
import xslugify from '../shared/xslugify'
5959
import { DateTime } from 'luxon'
60-
import { useRoute } from 'vue-router'
60+
import { useRoute, useRouter } from 'vue-router'
6161
import { useAgendaStore } from './store'
6262
6363
import MeetingNavigation from './MeetingNavigation.vue'
@@ -68,6 +68,7 @@ const agendaStore = useAgendaStore()
6868
6969
// ROUTER
7070
71+
const router = useRouter()
7172
const route = useRoute()
7273
7374
// STATE
@@ -205,10 +206,20 @@ onBeforeUnmount(() => {
205206
// MOUNTED
206207
207208
onMounted(() => {
209+
// -> Go to current meeting if not provided
210+
if (!route.params.meetingNumber && agendaStore.meeting.number) {
211+
router.replace({ params: { meetingNumber: agendaStore.meeting.number } })
212+
}
213+
214+
// -> Hide Loading Screen
208215
agendaStore.hideLoadingScreen()
216+
217+
// -> Set Current Floor
209218
if (agendaStore.floors?.length > 0) {
210219
state.currentFloor = agendaStore.floors[0].id
211220
}
221+
222+
// -> Go to requested room
212223
if (route.query.room) {
213224
state.desiredRoom = route.query.room
214225
handleDesiredRoom()

0 commit comments

Comments
 (0)