mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-04-24 09:38:35 +02:00
feat: automated replacement
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
{% load i18n %}
|
||||
<div class="container px-md-3 py-3 column-gap-5">
|
||||
<div class="tw:text-3xl fw-bold font-monospace tw:w-full mb-3">
|
||||
<div class="tw:container tw:px-md-3 tw:py-3 tw:column-gap-5">
|
||||
<div class="tw:text-3xl tw:font-bold tw:font-mono tw:w-full tw:mb-3">
|
||||
{% spaceless %}
|
||||
<div>{% translate 'Rules' %}<span>
|
||||
<a class="text-decoration-none tw:text-2xl p-1 category-action"
|
||||
<a class="tw:no-underline tw:text-2xl tw:p-1 category-action"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate "Add" %}"
|
||||
@@ -14,32 +14,32 @@
|
||||
{% endspaceless %}
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body table-responsive">
|
||||
<div class="tw:card tw:bg-base-100 tw:shadow-xl">
|
||||
<div class="tw:card-body tw:overflow-x-auto">
|
||||
{% if transaction_rules %}
|
||||
<c-config.search></c-config.search>
|
||||
<table class="table table-hover">
|
||||
<table class="tw:table tw:table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="col-auto"></th>
|
||||
<th scope="col" class="col-auto"></th>
|
||||
<th scope="col" class="col-auto">{% translate 'Order' %}</th>
|
||||
<th scope="col" class="col">{% translate 'Name' %}</th>
|
||||
<th scope="col" class="tw:w-auto"></th>
|
||||
<th scope="col" class="tw:w-auto"></th>
|
||||
<th scope="col" class="tw:w-auto">{% translate 'Order' %}</th>
|
||||
<th scope="col">{% translate 'Name' %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for rule in transaction_rules %}
|
||||
<tr class="transaction_rule">
|
||||
<td class="col-auto">
|
||||
<div class="btn-group" role="group" aria-label="{% translate 'Actions' %}">
|
||||
<a class="btn btn-secondary btn-sm"
|
||||
<td class="tw:w-auto">
|
||||
<div class="tw:join" role="group" aria-label="{% translate 'Actions' %}">
|
||||
<a class="tw:btn tw:btn-secondary tw:btn-sm tw:join-item"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate "View" %}"
|
||||
hx-get="{% url 'transaction_rule_view' transaction_rule_id=rule.id %}"
|
||||
hx-target="#persistent-generic-offcanvas-left">
|
||||
<i class="fa-solid fa-eye fa-fw"></i></a>
|
||||
<a class="btn btn-secondary btn-sm text-danger"
|
||||
<a class="tw:btn tw:btn-secondary tw:btn-sm tw:join-item tw:text-error"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate "Delete" %}"
|
||||
@@ -51,7 +51,7 @@
|
||||
data-confirm-text="{% translate "Yes, delete it!" %}"
|
||||
_="install prompt_swal"><i class="fa-solid fa-trash fa-fw"></i></a>
|
||||
{% if not rule.owner %}
|
||||
<a class="btn btn-secondary btn-sm text-warning"
|
||||
<a class="tw:btn tw:btn-secondary tw:btn-sm tw:join-item tw:text-warning"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate "Take ownership" %}"
|
||||
@@ -59,7 +59,7 @@
|
||||
<i class="fa-solid fa-crown fa-fw"></i></a>
|
||||
{% endif %}
|
||||
{% if user == rule.owner %}
|
||||
<a class="btn btn-secondary btn-sm text-primary"
|
||||
<a class="tw:btn tw:btn-secondary tw:btn-sm tw:join-item tw:text-primary"
|
||||
role="button"
|
||||
hx-target="#generic-offcanvas"
|
||||
hx-swap="innerHTML"
|
||||
@@ -70,8 +70,8 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
<td class="col-auto">
|
||||
<a class="text-decoration-none"
|
||||
<td class="tw:w-auto">
|
||||
<a class="tw:no-underline"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="
|
||||
@@ -81,10 +81,10 @@
|
||||
<i class="fa-solid fa-toggle-off tw:text-red-400"></i>{% endif %}
|
||||
</a>
|
||||
</td>
|
||||
<td class="col text-center">
|
||||
<td class="tw:text-center">
|
||||
<div>{{ rule.order }}</div>
|
||||
</td>
|
||||
<td class="col">
|
||||
<td>
|
||||
<div>{{ rule.name }}</div>
|
||||
<div class="tw:text-gray-400">{{ rule.description }}</div>
|
||||
</td>
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
{% load i18n %}
|
||||
<div class="card tw:max-h-full tw:overflow-auto tw:overflow-x-auto">
|
||||
<div class="card-header">
|
||||
<ul class="nav nav-tabs card-header-tabs">
|
||||
<li class="nav-item">
|
||||
<button class="nav-link active" id="visual-tab" data-bs-toggle="tab" data-bs-target="#visual-tab-pane"
|
||||
type="button" role="tab" aria-controls="visual-tab-pane"
|
||||
aria-selected="true">{% translate 'Visual' %}</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="logs-tab" data-bs-toggle="tab" data-bs-target="#logs-tab-pane" type="button"
|
||||
role="tab" aria-controls="logs-tab-pane" aria-selected="false">{% translate 'Logs' %}</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tw:card tw:bg-base-100 tw:shadow-xl tw:max-h-full tw:overflow-auto tw:overflow-x-auto">
|
||||
<div class="tw:card-header tw:bg-base-200 tw:p-4">
|
||||
<div role="tablist" class="tw:tabs tw:tabs-lifted">
|
||||
<button class="tw:tab tw:tab-active" id="visual-tab" data-bs-toggle="tab" data-bs-target="#visual-tab-pane"
|
||||
type="button" role="tab" aria-controls="visual-tab-pane"
|
||||
aria-selected="true">{% translate 'Visual' %}</button>
|
||||
<button class="tw:tab" id="logs-tab" data-bs-toggle="tab" data-bs-target="#logs-tab-pane" type="button"
|
||||
role="tab" aria-controls="logs-tab-pane" aria-selected="false">{% translate 'Logs' %}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="tw:card-body">
|
||||
<div class="tab-content" id="myTabContent">
|
||||
<div class="tab-pane fade show active" id="visual-tab-pane" role="tabpanel" aria-labelledby="home-tab"
|
||||
tabindex="0">
|
||||
@@ -23,9 +19,9 @@
|
||||
{% for result in results %}
|
||||
|
||||
{% if result.type == 'header' %}
|
||||
<div class="my-3">
|
||||
<h6 class="text-center mb-3">
|
||||
<span class="badge text-bg-secondary">
|
||||
<div class="tw:my-3">
|
||||
<h6 class="tw:text-center tw:mb-3">
|
||||
<span class="tw:badge tw:badge-secondary">
|
||||
{% if result.header_type == "edit_transaction" %}
|
||||
{% translate 'Edit transaction' %}
|
||||
{% elif result.header_type == "update_or_create_transaction" %}
|
||||
@@ -38,8 +34,8 @@
|
||||
|
||||
|
||||
{% if result.type == 'triggering_transaction' %}
|
||||
<div class="mt-4">
|
||||
<h6 class="text-center mb-3"><span class="badge text-bg-secondary">{% translate 'Start' %}</span></h6>
|
||||
<div class="tw:mt-4">
|
||||
<h6 class="tw:text-center tw:mb-3"><span class="tw:badge tw:badge-secondary">{% translate 'Start' %}</span></h6>
|
||||
<c-transaction.item :transaction="result.transaction" :dummy="True"
|
||||
:disable-selection="True"></c-transaction.item>
|
||||
</div>
|
||||
@@ -49,8 +45,8 @@
|
||||
<div>
|
||||
<div>
|
||||
{% translate 'Set' %} <span
|
||||
class="badge text-bg-secondary">{{ result.field }}</span> {% translate 'to' %}
|
||||
<span class="badge text-bg-secondary">{{ result.new_value }}</span>
|
||||
class="tw:badge tw:badge-secondary">{{ result.field }}</span> {% translate 'to' %}
|
||||
<span class="tw:badge tw:badge-secondary">{{ result.new_value }}</span>
|
||||
</div>
|
||||
<c-transaction.item :transaction="result.transaction" :dummy="True"
|
||||
:disable-selection="True"></c-transaction.item>
|
||||
@@ -59,18 +55,18 @@
|
||||
|
||||
{% if result.type == 'update_or_create_transaction' %}
|
||||
<div>
|
||||
<div class="alert alert-info" role="alert">
|
||||
<div class="tw:alert tw:alert-info" role="alert">
|
||||
{% translate 'Search' %}: {{ result.query }}
|
||||
</div>
|
||||
{% if result.start_transaction %}
|
||||
<c-transaction.item :transaction="result.start_transaction" :dummy="True"
|
||||
:disable-selection="True"></c-transaction.item>
|
||||
{% else %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<div class="tw:alert tw:alert-error" role="alert">
|
||||
{% translate 'No transaction found, a new one will be created' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="text-center h3 my-2"><i class="fa-solid fa-arrow-down"></i></div>
|
||||
<div class="tw:text-center tw:text-3xl tw:my-2"><i class="fa-solid fa-arrow-down"></i></div>
|
||||
<c-transaction.item :transaction="result.end_transaction" :dummy="True"
|
||||
:disable-selection="True"></c-transaction.item>
|
||||
</div>
|
||||
@@ -78,7 +74,7 @@
|
||||
|
||||
{% if result.type == 'error' %}
|
||||
<div>
|
||||
<div class="alert alert-{% if result.level == 'error' %}danger{% elif result.level == 'warning' %}warning{% else %}info{% endif %}" role="alert">
|
||||
<div class="tw:alert tw:alert-{% if result.level == 'error' %}error{% elif result.level == 'warning' %}warning{% else %}info{% endif %}" role="alert">
|
||||
{{ result.error }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
<div class="tw:text-2xl">{{ transaction_rule.name }}</div>
|
||||
<div class="tw:text-base tw:text-gray-400">{{ transaction_rule.description }}</div>
|
||||
<hr>
|
||||
<div class="my-3">
|
||||
<div class="tw:text-xl mb-2">{% translate 'If transaction...' %}</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="tw:my-3">
|
||||
<div class="tw:text-xl tw:mb-2">{% translate 'If transaction...' %}</div>
|
||||
<div class="tw:card tw:bg-base-100 tw:shadow-xl">
|
||||
<div class="tw:card-body">
|
||||
{{ transaction_rule.trigger }}
|
||||
</div>
|
||||
<div class="card-footer text-end">
|
||||
<a class="text-decoration-none tw:text-gray-400 p-1"
|
||||
<div class="tw:card-footer tw:text-end">
|
||||
<a class="tw:no-underline tw:text-gray-400 tw:p-1"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate "Edit" %}"
|
||||
@@ -28,26 +28,26 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3">
|
||||
<div class="tw:text-xl mb-2">{% translate 'Then...' %}</div>
|
||||
<div class="tw:my-3">
|
||||
<div class="tw:text-xl tw:mb-2">{% translate 'Then...' %}</div>
|
||||
{% for action in all_actions %}
|
||||
{% if action.action_type == "edit_transaction" %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<div class="tw:card tw:bg-base-100 tw:shadow-xl tw:mb-3">
|
||||
<div class="tw:card-header tw:bg-base-200 tw:p-4">
|
||||
<div>
|
||||
{% if action.order != 0 %}<span class="badge text-bg-secondary">{{ action.order }}</span>{% endif %}
|
||||
<span class="badge text-bg-primary">{% trans 'Edit transaction' %}</span>
|
||||
{% if action.order != 0 %}<span class="tw:badge tw:badge-secondary">{{ action.order }}</span>{% endif %}
|
||||
<span class="tw:badge tw:badge-primary">{% trans 'Edit transaction' %}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="tw:card-body">
|
||||
<div>
|
||||
{% translate 'Set' %} <span
|
||||
class="badge text-bg-secondary">{{ action.get_field_display }}</span> {% translate 'to' %}
|
||||
class="tw:badge tw:badge-secondary">{{ action.get_field_display }}</span> {% translate 'to' %}
|
||||
</div>
|
||||
<div class="text-bg-secondary rounded-3 mt-3 p-2">{{ action.value }}</div>
|
||||
<div class="tw:bg-base-200 tw:rounded-3xl tw:mt-3 tw:p-2">{{ action.value }}</div>
|
||||
</div>
|
||||
<div class="card-footer text-end">
|
||||
<a class="text-decoration-none tw:text-gray-400 p-1"
|
||||
<div class="tw:card-footer tw:text-end">
|
||||
<a class="tw:no-underline tw:text-gray-400 tw:p-1"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate 'Edit' %}"
|
||||
@@ -55,7 +55,7 @@
|
||||
hx-target="#generic-offcanvas">
|
||||
<i class="fa-solid fa-pencil fa-fw"></i>
|
||||
</a>
|
||||
<a class="text-danger text-decoration-none p-1"
|
||||
<a class="tw:text-error tw:no-underline tw:p-1"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate 'Delete' %}"
|
||||
@@ -71,18 +71,18 @@
|
||||
</div>
|
||||
</div>
|
||||
{% elif action.action_type == "update_or_create_transaction" %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<div class="tw:card tw:bg-base-100 tw:shadow-xl tw:mb-3">
|
||||
<div class="tw:card-header tw:bg-base-200 tw:p-4">
|
||||
<div>
|
||||
{% if action.order != 0 %}<span class="badge text-bg-secondary">{{ action.order }}</span>{% endif %}
|
||||
<span class="badge text-bg-primary">{% trans 'Update or create transaction' %}</span>
|
||||
{% if action.order != 0 %}<span class="tw:badge tw:badge-secondary">{{ action.order }}</span>{% endif %}
|
||||
<span class="tw:badge tw:badge-primary">{% trans 'Update or create transaction' %}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="tw:card-body">
|
||||
<div>{% trans 'Edit to view' %}</div>
|
||||
</div>
|
||||
<div class="card-footer text-end">
|
||||
<a class="text-decoration-none tw:text-gray-400 p-1"
|
||||
<div class="tw:card-footer tw:text-end">
|
||||
<a class="tw:no-underline tw:text-gray-400 tw:p-1"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate 'Edit' %}"
|
||||
@@ -90,7 +90,7 @@
|
||||
hx-target="#generic-offcanvas">
|
||||
<i class="fa-solid fa-pencil fa-fw"></i>
|
||||
</a>
|
||||
<a class="text-danger text-decoration-none p-1"
|
||||
<a class="tw:text-error tw:no-underline tw:p-1"
|
||||
role="button"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="{% translate 'Delete' %}"
|
||||
@@ -107,47 +107,47 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
{% empty %}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="tw:card tw:bg-base-100 tw:shadow-xl">
|
||||
<div class="tw:card-body">
|
||||
{% translate 'This rule has no actions' %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<hr>
|
||||
<div class="d-grid d-lg-flex gap-2">
|
||||
<div class="dropdown flex-fill">
|
||||
<button class="btn btn-outline-primary text-decoration-none w-100" type="button" data-bs-toggle="dropdown"
|
||||
<div class="tw:grid tw:grid-cols-1 tw:lg:grid-cols-2 tw:gap-2">
|
||||
<div class="tw:dropdown">
|
||||
<button class="tw:btn tw:btn-outline tw:btn-primary tw:no-underline tw:w-full" type="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<i class="fa-solid fa-flask-vial me-2"></i>{% translate 'Test' %}
|
||||
<i class="fa-solid fa-flask-vial tw:me-2"></i>{% translate 'Test' %}
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<ul class="tw:dropdown-content tw:menu tw:bg-base-100 tw:rounded-box tw:z-[1] tw:w-52 tw:p-2 tw:shadow">
|
||||
{% if transaction_rule.on_create %}
|
||||
<li><a class="dropdown-item" role="link" href="#"
|
||||
<li><a role="link" href="#"
|
||||
hx-get="{% url 'transaction_rule_dry_run_created' pk=transaction_rule.id %}"
|
||||
hx-target="#generic-offcanvas">{% trans 'Create' %}</a></li>
|
||||
{% endif %}
|
||||
{% if transaction_rule.on_update %}
|
||||
<li><a class="dropdown-item" role="link" href="#"
|
||||
<li><a role="link" href="#"
|
||||
hx-get="{% url 'transaction_rule_dry_run_updated' pk=transaction_rule.id %}"
|
||||
hx-target="#generic-offcanvas">{% trans 'Update' %}</a></li>
|
||||
{% endif %}
|
||||
{% if transaction_rule.on_delete %}
|
||||
<li><a class="dropdown-item" role="link" href="#"
|
||||
<li><a role="link" href="#"
|
||||
hx-get="{% url 'transaction_rule_dry_run_deleted' pk=transaction_rule.id %}"
|
||||
hx-target="#generic-offcanvas">{% trans 'Delete' %}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="dropdown flex-fill">
|
||||
<button class="btn btn-outline-primary text-decoration-none w-100" type="button" data-bs-toggle="dropdown"
|
||||
<div class="tw:dropdown">
|
||||
<button class="tw:btn tw:btn-outline tw:btn-primary tw:no-underline tw:w-full" type="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<i class="fa-solid fa-circle-plus me-2"></i>{% translate 'Add new' %}
|
||||
<i class="fa-solid fa-circle-plus tw:me-2"></i>{% translate 'Add new' %}
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" role="link" href="#"
|
||||
<ul class="tw:dropdown-content tw:menu tw:bg-base-100 tw:rounded-box tw:z-[1] tw:w-52 tw:p-2 tw:shadow">
|
||||
<li><a role="link" href="#"
|
||||
hx-get="{% url 'transaction_rule_action_add' transaction_rule_id=transaction_rule.id %}"
|
||||
hx-target="#generic-offcanvas">{% trans 'Edit Transaction' %}</a></li>
|
||||
<li><a class="dropdown-item" role="link" href="#"
|
||||
<li><a role="link" href="#"
|
||||
hx-get="{% url 'update_or_create_transaction_rule_action_add' transaction_rule_id=transaction_rule.id %}"
|
||||
hx-target="#generic-offcanvas">{% trans 'Update or Create Transaction' %}</a></li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user