home · contact · privacy
Refactor template code.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 24 Feb 2025 11:48:36 +0000 (12:48 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 24 Feb 2025 11:48:36 +0000 (12:48 +0100)
src/templates/_macros.tmpl

index bc98cc1f332da45f91294bf9ca24f84ad4cffe4d..a1a2764955d2a2eb361c4a43ef385930f795355a 100644 (file)
@@ -4,44 +4,49 @@ td.amt, td.curr { font-family: monospace; font-size: 1.3em; }
 {% endmacro %}
 
 
+
 {% macro css_td_money_balance() %}
 td.balance.amt { width: 10em; }
 td.balance.curr { width: 3em; }
 {% endmacro %}
 
 
+
 {% macro css_errors() %}
 td.invalid, tr.warning td.invalid { background-color: #ff0000; }
 {% endmacro %}
 
 
+
 {% macro css_ledger_index_col() %}
 table.ledger tr > td:first-child { background-color: white; }
 {% endmacro %}
 
 
-{% macro tr_money_balance(amt, curr) %}
-<tr>
-<td class="balance amt">{{amt}}</td>
-<td class="balance curr">{{curr|truncate(4,true,"…")}}</td>
-</tr>
-{% endmacro %}
 
+{% macro table_dat_lines_action_button(dat_line, verb, direction, label, enabled=true) %}
+<input type="submit" name="ledger_{{verb}}_{{dat_line.booking_id}}_{{direction}}" value="{{label}}"{% if not enabled %} disabled{% endif %} />
+{% endmacro %}
 
 {% macro table_dat_lines(dat_lines, raw) %}
 <form action="/ledger_{% if raw %}raw{% else %}structured{% endif %}" method="POST">
 <table class="ledger">
 {% for dat_line in dat_lines %}
   <tr class="alternating{% if dat_line.is_questionable %} warning{% endif %}">
+
+  <td{% if dat_line.is_intro %} id="{{dat_line.booking_id}}"{% endif %}>
   {% if dat_line.is_intro %}
-    <td id="{{dat_line.booking_id}}"><a href="#{{dat_line.booking_id}}">[#]</a><input type="submit" name="ledger_move_{{dat_line.booking_id}}_up" value="^"{% if not dat_line.booking.can_move(1) %} disabled{% endif %}/></td>
+    <a href="#{{dat_line.booking_id}}">[#]</a>
+    {{ table_dat_lines_action_button(dat_line, "move", "up", "^", dat_line.booking.can_move(1)) }}
   {% elif dat_line.booking_line.idx == 1 %}
-    <td><a href="/balance?up_incl={{dat_line.booking_id}}">[b]</a><input type="submit" name="ledger_move_{{dat_line.booking_id}}_down" value="v"{% if not dat_line.booking.can_move(0) %} disabled{% endif %}/></td>
+    <a href="/balance?up_incl={{dat_line.booking_id}}">[b]</a>
+    {{ table_dat_lines_action_button(dat_line, "move", "down", "v", dat_line.booking.can_move(0)) }}
   {% elif dat_line.booking_line.idx == 2 %}
-    <td><input type="submit" name="ledger_copy_{{dat_line.booking_id}}_here" value="c" /><input type="submit" name="ledger_copy_{{dat_line.booking_id}}_to_end" value="C" /></td>
-  {% else %}
-    <td></td>
+    {{ table_dat_lines_action_button(dat_line, "copy", "here", "c") }}
+    {{ table_dat_lines_action_button(dat_line, "copy", "to_end", "C") }}
   {% endif %}
+  </td>
+
   {% if raw %}
     <td{% if dat_line.error %} class="invalid"{% endif %}>
     {% if dat_line.is_intro %}
@@ -52,7 +57,9 @@ table.ledger tr > td:first-child { background-color: white; }
     </td>
   {% else %}
     {% if dat_line.is_intro %}
-      <td class="date {% if dat_line.error %} invalid{% endif %}" colspan=2><a href="/bookings/{{dat_line.booking_id}}">{{dat_line.booking.date}}</a></td>
+      <td class="date {% if dat_line.error %} invalid{% endif %}" colspan=2>
+      <a href="/bookings/{{dat_line.booking_id}}">{{dat_line.booking.date}}</a>
+      </td>
       <td{% if dat_line.error %} class="invalid"{% endif %}>{{dat_line.booking.target}}</td>
       <td>{{dat_line.comment}}</td>
     {% elif dat_line.error %}
@@ -64,17 +71,20 @@ table.ledger tr > td:first-child { background-color: white; }
       <td>{{dat_line.booking_line.account}}</td>
       <td>{{dat_line.comment}}</td>
     {% else %}
-      <td colspan=2></td><td colspan=2>{{dat_line.comment}}&nbsp;</td>
+      <td colspan=2></td>
+      <td colspan=2>{{dat_line.comment}}&nbsp;</td>
     {% endif %}
   {% endif %}
   </tr>
-  {% if dat_line.error and not raw %}
+
+  {% if (not raw) and dat_line.error %}
     <tr class="alternating warning">
     <td></td>
     <td class="invalid" colspan=3>{{dat_line.error}}</td>
     <td></td>
     </tr>
   {% endif %}
+
 {% endfor %}
 </table>
 </form>
@@ -108,6 +118,7 @@ function taint() {
 {% endmacro %}
 
 
+
 {% macro edit_bar(target, id) %}
 <span class="disable_on_change">
 <a href="/bookings/{{id-1}}">prev</a> · <a href="/bookings/{{id+1}}">next</a>
@@ -121,6 +132,14 @@ function taint() {
 {% endmacro %}
 
 
+
+{% macro tr_money_balance(amt, curr) %}
+<tr>
+<td class="balance amt">{{amt}}</td>
+<td class="balance curr">{{curr|truncate(4,true,"…")}}</td>
+</tr>
+{% endmacro %}
+
 {% macro booking_balance_account_with_children(node) %}
 <tr class="alternating">
 <td {% if node.direct_target %}class="direct_target"{% endif %}>{{node.name}}{% if node.children %}:{% endif %}</td>
@@ -153,6 +172,7 @@ function taint() {
 {% endmacro %}
 
 
+
 {% macro booking_balance(valid, roots) %}
 <hr />
 <table{% if not valid %} class="warning"{% endif %}>