Now with prepend or append to Entry content option.

This commit is contained in:
Scott Idem
2025-05-15 19:03:22 -04:00
parent 698459c207
commit 49139b3a1f
2 changed files with 90 additions and 24 deletions

View File

@@ -7,6 +7,7 @@ let { data, children } = $props();
import { goto } from '$app/navigation';
import {
ArrowDown01, ArrowDown10, ArrowDownUp,
BetweenVerticalEnd, BetweenVerticalStart,
BookHeart, BookImage, Bookmark, BookOpenText, BriefcaseBusiness,
Check, Copy,
Expand, Eye, EyeOff,
@@ -615,6 +616,51 @@ async function handle_update_journal() {
</span>
</div>
<!-- Toggles for the of how to add new content to an existing Journal Entry. append, prepend, and defaults to append -->
<div class="flex flex-row flex-wrap gap-1 items-center justify-start">
<span class="text-sm text-gray-500 hidden sm:inline">
Journal Entry Add Content:
</span>
<span class="flex flex-row flex-wrap gap-1 items-center justify-center">
<button
type="button"
onclick={() => {
if ($journals_slct.tmp_journal_obj.cfg_json.entry_add_text == 'append') {
$journals_slct.tmp_journal_obj.cfg_json.entry_add_text = 'prepend';
} else {
$journals_slct.tmp_journal_obj.cfg_json.entry_add_text = 'append';
}
}}
class="btn btn-sm variant-ghost-secondary hover:variant-filled-secondary transition *:hover:inline"
title="Toggle visibility of Markdown copy button(s) on Journal Entry view page"
>
{#if $journals_slct.tmp_journal_obj.cfg_json.entry_add_text == 'append'}
<!-- <EyeOff strokeWidth="1" color="red" /> -->
<ToggleLeft strokeWidth="1" color="red" class="mx-1" />
<!-- <Plus strokeWidth="2.5" color="green" /> -->
<BetweenVerticalEnd strokeWidth="2.5" color="green" />
<span class="hidden">
Append
</span>
{:else}
<!-- <Eye strokeWidth="2.5" color="green" /> -->
<ToggleRight strokeWidth="2.5" color="green" class="mx-1" />
<!-- <Minus strokeWidth="2.5" color="green" /> -->
<BetweenVerticalStart strokeWidth="2.5" color="green" />
<span class="hidden">
Prepend
</span>
{/if}
<span class="hidden">
Add Content to Journal Entry
</span>
</button>
</span>
</div>
<!-- Select color scheme for the journal entries -->
<!-- Should select from the common Tailwind CSS options. Examples: slate, blue, gray, green, orange, red, yellow, etc. -->
<!-- Saves to cfg_json.color_scheme -->

View File

@@ -38,14 +38,14 @@ let ae_promises: key_val = $state({});
// let ae_triggers: key_val = {};
let tmp_entry_obj: key_val = $state({});
let tmp_entry_obj_append_timestamp_header: boolean = $state(false);
let tmp_entry_obj_append_text_header: string = $state('');
let tmp_entry_obj_append_text: string = $state('');
let tmp_entry_obj_add_timestamp_header: boolean = $state(false);
let tmp_entry_obj_add_text_header: string = $state('');
let tmp_entry_obj_add_text: string = $state('');
let tmp_entry_obj_changed: boolean = $state(false);
$effect(() => {
if (tmp_entry_obj_append_text_header.length || tmp_entry_obj_append_text) {
if (tmp_entry_obj_add_text_header.length || tmp_entry_obj_add_text) {
tmp_entry_obj_changed = true;
} else {
tmp_entry_obj_changed = false;
@@ -625,7 +625,7 @@ $effect(() => {
<input
type="checkbox"
id="append_timestamp_header"
bind:checked={tmp_entry_obj_append_timestamp_header}
bind:checked={tmp_entry_obj_add_timestamp_header}
class:border-orange-200={$ae_loc.edit_mode}
class:hover:border-orange-500={$ae_loc.edit_mode}
class="
@@ -661,7 +661,7 @@ $effect(() => {
<input
type="text"
placeholder="Markdown header for appended content"
bind:value={tmp_entry_obj_append_text_header}
bind:value={tmp_entry_obj_add_text_header}
onchange={() => {
// tmp_entry_obj_changed = true;
}}
@@ -679,7 +679,7 @@ $effect(() => {
/>
<textarea
bind:value={tmp_entry_obj_append_text}
bind:value={tmp_entry_obj_add_text}
onchange={() => {
// tmp_entry_obj_changed = true;
}}
@@ -706,25 +706,45 @@ $effect(() => {
disabled={!tmp_entry_obj_changed}
onclick={async () => {
let new_content = tmp_entry_obj?.content + '\n\n';
let current_entry_content = tmp_entry_obj?.content
let add_content = '';// tmp_entry_obj?.content + '\n\n';
let new_content = current_entry_content;
console.log(tmp_entry_obj_append_text_header);
console.log(tmp_entry_obj_append_text);
console.log(`Append or Prepend? ${$lq__journal_obj?.cfg_json?.entry_add_text}`);
console.log(tmp_entry_obj_add_text_header);
console.log(tmp_entry_obj_add_text);
if (tmp_entry_obj_append_timestamp_header && tmp_entry_obj_append_text_header) {
new_content = new_content + '# ' + ae_util.iso_datetime_formatter(new Date(), 'datetime_iso_12_no_seconds') + ' - ' + tmp_entry_obj_append_text_header.trim() + '\n';
} else if (tmp_entry_obj_append_timestamp_header) {
new_content = new_content + '# ' + ae_util.iso_datetime_formatter(new Date(), 'datetime_iso_12_no_seconds') + '\n';
} else if (tmp_entry_obj_append_text_header) {
new_content = new_content + '# ' + tmp_entry_obj_append_text_header.trim() + '\n';
// if ($lq__journal_obj?.cfg_json?.entry_add_text == 'prepend') {
if (tmp_entry_obj_add_timestamp_header && tmp_entry_obj_add_text_header) {
add_content = '## ' + ae_util.iso_datetime_formatter(new Date(), 'datetime_iso_12_no_seconds') + ' - ' + tmp_entry_obj_add_text_header.trim() + '\n' + tmp_entry_obj_add_text.trim() + '\n\n';
} else if (tmp_entry_obj_add_timestamp_header) {
add_content = '## ' + ae_util.iso_datetime_formatter(new Date(), 'datetime_iso_12_no_seconds') + '\n' + tmp_entry_obj_add_text.trim() + '\n\n';
} else if (tmp_entry_obj_add_text_header) {
add_content = '## ' + tmp_entry_obj_add_text_header.trim() + '\n' + tmp_entry_obj_add_text.trim() + '\n\n';
}
// if (tmp_entry_obj_append_text_header) {
// new_content = new_content + '# ' + tmp_entry_obj_append_text_header.trim() + '\n';
// } else {
// if (tmp_entry_obj_add_timestamp_header && tmp_entry_obj_add_text_header) {
// new_content = new_content + '## ' + ae_util.iso_datetime_formatter(new Date(), 'datetime_iso_12_no_seconds') + ' - ' + tmp_entry_obj_add_text_header.trim() + '\n';
// } else if (tmp_entry_obj_add_timestamp_header) {
// new_content = new_content + '## ' + ae_util.iso_datetime_formatter(new Date(), 'datetime_iso_12_no_seconds') + '\n';
// } else if (tmp_entry_obj_add_text_header) {
// new_content = new_content + '## ' + tmp_entry_obj_add_text_header.trim() + '\n';
// }
// }
// if (tmp_entry_obj_add_text_header) {
// new_content = new_content + '# ' + tmp_entry_obj_add_text_header.trim() + '\n';
// }
// if (tmp_entry_obj_add_text) {
if ($lq__journal_obj?.cfg_json?.entry_add_text == 'prepend') {
new_content = add_content + new_content;
} else {
new_content = new_content + add_content;
}
// new_content = new_content + tmp_entry_obj_add_text.trim();
// }
if (tmp_entry_obj_append_text) {
new_content = new_content + tmp_entry_obj_append_text.trim();
}
new_content = new_content.trim() + '\n';
let data_kv = {
@@ -749,8 +769,8 @@ $effect(() => {
if (update_result) {
// alert('Journal entry updated successfully!');
// Reset the form
tmp_entry_obj_append_text_header = '';
tmp_entry_obj_append_text = '';
tmp_entry_obj_add_text_header = '';
tmp_entry_obj_add_text = '';
tmp_entry_obj_changed = false;
$journals_sess.show__modal_append__journal_entry_id = false;
} else {