function add_td_input(name, value, size=20, colspan=1) {
return add_input(setup_input_td(tr, colspan), name, value, size);
}
+
+ // movement buttons
+ const td_btns_updown = add_td(tr);
+ if (i > 0) {
+ [{label: '^', earlier_idx: i-1, enabled: i > 1},
+ {label: 'v', earlier_idx: i, enabled: i && i+1 < dat_lines.length}
+ ].forEach((kwargs) => {
+ add_button(td_btns_updown, kwargs.label, ! kwargs.enabled, function() {
+ const other_line = dat_lines[kwargs.earlier_idx];
+ dat_lines.splice(kwargs.earlier_idx, 1);
+ dat_lines.splice(kwargs.earlier_idx + 1, 0, other_line);
+ });
+ });
+ }
+
+ // actual input lines
if (dat_line.is_intro) {
const td = setup_input_td(tr, 3);
const date_input = add_input(td, 'date', dat_line.booking_line.date, 10)
date_input.classList.add('date_input');
- add_input(td, 'target', dat_line.booking_line.target, 35)
+ add_input(td, 'target', dat_line.booking_line.target, 37)
} else if (!dat_line.error) { // i.e. valid TransferLine
const acc_input = add_td_input('account', dat_line.booking_line.account, 30);
acc_input.setAttribute ('list', 'all_accounts');
}
add_td_input('comment', dat_line.comment, 40);
- // add action buttons, with "delete" after some safety distance
- const td_btns = add_td(tr);
- add_button(td_btns, '^', i > 1 ? false : true, function() {
- const prev_line = dat_lines[i-1];
- dat_lines.splice(i-1, 1);
- dat_lines.splice(i, 0, prev_line);
- });
- add_button(td_btns, 'v', (i && i+1 < dat_lines.length) ? false : true, function() {
- const next_line = dat_lines[i];
- dat_lines.splice(i, 1);
- dat_lines.splice(i+1, 0, next_line);
- });
- td_btns.appendChild(document.createTextNode(' · · · '))
- add_button(td_btns, 'delete', i > 0 ? false : true, function() { dat_lines.splice(i, 1); });
+ // delete button
+ td_del = add_td(tr);
+ if (i > 0) {
+ add_button(td_del, 'delete', i > 0 ? false : true, function() { dat_lines.splice(i, 1); });
+ }
// add error explanation row if necessary
if (dat_line.error) {