diff --git a/src/lib/ae_journals/ae_journals__journal.ts b/src/lib/ae_journals/ae_journals__journal.ts
index 15314181..b2885c85 100644
--- a/src/lib/ae_journals/ae_journals__journal.ts
+++ b/src/lib/ae_journals/ae_journals__journal.ts
@@ -603,6 +603,8 @@ export function db_save_ae_obj_li__journal(
updated_on: obj.updated_on,
// Generated fields for sorting locally only
+ 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.updated_on ?? obj.created_on}`,
// tmp_sort_1: `${obj.original_datetime}_${obj.group}_${obj.priority}_${obj.sort}`,
// tmp_sort_2: `${obj.group}_${obj.original_datetime}_${obj.priority}_${obj.sort}`,
diff --git a/src/lib/ae_journals/db_journals.ts b/src/lib/ae_journals/db_journals.ts
index 0362ec2b..d564ecf4 100644
--- a/src/lib/ae_journals/db_journals.ts
+++ b/src/lib/ae_journals/db_journals.ts
@@ -80,6 +80,10 @@ export interface Journal {
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)
file_count?: null|number; // Only files directly under a journal
journal_file_id_li_json?: null|string;
@@ -299,6 +303,7 @@ export class MySubClassedDexie extends Dexie {
name,
start_datetime, end_datetime,
timezone,
+ tmp_sort_1, tmp_sort_2,
enable, hide, priority, sort, group, notes, created_on, updated_on`,
journal_entry: `
id, journal_entry_id,
@@ -309,6 +314,7 @@ export class MySubClassedDexie extends Dexie {
name,
start_datetime, end_datetime,
timezone,
+ tmp_sort_1, tmp_sort_2,
enable, hide, priority, sort, group, notes, created_on, updated_on`,
});
}
diff --git a/src/routes/journals/+page.svelte b/src/routes/journals/+page.svelte
index f5ff140f..baaf46ce 100644
--- a/src/routes/journals/+page.svelte
+++ b/src/routes/journals/+page.svelte
@@ -43,7 +43,7 @@ let ae_acct = data[$slct.account_id];
let lq__journal_obj_li = $derived(liveQuery(async () => {
let results = await db_journals.journal
- .orderBy('updated_on')
+ .orderBy('tmp_sort_2')
.reverse()
.toArray()
// .sortBy('start_datetime')
diff --git a/src/routes/journals/[journal_id]/+layout.svelte b/src/routes/journals/[journal_id]/+layout.svelte
index b57252b7..cbdfbf3d 100644
--- a/src/routes/journals/[journal_id]/+layout.svelte
+++ b/src/routes/journals/[journal_id]/+layout.svelte
@@ -6,11 +6,17 @@ let { data, children } = $props();
import { goto } from '$app/navigation';
import {
+ ArrowDown01, ArrowDown10, ArrowDownUp,
BookHeart, BookImage, Bookmark, BookOpenText,
Check,
- FilePlus, Library,
- Minus, Notebook, Pencil, Plus,
+ Eye, EyeOff,
+ Flag, FlagOff, FilePlus, Library,
+ MessageSquareWarning, Minus,
+ Notebook,
+ Pencil, Plus,
SquareLibrary,
+ Shapes, Share2, ShieldCheck, ShieldMinus, Siren, Skull,
+ Tags, Trash2, TypeOutline,
X
} from '@lucide/svelte';
@@ -30,6 +36,9 @@ import { journals_func } from '$lib/ae_journals/ae_journals_functions';
// let { data }: Props = $props();
+let tmp_journal_obj_changed: boolean = $state(false);
+let tmp_journal_obj: key_val = $state({});
+
let ae_acct = data[$slct.account_id];
if (log_lvl) {
@@ -51,6 +60,17 @@ let lq__journal_obj = $derived(liveQuery(async () => {
return results;
}));
+$effect(() => {
+ if ($lq__journal_obj) {
+ tmp_journal_obj = { ...$lq__journal_obj };
+ }
+});
+
+$effect(() => {
+ if (tmp_journal_obj) {
+ tmp_journal_obj_changed = JSON.stringify(tmp_journal_obj) != JSON.stringify($lq__journal_obj);
+ }
+});
async function handle_update_journal() {
if ($journals_slct.tmp_journal_obj.name && $journals_slct.tmp_journal_obj.type_code) {
@@ -279,6 +299,7 @@ async function handle_update_journal() {
+
{@render children()}
@@ -438,6 +459,211 @@ async function handle_update_journal() {
+
+
+
+
+
+
+
+
+
+ {#if $lq__journal_obj?.sort}
+ {$lq__journal_obj.sort}
+ {:else}
+
+ {/if}
+
+
+
+
+
+
{
+ let data_kv = {
+ group: tmp_journal_obj.group,
+ };
+ journals_func.update_ae_obj__journal({
+ api_cfg: $ae_api,
+ journal_id: $lq__journal_obj?.journal_id,
+ data_kv: data_kv,
+ log_lvl: log_lvl
+ }).then(() => {
+ alert('Journal group updated successfully!');
+ }).catch((error) => {
+ console.error('Error updating journal group:', error);
+ alert('Failed to update journal group.');
+ });
+ }}
+ class="input input-sm input-bordered w-24"
+ title="Set group (for sorting) of this journal"
+ />
+
+
+
+
+
+
+
+
+
+
+
+