style(pres_mgmt): Phase 3 — FA→Lucide icon migration across all 24 pres_mgmt files
Used scripts/migrate_fa_to_lucide.py to batch-replace all FontAwesome <span class="fas fa-*"> icons with Lucide SVG components across the entire presentation management module (273 icon instances, 69 icon types). Manual fixes applied post-script: - presenter_view.svelte: remove duplicate @lucide/svelte Pencil import - presenter_page_menu.svelte: remove duplicate X from @lucide/svelte import - ae_comp__event_presenter_obj_tbl.svelte: fix Lucide import inserted inside multiline import block (script bug with multiline imports) - ae_comp__event_session_alert.svelte: same multiline import fix Script updated with fix: use complete-statement matching for import insertion instead of single-line matching. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
import Presenter_view from './presenter_view.svelte';
|
||||
import Presenter_page_menu from './presenter_page_menu.svelte';
|
||||
import MyClipboard from '$lib/app_components/e_app_clipboard.svelte';
|
||||
import { Archive, FileText, Info, ListChecks, LoaderCircle, Mail, Mails, TriangleAlert, Upload, User, X } from 'lucide-svelte';
|
||||
|
||||
// Exports
|
||||
// export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
|
||||
@@ -129,7 +130,7 @@
|
||||
|
||||
{#if !$lq__event_presenter_obj}
|
||||
<div>
|
||||
<span class="fas fa-spinner fa-spin mx-1"></span>
|
||||
<LoaderCircle size="1em" class="mx-1 animate-spin" />
|
||||
<span>Loading presenter information...</span>
|
||||
</div>
|
||||
{:else if $lq__event_presenter_obj?.enable || $ae_loc.trusted_access}
|
||||
@@ -137,7 +138,7 @@
|
||||
<span
|
||||
class="flex flex-row flex-wrap gap-1 items-center justify-center"
|
||||
>
|
||||
<span class="fas fa-user m-1 text-neutral-800/80"></span>
|
||||
<User size="1em" class="m-1 text-neutral-800/80" />
|
||||
<!-- Button to toggle between the regular presenter view and managing presenter files -->
|
||||
<button
|
||||
type="button"
|
||||
@@ -162,18 +163,18 @@
|
||||
title="View presenter information or manage files for the presenter"
|
||||
>
|
||||
{#if $events_loc.pres_mgmt.show_content__presenter_view == 'manage_files'}
|
||||
<span class="fas fa-info m-1"></span>
|
||||
<Info size="1em" class="m-1" />
|
||||
<!-- View Details -->
|
||||
Presenter Info?
|
||||
{:else}
|
||||
<span class="fas fa-file-archive m-1"></span>
|
||||
<Archive size="1em" class="m-1" />
|
||||
Presenter Files?
|
||||
<span
|
||||
class="badge preset-tonal-success"
|
||||
class:hidden={!$lq__event_presenter_obj?.file_count}
|
||||
>
|
||||
<!-- absolute -top-1.5 -right-1.5 z-10 -->
|
||||
<span class="fas fa-file-alt m-1"></span>
|
||||
<FileText size="1em" class="m-1" />
|
||||
{$lq__event_presenter_obj?.file_count}×
|
||||
</span>
|
||||
{/if}
|
||||
@@ -302,7 +303,7 @@
|
||||
class="btn btn-sm preset-tonal-secondary border border-secondary-500 hover:preset-filled-secondary-500 m-0.25"
|
||||
title="Email the access link to the presenter"
|
||||
>
|
||||
<span class="fas fa-envelope m-1"></span>
|
||||
<Mail size="1em" class="m-1" />
|
||||
Email Access Link
|
||||
</button>
|
||||
{/if}
|
||||
@@ -336,14 +337,14 @@
|
||||
{/if}
|
||||
|
||||
<h3 class="h5 text-center">
|
||||
<span class="fas fa-tasks m-1 text-neutral-800/80"></span>
|
||||
<span class="fas fa-mail-bulk m-1 text-neutral-800/80"></span>
|
||||
<ListChecks size="1em" class="m-1 text-neutral-800/80" />
|
||||
<Mails size="1em" class="m-1 text-neutral-800/80" />
|
||||
Manage and Upload Presenter Files
|
||||
<span
|
||||
class="badge preset-tonal-success"
|
||||
class:hidden={!$lq__event_presenter_obj?.file_count}
|
||||
>
|
||||
<span class="fas fa-file-alt m-1"></span>
|
||||
<FileText size="1em" class="m-1" />
|
||||
{$lq__event_presenter_obj?.file_count}×
|
||||
</span>
|
||||
</h3>
|
||||
@@ -358,7 +359,7 @@
|
||||
{#snippet label()}
|
||||
<span>
|
||||
<div class="text-lg">
|
||||
<span class="fas fa-upload" aria-hidden="true"></span>
|
||||
<Upload size="1em" />
|
||||
<strong class=""
|
||||
>Upload presenter (speaker) specific files</strong
|
||||
>
|
||||
@@ -400,15 +401,14 @@
|
||||
{:else if $events_loc.pres_mgmt.show_content__presenter_view == 'manage_files' && $ae_loc.authenticated_access}
|
||||
<div>
|
||||
<h3 class="h5 text-center">
|
||||
<span class="fas fa-tasks m-1 text-neutral-800/80"></span>
|
||||
<span class="fas fa-mail-bulk m-1 text-neutral-800/80"
|
||||
></span>
|
||||
<ListChecks size="1em" class="m-1 text-neutral-800/80" />
|
||||
<Mails size="1em" class="m-1 text-neutral-800/80" />
|
||||
Manage and Upload Presenter Files
|
||||
<span
|
||||
class="badge preset-tonal-success"
|
||||
class:hidden={!$lq__event_presenter_obj?.file_count}
|
||||
>
|
||||
<span class="fas fa-file-alt m-1"></span>
|
||||
<FileText size="1em" class="m-1" />
|
||||
{$lq__event_presenter_obj?.file_count}×
|
||||
</span>
|
||||
</h3>
|
||||
@@ -422,7 +422,7 @@
|
||||
{#snippet label()}
|
||||
<span>
|
||||
<div class="text-lg">
|
||||
<span class="fas fa-upload" aria-hidden="true"></span>
|
||||
<Upload size="1em" />
|
||||
<strong class=""
|
||||
>Upload presenter (speaker) specific
|
||||
files</strong
|
||||
@@ -485,8 +485,7 @@
|
||||
{:else}
|
||||
<div class="bg-red-100 p-4 border border-red-200 rounded-md">
|
||||
<h2 class="h3">
|
||||
<span class="fas fa-exclamation-triangle text-red-500 m-1"
|
||||
></span>
|
||||
<TriangleAlert size="1em" class="text-red-500 m-1" />
|
||||
Presenter Disabled
|
||||
</h2>
|
||||
<p>
|
||||
@@ -516,7 +515,7 @@
|
||||
}}
|
||||
class="btn btn-sm preset-tonal-warning hover:preset-tonal-warning border border-warning-500"
|
||||
>
|
||||
<span class="fas fa-times m-1"></span>
|
||||
<X size="1em" class="m-1" />
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
events_trigger
|
||||
} from '$lib/stores/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import { Check, CheckCircle, LoaderCircle, TriangleAlert, X } from 'lucide-svelte';
|
||||
|
||||
let ae_promises: key_val = $state({});
|
||||
// let ae_tmp: key_val = {};
|
||||
@@ -165,7 +166,7 @@
|
||||
{#if !$lq__event_presenter_obj?.agree}
|
||||
<div class="text-center text-red-500">
|
||||
<div class="text-red-500">
|
||||
<span class="fas fa-times text-red-500 m-1"></span>
|
||||
<X size="1em" class="text-red-500 m-1" />
|
||||
Not Yet Agreed
|
||||
</div>
|
||||
<div class="bg-red-100 p-4 border border-red-200 rounded-md">
|
||||
@@ -286,12 +287,12 @@
|
||||
}}
|
||||
class="btn btn-md preset-tonal-warning border border-warning-500 hover:preset-filled-secondary-500 m-2"
|
||||
>
|
||||
<span class="fas fa-check m-1 text-orange-500"></span>
|
||||
<Check size="1em" class="m-1 text-orange-500" />
|
||||
Save Opt-Out?
|
||||
|
||||
{#await ae_promises.update__event_presenter_obj}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-spinner fa-spin"></span>
|
||||
<LoaderCircle size="1em" class="animate-spin" />
|
||||
<span class="loading-text">
|
||||
<!-- <ProgressRadial value={undefined} /> -->
|
||||
Saving...
|
||||
@@ -300,7 +301,7 @@
|
||||
{:then update__event_presenter_obj_result}
|
||||
{#if update__event_presenter_obj_result}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-check-circle"></span>
|
||||
<CheckCircle size="1em" />
|
||||
<span class="loading-text"
|
||||
>Successfully saved!</span
|
||||
>
|
||||
@@ -308,8 +309,7 @@
|
||||
{/if}
|
||||
{:catch error}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-exclamation-triangle"
|
||||
></span>
|
||||
<TriangleAlert size="1em" />
|
||||
<span class="loading-text"
|
||||
>Error: {error.message}</span
|
||||
>
|
||||
@@ -326,7 +326,7 @@
|
||||
{#if !$lq__event_presenter_obj?.agree}
|
||||
<div>
|
||||
Not Agreed:
|
||||
<span class="fas fa-times text-red-500 m-1"></span>
|
||||
<X size="1em" class="text-red-500 m-1" />
|
||||
<!-- <span class="fas fa-question text-red-500 m-1"></span> -->
|
||||
</div>
|
||||
<div>
|
||||
@@ -336,7 +336,7 @@
|
||||
{:else}
|
||||
<div>
|
||||
Agreed:
|
||||
<span class="fas fa-check text-green-500 m-1"></span>
|
||||
<Check size="1em" class="text-green-500 m-1" />
|
||||
Marked as agreed
|
||||
</div>
|
||||
{/if}
|
||||
@@ -392,13 +392,13 @@
|
||||
|
||||
{#await ae_promises.update__event_presenter_obj__agree}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-spinner fa-spin"></span>
|
||||
<LoaderCircle size="1em" class="animate-spin" />
|
||||
<span class="loading-text"> Saving... </span>
|
||||
</div>
|
||||
{:then update__event_presenter_obj__agree_result}
|
||||
{#if $events_sess.pres_mgmt.status__presenter_agree}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-check-circle"></span>
|
||||
<CheckCircle size="1em" />
|
||||
<span class="loading-text"
|
||||
>Successfully saved!</span
|
||||
>
|
||||
@@ -406,7 +406,7 @@
|
||||
{/if}
|
||||
{:catch error}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-exclamation-triangle"></span>
|
||||
<TriangleAlert size="1em" />
|
||||
<span class="loading-text"
|
||||
>Error: {error.message}</span
|
||||
>
|
||||
@@ -461,18 +461,18 @@
|
||||
}}
|
||||
class="btn btn-lg preset-tonal-warning border border-warning-500 hover:preset-filled-error-500 m-2"
|
||||
>
|
||||
<span class="fas fa-times m-1 text-orange-500"></span>
|
||||
<X size="1em" class="m-1 text-orange-500" />
|
||||
Change to not agreed?
|
||||
|
||||
{#await ae_promises.update__event_presenter_obj__agree}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-spinner fa-spin"></span>
|
||||
<LoaderCircle size="1em" class="animate-spin" />
|
||||
<span class="loading-text"> Saving... </span>
|
||||
</div>
|
||||
{:then update__event_presenter_obj__agree_result}
|
||||
{#if $events_sess.pres_mgmt.status__presenter_agree}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-check-circle"></span>
|
||||
<CheckCircle size="1em" />
|
||||
<span class="loading-text"
|
||||
>Successfully saved!</span
|
||||
>
|
||||
@@ -480,7 +480,7 @@
|
||||
{/if}
|
||||
{:catch error}
|
||||
<div class="modal-loading">
|
||||
<span class="fas fa-exclamation-triangle"></span>
|
||||
<TriangleAlert size="1em" />
|
||||
<span class="loading-text"
|
||||
>Error: {error.message}</span
|
||||
>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
import { goto } from '$app/navigation';
|
||||
import { Modal } from 'flowbite-svelte';
|
||||
import { Settings, X, Info } from '@lucide/svelte';
|
||||
import { Info, Settings } from '@lucide/svelte';
|
||||
|
||||
import {
|
||||
ae_loc,
|
||||
@@ -29,6 +29,7 @@
|
||||
import Element_data_store from '$lib/elements/element_data_store_v3.svelte';
|
||||
import Comp__events_menu_nav from '../../../../ae_comp__events_menu_nav.svelte';
|
||||
import AE_Record_Controls from '$lib/ae_elements/AE_Record_Controls.svelte';
|
||||
import { Check, Pencil, QrCode, X } from 'lucide-svelte';
|
||||
|
||||
let show_modal = $state(false);
|
||||
let show_help = $state(false);
|
||||
@@ -116,7 +117,7 @@
|
||||
class="btn btn-sm mx-1 font-bold ae_btn_success_filled"
|
||||
title="Agreed to terms and conditions"
|
||||
>
|
||||
<span class="fas fa-check text-green-500 px-1"></span>
|
||||
<Check size="1em" class="text-green-500 px-1" />
|
||||
Agreed
|
||||
</button>
|
||||
{:else}
|
||||
@@ -131,7 +132,7 @@
|
||||
class="btn btn-sm mx-1 font-bold ae_btn_warning_filled"
|
||||
title="View terms and conditions"
|
||||
>
|
||||
<span class="fas fa-times bg-red-500 text-white px-1 mx-1"></span>
|
||||
<X size="1em" class="bg-red-500 text-white px-1 mx-1" />
|
||||
Not yet agreed
|
||||
</button>
|
||||
{/if}
|
||||
@@ -176,7 +177,7 @@
|
||||
class:ae_btn_surface={$events_loc.pres_mgmt.show_content__presenter_qr}
|
||||
class:ae_btn_surface_outlined={!$events_loc.pres_mgmt.show_content__presenter_qr}
|
||||
>
|
||||
<span class="fas fa-qrcode mr-1"></span>
|
||||
<QrCode size="1em" class="mr-1" />
|
||||
{$events_loc.pres_mgmt.show_content__presenter_qr ? 'Hide QR Code' : 'Show QR Code'}
|
||||
</button>
|
||||
</div>
|
||||
@@ -194,7 +195,7 @@
|
||||
class:ae_btn_warning={$ae_loc.edit_mode}
|
||||
class:ae_btn_warning_outlined={!$ae_loc.edit_mode}
|
||||
>
|
||||
<span class="fas fa-edit mr-1"></span>
|
||||
<Pencil size="1em" class="mr-1" />
|
||||
{$ae_loc.edit_mode ? 'Edit Mode On' : 'Edit Mode?'}
|
||||
</button>
|
||||
</section>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<script lang="ts">
|
||||
import { Pencil } from '@lucide/svelte';
|
||||
|
||||
interface Props {
|
||||
log_lvl?: number;
|
||||
@@ -45,6 +44,7 @@
|
||||
events_trigger
|
||||
} from '$lib/stores/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import { Asterisk, BookOpen, Building2, Check, CircleUser, Fingerprint, IdCard, Link, LoaderCircle, Mail, Pencil, Plus, RefreshCw, Save, Tag, Unlink, User, UserCheck, UserRound } from 'lucide-svelte';
|
||||
|
||||
// Exports
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
{#if $lq__event_presenter_obj}
|
||||
<h3 class="h5 text-center">
|
||||
<span class="fas fa-id-card"></span>
|
||||
<IdCard size="1em" />
|
||||
<!-- <span class="fas fa-info"></span> -->
|
||||
Presenter Details
|
||||
</h3>
|
||||
@@ -209,7 +209,7 @@
|
||||
alt="URL QR code"
|
||||
/>
|
||||
<span>
|
||||
<span class="fas fa-link"></span>
|
||||
<Link size="1em" />
|
||||
<span>Presenter URL</span>
|
||||
</span>
|
||||
<div
|
||||
@@ -235,7 +235,7 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-id-card"></span>
|
||||
<IdCard size="1em" />
|
||||
{$events_loc.pres_mgmt?.label__presenter_external_id ??
|
||||
'External ID'}:
|
||||
<span class="font-bold">
|
||||
@@ -255,8 +255,8 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-id-card"></span>
|
||||
<Asterisk size="1em" />
|
||||
<IdCard size="1em" />
|
||||
{$events_loc.pres_mgmt?.label__person_external_id ??
|
||||
'Person External ID'}:
|
||||
<span class="font-bold">
|
||||
@@ -278,7 +278,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group"
|
||||
title="Use the external ID from this presenter record to overwrite the person record."
|
||||
>
|
||||
<span class="fas fa-sync-alt m-0.75"></span>
|
||||
<RefreshCw size="1em" class="m-0.75" />
|
||||
<span class="hidden group-hover:inline">Sync</span>
|
||||
</button>
|
||||
</div>
|
||||
@@ -290,7 +290,7 @@
|
||||
class:hidden={!$ae_loc.trusted_access ||
|
||||
(!$ae_loc.edit_mode && !$ae_loc.manager_access)}
|
||||
>
|
||||
<span class="fas fa-user"></span>
|
||||
<User size="1em" />
|
||||
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type={'event_presenter'}
|
||||
@@ -322,8 +322,8 @@
|
||||
{#if $lq__event_presenter_obj.person_given_name != $lq__event_presenter_obj.given_name || $lq__event_presenter_obj.person_family_name != $lq__event_presenter_obj.family_name}
|
||||
{#if $lq__event_presenter_obj.person_given_name != $lq__event_presenter_obj.given_name}
|
||||
<div>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-user-circle"></span>
|
||||
<Asterisk size="1em" />
|
||||
<CircleUser size="1em" />
|
||||
given name:
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type={'person'}
|
||||
@@ -354,7 +354,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group transition-all"
|
||||
title="Use the name from this presenter record to overwrite the person record. Presenter ID: {$lq__event_presenter_obj?.event_presenter_id} to Person ID: {$lq__event_presenter_obj?.person_id}"
|
||||
>
|
||||
<span class="fas fa-sync-alt m-0.75"></span>
|
||||
<RefreshCw size="1em" class="m-0.75" />
|
||||
<span class="hidden group-hover:inline-block">Sync</span>
|
||||
</button>
|
||||
{/if}
|
||||
@@ -363,8 +363,8 @@
|
||||
|
||||
{#if $lq__event_presenter_obj.person_family_name != $lq__event_presenter_obj.family_name}
|
||||
<div>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-user-circle"></span>
|
||||
<Asterisk size="1em" />
|
||||
<CircleUser size="1em" />
|
||||
family name:
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type={'person'}
|
||||
@@ -396,7 +396,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group"
|
||||
title="Use the name from this presenter record to overwrite the person record. Presenter ID: {$lq__event_presenter_obj?.event_presenter_id} to Person ID: {$lq__event_presenter_obj?.person_id}"
|
||||
>
|
||||
<span class="fas fa-sync-alt m-0.75"></span>
|
||||
<RefreshCw size="1em" class="m-0.75" />
|
||||
<span class="hidden group-hover:inline">Sync</span>
|
||||
</button>
|
||||
{/if}
|
||||
@@ -424,7 +424,7 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-envelope"></span>
|
||||
<Mail size="1em" />
|
||||
{#if $lq__event_presenter_obj.email}
|
||||
<span class="font-bold">
|
||||
<a
|
||||
@@ -450,8 +450,8 @@
|
||||
current_value={$lq__event_presenter_obj.person_primary_email}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-envelope"></span>
|
||||
<Asterisk size="1em" />
|
||||
<Mail size="1em" />
|
||||
{#if $lq__event_presenter_obj.person_primary_email}
|
||||
<span class="font-bold">
|
||||
<a
|
||||
@@ -482,7 +482,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group"
|
||||
title="Use the email address from this presenter record to overwrite the person record."
|
||||
>
|
||||
<span class="fas fa-sync-alt m-0.75"></span>
|
||||
<RefreshCw size="1em" class="m-0.75" />
|
||||
<span class="hidden group-hover:inline">Sync</span>
|
||||
</button>
|
||||
{/if}
|
||||
@@ -503,7 +503,7 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-building"></span>
|
||||
<Building2 size="1em" />
|
||||
{#if $lq__event_presenter_obj.affiliations && $lq__event_presenter_obj.affiliations.length}
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj.affiliations}
|
||||
@@ -525,8 +525,8 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-building"></span>
|
||||
<Asterisk size="1em" />
|
||||
<Building2 size="1em" />
|
||||
<span class="font-bold">
|
||||
{@html $lq__event_presenter_obj.person_affiliations ??
|
||||
'affiliations' + ae_snip.html__not_set}
|
||||
@@ -548,7 +548,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group"
|
||||
title="Use the affiliations from this presenter record to overwrite the person record."
|
||||
>
|
||||
<span class="fas fa-sync-alt m-0.75"></span>
|
||||
<RefreshCw size="1em" class="m-0.75" />
|
||||
<span class="hidden group-hover:inline">Sync</span>
|
||||
</button>
|
||||
{/if}
|
||||
@@ -569,7 +569,7 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-user-tag"></span>
|
||||
<Tag size="1em" />
|
||||
{#if $lq__event_presenter_obj.professional_title && $lq__event_presenter_obj.professional_title.length}
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj.professional_title}
|
||||
@@ -591,8 +591,8 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-user-tag"></span>
|
||||
<Asterisk size="1em" />
|
||||
<Tag size="1em" />
|
||||
<span class="font-bold">
|
||||
{@html $lq__event_presenter_obj.person_professional_title &&
|
||||
$lq__event_presenter_obj.person_professional_title.length
|
||||
@@ -616,7 +616,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group"
|
||||
title="Use the professional title from this presenter record to overwrite the person record."
|
||||
>
|
||||
<span class="fas fa-sync-alt m-0.75"></span>
|
||||
<RefreshCw size="1em" class="m-0.75" />
|
||||
<span class="hidden group-hover:inline">Sync</span>
|
||||
</button>
|
||||
{/if}
|
||||
@@ -628,7 +628,7 @@
|
||||
class:hidden={!$ae_loc.trusted_access ||
|
||||
(!$ae_loc.edit_mode && !$ae_loc.manager_access)}
|
||||
>
|
||||
<span class="fas fa-user-check"></span>
|
||||
<UserCheck size="1em" />
|
||||
Person link:
|
||||
<!-- Allow for linking the presenter to a person record. -->
|
||||
{#if $ae_loc.trusted_access}
|
||||
@@ -648,11 +648,11 @@
|
||||
class="text-blue-500 hover:text-blue-800 hover:underline"
|
||||
title="View Person: {$lq__event_presenter_obj.person_full_name} {$lq__event_presenter_obj.person_id}"
|
||||
>
|
||||
<span class="fas fa-link"></span>
|
||||
<Link size="1em" />
|
||||
{$lq__event_presenter_obj.person_id}
|
||||
</a>
|
||||
{:else}
|
||||
<span class="fas fa-unlink"></span>
|
||||
<Unlink size="1em" />
|
||||
person
|
||||
{@html ae_snip.html__not_set}
|
||||
{/if}
|
||||
@@ -688,7 +688,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group"
|
||||
title="Edit the person record linked to this presenter. Presenter ID: {$lq__event_presenter_obj.event_presenter_id}"
|
||||
>
|
||||
<span class="fas fa-edit mx-0.75"></span>
|
||||
<Pencil size="1em" class="mx-0.75" />
|
||||
<span class="hidden group-hover:inline">Re-link</span>
|
||||
</button>
|
||||
{/if}
|
||||
@@ -745,7 +745,7 @@
|
||||
class="btn btn-sm preset-tonal-warning group"
|
||||
title="Sync the person record fields to the presenter record. Person ID: {$lq__event_presenter_obj.person_id} to Presenter ID: {$lq__event_presenter_obj?.event_presenter_id}"
|
||||
>
|
||||
<span class="fas fa-sync-alt m-0.75"></span>
|
||||
<RefreshCw size="1em" class="m-0.75" />
|
||||
<span class="hidden group-hover:inline"
|
||||
>Sync Person</span
|
||||
>
|
||||
@@ -832,7 +832,7 @@
|
||||
class="btn btn-sm preset-tonal-warning hover:preset-filled-warning-500"
|
||||
title="Add a new person based on this presenter. Presenter ID: {$lq__event_presenter_obj?.event_presenter_id}"
|
||||
>
|
||||
<span class="fas fa-plus m-.75"></span>
|
||||
<Plus size="1em" class="m-.75" />
|
||||
Add Person
|
||||
</button>
|
||||
{/if}
|
||||
@@ -854,8 +854,8 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-user-secret"></span>
|
||||
<Asterisk size="1em" />
|
||||
<UserRound size="1em" />
|
||||
Passcode:
|
||||
<span class="font-bold">
|
||||
{@html $lq__event_presenter_obj.person_passcode ??
|
||||
@@ -890,8 +890,8 @@
|
||||
allow_null={true}
|
||||
on_success={() => events_func.load_ae_obj_id__event_presenter({ api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id, log_lvl: 0 })}
|
||||
>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-fingerprint"></span>
|
||||
<Asterisk size="1em" />
|
||||
<Fingerprint size="1em" />
|
||||
External System ID:
|
||||
<span class="font-bold">
|
||||
{@html $lq__event_presenter_obj.person_external_sys_id ??
|
||||
@@ -920,7 +920,7 @@
|
||||
></MyClipboard>
|
||||
|
||||
<label for="presenter__biography" class="label">
|
||||
<span class="fas fa-book"></span>
|
||||
<BookOpen size="1em" />
|
||||
Presenter Biography
|
||||
<span class="text-sm text-gray-500">
|
||||
(75 to 100 words or 600 character limit)
|
||||
@@ -1002,12 +1002,12 @@
|
||||
ae_tmp.biography?.length < 20}
|
||||
>
|
||||
{#await ae_promises.update__event_presenter_obj}
|
||||
<span class="fas fa-spinner fa-spin mx-1"></span>
|
||||
<LoaderCircle size="1em" class="mx-1 animate-spin" />
|
||||
{:then}
|
||||
{#if ae_tmp.biography == $lq__event_presenter_obj.biography}
|
||||
<span class="fas fa-check mx-1"></span>
|
||||
<Check size="1em" class="mx-1" />
|
||||
{:else}
|
||||
<span class="fas fa-save mx-1"></span>
|
||||
<Save size="1em" class="mx-1" />
|
||||
{/if}
|
||||
{/await}
|
||||
Save Biography
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
} from '$lib/stores/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { Check, FileText, ListOrdered, Mail, Plus, RefreshCw, Star, User, UserX, Users, X } from 'lucide-svelte';
|
||||
|
||||
$effect(() => {
|
||||
if (log_lvl) {
|
||||
@@ -79,7 +80,7 @@
|
||||
display_mode != 'default'}
|
||||
title="Refresh the list of presenters"
|
||||
>
|
||||
<span class="fas fa-sync-alt m-1"></span>
|
||||
<RefreshCw size="1em" class="m-1" />
|
||||
<span class="hidden"> Presenters </span>
|
||||
</button>
|
||||
</div>
|
||||
@@ -100,7 +101,7 @@
|
||||
class="text-3xl font-bold preset-filled-success-100-900 px-4 rounded-lg"
|
||||
title="Count {$lq__event_presenter_obj_li.length ?? 'None'}"
|
||||
>
|
||||
<span class="fas fa-list-ol mx-4"></span>
|
||||
<ListOrdered size="1em" class="mx-4" />
|
||||
{$lq__event_presenter_obj_li.length ?? 'None'}×
|
||||
</span>
|
||||
{/if}
|
||||
@@ -137,22 +138,14 @@
|
||||
title="Person ID: {event_presenter_obj.person_id}; Email: {event_presenter_obj.person_primary_email}"
|
||||
>
|
||||
{#if event_presenter_obj?.given_name && event_presenter_obj?.given_name != 'Group'}
|
||||
<span
|
||||
class="fas fa-user m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
<User size="1em" class="m-0.5 text-xs text-surface-800-200" />
|
||||
{:else if event_presenter_obj?.given_name == 'Group'}
|
||||
<span
|
||||
class="fas fa-users m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
<Users size="1em" class="m-0.5 text-xs text-surface-800-200" />
|
||||
{:else}
|
||||
<span
|
||||
class="fas fa-user-slash m-0.5 text-xs text-surface-800-200"
|
||||
></span>
|
||||
<UserX size="1em" class="m-0.5 text-xs text-surface-800-200" />
|
||||
{/if}
|
||||
{#if event_presenter_obj.priority}
|
||||
<span
|
||||
class="fas fa-star m-0.5 text-xs text-yellow-800-200"
|
||||
></span>
|
||||
<Star size="1em" class="m-0.5 text-xs text-yellow-800-200" />
|
||||
{/if}
|
||||
<span class="text-center grow">
|
||||
{#if event_presenter_obj?.given_name && event_presenter_obj?.given_name != 'Group'}
|
||||
@@ -172,7 +165,7 @@
|
||||
class="badge preset-tonal-success hover:preset-filled-success-500"
|
||||
title="{event_presenter_obj.file_count} files"
|
||||
>
|
||||
<span class="fas fa-file-alt mx-1"></span>
|
||||
<FileText size="1em" class="mx-1" />
|
||||
{event_presenter_obj?.file_count}×
|
||||
<!-- {event_presenter_obj?.file_count ? `(${event_presenter_obj?.file_count}× files)` : '(0 files)'} -->
|
||||
</span>
|
||||
@@ -236,7 +229,7 @@
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="Email the access link to the presenter"
|
||||
>
|
||||
<span class="fas fa-envelope mx-1"></span>
|
||||
<Mail size="1em" class="mx-1" />
|
||||
Email Access Link
|
||||
</button>
|
||||
{/if}
|
||||
@@ -268,10 +261,7 @@
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="Agreed to terms and conditions"
|
||||
>
|
||||
<span
|
||||
class="fas fa-check text-green-500 px-1"
|
||||
title="Agreed to terms and conditions"
|
||||
></span>
|
||||
<Check size="1em" class="text-green-500 px-1" />
|
||||
Agreed
|
||||
</button>
|
||||
{:else}
|
||||
@@ -300,10 +290,7 @@
|
||||
class:btn-sm={display_mode != 'default'}
|
||||
title="View terms and conditions"
|
||||
>
|
||||
<span
|
||||
class="fas fa-times bg-red-500 text-white px-1 mx-1"
|
||||
title="Not agreed to terms and conditions"
|
||||
></span>
|
||||
<X size="1em" class="bg-red-500 text-white px-1 mx-1" />
|
||||
Not yet agreed
|
||||
</button>
|
||||
{/if}
|
||||
@@ -372,7 +359,7 @@
|
||||
class:hidden={!$ae_loc.edit_mode}
|
||||
class="btn btn-sm preset-tonal-warning hover:preset-filled-warning-500"
|
||||
>
|
||||
<span class="fas fa-plus mx-1"></span>
|
||||
<Plus size="1em" class="mx-1" />
|
||||
Add Person
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
slct,
|
||||
slct_trigger
|
||||
} from '$lib/stores/ae_stores';
|
||||
import { FileSpreadsheet, ListOrdered, Mail, Presentation, ToggleLeft, ToggleRight, User } from 'lucide-svelte';
|
||||
|
||||
// export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
|
||||
// export let link_to_type: string;
|
||||
@@ -198,7 +199,7 @@
|
||||
title="Count {$lq__event_presenter_obj_li.length ??
|
||||
'None'}"
|
||||
>
|
||||
<span class="fas fa-list-ol mx-4"></span>
|
||||
<ListOrdered size="1em" class="mx-4" />
|
||||
{$lq__event_presenter_obj_li.length ??
|
||||
'None'}×
|
||||
</span>
|
||||
@@ -227,7 +228,7 @@
|
||||
console.log('CSV Data:', csv_data);
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-file-csv mx-1"></span>
|
||||
<FileSpreadsheet size="1em" class="mx-1" />
|
||||
Export Presenters CSV
|
||||
</button>
|
||||
<span id="download_csv_container"></span>
|
||||
@@ -243,7 +244,7 @@
|
||||
: 'ae_btn_surface_outlined'}"
|
||||
title="Show or hide the session-related column fields."
|
||||
>
|
||||
<span class="fas fa-toggle-on m-1"></span>
|
||||
<ToggleRight size="1em" class="m-1" />
|
||||
Showing Session Fields
|
||||
</button>
|
||||
{:else}
|
||||
@@ -257,7 +258,7 @@
|
||||
: 'ae_btn_surface_outlined'}"
|
||||
title="Show or hide the session-related column fields."
|
||||
>
|
||||
<span class="fas fa-toggle-off m-1"></span>
|
||||
<ToggleLeft size="1em" class="m-1" />
|
||||
Show Session Fields
|
||||
</button>
|
||||
{/if}
|
||||
@@ -272,7 +273,7 @@
|
||||
class="btn btn-sm ae_btn_surface"
|
||||
title="Hide the session code column from view. Currently showing the Session Code column."
|
||||
>
|
||||
<span class="fas fa-toggle-on m-1"></span>
|
||||
<ToggleRight size="1em" class="m-1" />
|
||||
Showing Session Code
|
||||
</button>
|
||||
{:else}
|
||||
@@ -284,7 +285,7 @@
|
||||
class="btn btn-sm ae_btn_surface_outlined"
|
||||
title="Show the session code column. Currently hiding the Session Code column from view."
|
||||
>
|
||||
<span class="fas fa-toggle-off m-1"></span>
|
||||
<ToggleLeft size="1em" class="m-1" />
|
||||
Show Session Code
|
||||
</button>
|
||||
{/if}
|
||||
@@ -301,7 +302,7 @@
|
||||
: 'ae_btn_surface_outlined'}"
|
||||
title="Show or hide the extra presentation-related column fields."
|
||||
>
|
||||
<span class="fas fa-toggle-on m-1"></span>
|
||||
<ToggleRight size="1em" class="m-1" />
|
||||
Showing Presentation Fields
|
||||
</button>
|
||||
{:else}
|
||||
@@ -316,7 +317,7 @@
|
||||
: 'ae_btn_surface_outlined'}"
|
||||
title="Show or hide the extra presentation-related column fields."
|
||||
>
|
||||
<span class="fas fa-toggle-off m-1"></span>
|
||||
<ToggleLeft size="1em" class="m-1" />
|
||||
Show Presentation Fields
|
||||
</button>
|
||||
{/if}
|
||||
@@ -355,7 +356,7 @@
|
||||
{#each $lq__event_presenter_obj_li as event_presenter_obj (event_presenter_obj.event_presenter_id)}
|
||||
<tr class:dim={event_presenter_obj?.hide}>
|
||||
<td class="px-4 py-2">
|
||||
<span class="fas fa-user"></span>
|
||||
<User size="1em" />
|
||||
<a
|
||||
href="/events/{event_presenter_obj?.event_id}/presenter/{event_presenter_obj?.event_presenter_id}"
|
||||
class="text-blue-500 underline hover:text-blue-800"
|
||||
@@ -365,7 +366,7 @@
|
||||
</a>
|
||||
</td>
|
||||
<td class="px-4 py-2">
|
||||
<span class="fas fa-envelope"></span>
|
||||
<Mail size="1em" />
|
||||
{#if event_presenter_obj?.email}
|
||||
<a
|
||||
href="mailto:{event_presenter_obj?.email}"
|
||||
@@ -393,8 +394,7 @@
|
||||
'-- not set --'}
|
||||
</td>
|
||||
<td class="px-4 py-2 lg:text-xs">
|
||||
<span class="fas fa-chalkboard-teacher"
|
||||
></span>
|
||||
<Presentation size="1em" />
|
||||
<a
|
||||
href="/events/{event_presenter_obj?.event_id}/session/{event_presenter_obj?.event_session_id}"
|
||||
class="text-blue-500 underline hover:text-blue-800"
|
||||
|
||||
Reference in New Issue
Block a user