diff --git a/src/lib/Event.svelte b/src/lib/Event.svelte index f87f895..eb5aea0 100644 --- a/src/lib/Event.svelte +++ b/src/lib/Event.svelte @@ -5,6 +5,7 @@ import Tooltip from "$lib/Tooltip.svelte"; import SvelteMarkdown from "svelte-markdown"; import EventTypeLabel from "$lib/EventTypeLabel.svelte"; + import EventSchedule from '$lib/EventSchedule.svelte'; import { bundle, userData } from "$lib/stores.js"; import { calcDuration, addFavorite } from "$lib/events.js"; @@ -14,6 +15,7 @@ $: e = event; $: duration = calcDuration(e, $bundle); $: spoiler = makeSpoiler(e); + $: schedule = $bundle ? $bundle.spec.schedule.find(s => s.event === e.id) : null function makeSpoiler(_e) { if (!_e.description) { @@ -79,6 +81,9 @@
+ {#if schedule} + + {/if} {#if duration}
{duration}m
{/if} {#if e.track}
diff --git a/src/lib/EventSchedule.svelte b/src/lib/EventSchedule.svelte new file mode 100644 index 0000000..e179245 --- /dev/null +++ b/src/lib/EventSchedule.svelte @@ -0,0 +1,14 @@ + + +
{format(start, 'iiiii', { locale: cs }).toUpperCase()} {format(start, 'HH:mm')}-{format(end, 'HH:mm')} ({stage ? stage.name : 'n/a'})
diff --git a/src/lib/header/Header.svelte b/src/lib/header/Header.svelte index 4990f73..b55aa8d 100644 --- a/src/lib/header/Header.svelte +++ b/src/lib/header/Header.svelte @@ -50,6 +50,8 @@ >
+ {:else} +
{/if}
{/if} {#if $page.url.pathname !== '/tv'} - Livestreamy + --> {/if} Program {#if $page.url.pathname !== '/tv'} - Mapa - + + export const prerender = true; + + + + + + Časová osa | UTXO.22 + + +
+

Časová osa

+ {#if $bundle} +
Plán (řešení)
+
+ +
+ {/if} +
+
+ {#if $bundle} +
+
+
Sál / Místo
+
+ + {#each $bundle.spec.stages as et} +
+ + ($schedulePref.stages = [et.id])} + >{et.name} +
+ {/each} +
+
+
+
Kategorie
+
+ + {#each $bundle.spec.tracks as et} +
+ + ($schedulePref.tracks = [et.id])} + > + {et.shortname || et.name} +
+ {/each} +
+
+
+ {#each scheduleTimes($bundle) as st} +
+

+ {format(new Date(st.date), "iiii d.M.y", { locale: cs })} +

+
+
+
+ + + + + {/if} + {/each} + + + + {#each dateSlots(plan, st.period, $bundle, $schedulePref) as ds} + + + {#each activeStages($bundle, $bundle.spec.stages, st.date, plan) as stage} + {#if $schedulePref && $schedulePref.stages.includes(stage.id)} + {#if ds.stages[stage.id] === undefined} + + {/each} + {/if} + {/if} + {/each} + + + {/each} + +
+ {#each activeStages($bundle, $bundle.spec.stages, st.date, plan) as stage} + {#if $schedulePref && $schedulePref.stages.includes(stage.id)} + +
{stage.capacity.seat} + {stage.capacity.stand}
+
{stage.name}
+
{ds.title} + {:else if ds.stages[stage.id] !== null} + {#each [[ds.stages[stage.id], findEvent($bundle, ds.stages[stage.id].event)]] as [si, event]} + +
+
+ {format( + new Date(si.period.start), + "HH:mm" + )}-{format(new Date(si.period.end), "HH:mm")} @{si.id} + {#if event.track}[{#each [$bundle.spec.tracks.find((t) => t.id === event.track)] as track}{track.shortname || + track.name}{/each}]{/if} +
+ +
+ {@html showEventDetail($bundle, event)} +
+
+ {event.tags.map((t) => `#${t}`).join(", ")} +
+
+
+
+
+ {/each} + {:else} + Načítám .. + {/if} +
+ + diff --git a/src/routes/program-candidates.svelte b/src/routes/program-candidates.svelte new file mode 100644 index 0000000..0d3598c --- /dev/null +++ b/src/routes/program-candidates.svelte @@ -0,0 +1,491 @@ + + + + + + Program | UTXO.22 + + +
+
+ {#if $bundle} +
Plán (řešení)
+
+ +
+ {/if} +
+

Program

+ +
+ {#if $bundle} +
+
+
Den
+ {#each allScheduleTimes($bundle) as st} + + {/each} +
+
+
+
+
Sál
+ {#each allStages($bundle) as et} + + + {/each} +
+
+
+ +
+ + + {/if} +
+ +
+
+ {#if $bundle} + {#each scheduleTimes($bundle, $schedulePref.time) as st} +
+

+ {#if st.name} + {st.name} + {:else} + {format(new Date(st.date), "iiii d.M.y", { locale: cs })} + {/if} +

+
+
+
+ + + + + {#each activeStages($bundle, $bundle.spec.stages, st, plan) as stage} + {#if $schedulePref && ($schedulePref.stage === stage.id || $schedulePref.stage === 'all')} + + {/if} + {/each} + + + + {#each dateSlots(plan, st.period, $bundle, $schedulePref) as ds} + + + {#each activeStages($bundle, $bundle.spec.stages, st, plan) as stage} + {#if $schedulePref && ($schedulePref.stage === stage.id || $schedulePref.stage === 'all')} + {#if ds.stages[stage.id] === undefined} + + {/each} + {/if} + {/if} + {/each} + + + {/each} + +
{format(new Date(st.date), "iiiiii", { locale: cs })}
{format(new Date(st.date), "d.M.")}
+
{stage.capacity.seat} + {stage.capacity.stand}
+
{stage.name}
+
{ds.title} + {:else if ds.stages[stage.id] !== null} + {#each [[ds.stages[stage.id], findEvent($bundle, ds.stages[stage.id].event)]] as [si, event]} + +
+
+ {format( + new Date(si.period.start), + "HH:mm" + )}-{format(new Date(si.period.end), "HH:mm")} @{si.id} + {#if event.track}[{#each [$bundle.spec.tracks.find((t) => t.id === event.track)] as track}{track.shortname || + track.name}{/each}]{/if} +
+ +
+ {@html showEventDetail($bundle, event)} +
+
+ {event.tags.map((t) => `#${t}`).join(", ")} +
+ {#if event.description && $schedulePref.showDescriptions} + {#each [makeSpoiler(event)] as spoiler} +
+ + {#if spoiler.stripped} + + {/if} +
+ {/each} + {/if} +
+
+
+
+ {/each} + {:else} + Načítám .. + {/if} +
+ + diff --git a/src/routes/program.svelte b/src/routes/program.svelte index 0d3598c..f5d47df 100644 --- a/src/routes/program.svelte +++ b/src/routes/program.svelte @@ -18,7 +18,7 @@ let stagesArr = null let planNumber = 0; - $: plan = $bundle ? $bundle.spec["schedule-candidates"][planNumber] : null; + $: plan = $bundle ? $bundle.spec.schedule : null; const params = { time: { key: 'time' }, @@ -132,7 +132,7 @@ if (schedulePref && (schedulePref.stage !== stage.id && schedulePref.stage !== 'all')) { continue; } - let si = pl.schedule.find( + let si = pl.find( (pi) => new Date(pi.period.start).getTime() === new Date(time).getTime() && pi.stage === stage.id @@ -214,7 +214,7 @@ function activeStages (bundle, stages, st, pl) { return stages.filter(stage => { - return Boolean(pl.schedule.filter(i => i.stage === stage.id).find(i => isPeriodOverlap(st.period, i.period)) + return Boolean(pl.filter(i => i.stage === stage.id).find(i => isPeriodOverlap(st.period, i.period)) ) }) @@ -282,30 +282,6 @@
-
- {#if $bundle} -
Plán (řešení)
-
- -
- {/if} -

Program

Seznam všech událostí diff --git a/src/routes/seznam-udalosti.svelte b/src/routes/seznam-udalosti.svelte index 2588faa..451da88 100644 --- a/src/routes/seznam-udalosti.svelte +++ b/src/routes/seznam-udalosti.svelte @@ -163,9 +163,8 @@

Program → Seznam událostí

- Program stále připravujeme. Aktuálně finišujeme jeho přípravu a nejpozději ráno v pondělí 30. května zde najdete konkrétní časové rozpisy jednotlivých sálů. Těšíme se na vás! 🙏❤️ - UTXO.22 organizační team + Časový rozpis (program) + | Changelog

-
+ {#if filters.length > 0}
diff --git a/src/routes/tv.svelte b/src/routes/tv.svelte index 7085c59..16da9a7 100644 --- a/src/routes/tv.svelte +++ b/src/routes/tv.svelte @@ -45,7 +45,7 @@ } bundle.subscribe(_bundle => { - events = _bundle.spec['schedule-candidates'][0].schedule + events = _bundle.spec.schedule cachedBundle = _bundle genStatus(cachedBundle) }) diff --git a/src/routes/udalosti.svelte b/src/routes/udalosti.svelte index bcbcd7a..cd8fa43 100644 --- a/src/routes/udalosti.svelte +++ b/src/routes/udalosti.svelte @@ -15,6 +15,7 @@ import SvelteMarkdown from "svelte-markdown"; import Link from "$lib/Link.svelte"; import Paragraph from "$lib/Paragraph.svelte"; + import EventSchedule from '$lib/EventSchedule.svelte'; const renderers = { link: Link, paragraph: Paragraph }; @@ -23,6 +24,8 @@ $: duration = e ? calcDuration(e, $bundle) : null; $: childrens = e ? $bundle.spec.events.filter((i) => i.parent === e.id) : [] + $: schedule = $bundle ? $bundle.spec.schedule.find(s => s.event === id) : null + function getId(search) { const searchParams = new URLSearchParams(search); const cid = searchParams.get("id"); @@ -60,6 +63,9 @@
+ {#if schedule} + + {/if} {#if duration}
{duration}m
{/if} diff --git a/src/routes/vstupenky.svelte b/src/routes/vstupenky.svelte index de61471..0a92a33 100644 --- a/src/routes/vstupenky.svelte +++ b/src/routes/vstupenky.svelte @@ -637,7 +637,9 @@ Platební metoda: {$apiStatus.config.paymentMethods.find( (pm) => pm.id === order.paymentMethod - ).shortname} pm.id === order.paymentMethod + ).shortname : 'null (?)'}
@@ -947,7 +949,11 @@
Platební metoda
+ {#if $apiStatus.config.paymentMethods.find(pm => pm.id === 'btcpay') && ($apiStatus.config.paymentMethods.find(pm => pm.id === 'btcpay').hidden = true)} +
Platba pomocí BTC není dočasně k dispozici, zkuste to prosím později. Omlouváme se :(
+ {/if} {#each $apiStatus.config.paymentMethods as pm} + {#if !pm.hidden}
+ {/if} {/each}