* test: agenda-neue - separate timezone controls assertions to allow retries * test: agenda-neue - use dom query selectors instead of first() / eq() * test: agenda-neue - playwright * test: fix playwright setup for ci * test: playwright - remove safari + fix timezone local * test: upload playwright report * test: playwright - fix trace upload * test * test: playwright - agenda search * test: fix startdate timezone * test: playwright - agenda table events * test: playwright - remove only filter * test: remove exit early flag * test: allow longer tests * test: agenda materials dialog * test: agenda filter by area/group * test: agenda calendar view * test: agenda settings * test: jump to day * test: fix agenda jump to day timezone parse * test: increase test timeout * test: remove fail fast * test: test sharding + increase delay * test: fixes * test: use macos image * test: fixes * test: agenda color assign + future + live meeting tests * test: agenda mobile tests * test: remainder of tests for playwright + optimizations * test: red line intersection accept close value * test: add delay for agenda search tests * chore: cleanup old tests + adapt build workflow * ci: fix build workflow * ci: fix build workflow order * fix: point to playwright floor plan images + readme
126 lines
2.7 KiB
Vue
126 lines
2.7 KiB
Vue
<template lang="pug">
|
|
n-theme
|
|
n-message-provider
|
|
.app-error(v-if='agendaStore.criticalError')
|
|
i.bi.bi-x-octagon-fill.me-2
|
|
span {{agendaStore.criticalError}}
|
|
.app-container(ref='appContainer')
|
|
router-view.meeting
|
|
</template>
|
|
|
|
<script setup>
|
|
import { onBeforeUnmount ,onMounted, ref } from 'vue'
|
|
import { NMessageProvider } from 'naive-ui'
|
|
|
|
import { useAgendaStore } from './agenda/store'
|
|
|
|
import NTheme from './components/n-theme.vue'
|
|
|
|
// STORES
|
|
|
|
const agendaStore = useAgendaStore()
|
|
|
|
// STATE
|
|
|
|
const appContainer = ref(null)
|
|
|
|
// --------------------------------------------------------------------
|
|
// Handle browser resize
|
|
// --------------------------------------------------------------------
|
|
|
|
const resizeObserver = new ResizeObserver(entries => {
|
|
agendaStore.$patch({ viewport: Math.round(window.innerWidth) })
|
|
// for (const entry of entries) {
|
|
// const newWidth = entry.contentBoxSize ? entry.contentBoxSize[0].inlineSize : entry.contentRect.width
|
|
// }
|
|
})
|
|
|
|
onMounted(() => {
|
|
resizeObserver.observe(appContainer.value, { box: 'device-pixel-content-box' })
|
|
})
|
|
|
|
onBeforeUnmount(() => {
|
|
resizeObserver.unobserve(appContainer.value)
|
|
})
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
@import "bootstrap/scss/functions";
|
|
@import "bootstrap/scss/variables";
|
|
@import "./shared/breakpoints";
|
|
|
|
.app-error {
|
|
background-color: $red-500;
|
|
border-radius: 5px;
|
|
color: #FFF;
|
|
font-weight: 500;
|
|
padding: 1rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.meeting {
|
|
> h1 {
|
|
font-weight: 500;
|
|
color: $gray-700;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
|
|
@media screen and (max-width: $bs5-break-sm) {
|
|
justify-content: center;
|
|
|
|
> span {
|
|
font-size: .95em;
|
|
}
|
|
}
|
|
|
|
strong {
|
|
font-weight: 700;
|
|
background: linear-gradient(220deg, $blue-500 20%, $purple-500 70%);
|
|
background-clip: text;
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
box-decoration-break: clone;
|
|
}
|
|
}
|
|
|
|
&-h1-badges {
|
|
display: flex;
|
|
justify-content: end;
|
|
align-items: center;
|
|
|
|
> span {
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
background-color: $pink-500;
|
|
box-shadow: 0 0 5px 0 rgba($pink-500, .5);
|
|
color: #FFF;
|
|
padding: 5px 8px;
|
|
border-radius: 6px;
|
|
|
|
& + span {
|
|
margin-left: 10px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&-warning {
|
|
background-color: $red-500 !important;
|
|
box-shadow: 0 0 5px 0 rgba($red-500, .5) !important;
|
|
color: #FFF;
|
|
animation: warningBorderFlash 1s ease infinite;
|
|
}
|
|
|
|
> h4 {
|
|
@media screen and (max-width: $bs5-break-sm) {
|
|
text-align: center;
|
|
|
|
> span {
|
|
font-size: .8em;
|
|
text-align: center;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|