diff --git a/documentation/JOURNALS_CONFIG_MAP.md b/documentation/JOURNALS_CONFIG_MAP.md new file mode 100644 index 00000000..01dcf359 --- /dev/null +++ b/documentation/JOURNALS_CONFIG_MAP.md @@ -0,0 +1,61 @@ +# Aether Journals: Configuration & Settings Map + +This document tracks all available settings across the three levels of the Journals module. + +## 1. Module Level (Global) +* **Scope:** Applied across the entire journals application for the current site/user. +* **Storage:** Browser Local Storage (via `journals_loc` persisted store). +* **UI Location:** Journals Landing Page -> Settings Icon (Top Right). + +| Setting | Type | Description | Save Type | +| :--- | :--- | :--- | :--- | +| `datetime_format` | enum | Preferred display for date/time strings. | Manual (Save Changes) | +| `time_format` | enum | Preferred display for time-only strings. | Manual (Save Changes) | +| `entry.auto_save` | boolean | If true, entry edits are debounced and saved to DB. | Manual (Save Changes) | +| `show_id_random` | boolean | Display technical UUIDs in metadata footers. | Manual (Save Changes) | +| `enable_session_passcode_cache`| boolean | If true, private passcodes are held in session store. | Manual (Save Changes) | + +## 2. Journal Level (Specific Journal) +* **Scope:** Applied to a specific journal object and its metadata. +* **Storage:** Remote MariaDB (via `update_ae_obj__journal`). +* **UI Location:** Journal View -> Menu -> Edit Journal. + +| Setting | Type | Description | Save Type | +| :--- | :--- | :--- | :--- | +| `name` | string | Display name of the journal. | Manual (Save Changes) | +| `description` | markdown | Detailed purpose/notes for the journal. | Manual (Save Changes) | +| `type_code` | enum | Category of journal (Diary, Log, etc.). | Manual (Save Changes) | +| `group` | string | Sorting group for the journal list. | Manual (Save Changes) | +| `sort` | integer | Manual sort order weight. | Manual (Save Changes) | +| `priority` | boolean | Flag for "Starred" or "Pinned" status. | Manual (Save Changes) | +| `enable` | boolean | Global activation flag for the journal. | Manual (Save Changes) | +| `hide` | boolean | If true, journal is hidden from standard views. | Manual (Save Changes) | +| `passcode` | string | Module-level encryption passcode. | Manual (Save Changes) | +| `private_passcode`| string | User-specific secondary encryption secret. | Manual (Save Changes) | +| `cfg_json.*` | JSON | UI/UX overrides (colors, default viewers, etc.). | Manual (Save Changes) | + +## 3. Journal Entry Level (Specific Entry) +* **Scope:** Applied to an individual entry within a journal. +* **Storage:** Remote MariaDB (via `update_ae_obj__journal_entry`). +* **UI Location:** Entry View -> Settings Button. + +| Setting | Type | Description | Save Type | +| :--- | :--- | :--- | :--- | +| `name` | string | Entry title. | Auto-Save (if enabled) | +| `content` | markdown | Main text body. | Auto-Save (if enabled) | +| `category_code` | enum | User-defined category for the entry. | Auto-Save / Manual | +| `tags` | string | Comma-separated list of tags. | Auto-Save / Manual | +| `priority` | boolean | If true, entry is pinned or highlighted. | Manual (Done) | +| `enable` | boolean | Activation flag for the entry. | Manual (Done) | +| `hide` | boolean | If true, entry is hidden from standard lists. | Manual (Done) | +| `sort` | integer | Manual sort order weight. | Manual (Done) | +| `archive_on` | datetime | Scheduled date for automatic archiving. | Manual (Done) | +| `private` | boolean | Trigger for E2EE (Encryption). | Manual (Done) | +| `alert` | boolean | Trigger for visual "Alert" state. | Manual (Done) | +| `group` | string | Grouping key for the list view. | Manual (JSON only) | + +## 📐 Data Normalization Rules +To prevent infinite reactivity loops and trivial save cycles, the following normalizations are applied before comparison: +1. **Strings:** Trimmed and `null` treated as `""`. +2. **Booleans:** Forced to `true/false` (no nulls). +3. **JSON:** Deep stringification comparison (`JSON.stringify`). diff --git a/src/routes/journals/modal_journal_entry_config.svelte b/src/routes/journals/modal_journal_entry_config.svelte index 2f062961..f66c70ac 100644 --- a/src/routes/journals/modal_journal_entry_config.svelte +++ b/src/routes/journals/modal_journal_entry_config.svelte @@ -170,21 +170,21 @@