fix(data-stores): sort format, enabled filter, account name display
- order_by_li was sent as an array; backend expects plain object — fixes sort - pass enabled/hidden directly to search_ae_obj (was defaulting to 'enabled'/'not_hidden') - account column now shows code/short_name from Dexie cache via SvelteMap Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount, untrack } from 'svelte';
|
import { onMount, untrack } from 'svelte';
|
||||||
|
import { SvelteMap } from 'svelte/reactivity';
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
import {
|
import {
|
||||||
ArrowRight,
|
ArrowRight,
|
||||||
@@ -26,9 +27,17 @@ import { ae_util } from '$lib/ae_utils/ae_utils';
|
|||||||
import type { ae_DataStore } from '$lib/types/ae_types';
|
import type { ae_DataStore } from '$lib/types/ae_types';
|
||||||
import AE_DataStore_Form from '$lib/elements/element_data_store_form.svelte';
|
import AE_DataStore_Form from '$lib/elements/element_data_store_form.svelte';
|
||||||
|
|
||||||
onMount(() => {
|
let account_map = new SvelteMap<string, string>();
|
||||||
|
|
||||||
|
onMount(async () => {
|
||||||
if (!$ae_loc.manager_access) {
|
if (!$ae_loc.manager_access) {
|
||||||
goto('/core');
|
goto('/core');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const accts = await db_core.account.toArray();
|
||||||
|
account_map.clear();
|
||||||
|
for (const a of accts) {
|
||||||
|
if (a.id) account_map.set(a.id, a.code ?? a.short_name ?? a.name ?? a.id.slice(0, 8) + '…');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -89,17 +98,13 @@ async function do_search(reset = true) {
|
|||||||
if (qry_for_id.trim()) {
|
if (qry_for_id.trim()) {
|
||||||
search_query.and.push({ field: 'for_id_random', op: 'eq', value: qry_for_id.trim() });
|
search_query.and.push({ field: 'for_id_random', op: 'eq', value: qry_for_id.trim() });
|
||||||
}
|
}
|
||||||
if (qry_enabled === 'enabled') {
|
|
||||||
search_query.and.push({ field: 'enable', op: 'eq', value: true });
|
|
||||||
} else if (qry_enabled === 'not_enabled') {
|
|
||||||
search_query.and.push({ field: 'enable', op: 'eq', value: false });
|
|
||||||
}
|
|
||||||
|
|
||||||
const result_li = await api.search_ae_obj({
|
const result_li = await api.search_ae_obj({
|
||||||
api_cfg: $ae_api,
|
api_cfg: $ae_api,
|
||||||
obj_type: 'data_store',
|
obj_type: 'data_store',
|
||||||
search_query,
|
search_query,
|
||||||
order_by_li: [{ [sort_col]: sort_dir }],
|
enabled: qry_enabled,
|
||||||
|
hidden: 'all',
|
||||||
|
order_by_li: { [sort_col]: sort_dir },
|
||||||
limit: page_limit,
|
limit: page_limit,
|
||||||
offset: page_offset,
|
offset: page_offset,
|
||||||
log_lvl: 0
|
log_lvl: 0
|
||||||
@@ -213,6 +218,11 @@ function type_badge(type: string | null | undefined) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fmt_account(account_id: string | null | undefined): string {
|
||||||
|
if (!account_id) return 'global';
|
||||||
|
return account_map.get(account_id) ?? account_id.slice(0, 8) + '…';
|
||||||
|
}
|
||||||
|
|
||||||
function fmt_date(val: string | Date | null | undefined) {
|
function fmt_date(val: string | Date | null | undefined) {
|
||||||
if (!val) return '—';
|
if (!val) return '—';
|
||||||
return ae_util.iso_datetime_formatter(val as any, 'datetime_12_short');
|
return ae_util.iso_datetime_formatter(val as any, 'datetime_12_short');
|
||||||
@@ -536,9 +546,9 @@ function content_preview(ds: ae_DataStore): string {
|
|||||||
<td class="px-3 py-2">
|
<td class="px-3 py-2">
|
||||||
<span class="badge {type_badge(ds.type)} font-mono text-[9px] uppercase">{ds.type ?? '?'}</span>
|
<span class="badge {type_badge(ds.type)} font-mono text-[9px] uppercase">{ds.type ?? '?'}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 py-2 font-mono opacity-60">
|
<td class="px-3 py-2 font-mono opacity-60" title={ds.account_id ?? 'global'}>
|
||||||
{#if ds.account_id}
|
{#if ds.account_id}
|
||||||
<span title={ds.account_id}>{ds.account_id.slice(0, 8)}…</span>
|
{fmt_account(ds.account_id)}
|
||||||
{:else}
|
{:else}
|
||||||
<span class="italic opacity-50">global</span>
|
<span class="italic opacity-50">global</span>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
Reference in New Issue
Block a user