refactor(crud): migrate v2 component usages to field-editor-v3
Replaces all active Element_ae_crud_v2 usages with Element_ae_obj_field_editor_v3, and direct core_func.update_ae_obj_id_crud_v2 calls with api.update_ae_obj_v3. Adds 'number' field_type to v3 editor. All on_success callbacks trigger SWR refresh via events_func load functions so liveQuery updates Dexie correctly. - element_ae_obj_field_editor_v3: add 'number' input type - ae_comp__event_session_obj_li: replace core_func v2 API calls + dead import - ae_comp__event_location_obj_li: migrate 2x Element_ae_crud_v2 (name, description) - ae_tab__manage: migrate 7x Element_ae_crud_v2 (priority/checkbox, numbers, text, tiptap) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
import { ae_api, ae_loc } from '$lib/stores/ae_stores';
|
||||
import { events_loc, events_sess } from '$lib/stores/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import Element_ae_crud_v2 from '$lib/elements/element_ae_crud_v2.svelte';
|
||||
import Element_ae_obj_field_editor_v3 from '$lib/elements/element_ae_obj_field_editor_v3.svelte';
|
||||
import Comp_exhibit_license_list from './ae_comp__exhibit_license_list.svelte';
|
||||
import Comp_exhibit_custom_questions from './ae_comp__exhibit_custom_questions.svelte';
|
||||
import Comp_exhibit_payment from './ae_comp__exhibit_payment.svelte';
|
||||
@@ -66,69 +66,58 @@
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
|
||||
<!-- Priority / Payment Toggle -->
|
||||
<div class="card p-3 variant-soft flex items-center justify-between">
|
||||
<div>
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Payment Status</div>
|
||||
<div class="font-bold">{$lq__exhibit_obj?.priority ? 'PAID' : 'PENDING'}</div>
|
||||
</div>
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Payment Status</div>
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type="event_exhibit"
|
||||
object_id={exhibit_id}
|
||||
field_name="priority"
|
||||
field_type="boolean"
|
||||
current_field_value={$lq__exhibit_obj?.priority}
|
||||
object_reload={true}
|
||||
/>
|
||||
field_type="checkbox"
|
||||
current_value={$lq__exhibit_obj?.priority}
|
||||
on_success={() => events_func.load_ae_obj_id__event_exhibit({ api_cfg: $ae_api, exhibit_id })}
|
||||
>
|
||||
<div class="font-bold">{$lq__exhibit_obj?.priority ? 'PAID' : 'PENDING'}</div>
|
||||
</Element_ae_obj_field_editor_v3>
|
||||
</div>
|
||||
|
||||
<!-- Max Licenses -->
|
||||
<div class="card p-3 variant-soft flex items-center justify-between">
|
||||
<div>
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Max Licenses</div>
|
||||
</div>
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Max Licenses</div>
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type="event_exhibit"
|
||||
object_id={exhibit_id}
|
||||
field_name="license_max"
|
||||
field_type="number"
|
||||
current_field_value={$lq__exhibit_obj?.license_max}
|
||||
object_reload={true}
|
||||
class_li="w-16 font-mono text-right"
|
||||
current_value={$lq__exhibit_obj?.license_max}
|
||||
class_li="font-mono"
|
||||
on_success={() => events_func.load_ae_obj_id__event_exhibit({ api_cfg: $ae_api, exhibit_id })}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Small Devices -->
|
||||
<div class="card p-3 variant-soft flex items-center justify-between">
|
||||
<div>
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Small Devices</div>
|
||||
</div>
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Small Devices</div>
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type="event_exhibit"
|
||||
object_id={exhibit_id}
|
||||
field_name="leads_device_sm_qty"
|
||||
field_type="number"
|
||||
current_field_value={$lq__exhibit_obj?.leads_device_sm_qty}
|
||||
object_reload={true}
|
||||
class_li="w-16 font-mono text-right"
|
||||
current_value={$lq__exhibit_obj?.leads_device_sm_qty}
|
||||
class_li="font-mono"
|
||||
on_success={() => events_func.load_ae_obj_id__event_exhibit({ api_cfg: $ae_api, exhibit_id })}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Large Devices -->
|
||||
<div class="card p-3 variant-soft flex items-center justify-between">
|
||||
<div>
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Large Devices</div>
|
||||
</div>
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<div class="text-[10px] uppercase font-black opacity-40">Large Devices</div>
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type="event_exhibit"
|
||||
object_id={exhibit_id}
|
||||
field_name="leads_device_lg_qty"
|
||||
field_type="number"
|
||||
current_field_value={$lq__exhibit_obj?.leads_device_lg_qty}
|
||||
object_reload={true}
|
||||
class_li="w-16 font-mono text-right"
|
||||
current_value={$lq__exhibit_obj?.leads_device_lg_qty}
|
||||
class_li="font-mono"
|
||||
on_success={() => events_func.load_ae_obj_id__event_exhibit({ api_cfg: $ae_api, exhibit_id })}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -148,17 +137,15 @@
|
||||
<label class="label mb-2">
|
||||
<span class="text-xs uppercase font-black opacity-40 tracking-widest">Exhibitor Name</span>
|
||||
</label>
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type="event_exhibit"
|
||||
object_id={exhibit_id}
|
||||
field_name="name"
|
||||
field_type="text"
|
||||
current_field_value={$lq__exhibit_obj?.name}
|
||||
object_reload={true}
|
||||
hide_element={false}
|
||||
current_value={$lq__exhibit_obj?.name}
|
||||
display_block={true}
|
||||
class_li="font-bold text-xl"
|
||||
on_success={() => events_func.load_ae_obj_id__event_exhibit({ api_cfg: $ae_api, exhibit_id })}
|
||||
/>
|
||||
<p class="text-[10px] opacity-50 mt-2 italic">This name is visible to attendees when you scan their badges.</p>
|
||||
</div>
|
||||
@@ -168,17 +155,15 @@
|
||||
<label class="label mb-2">
|
||||
<span class="text-xs uppercase font-black opacity-40 tracking-widest">Booth Description / Promo</span>
|
||||
</label>
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type="event_exhibit"
|
||||
object_id={exhibit_id}
|
||||
field_name="description"
|
||||
field_type="tiptap"
|
||||
current_field_value={$lq__exhibit_obj?.description}
|
||||
object_reload={true}
|
||||
hide_element={false}
|
||||
current_value={$lq__exhibit_obj?.description}
|
||||
display_block={true}
|
||||
class_li="text-sm"
|
||||
on_success={() => events_func.load_ae_obj_id__event_exhibit({ api_cfg: $ae_api, exhibit_id })}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -205,17 +190,15 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type="event_exhibit"
|
||||
object_id={exhibit_id}
|
||||
field_name="staff_passcode"
|
||||
field_type="text"
|
||||
current_field_value={$lq__exhibit_obj?.staff_passcode}
|
||||
object_reload={true}
|
||||
class_li="font-mono text-xl tracking-widest font-bold"
|
||||
hide_element={false}
|
||||
current_value={$lq__exhibit_obj?.staff_passcode}
|
||||
display_block={true}
|
||||
class_li="font-mono text-xl tracking-widest font-bold"
|
||||
on_success={() => events_func.load_ae_obj_id__event_exhibit({ api_cfg: $ae_api, exhibit_id })}
|
||||
/>
|
||||
</div>
|
||||
<Key size="1.5em" class="opacity-20" />
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
|
||||
import Comp_event_session_obj_li from '../../../ae_comp__event_session_obj_li_wrapper.svelte';
|
||||
import Element_ae_crud_v2 from '$lib/elements/element_ae_crud_v2.svelte';
|
||||
import Element_ae_obj_field_editor_v3 from '$lib/elements/element_ae_obj_field_editor_v3.svelte';
|
||||
import Comp_event_device_obj_li from '../device/device/ae_comp__event_device_obj_li_wrapper.svelte';
|
||||
|
||||
// if (log_lvl) {
|
||||
@@ -138,28 +138,23 @@
|
||||
class="h5 rounded-md p-2 bg-gray-200 flex flex-row gap-1 items-center justify-between"
|
||||
>
|
||||
<span>
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type={'event_location'}
|
||||
object_id={event_location_obj?.event_location_id}
|
||||
object_reload={true}
|
||||
field_name={'name'}
|
||||
field_type={'text'}
|
||||
current_field_value={event_location_obj?.name}
|
||||
current_value={event_location_obj?.name}
|
||||
allow_null={false}
|
||||
hide_element={!$ae_loc.edit_mode}
|
||||
hide_edit_btn={false}
|
||||
outline_element={false}
|
||||
display_block={false}
|
||||
display_absolute_edit={false}
|
||||
class_li={'m-1'}
|
||||
on_success={() => events_func.load_ae_obj_id__event_location({ api_cfg: $ae_api, event_location_id: event_location_obj.event_location_id })}
|
||||
>
|
||||
<!-- <strong class="text-sm">Name/Title:</strong> -->
|
||||
<span
|
||||
class="fas fa-map-marker-alt m-1 text-neutral-800/80"
|
||||
></span>
|
||||
"{event_location_obj?.name ?? '-- not set --'}"
|
||||
</Element_ae_crud_v2>
|
||||
</Element_ae_obj_field_editor_v3>
|
||||
|
||||
<!-- "{event_location_obj.name}" -->
|
||||
{#if event_location_obj?.code && !$events_loc.pres_mgmt?.hide__location_code}
|
||||
@@ -320,23 +315,18 @@
|
||||
{/if}
|
||||
</Element_ae_crud> -->
|
||||
|
||||
<Element_ae_crud_v2
|
||||
api_cfg={$ae_api}
|
||||
<Element_ae_obj_field_editor_v3
|
||||
object_type={'event_location'}
|
||||
object_id={event_location_obj?.event_location_id}
|
||||
object_reload={true}
|
||||
field_name={'description'}
|
||||
field_type={'textarea'}
|
||||
current_field_value={event_location_obj?.description}
|
||||
current_value={event_location_obj?.description}
|
||||
allow_null={true}
|
||||
hide_element={!$ae_loc.edit_mode}
|
||||
hide_edit_btn={!$ae_loc.trusted_access ||
|
||||
!$ae_loc.edit_mode}
|
||||
outline_element={false}
|
||||
display_block={false}
|
||||
display_absolute_edit={false}
|
||||
textarea_rows={15}
|
||||
class_li={'m-1'}
|
||||
on_success={() => events_func.load_ae_obj_id__event_location({ api_cfg: $ae_api, event_location_id: event_location_obj.event_location_id })}
|
||||
>
|
||||
<strong class="text-sm"> Description: </strong>
|
||||
|
||||
@@ -388,7 +378,7 @@
|
||||
{:else}
|
||||
{@html ae_snip.html__not_set}
|
||||
{/if}
|
||||
</Element_ae_crud_v2>
|
||||
</Element_ae_obj_field_editor_v3>
|
||||
</div>
|
||||
|
||||
{#if !$events_loc.pres_mgmt.show_content__location_devices_sessions || $events_loc.pres_mgmt.show_content__location_devices_sessions == 'default' || $events_loc.pres_mgmt.show_content__location_devices_sessions == 'sessions'}
|
||||
|
||||
@@ -50,12 +50,12 @@
|
||||
Clock
|
||||
} from 'lucide-svelte';
|
||||
|
||||
import Element_ae_crud_v2 from '$lib/elements/element_ae_crud_v2.svelte';
|
||||
import { api } from '$lib/api/api';
|
||||
import Comp_event_presenter_obj_li from './[event_id]/(pres_mgmt)/presenter/ae_comp__event_presenter_obj_li_wrapper.svelte';
|
||||
import Element_manage_event_file_li from '$lib/elements/element_manage_event_file_li_direct.svelte';
|
||||
import Comp_event_session_alert from './[event_id]/(pres_mgmt)/session/ae_comp__event_session_alert.svelte';
|
||||
|
||||
import { core_func } from '$lib/ae_core/ae_core_functions';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import { ae_loc, ae_api, ae_snip } from '$lib/stores/ae_stores';
|
||||
import {
|
||||
events_loc,
|
||||
@@ -330,16 +330,19 @@
|
||||
class="btn btn-icon btn-xs {session_obj?.hide
|
||||
? 'preset-tonal-error'
|
||||
: 'preset-tonal-secondary'}"
|
||||
onclick={() =>
|
||||
core_func.update_ae_obj_id_crud_v2({
|
||||
onclick={async () => {
|
||||
await api.update_ae_obj_v3({
|
||||
api_cfg: $ae_api,
|
||||
object_type: 'event_session',
|
||||
object_id:
|
||||
session_obj.event_session_id,
|
||||
field_name: 'hide',
|
||||
new_field_value: !session_obj.hide,
|
||||
obj_type: 'event_session',
|
||||
obj_id: session_obj.event_session_id,
|
||||
fields: { hide: !session_obj.hide },
|
||||
log_lvl: 1
|
||||
})}
|
||||
});
|
||||
events_func.load_ae_obj_id__event_session({
|
||||
api_cfg: $ae_api,
|
||||
event_session_id: session_obj.event_session_id
|
||||
});
|
||||
}}
|
||||
>
|
||||
{#if session_obj?.hide}<EyeOff
|
||||
size="1.2em"
|
||||
@@ -351,16 +354,19 @@
|
||||
class="btn btn-icon btn-xs {session_obj?.alert
|
||||
? 'preset-tonal-warning'
|
||||
: 'preset-tonal-surface'}"
|
||||
onclick={() =>
|
||||
core_func.update_ae_obj_id_crud_v2({
|
||||
onclick={async () => {
|
||||
await api.update_ae_obj_v3({
|
||||
api_cfg: $ae_api,
|
||||
object_type: 'event_session',
|
||||
object_id:
|
||||
session_obj.event_session_id,
|
||||
field_name: 'alert',
|
||||
new_field_value: !session_obj.alert,
|
||||
obj_type: 'event_session',
|
||||
obj_id: session_obj.event_session_id,
|
||||
fields: { alert: !session_obj.alert },
|
||||
log_lvl: 1
|
||||
})}
|
||||
});
|
||||
events_func.load_ae_obj_id__event_session({
|
||||
api_cfg: $ae_api,
|
||||
event_session_id: session_obj.event_session_id
|
||||
});
|
||||
}}
|
||||
>
|
||||
{#if session_obj?.alert}<Bell
|
||||
size="1.2em"
|
||||
|
||||
Reference in New Issue
Block a user