From 3fef19488c2e01a5f64b695de98a61f9e413b376 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 11 Dec 2024 15:34:44 -0500 Subject: [PATCH] Work on better sorting for the IDAA BB posts. Using generated tmp field. Date formats standardized. --- src/lib/ae_archives/db_archives.ts | 4 +++- src/lib/ae_idaa_stores.ts | 4 ++-- src/lib/ae_posts/ae_posts__post.ts | 3 +++ src/lib/ae_posts/db_posts.ts | 5 +++++ src/routes/idaa/(idaa)/bb/+page.svelte | 3 ++- .../(idaa)/bb/ae_idaa_comp__post_obj_id_view.svelte | 10 +++++----- .../idaa/(idaa)/bb/ae_idaa_comp__post_obj_li.svelte | 6 +++--- 7 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/lib/ae_archives/db_archives.ts b/src/lib/ae_archives/db_archives.ts index 69cadf04..310b1782 100644 --- a/src/lib/ae_archives/db_archives.ts +++ b/src/lib/ae_archives/db_archives.ts @@ -111,6 +111,7 @@ export interface Archive_Content { created_on: Date; updated_on?: null|Date; + // Generated fields for sorting locally only tmp_sort_1?: null|string; tmp_sort_2?: null|string; @@ -145,7 +146,8 @@ export class MySubClassedDexie extends Dexie { name, hosted_file_id, original_datetime, original_timezone, original_location, - [group+original_datetime],tmp_sort_1,tmp_sort_2, + [group+original_datetime], + tmp_sort_1, tmp_sort_2, enable, hide, priority, sort, group, notes, created_on, updated_on, [group+priority+sort+updated_on]`, }); diff --git a/src/lib/ae_idaa_stores.ts b/src/lib/ae_idaa_stores.ts index dca689ef..604447ea 100644 --- a/src/lib/ae_idaa_stores.ts +++ b/src/lib/ae_idaa_stores.ts @@ -52,13 +52,13 @@ let idaa_local_data_struct: key_val = { bb: { enabled: 'enabled', // all, disabled, enabled hidden: 'not_hidden', // all, hidden, not_hidden - limit: 150, + limit: 50, offset: 0, show_list__post_obj_li: true, qry__enabled: 'enabled', // all, disabled, enabled qry__hidden: 'not_hidden', // all, hidden, not_hidden - qry__limit: 150, + qry__limit: 50, qry__offset: 0, qry__order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC', 'title': 'ASC'}, }, diff --git a/src/lib/ae_posts/ae_posts__post.ts b/src/lib/ae_posts/ae_posts__post.ts index 7da2a0f8..24e0ede2 100644 --- a/src/lib/ae_posts/ae_posts__post.ts +++ b/src/lib/ae_posts/ae_posts__post.ts @@ -714,6 +714,9 @@ export function db_save_ae_obj_li__post( created_on: obj.created_on, updated_on: obj.updated_on, + tmp_sort_1: `${obj.group}_${obj.priority}_${obj.sort}_${obj.updated_on}_${obj.created_on}`, + tmp_sort_2: `${obj.group}_${obj.priority}_${obj.sort}_${obj.created_on}_${obj.updated_on}`, + // From SQL view post_comment_count: obj.post_comment_count, diff --git a/src/lib/ae_posts/db_posts.ts b/src/lib/ae_posts/db_posts.ts index 74358b72..23a95291 100644 --- a/src/lib/ae_posts/db_posts.ts +++ b/src/lib/ae_posts/db_posts.ts @@ -50,6 +50,10 @@ export interface Post { created_on: Date; updated_on?: null|Date; + // Generated fields for sorting locally only + tmp_sort_1?: null|string; + tmp_sort_2?: null|string; + // Additional fields for convenience (database views) post_comment_count?: number; } @@ -116,6 +120,7 @@ export class MySubClassedDexie extends Dexie { post_id, title, full_name, email, + tmp_sort_1, tmp_sort_2, enable, hide, priority, sort, group, notes, created_on, updated_on, [updated_on+created_on]`, }); } diff --git a/src/routes/idaa/(idaa)/bb/+page.svelte b/src/routes/idaa/(idaa)/bb/+page.svelte index bd709f45..54dd1cdc 100644 --- a/src/routes/idaa/(idaa)/bb/+page.svelte +++ b/src/routes/idaa/(idaa)/bb/+page.svelte @@ -32,7 +32,8 @@ $: lq__post_obj_li = liveQuery(async () => { // .orderBy('updated_on') // .toArray() .reverse() - .sortBy('updated_on'); + .sortBy('tmp_sort_1'); + // .sortBy('updated_on'); // .sortBy('updated_on, created_on'); // .sortBy('[updated_on+created_on]'); // .sortBy('[created_on+updated_on]'); diff --git a/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_id_view.svelte b/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_id_view.svelte index 637d7a72..01d4f0a6 100644 --- a/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_id_view.svelte +++ b/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_id_view.svelte @@ -191,18 +191,18 @@ onDestroy(() => {
{#if !$lq__post_obj?.updated_on} Created on: - {ae_util.iso_datetime_formatter($lq__post_obj?.created_on, 'datetime_iso_12_no_seconds')} + {ae_util.iso_datetime_formatter($lq__post_obj?.created_on, 'datetime_12_short')} {:else} Updated on: - {ae_util.iso_datetime_formatter($lq__post_obj?.updated_on, 'datetime_iso_12_no_seconds')} + {ae_util.iso_datetime_formatter($lq__post_obj?.updated_on, 'datetime_12_short')} {/if} Archive on: - {ae_util.iso_datetime_formatter($lq__post_obj?.archive_on, 'datetime_iso_12_no_seconds')} + {ae_util.iso_datetime_formatter($lq__post_obj?.archive_on, 'datetime_12_short')}
@@ -300,10 +300,10 @@ onDestroy(() => { {#if !post_comment_obj.updated_on} Created on: - {ae_util.iso_datetime_formatter(post_comment_obj.created_on, 'datetime_iso_12_no_seconds')} + {ae_util.iso_datetime_formatter(post_comment_obj.created_on, 'datetime_12_short')} {:else} Updated on: - {ae_util.iso_datetime_formatter(post_comment_obj.updated_on, 'datetime_iso_12_no_seconds')} + {ae_util.iso_datetime_formatter(post_comment_obj.updated_on, 'datetime_12_short')} {/if} diff --git a/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_li.svelte b/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_li.svelte index 73f7199f..bce83097 100644 --- a/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_li.svelte +++ b/src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_li.svelte @@ -126,18 +126,18 @@ onMount(() => { class="post__created_on" > Created on: - {ae_util.iso_datetime_formatter(idaa_post_obj.created_on, 'datetime_iso_12_no_seconds')} + {ae_util.iso_datetime_formatter(idaa_post_obj.created_on, 'datetime_12_short')} {:else} Updated on: - {ae_util.iso_datetime_formatter(idaa_post_obj.updated_on, 'datetime_iso_12_no_seconds')} + {ae_util.iso_datetime_formatter(idaa_post_obj.updated_on, 'datetime_12_short')} {/if} {#if idaa_post_obj.archive_on} - Archive on: {ae_util.iso_datetime_formatter(idaa_post_obj.archive_on, 'datetime_iso_12_no_seconds')} + Archive on: {ae_util.iso_datetime_formatter(idaa_post_obj.archive_on, 'datetime_12_short')} {/if} {/if}