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" />
|
||||
|
||||
Reference in New Issue
Block a user