From 819aebfb5343f918d510ba65c56e84ea24496ae6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Sat, 20 Apr 2024 21:32:56 +0200 Subject: [PATCH] styling for iban assignment --- ledgers/iban_assign.awk | 4 ++-- ledgers/index.cgi | 43 +++++++++++++++++++++++++++++++--------- style.css | 44 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 77 insertions(+), 14 deletions(-) diff --git a/ledgers/iban_assign.awk b/ledgers/iban_assign.awk index eac5b44..68a5727 100755 --- a/ledgers/iban_assign.awk +++ b/ledgers/iban_assign.awk @@ -73,8 +73,8 @@ ledger && strftime("%Y-%m-%d", $2, "UTC") == $1 { END { for (iban in sure) { line = "sure " iban; - split(iban_uid[iban], uids, / /); - for (uid in uids) line = line " " STRING(uid "/" uid_fn[uid]); + split(sure[iban], uids, / /); + for (k in uids) line = line " " STRING(uids[k] "/" uid_fn[uids[k]]); print line; } for (iban in unsure) { diff --git a/ledgers/index.cgi b/ledgers/index.cgi index 87af8b1..dbf8ee8 100755 --- a/ledgers/index.cgi +++ b/ledgers/index.cgi @@ -39,33 +39,58 @@ credit() { printf '[option value="%s"]' "$(HTML "$name")" done printf ']' + l10n_attendant="$(l10n attendant)" { pdi_load "${_DATA}"/vcard/*.vcf cat "${_DATA}"/ledgers/????-??-??\ -\ ????-??-??\ -\ ????.tbl } | "${_EXEC}"/ledgers/iban_assign.awk \ | while read -r state iban data; do printf '[fieldset .iban .%s [legend . %s ]' \ "$state" "$iban" - if [ $state = sure ]; then + if [ $state = sure ]; then + for card in $data; do + uid="${card%%/*}" name="$(UNSTRING "${card#*/}")" + printf '[span .card . %s]' "$(HTML "${name}")" + done : elif [ $state = guess ]; then record="$(UNSTRING "${data%% *}")" cards="${data#* }" + date="${record%% *}" principal="${record#* * * }" principal="${principal%% *}" subject="${record#* * * * }" subject="${subject%% *}" amount="${record#* * * * * }" amount="${amount%% *}" - printf '[p .principal . %s][p .amount %s][p .subject . %s]' \ - "$(UNSTRING "$principal" |HTML)" "$(credit "$amount")" "$(UNSTRING "$subject" |HTML)" - printf '[h4 . %s]' "$(l10n Guesses)" - for card in $cards; do - uid="${card%%/*}" name="$(UNSTRING "${card#*/}")" - printf '[input .card key="cardfn" value="%s" placeholder="%s" list=lattendants]' "$(HTML "${name}")" "$(l10n attendent)" + printf '[p .principal . %s][p .date %s][p .amount %s][p .subject . %s]' \ + "$(UNSTRING "$principal" |HTML)" "$date" "$(credit "$amount")" "$(UNSTRING "$subject" |HTML)" + n=0; for card in $cards; do + n=$((n+1)); uid="${card%%/*}" name="$(UNSTRING "${card#*/}")" + cat <<-EOF + [input type=checkbox id="check_${iban}_$n" name="check_${iban}_$n" value=true checked=checked] + [input .card name="fn_${iban}_$n" value="$(HTML "$name")" disabled=disabled] + [label .del for="check_${iban}_$n" . -] + EOF + done + for m in 1 2 3 4 5 6 7 8; do + cat <<-EOF + [input type=checkbox id="check_${iban}_$((n+m))" name="check_${iban}_$((n+m))" value=false] + [input .card name="fn_${iban}_$((n+m))" value="" placeholder="${l10n_attendant}" list="lattendants"] + [label .add for="check_${iban}_$((n+m))" . +] + EOF done elif [ $state = unknown ]; then + date="${data%% *}" principal="${data#* * * }" principal="${principal%% *}" subject="${data#* * * * }" subject="${subject%% *}" amount="${data#* * * * * }" amount="${amount%% *}" - printf '[p .principal . %s][p .amount %s][p .subject . %s]' \ - "$(UNSTRING "$principal" |HTML)" "$(credit "$amount")" "$(UNSTRING "$subject" |HTML)" + printf '[p .principal . %s][p .date %s][p .amount %s][p .subject . %s]' \ + "$(UNSTRING "$principal" |HTML)" "$date" "$(credit "$amount")" "$(UNSTRING "$subject" |HTML)" + printf '[input name="check_" type=hidden][input type=hidden][label .del]' + n=0; for m in 1 2 3 4 5 6 7 8; do + cat <<-EOF + [input type=checkbox id="check_${iban}_$((n+m))" name="check_${iban}_$((n+m))" value=false] + [input .card name="fn_${iban}_$((n+m))" value="" placeholder="${l10n_attendant}" list="lattendants"] + [label .add for="check_${iban}_$((n+m))" . +] + EOF + done fi printf ']' done diff --git a/style.css b/style.css index 98b839d..742163b 100644 --- a/style.css +++ b/style.css @@ -368,6 +368,9 @@ body.categories form.namelist ul.namelist > li ul li { display: inline-block; } + +/* ======== Ledgers Page ======== */ + form.ibanassign, form.ledgers { padding: .125em 1em 0 1em; @@ -388,12 +391,47 @@ form.ledgers { .ibanassign fieldset.iban p.principal { font-size: .875em; } -.ibanassign fieldset.iban p.amount, -.ibanassign fieldset.iban p.subject { +.ibanassign fieldset.iban p.date, +.ibanassign fieldset.iban p.amount { + font-size: .875em; display: inline-block; vertical-align: top; + margin-right: .75em; + margin-bottom: 0; } .ibanassign fieldset.iban p.amount { font-weight: bold; - margin-right: .75em; +} + +.ibanassign fieldset.iban input[name^="check_"], +.ibanassign fieldset.iban input[name^="check_"] + input, +.ibanassign fieldset.iban input[name^="check_"] + input + label { + display: none; +} +.ibanassign fieldset.iban input[name^="check_"]:checked + input, +.ibanassign fieldset.iban input[name^="check_"]:checked + input + label.del, +.ibanassign fieldset.iban input[name^="check_"] + input + label.del + input + input + label.add, +.ibanassign fieldset.iban input[name^="check_"]:checked + input + label + input + input + label.add { + display: inline; +} +.ibanassign fieldset.iban input[name^="check_"]:checked + input + label.add, +.ibanassign fieldset.iban input[name^="check_"] + input + label.del + input:checked + input + label.add, +.ibanassign fieldset.iban input[name^="check_"]:checked + input + label + input:checked + input + label.add { + display: none; +} + +.ibanassign fieldset.iban input[name^="check_"] + input + label { + vertical-align: bottom; + line-height: 2.5em; + padding: .375em .625em; + border: .5pt solid; +} +.ibanassign fieldset.iban input[name^="check_"] + input + label.add { + background-color: #DFD; + border-radius: 2pt; +} +.ibanassign fieldset.iban input[name^="check_"] + input + label.del { + margin: 0 .5em 0 -.25em; + background-color: #FDD; + border-radius: 0 2pt 2pt 0; } -- 2.39.2