POC sign is mostly working now
This commit is contained in:
@@ -208,6 +208,41 @@ async function handle_load_ae_obj_li__event_file(
|
||||
}
|
||||
|
||||
|
||||
// Updated 2024-06-17
|
||||
async function handle_delete_ae_obj_id__event_file(
|
||||
{
|
||||
api_cfg,
|
||||
event_file_id,
|
||||
params={},
|
||||
log_lvl=0
|
||||
} : {
|
||||
api_cfg: any,
|
||||
event_file_id: string,
|
||||
params?: key_val,
|
||||
log_lvl?: number
|
||||
}
|
||||
) {
|
||||
console.log(`*** handle_delete_ae_obj_id__event_file() *** event_file_id=${event_file_id}`);
|
||||
|
||||
const endpoint = `/event/file/${event_file_id}/v2`;
|
||||
|
||||
params['delete_hosted_file'] = true; // This does not actually delete the hosted file from the server.
|
||||
params['rm_orphan'] = true; // This is what actually allows the hosted file to be deleted from the server.
|
||||
|
||||
ae_promises.delete__event_file_obj = await api.delete_object({
|
||||
api_cfg: api_cfg,
|
||||
endpoint: endpoint,
|
||||
params: params,
|
||||
// return_meta: return_meta,
|
||||
log_lvl: log_lvl
|
||||
});
|
||||
|
||||
db_events.files.delete(event_file_id);
|
||||
|
||||
return ae_promises.delete__event_file_obj;
|
||||
}
|
||||
|
||||
|
||||
// Updated 2024-06-10
|
||||
async function handle_load_ae_obj_id__event_session(
|
||||
{
|
||||
@@ -1527,6 +1562,14 @@ function handle_db_save_ae_obj_li__event_session({obj_type, obj_li}) {
|
||||
event_id_random: obj.event_id_random,
|
||||
event_location_id_random: obj.event_location_id_random,
|
||||
|
||||
poc_person_id_random: obj.poc_person_id_random,
|
||||
poc_person_given_name: obj.poc_person_given_name,
|
||||
poc_person_family_name: obj.poc_person_family_name,
|
||||
poc_person_full_name: obj.poc_person_full_name,
|
||||
poc_person_primary_email: obj.poc_person_primary_email,
|
||||
|
||||
poc_kv_json: obj.poc_kv_json,
|
||||
|
||||
name: obj.name,
|
||||
description: obj.description,
|
||||
|
||||
@@ -1806,6 +1849,7 @@ let export_obj = {
|
||||
|
||||
handle_load_ae_obj_id__event_file: handle_load_ae_obj_id__event_file,
|
||||
handle_load_ae_obj_li__event_file: handle_load_ae_obj_li__event_file,
|
||||
handle_delete_ae_obj_id__event_file: handle_delete_ae_obj_id__event_file,
|
||||
|
||||
handle_load_ae_obj_id__event_session: handle_load_ae_obj_id__event_session,
|
||||
handle_load_ae_obj_li__event_session: handle_load_ae_obj_li__event_session,
|
||||
|
||||
@@ -266,7 +266,7 @@ let events_session_data_struct: key_val = {
|
||||
fulltext_search_qry_str: null,
|
||||
status_qry__search: null,
|
||||
|
||||
disable_submit__event_file_obj: false,
|
||||
disable_submit__event_file_obj: true,
|
||||
|
||||
show_form__search: true,
|
||||
show_form__search_results: true,
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import Dexie, { type Table } from 'dexie';
|
||||
|
||||
// li = list
|
||||
// kv = key value list
|
||||
|
||||
export interface Event {
|
||||
id_random: string;
|
||||
code: string;
|
||||
@@ -229,6 +232,13 @@ export interface Session {
|
||||
event_id_random: string;
|
||||
event_location_id_random: string;
|
||||
|
||||
poc_person_id_random: string;
|
||||
poc_person_given_name: string;
|
||||
poc_person_family_name: string;
|
||||
poc_person_full_name: string;
|
||||
poc_person_primary_email: string;
|
||||
poc_kv_json: null|string;
|
||||
|
||||
name: string;
|
||||
description: null|string;
|
||||
|
||||
@@ -402,6 +412,7 @@ export class MySubClassedDexie extends Dexie {
|
||||
id_random, event_session_id_random, external_id, code,
|
||||
for_type, for_id_random, type_code,
|
||||
event_id_random, event_location_id_random,
|
||||
poc_person_id_random, poc_person_given_name, poc_person_family_name, poc_person_full_name, poc_person_primary_email, poc_kv_json,
|
||||
name, description, start_datetime, end_datetime,
|
||||
passcode,
|
||||
hide_event_launcher,
|
||||
|
||||
@@ -201,8 +201,8 @@ $: if ($events_trigger == 'load__event_session_obj_li' && $events_slct.event_id)
|
||||
|
||||
|
||||
{#if $events_slct.event_id && $event_obj}
|
||||
<h2 class="h3">{$event_obj.name}</h2>
|
||||
<h3 class="h4">Presentation Management Hub</h3>
|
||||
<h2 class="h3 text-center">{$event_obj.name}</h2>
|
||||
<h3 class="h4 text-center">Presentation Management Hub</h3>
|
||||
{/if}
|
||||
|
||||
<div class="variant-ghost-success my-2 p-2 rounded-md flex flex-row items-center">
|
||||
@@ -220,7 +220,7 @@ $: if ($events_trigger == 'load__event_session_obj_li' && $events_slct.event_id)
|
||||
placeholder="Search for a session"
|
||||
id="session_fulltext_search_qry_str"
|
||||
bind:value={$events_sess.pres_mgmt.fulltext_search_qry_str}
|
||||
class="input text-1xl hover:text-2xl font-bold font-mono w-96 transition-all"
|
||||
class="input text-1xl hover:text-2xl font-bold font-mono w-80 transition-all"
|
||||
on:keyup={() => {
|
||||
if ($events_sess.pres_mgmt.fulltext_search_qry_str.length >= 3) {
|
||||
$events_trigger = 'load__event_session_obj_li';
|
||||
@@ -233,7 +233,7 @@ $: if ($events_trigger == 'load__event_session_obj_li' && $events_slct.event_id)
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-lg variant-ghost-success hover:variant-glass-success text-2xl font-bold w-48 transition-all"
|
||||
class="btn btn-lg variant-ghost-success hover:variant-filled-success text-2xl font-bold w-48 transition-all"
|
||||
on:click={() => {
|
||||
|
||||
}}
|
||||
@@ -281,14 +281,20 @@ $: if ($events_trigger == 'load__event_session_obj_li' && $events_slct.event_id)
|
||||
<th>Date</th>
|
||||
<th>Start/End</th>
|
||||
<th>Location</th>
|
||||
<th>Actions</th>
|
||||
<!-- <th>Actions</th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{#each $events_slct.session_obj_li as session_obj}
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{session_obj.name}</strong>
|
||||
<a
|
||||
href="/events_pres_mgmt/session/{session_obj.event_session_id_random}"
|
||||
class="btn btn-md variant-ghost-secondary hover:variant-filled-secondary"
|
||||
>
|
||||
<span class="fas fa-eye mx-1"></span>
|
||||
<strong>{session_obj.name}</strong>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span style="break-inside: avoid;">
|
||||
@@ -309,7 +315,7 @@ $: if ($events_trigger == 'load__event_session_obj_li' && $events_slct.event_id)
|
||||
{/if}
|
||||
</td>
|
||||
<td>{session_obj.event_location_name ?? '-- not set --'}</td>
|
||||
<td>
|
||||
<!-- <td>
|
||||
<a
|
||||
href="/events_pres_mgmt/session/{session_obj.event_session_id_random}"
|
||||
class="btn btn-md variant-ghost-secondary hover:variant-glass-secondary"
|
||||
@@ -317,7 +323,7 @@ $: if ($events_trigger == 'load__event_session_obj_li' && $events_slct.event_id)
|
||||
<span class="fas fa-eye mx-1"></span>
|
||||
View
|
||||
</a>
|
||||
</td>
|
||||
</td> -->
|
||||
</tr>
|
||||
{/each}
|
||||
</tbody>
|
||||
|
||||
@@ -168,6 +168,7 @@ onMount(() => {
|
||||
let url_person_pass = data.url.searchParams.get('person_pass');
|
||||
let url_presentation_id = data.url.searchParams.get('presentation_id');
|
||||
let url_presenter_id = data.url.searchParams.get('presenter_id');
|
||||
let url_session_id = data.url.searchParams.get('session_id');
|
||||
|
||||
// This should be turned into a function to correctly authenticate the person and allow them access to their presentations and presenter details.
|
||||
if (url_person_pass) {
|
||||
@@ -180,9 +181,10 @@ onMount(() => {
|
||||
$events_sess.auth__person.id = url_person_id;
|
||||
$events_sess.auth__person.presentation_id = url_presentation_id;
|
||||
$events_sess.auth__person.presenter_id = url_presenter_id;
|
||||
$events_sess.auth__person.session_id = url_session_id; // For POC or LCI Champions for sessions. Do not set for a presenter!
|
||||
|
||||
$events_sess.auth__kv.person[url_person_id] = true;
|
||||
// $events_sess.auth__kv.session[$events_slct.event_session_id] = true;
|
||||
$events_sess.auth__kv.session[$events_slct.event_session_id] = true; // For POC or LCI Champions for sessions. Do not set for a presenter!
|
||||
$events_sess.auth__kv.presentation[url_presentation_id] = true;
|
||||
$events_sess.auth__kv.presenter[url_presenter_id] = true;
|
||||
|
||||
@@ -214,17 +216,38 @@ onMount(() => {
|
||||
// let new_url = data.url.toString()
|
||||
// console.log(new_url);
|
||||
// goto(new_url, {replaceState: true});
|
||||
if (url_presenter_id) {
|
||||
presenter_sign_in();
|
||||
}
|
||||
|
||||
presenter_sign_in();
|
||||
if (url_session_id) {
|
||||
session_sign_in();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
// console.log(`$ae_loc = `, $ae_loc);
|
||||
|
||||
function presenter_sign_in() {
|
||||
console.log('Sign in with URL values');
|
||||
console.log('Presenter sign in with URL values');
|
||||
|
||||
// This needs to be moved to a function!
|
||||
$events_loc.auth__person.id = $events_sess.auth__entered_key; // person_id
|
||||
$events_loc.auth__person.entered_key = $events_sess.auth__entered_key; // also person_id in this case
|
||||
$events_loc.auth__person.email = 'test@example.com';
|
||||
$events_loc.auth__person.full_name = 'Test Person';
|
||||
|
||||
$events_loc.auth__kv.person[$events_sess.entered_key] = true;
|
||||
$events_loc.auth__kv.session[$events_slct.event_session_id] = false; // Set to false for presenters.
|
||||
$events_loc.auth__kv.presentation[$events_sess.auth__person.presentation_id] = true;
|
||||
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] = true;
|
||||
|
||||
// Setting again here... just because for now.
|
||||
$events_slct.event_presentation_id = $events_sess.auth__person.presentation_id;
|
||||
$events_slct.event_presenter_id = $events_sess.auth__person.presenter_id;
|
||||
}
|
||||
|
||||
function session_sign_in() {
|
||||
console.log('Session sign in with URL values');
|
||||
|
||||
$events_loc.auth__person.id = $events_sess.auth__entered_key; // person_id
|
||||
$events_loc.auth__person.entered_key = $events_sess.auth__entered_key; // also person_id in this case
|
||||
@@ -233,12 +256,28 @@ function presenter_sign_in() {
|
||||
|
||||
$events_loc.auth__kv.person[$events_sess.entered_key] = true;
|
||||
$events_loc.auth__kv.session[$events_slct.event_session_id] = true;
|
||||
$events_loc.auth__kv.presentation[$events_sess.auth__person.presentation_id] = true;
|
||||
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] = true;
|
||||
$events_loc.auth__kv.presentation[$events_sess.auth__person.presentation_id] = false; // Set to false for session POC (LCI Champions).
|
||||
$events_loc.auth__kv.presenter[$events_sess.auth__person.presenter_id] = false; // Set to false for session POC (LCI Champions).
|
||||
|
||||
// Setting again here... just because for now.
|
||||
$events_slct.event_presentation_id = $events_sess.auth__person.presentation_id;
|
||||
$events_slct.event_presenter_id = $events_sess.auth__person.presenter_id;
|
||||
// $events_slct.event_presentation_id = $events_sess.auth__person.presentation_id;
|
||||
// $events_slct.event_presenter_id = $events_sess.auth__person.presenter_id;
|
||||
}
|
||||
|
||||
function sign_out() {
|
||||
$events_loc.auth__person = {
|
||||
id: null,
|
||||
email: null,
|
||||
full_name: null,
|
||||
entered_key: null,
|
||||
entered_passcode: null,
|
||||
};
|
||||
$events_loc.auth__kv = {
|
||||
session: {},
|
||||
presentation: {},
|
||||
presenter: {},
|
||||
person: {},
|
||||
};
|
||||
}
|
||||
|
||||
$: if ($slct_trigger == 'load__event_file_obj_li') {
|
||||
@@ -337,6 +376,57 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
<li>
|
||||
<strong class="text-sm">Location/Room:</strong> {$lq__event_session_obj.event_location_name ? $lq__event_session_obj.event_location_name : '-- not set --'}
|
||||
</li>
|
||||
<li>
|
||||
<strong class="text-sm">Moderator/Champion:</strong> {$lq__event_session_obj.poc_person_full_name ? $lq__event_session_obj.poc_person_full_name : '-- not set --'}
|
||||
|
||||
<span class="float-right">
|
||||
{#if $events_loc.auth__kv.session[$events_slct.event_session_id]}
|
||||
<span class="text-green-500">Signed In</span>
|
||||
{/if}
|
||||
{#if $ae_loc.trusted_access || !$events_loc.auth__person.id }
|
||||
|
||||
<button
|
||||
type="button"
|
||||
disabled
|
||||
on:click={() => {
|
||||
console.log('Email the access link');
|
||||
if (!$lq__event_session_obj.poc_person_primary_email) {
|
||||
alert('No email address found for this presenter.');
|
||||
return;
|
||||
}
|
||||
if (confirm(`This will send the sign in email to ${$lq__event_session_obj.poc_person_primary_email}`)) {
|
||||
console.log('Send the email to the presenter.');
|
||||
} else {
|
||||
console.log('Cancelled sending the email.');
|
||||
return false;
|
||||
}
|
||||
}}
|
||||
class="btn btn-sm variant-ghost-primary hover:variant-filled-primary"
|
||||
title="Email the access link to the POC (moderator/champion)"
|
||||
>
|
||||
<span class="fas fa-envelope mx-1"></span>
|
||||
Email Access Link
|
||||
</button>
|
||||
|
||||
{/if}
|
||||
|
||||
{#if $ae_loc.trusted_access}
|
||||
<!-- A button to copy the access link to the clipboard. -->
|
||||
<!-- Example: /events_pres_mgmt/session/Wh8UnJlbIA0?person_id=fV1dl_IJ0yY&person_pass=abc123 -->
|
||||
<button
|
||||
type="button"
|
||||
use:clipboard={encodeURI(`${$ae_loc.url_origin}/events_pres_mgmt/session/${$events_slct.event_session_id}?person_id=${$events_slct.presenter_obj.person_id_random}&person_pass=${$events_slct.presenter_obj.person_passcode}&session_id=${$events_slct.event_session_id}`)}
|
||||
class="btn btn-sm variant-ghost-warning m-1"
|
||||
title="Copy the POC (moderator/champion) access link to the clipboard."
|
||||
>
|
||||
<span class="fas fa-copy mx-1"></span>
|
||||
Copy Access Link
|
||||
</button>
|
||||
{/if}
|
||||
</span>
|
||||
|
||||
</li>
|
||||
|
||||
{#if $ae_loc.trusted_access}
|
||||
<li>
|
||||
<strong class="text-sm">Session passcode:</strong> {$lq__event_session_obj.passcode ? $lq__event_session_obj.passcode : '-- not set --'}
|
||||
@@ -386,11 +476,15 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
</label> -->
|
||||
|
||||
<div class="m-1 flex flex-col flex-wrap gap-1 items-center">
|
||||
{#if $ae_loc.trusted_access || $events_loc.auth__kv.session[$events_slct.event_session_id]}
|
||||
{#if $ae_loc.trusted_access || $events_loc.auth__person.id }
|
||||
|
||||
{#if $events_loc.auth__kv.session[$events_slct.event_session_id]}
|
||||
<h3 class="h3">Welcome {$lq__event_session_obj?.poc_person_full_name ?? 'Session POC'}</h3>
|
||||
{:else}
|
||||
<h3 class="h3">Welcome {$lq__event_presenter_obj?.full_name ?? 'Presenter'}</h3>
|
||||
{/if}
|
||||
|
||||
{#if $ae_loc.trusted_access || ($events_loc.auth__kv.presenter[$events_slct.event_presenter_id] && $lq__event_presenter_obj?.agree)}
|
||||
{#if $ae_loc.trusted_access || $events_loc.auth__kv.session[$events_slct.event_session_id] || ($events_loc.auth__kv.presenter[$events_slct.event_presenter_id] && $lq__event_presenter_obj?.agree)}
|
||||
<a
|
||||
class="btn btn-md variant-ghost-primary hover:variant-filled-primary"
|
||||
href="https://static.oneskyit.com/c/LCI/files/LCI_Congress_Template_2024.pptx"
|
||||
@@ -422,19 +516,7 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
type="button"
|
||||
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
|
||||
on:click={() => {
|
||||
$events_loc.auth__person = {
|
||||
id: null,
|
||||
email: null,
|
||||
full_name: null,
|
||||
entered_key: null,
|
||||
entered_passcode: null,
|
||||
};
|
||||
$events_loc.auth__kv = {
|
||||
session: {},
|
||||
presentation: {},
|
||||
presenter: {},
|
||||
person: {},
|
||||
};
|
||||
sign_out();
|
||||
alert('You have been signed out.');
|
||||
}}
|
||||
>
|
||||
@@ -456,6 +538,7 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{#if ($events_sess.auth__person.presenter_id) || ($events_sess.auth__person.session_id)}
|
||||
<div
|
||||
class="border border-gray-200 p-2 rounded-md m-2 text-center space-y-2"
|
||||
>
|
||||
@@ -484,7 +567,11 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
on:click={() => {
|
||||
console.log('Sign in with URL values');
|
||||
|
||||
presenter_sign_in();
|
||||
if ($events_sess.auth__person.presenter_id) {
|
||||
presenter_sign_in();
|
||||
} else if ($events_sess.auth__person.session_id) {
|
||||
session_sign_in();
|
||||
}
|
||||
|
||||
// This needs to be moved to a function!
|
||||
|
||||
@@ -511,7 +598,10 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
<div
|
||||
class="text-sm text-gray-500"
|
||||
>
|
||||
For: presentation: {$events_sess.auth__person.presentation_id} presenter: {$events_sess.auth__person.presenter_id}
|
||||
For:
|
||||
session: {$events_sess.auth__person.session_id}
|
||||
presentation: {$events_sess.auth__person.presentation_id}
|
||||
presenter: {$events_sess.auth__person.presenter_id}
|
||||
<br>
|
||||
|
||||
{$lq__event_presentation_obj?.name ? `Name: "${$lq__event_presentation_obj.name}"` : '-- not set --'}
|
||||
@@ -523,19 +613,7 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
type="button"
|
||||
class="btn btn-sm variant-soft-warning"
|
||||
on:click={() => {
|
||||
$events_loc.auth__person = {
|
||||
id: null,
|
||||
email: null,
|
||||
full_name: null,
|
||||
entered_key: null,
|
||||
entered_passcode: null,
|
||||
};
|
||||
$events_loc.auth__kv = {
|
||||
session: {},
|
||||
presentation: {},
|
||||
presenter: {},
|
||||
person: {},
|
||||
};
|
||||
sign_out();
|
||||
alert('You have been signed out.');
|
||||
}}
|
||||
>
|
||||
@@ -544,6 +622,7 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
</div>
|
||||
@@ -633,7 +712,7 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
<li>
|
||||
<button
|
||||
type="button"
|
||||
disabled={!$ae_loc.trusted_access && (!$events_loc.auth__kv.presenter[event_presenter_obj.event_presenter_id_random] || !event_presenter_obj.agree)}
|
||||
disabled={!($ae_loc.trusted_access || $events_loc.auth__kv.session[$events_slct.event_session_id]) && (!$events_loc.auth__kv.presenter[event_presenter_obj.event_presenter_id_random] || !event_presenter_obj.agree)}
|
||||
on:click={
|
||||
() => {
|
||||
console.log('View presenter details');
|
||||
@@ -658,7 +737,8 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
|
||||
{#if $ae_loc.trusted_access || !$events_loc.auth__person.id }
|
||||
<button
|
||||
class="btn btn-md variant-ghost-primary hover:variant-filled-primary"
|
||||
type="button"
|
||||
disabled
|
||||
on:click={() => {
|
||||
console.log('Email the access link');
|
||||
if (!event_presenter_obj.email) {
|
||||
@@ -692,6 +772,7 @@ function send_init_confirm_email({to_email, to_name, person_id, person_passcode,
|
||||
// body: `Hello ${event_presenter_obj.full_name},\n\nHere is the access link for the session: ${data.url.origin}/events_pres_mgmt/session/{$events_slct.event_session_id}?person_id=${event_presenter_obj.person_id_random}&person_pass=${event_presenter_obj.person_passcode}\n\nThank you,\n\nThe LCI Team`,
|
||||
// });
|
||||
}}
|
||||
class="btn btn-md variant-ghost-primary hover:variant-filled-primary"
|
||||
title="Email the access link to the presenter"
|
||||
>
|
||||
<span class="fas fa-envelope mx-1"></span>
|
||||
|
||||
@@ -330,7 +330,7 @@ async function handle_update__event_presenter({
|
||||
{/if}
|
||||
|
||||
<div class="text-center">
|
||||
{#if $ae_loc.trusted_access || $events_loc.auth__kv.session[$events_slct.event_session_id]}
|
||||
{#if $ae_loc.trusted_access || $events_loc.auth__kv.presentation[$events_slct.event_presentation_id]}
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
|
||||
@@ -3,10 +3,12 @@ console.log(`ae_events_pres_mgmt session [slug] form_agree.svelte`);
|
||||
|
||||
export let data: any;
|
||||
|
||||
import { onMount } from 'svelte';
|
||||
import { createEventDispatcher, onMount } from 'svelte';
|
||||
import { clipboard, FileDropzone } from '@skeletonlabs/skeleton';
|
||||
import { liveQuery } from "dexie";
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
import type { key_val } from '$lib/ae_stores';
|
||||
import { ae_util } from '$lib/ae_utils';
|
||||
import { api } from '$lib/api';
|
||||
@@ -17,7 +19,6 @@ import { ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_st
|
||||
import { db_events } from "$lib/db_events";
|
||||
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import { hide } from '@floating-ui/dom';
|
||||
|
||||
|
||||
let ae_triggers: key_val = {};
|
||||
@@ -253,6 +254,46 @@ async function handle_input_upload_files(input_upload_files) {
|
||||
return hosted_file_result;
|
||||
}
|
||||
|
||||
async function handle_delete__event_file({event_file_id}) {
|
||||
console.log(`*** handle_delete__event_file() *** event_file_id:`, event_file_id);
|
||||
|
||||
let link_to_type = 'event_presenter';
|
||||
let link_to_id = $events_slct.event_presenter_id;
|
||||
|
||||
ae_promises.delete__event_file_obj = await events_func.handle_delete_ae_obj_id__event_file({
|
||||
api_cfg: $ae_api,
|
||||
event_file_id: event_file_id,
|
||||
log_lvl: 2
|
||||
})
|
||||
.then(function (event_file_obj_result) {
|
||||
console.log(event_file_obj_result);
|
||||
if (!event_file_obj_result) {
|
||||
console.log('The result was null or false.');
|
||||
return false;
|
||||
} else {
|
||||
console.log(`event_file_obj_result = `, event_file_obj_result);
|
||||
}
|
||||
|
||||
dispatch(
|
||||
'event_file_obj_deleted',
|
||||
{
|
||||
event_file_id: event_file_id,
|
||||
link_to_type: link_to_type,
|
||||
link_to_id: link_to_id,
|
||||
}
|
||||
|
||||
);
|
||||
return event_file_obj_result;
|
||||
}).catch(function (error) {
|
||||
console.log('Something went wrong deleting the event file.');
|
||||
console.log(error);
|
||||
return false;
|
||||
});
|
||||
|
||||
return ae_promises.delete__event_file_obj;
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
{#await $lq__event_presenter_obj}
|
||||
@@ -269,9 +310,11 @@ async function handle_input_upload_files(input_upload_files) {
|
||||
<!-- Example: /events_pres_mgmt/session/Wh8UnJlbIA0?person_id=fV1dl_IJ0yY&person_pass=abc123 -->
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-sm variant-ghost-warning float-right m-1"
|
||||
|
||||
|
||||
use:clipboard={encodeURI(`${$ae_loc.url_origin}/events_pres_mgmt/session/${$events_slct.event_session_id}?person_id=${$events_slct.presenter_obj.person_id_random}&person_pass=${$events_slct.presenter_obj.person_passcode}&presentation_id=${$events_slct.presentation_obj.event_presentation_id_random}&presenter_id=${$events_slct.presenter_obj.event_presenter_id_random}`)}
|
||||
class="btn btn-sm variant-ghost-warning float-right m-1"
|
||||
title="Copy the presenter access link to the clipboard."
|
||||
>
|
||||
<span class="fas fa-copy mx-1"></span>
|
||||
Copy Access Link
|
||||
@@ -327,7 +370,7 @@ async function handle_input_upload_files(input_upload_files) {
|
||||
<h3 class="h4">Files: {$events_slct.presenter_obj.file_count ? `${$events_slct.presenter_obj.file_count}x` : '-- none --'}</h3>
|
||||
|
||||
<div class="text-sm text-center bg-orange-100 rounded-md p-2">
|
||||
WARNING: The file upload and management is a work in progress. You can upload files, but not yet delete or rename them.
|
||||
WARNING: The file upload and management is a work in progress. You can upload and delete files, but not yet rename them.
|
||||
</div>
|
||||
<form
|
||||
class="modal-form {$ae_loc.hub.classes__form}"
|
||||
@@ -347,6 +390,7 @@ WARNING: The file upload and management is a work in progress. You can upload fi
|
||||
|
||||
if (e.target.files.length) {
|
||||
ae_placeholder_li.new_file = `Ready to upload: ${e.target.files[0].name}`;
|
||||
$events_sess.pres_mgmt.disable_submit__event_file_obj = false;
|
||||
} else {
|
||||
ae_placeholder_li.new_file = null;
|
||||
}
|
||||
@@ -391,7 +435,7 @@ WARNING: The file upload and management is a work in progress. You can upload fi
|
||||
>{file_obj.filename}</a> -->
|
||||
|
||||
<button
|
||||
class="btn btn-md variant-soft-primary"
|
||||
class="btn btn-md variant-soft-primary min-w-96"
|
||||
on:click={() => {
|
||||
// ae_promises[event_file_obj.event_file_id_random]
|
||||
ae_promises[event_file_obj.event_file_id_random] = api.download_hosted_file({
|
||||
@@ -426,6 +470,19 @@ WARNING: The file upload and management is a work in progress. You can upload fi
|
||||
|
||||
{event_file_obj.filename.slice(0, 20)}...{event_file_obj.extension}
|
||||
</button>
|
||||
|
||||
<button type="button"
|
||||
title="Delete this file"
|
||||
on:click={async () => {
|
||||
if (!confirm('Are you sure you want to delete this file?')) {return false;}
|
||||
|
||||
ae_promises[event_file_obj.event_file_id_random] = handle_delete__event_file({event_file_id: event_file_obj.event_file_id_random});
|
||||
}}
|
||||
class="btn btn-sm variant-soft-warning event_file_delete_btn width_100"
|
||||
>
|
||||
<span class="fas fa-minus mx-1"></span>
|
||||
Delete
|
||||
</button>
|
||||
</li>
|
||||
{/each}
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user