Completes Phase 1 and updates UI

Marks Phase 1 as complete in the documentation.

Updates the transaction list in the UI to display transaction status flags and metadata, enhancing user understanding of each transaction.
This commit is contained in:
padreug 2025-10-23 00:08:25 +02:00
parent 1a28ec59eb
commit 8221feec20
2 changed files with 29 additions and 6 deletions

View file

@ -188,10 +188,13 @@ Display flag icons in transaction list:
- **Performance:** No impact - added columns have defaults and indexes not needed yet - **Performance:** No impact - added columns have defaults and indexes not needed yet
- **Storage:** Minimal increase (meta typically < 200 bytes per entry) - **Storage:** Minimal increase (meta typically < 200 bytes per entry)
## 🔜 Next Steps ## ✅ Phase 1 Complete!
Continue to Phase 1 completion: All Phase 1 tasks have been completed:
1. Implement hierarchical account names 1. ✅ Decimal instead of float for fiat amounts
2. Update UI to show flags 2. ✅ Meta field for journal entries (audit trail)
3. Add UI for viewing meta information 3. ✅ Flag field for transaction status
4. Then move to Phase 2 (Core logic refactoring) 4. ✅ Hierarchical account naming (Beancount-style)
5. ✅ UI updated to display flags and metadata
**Next:** Move to Phase 2 (Core logic refactoring) when ready.

View file

@ -251,6 +251,21 @@
</div> </div>
<q-list v-if="transactions.length > 0" separator> <q-list v-if="transactions.length > 0" separator>
<q-item v-for="entry in transactions" :key="entry.id"> <q-item v-for="entry in transactions" :key="entry.id">
<q-item-section avatar>
<!-- Transaction status flag -->
<q-icon v-if="entry.flag === '*'" name="check_circle" color="positive" size="sm">
<q-tooltip>Cleared</q-tooltip>
</q-icon>
<q-icon v-else-if="entry.flag === '!'" name="pending" color="orange" size="sm">
<q-tooltip>Pending</q-tooltip>
</q-icon>
<q-icon v-else-if="entry.flag === '#'" name="flag" color="red" size="sm">
<q-tooltip>Flagged - needs review</q-tooltip>
</q-icon>
<q-icon v-else-if="entry.flag === 'x'" name="cancel" color="grey" size="sm">
<q-tooltip>Voided</q-tooltip>
</q-icon>
</q-item-section>
<q-item-section> <q-item-section>
<q-item-label> <q-item-label>
{% raw %}{{ entry.description }}{% endraw %} {% raw %}{{ entry.description }}{% endraw %}
@ -275,6 +290,11 @@
<q-item-label caption v-if="entry.reference" class="text-grey"> <q-item-label caption v-if="entry.reference" class="text-grey">
Ref: {% raw %}{{ entry.reference }}{% endraw %} Ref: {% raw %}{{ entry.reference }}{% endraw %}
</q-item-label> </q-item-label>
<q-item-label caption v-if="entry.meta && Object.keys(entry.meta).length > 0" class="text-blue-grey-6">
<q-icon name="info" size="xs" class="q-mr-xs"></q-icon>
<span v-if="entry.meta.source">Source: {% raw %}{{ entry.meta.source }}{% endraw %}</span>
<span v-if="entry.meta.created_via" class="q-ml-sm">Via: {% raw %}{{ entry.meta.created_via }}{% endraw %}</span>
</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-item-label>{% raw %}{{ formatSats(getTotalAmount(entry)) }} sats{% endraw %}</q-item-label> <q-item-label>{% raw %}{{ formatSats(getTotalAmount(entry)) }} sats{% endraw %}</q-item-label>