Display audit logs

This commit is contained in:
James Cole
2022-10-02 14:37:50 +02:00
parent 06cd75ba74
commit ca8a65af60
21 changed files with 360 additions and 100 deletions

View File

@@ -0,0 +1,89 @@
<table class="table">
{% for logEntry in logEntries %}
<tr>
<td style="width:20%;">
{# link to object: #}
{% if 'FireflyIII\\Models\\Rule' == logEntry.changer_type %}
<a href="{{ route('rules.edit', [logEntry.changer_id] ) }}">
{% endif %}
{{ logEntry.changer_type|replace({"FireflyIII\\Models\\": ""}) }}
#{{ logEntry.changer_id }}
</a>
</td>
<td style="width:30%;">
{{ trans('firefly.ale_action_'~logEntry.action) }}
</td>
<td>
{# display depends on action #}
{% if 'add_tag' == logEntry.action %}
<code>{{ logEntry.after }}</code>
{% endif %}
{% if 'clear_budget' == logEntry.action %}
<code><s>{{ logEntry.before }}</s></code>
{% endif %}
{% if 'clear_category' == logEntry.action %}
<code><s>{{ logEntry.before }}</s></code>
{% endif %}
{% if 'clear_tag' == logEntry.action %}
<code><s>{{ logEntry.before }}</s></code>
{% endif %}
{% if 'clear_notes' == logEntry.action %}
{% if logEntry.before|length > 25 %}
<code><s>{{ logEntry.before|slice(0,25) }}...</s></code>
{% else %}
<code><s>{{ logEntry.before }}</s></code>
{% endif %}
{% endif %}
{% if 'set_bill' == logEntry.action %}
<code>{{ logEntry.after }}</code>
{% endif %}
{% if 'set_budget' == logEntry.action %}
<code>{{ logEntry.after }}</code>
{% endif %}
{% if 'set_category' == logEntry.action %}
<code>{{ logEntry.after }}</code>
{% endif %}
{% if 'set_source' == logEntry.action %}
<code>{{ logEntry.after }}</code>
{% endif %}
{% if 'set_destination' == logEntry.action %}
<code>{{ logEntry.after }}</code>
{% endif %}
{% if 'update_transaction_type' == logEntry.action %}
{{ trans('firefly.'~logEntry.before) }} &rarr; {{ trans('firefly.'~logEntry.after) }}
{% endif %}
{% if 'update_notes' == logEntry.action %}
{% if logEntry.before|length > 25 %}
<code><s>{{ logEntry.before|slice(0,25) }}...</s></code>
{% else %}
<code><s>{{ logEntry.before }}</s></code>
{% endif %}
&rarr;
{% if logEntry.after|length > 25 %}
<code>{{ logEntry.after|slice(0,25) }}...</code>
{% else %}
<code>{{ logEntry.after }}</code>
{% endif %}
{% endif %}
{% if 'update_description' == logEntry.action %}
<code>{{ logEntry.before }}</code>
&rarr;
<code><s>{{ logEntry.after }}</s></code>
{% endif %}
{% if 'add_to_piggy' == logEntry.action %}
{{ trans('firefly.ale_action_log_add', {amount: formatAmountBySymbol(logEntry.after.amount, logEntry.after.currency_symbol, logEntry.after.decimal_places, true), name: logEntry.after.name})|raw }}
{% endif %}
{% if 'remove_from_piggy' == logEntry.action %}
{{ trans('firefly.ale_action_log_remove', {amount: formatAmountBySymbol(logEntry.after.amount, logEntry.after.currency_symbol, logEntry.after.decimal_places, true), name: logEntry.after.name})|raw }}
{% endif %}
</td>
</tr>
{% endfor %}
</table>

View File

@@ -46,7 +46,7 @@
<table class="table table-hover">
<tbody>
<tr>
<td>{{ trans('list.type') }}</td>
<td style="width:40%;">{{ trans('list.type') }}</td>
<td>{{ first.transactiontype.type|_ }}</td>
</tr>
<tr>
@@ -80,7 +80,7 @@
<tbody>
{% if first.transactiontype.type != 'Withdrawal' or splits == 1 %}
<tr>
<td>
<td style="width:40%;">
{{ trans_choice('firefly.source_accounts', accounts['source']|length ) }}
</td>
<td>
@@ -270,13 +270,13 @@
{% endif %}
{% if null != journal.budget_id and first.transactiontype.type == 'Withdrawal' %}
<tr>
<td>{{ 'budget'|_ }}</td>
<td style="width:40%;">{{ 'budget'|_ }}</td>
<td><a href="{{ route('budgets.show', [journal.budget_id]) }}">{{ journal.budget_name }}</a></td>
</tr>
{% endif %}
{% if null != journal.bill_id and first.transactiontype.type == 'Withdrawal' %}
<tr>
<td>{{ 'bill'|_ }}</td>
<td style="width:40%;">{{ 'bill'|_ }}</td>
<td><a href="{{ route('bills.show', [journal.bill_id]) }}">{{ journal.bill_name }}</a></td>
</tr>
{% endif %}
@@ -284,7 +284,7 @@
{% for dateField in ['interest_date','book_date','process_date','due_date','payment_date','invoice_date'] %}
{% if journalHasMeta(journal.transaction_journal_id, dateField) %}
<tr>
<td>{{ trans('list.'~dateField) }}</td>
<td style="width:40%;">{{ trans('list.'~dateField) }}</td>
<td>{{ journalGetMetaDate(journal.transaction_journal_id, dateField).isoFormat(monthAndDayFormat) }}</td>
</tr>
{% endif %}
@@ -293,7 +293,7 @@
{% if journalHasMeta(journal.transaction_journal_id, metaField) %}
<tr>
<td>{{ trans('list.'~metaField) }}</td>
<td>
<td style="width:40%;">
{% if 'external_url' == metaField %}
{% set url = journalGetMetaField(journal.transaction_journal_id, metaField) %}
<a href="{{ url }}" rel="noopener noreferrer nofollow" target="_blank">
@@ -313,7 +313,7 @@
{% endfor %}
{% if null != journal.notes and '' != journal.notes %}
<tr>
<td>{{ trans('list.notes') }}</td>
<td style="width:40%;">{{ trans('list.notes') }}</td>
<td class="markdown">{{ journal.notes|default('')|markdown }}</td>
</tr>
{% endif %}
@@ -323,13 +323,13 @@
{% set recurringTotal = '∞' %}
{% endif %}
<tr>
<td>{{ trans('list.recurring_transaction') }}</td>
<td style="width:40%;">{{ trans('list.recurring_transaction') }}</td>
<td>{{ trans('firefly.recurring_info', {total: recurringTotal, count: journalGetMetaField(journal.transaction_journal_id, 'recurring_count') }) }}</td>
</tr>
{% endif %}
{% if journal.tags|length > 0 %}
<tr>
<td>{{ 'tags'|_ }}</td>
<td style="width:40%;">{{ 'tags'|_ }}</td>
<td>
{% for tag in journal.tags %}
<h4 style="display: inline;"><a class="label label-success" href="{{ route('tags.show', tag.id) }}">
@@ -416,6 +416,18 @@
</div>
</div>
{% endif %}
{% if logEntries[journal.transaction_journal_id]|length > 0 %}
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
{{ 'audit_log_entries'|_ }}
</h3>
</div>
<div class="box-body no-padding">
{% include 'list.ale' with {logEntries: logEntries[journal.transaction_journal_id]} %}
</div>
</div>
{% endif %}
</div>
{% endfor %}
</div>