diff --git a/src/lib/ae_journals/ae_journals__journal_entry.ts b/src/lib/ae_journals/ae_journals__journal_entry.ts
index 006e24f3..fd0f817f 100644
--- a/src/lib/ae_journals/ae_journals__journal_entry.ts
+++ b/src/lib/ae_journals/ae_journals__journal_entry.ts
@@ -332,6 +332,137 @@ export async function delete_ae_obj_id__journal_entry(
}
+
+
+
+// This new function is using CRUD v2. This should allow for more flexibility in the queries.
+// Updated 2025-06-04
+export async function qry__journal_entry(
+ {
+ api_cfg,
+ journal_id,
+ qry_str = null, // Example: 'name:contains:"test"'
+ qry_created_on = null, // Example greater than: '2024-10-24'
+ qry_alert = null,
+ qry_priority = null,
+ enabled = 'enabled',
+ hidden = 'not_hidden',
+ limit = 50,
+ offset = 0,
+ order_by_li = {'group': 'DESC', 'priority': 'DESC', 'sort': 'DESC', 'alert': 'DESC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
+ params = {},
+ try_cache = true,
+ log_lvl = 0
+ }: {
+ api_cfg: any,
+ journal_id: any,
+ qry_str?: null|string,
+ qry_created_on?: null|string,
+ qry_alert?: null|string,
+ qry_priority?: null|number,
+ enabled?: string,
+ hidden?: string,
+ limit?: number,
+ offset?: number,
+ order_by_li?: key_val,
+ params?: any,
+ try_cache?: boolean,
+ log_lvl?: number
+ }
+ ) {
+ log_lvl = 1;
+ if (log_lvl) {
+ console.log(`*** qry__journal_entry() *** journal_id=${journal_id}`);
+ }
+
+ let params_json: key_val = {};
+
+ params_json['qry'] = [];
+
+ if (qry_str) {
+ console.log('qry_str:', qry_str);
+ // let qry_param =
+ // {
+ // type: "AND",
+ // field: "qry_str",
+ // operator: "LIKE",
+ // value: qry_str
+ // };
+ let qry_param =
+ {
+ type: "",
+ field: "default_qry_str", // default is really just the standard FT string in the DB
+ operator: "MATCH",
+ value: qry_str
+ };
+ params_json['qry'].push(qry_param);
+ }
+
+ if (qry_created_on) {
+ let qry_param =
+ {
+ type: "AND",
+ field: "created_on",
+ operator: ">",
+ value: qry_created_on
+ };
+ params_json['qry'].push(qry_param);
+ }
+
+ if (qry_priority) {
+ console.log('qry_priority:', qry_priority);
+ let qry_param =
+ {
+ type: "AND",
+ field: "priority",
+ operator: "=",
+ value: qry_priority
+ };
+ params_json['qry'].push(qry_param);
+ }
+
+ ae_promises.load__journal_entry_obj_li = await api.get_ae_obj_li_for_obj_id_crud_v2({
+ api_cfg: api_cfg,
+ obj_type: 'journal_entry',
+ for_obj_type: 'journal',
+ for_obj_id: journal_id,
+ use_alt_tbl: true, // NOTE: We want to use the alt table for journal entry searching???
+ use_alt_mdl: false,
+ use_alt_exp: false,
+ enabled: enabled,
+ hidden: hidden,
+ order_by_li: order_by_li,
+ limit: limit,
+ offset: offset,
+ params_json: params_json,
+ params: params,
+ log_lvl: log_lvl
+ })
+ .then(function (journal_entry_obj_li_get_result) {
+ if (journal_entry_obj_li_get_result) {
+ if (try_cache) {
+ db_save_ae_obj_li__journal_entry({
+ obj_type: 'journal_entry',
+ obj_li: journal_entry_obj_li_get_result
+ });
+ }
+ return journal_entry_obj_li_get_result;
+ } else {
+ return [];
+ }
+ });
+
+ if (log_lvl) {
+ console.log('ae_promises.load__journal_entry_obj_li:', ae_promises.load__journal_entry_obj_li);
+ }
+ return ae_promises.load__journal_entry_obj_li;
+}
+
+
+
+
+
+
// Updated 2025-03-15
// export async function update_ae_obj__journal_entry(
// {
diff --git a/src/lib/ae_journals/ae_journals_functions.ts b/src/lib/ae_journals/ae_journals_functions.ts
index 6ae901b0..ebec36e0 100644
--- a/src/lib/ae_journals/ae_journals_functions.ts
+++ b/src/lib/ae_journals/ae_journals_functions.ts
@@ -10,12 +10,13 @@ let export_obj = {
create_ae_obj__journal: journal.create_ae_obj__journal,
delete_ae_obj_id__journal: journal.delete_ae_obj_id__journal,
update_ae_obj__journal: journal.update_ae_obj__journal,
- db_save_ae_obj_li__journal: journal.db_save_ae_obj_li__journal,
+ // db_save_ae_obj_li__journal: journal.db_save_ae_obj_li__journal,
load_ae_obj_id__journal_entry: journal_entry.load_ae_obj_id__journal_entry,
load_ae_obj_li__journal_entry: journal_entry.load_ae_obj_li__journal_entry,
create_ae_obj__journal_entry: journal_entry.create_ae_obj__journal_entry,
delete_ae_obj_id__journal_entry: journal_entry.delete_ae_obj_id__journal_entry,
update_ae_obj__journal_entry: journal_entry.update_ae_obj__journal_entry,
- db_save_ae_obj_li__journal_entry: journal_entry.db_save_ae_obj_li__journal_entry,
+ qry__journal_entry: journal_entry.qry__journal_entry,
+ // db_save_ae_obj_li__journal_entry: journal_entry.db_save_ae_obj_li__journal_entry,
};
export let journals_func = export_obj;
diff --git a/src/routes/journals/[journal_id]/+layout.svelte b/src/routes/journals/[journal_id]/+layout.svelte
index fe68492d..a0ac9a38 100644
--- a/src/routes/journals/[journal_id]/+layout.svelte
+++ b/src/routes/journals/[journal_id]/+layout.svelte
@@ -49,6 +49,7 @@ if (log_lvl) {
console.log(`ae_acct = `, ae_acct);
}
+$journals_sess.entry_li = [];
$journals_slct.journal_id = ae_acct.slct.journal_id;
let lq__journal_obj = $derived(liveQuery(async () => {
@@ -293,23 +294,56 @@ async function handle_update_journal() {
Search:
{
+ onkeyup={async (event) => {
if (event.key === 'Enter') {
+ log_lvl = 1;
// $journals_loc.qry__search_text = event.target.value;
// $journals_trig.journal_entry_li = true;
// console.log('Search query:', $journals_loc.qry__search_text);
+
+ $journals_prom.load__journal_entry_obj_qry = await journals_func.qry__journal_entry({
+ api_cfg: $ae_api,
+ journal_id: $lq__journal_obj?.journal_id ?? '',
+ qry_str: $journals_loc.qry__search_text,
+
+ // qry_created_on: null,
+ // qry_alert: null,
+ // qry_priority: null,
+ // qry_type: and_type,
+
+ // enabled: $journals_loc.recovery_meetings.qry__enabled,
+ // hidden: $journals_loc.recovery_meetings.qry__hidden,
+ // order_by_li: $journals_loc.recovery_meetings.qry__order_by_li,
+ // limit: $journals_loc.recovery_meetings.qry__limit,
+ // try_cache: try_cache,
+ log_lvl: log_lvl,
+ });
+ if ($journals_prom.load__journal_entry_obj_qry.length) {
+ $journals_sess.entry_li = $journals_prom.load__journal_entry_obj_qry;
+
+ $journals_sess = {
+ ...$journals_sess }; // ensure session is updated
+
+ // $journals_trig.journal_entry_li = true; // trigger the entry list to refresh
+ // $journals_trig.journal_entry_li = $journals_prom.load__journal_entry_obj_qry;
+ } else {
+ console.log('Clear the search results: no entries found for that query.');
+ // $journals_sess.entry_li = [''];
+ $journals_sess.entry_li = null;
+ // $journals_trig.journal_entry_li = true;
+ // alert('No journal entries found for that search query.');
+ // $journals_sess = $journals_sess;
+ }
}
}}
- oninput={(event) => {
- // $journals_loc.qry__search_text = event.target.value;
- // console.log('Search query:', $journals_loc.qry__search_text);
- }}
title="Search Journal Entries"
- class="input input-sm input-bordered w-48 md:w-64"
+ class="input input-sm input-bordered w-44 text-sm md:w-52"
+ class:bg-red-200={$journals_sess.entry_li == null}
+ class:dark:bg-red-800={$journals_sess.entry_li == null}
/>