diff --git a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte index 6a8a7312..ea204358 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte @@ -258,7 +258,7 @@ { modal__open_event_file_id = event_file_id; modal__event_file_obj = event_file_obj; diff --git a/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte b/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte index 194be093..3c5ae461 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte @@ -16,6 +16,8 @@ import Launcher_presentation_view from './launcher_presentation_view.svelte'; import Launcher_presenter_view from './launcher_presenter_view.svelte'; import Launcher_presenter_view_posters from './launcher_presenter_view_posters.svelte'; + // WHY: Poster sessions get a dedicated card-grid view optimised for touch/PWA use. + import Launcher_session_view_posters from './launcher_session_view_posters.svelte'; import { liveQuery } from 'dexie'; // import { core_func } from '$lib/ae_core_functions'; @@ -163,6 +165,10 @@ {/if} {#if $lq__event_session_obj && $lq__event_session_obj.event_session_id} + {#if type_code === 'poster'} + + + {:else} {:else} No session selected diff --git a/src/routes/events/[event_id]/(launcher)/launcher_session_view_posters.svelte b/src/routes/events/[event_id]/(launcher)/launcher_session_view_posters.svelte new file mode 100644 index 00000000..39b64008 --- /dev/null +++ b/src/routes/events/[event_id]/(launcher)/launcher_session_view_posters.svelte @@ -0,0 +1,366 @@ + + + +
+ + {#if $events_sess.launcher?.loading__session_id_status} + + + Loading... + + {/if} + + {#if $lq__event_session_obj && $lq__event_session_obj.event_session_id} + + +
+

+ + {$lq__event_session_obj.name} +

+ + + + {#if poster_count > 0} + + {poster_count}× + + {/if} + + + {#if $lq__event_session_obj.code} + + {$lq__event_session_obj.code} + + {/if} + +
+ + + {#if $lq__event_file_obj_li && $lq__event_file_obj_li.length} +
+

+ Session Resources: +

+
    + {#each $lq__event_file_obj_li as event_file_obj (event_file_obj.event_file_id)} +
  • + +
  • + {/each} +
+
+ {/if} + + + {#if $lq__event_presentation_obj_li === undefined} + +
+ + Loading posters… +
+ + {:else if $lq__event_presentation_obj_li.length === 0} + +
+ +

No posters in this session yet.

+
+ + {:else} + +
    + {#each $lq__event_presentation_obj_li as presentation, i (presentation.event_presentation_id)} + {@const presenters_for_this = ( + $lq__event_presenter_obj_li ?? [] + ).filter( + (p) => + p.event_presentation_id === + presentation.event_presentation_id + )} + + +
  • + + + {presentation.code || '#' + (i + 1)} + + + +

    + {presentation.name} +

    + + + {#if presenters_for_this.length} +
    + {#each presenters_for_this as presenter (presenter.event_presenter_id)} +

    + {#if presenter.given_name && presenter.given_name !== 'Group'} + + {presenter.full_name} + {#if presenter.affiliations} + + — {presenter.affiliations} + + {/if} + {:else if presenter.given_name === 'Group'} + + {presenter.affiliations} + {:else} + + {/if} +

    + {/each} +
    + {/if} + + +
    + + + + + {#each presenters_for_this as presenter (presenter.event_presenter_id)} + + {/each} +
    +
  • + {/each} +
+ {/if} + + {:else} + +
+ + No session selected +
+ {/if} +