{% 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 %}
</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 %}
<td>{{dat_line.booking_line.account}}</td>
<td>{{dat_line.comment}}</td>
{% else %}
- <td colspan=2></td><td colspan=2>{{dat_line.comment}} </td>
+ <td colspan=2></td>
+ <td colspan=2>{{dat_line.comment}} </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>
{% 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>
{% 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>
{% endmacro %}
+
{% macro booking_balance(valid, roots) %}
<hr />
<table{% if not valid %} class="warning"{% endif %}>