From 9631f7d188d59cc11fc14629a66583b07b187a72 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Sun, 12 May 2024 17:50:22 +0200 Subject: [PATCH] Mark modified fieldsets visually --- ledgers/index.cgi | 10 +++++++--- style.css | 22 +++++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/ledgers/index.cgi b/ledgers/index.cgi index f55850d..f2c2bf0 100755 --- a/ledgers/index.cgi +++ b/ledgers/index.cgi @@ -45,6 +45,9 @@ credit() { cat "${_DATA}"/ledgers/????-??-??\ -\ ????-??-??\ -\ ????.tbl } | "${_EXEC}"/ledgers/iban_assign.awk \ | while read -r state iban data; do + iban="$(UNSTRING "$iban")" + [ ! "$iban" ] && iban="??????????" + printf '[input type=checkbox id="use_%s" name="use_%s" value=true]' "$iban" "$iban" printf '[fieldset .iban .%s [legend . %s ]' \ "$state" "$iban" if [ $state = sure ]; then @@ -62,7 +65,6 @@ credit() { amount="${record#* * * * * }" amount="${amount%% *}" printf '[p .principal . %s][p .date %s][p .amount %s][p .subject . %s]' \ "$(UNSTRING "$principal" |HTML)" "$date" "$(credit "$amount")" "$(UNSTRING "$subject" |HTML)" - printf '[input type=checkbox id="use_%s" name="use_%s" value=true]' "$iban" "$iban" n=0; for card in $cards; do n=$((n+1)); uid="${card%%/*}" name="$(UNSTRING "${card#*/}")" cat <<-EOF @@ -78,8 +80,8 @@ credit() { [label .add for="check_${iban}_$((n+m))" . +] EOF done - printf '[label for="use_%s" . %s]' "$iban" "$(l10n Accept Suggestions)" - printf '[label for="use_%s" . %s]' "$iban" "$(l10n Ignore Suggestions)" + printf '[label .button for="use_%s" . %s]' "$iban" "$(l10n Accept Suggestions)" + printf '[label .button for="use_%s" . %s]' "$iban" "$(l10n Ignore Suggestions)" elif [ $state = unknown ]; then date="${data%% *}" principal="${data#* * * }" principal="${principal%% *}" @@ -95,6 +97,8 @@ credit() { [label .add for="check_${iban}_$((n+m))" . +] EOF done + printf '[label .button for="use_%s" . %s]' "$iban" "$(l10n Accept Suggestions)" + printf '[label .button for="use_%s" . %s]' "$iban" "$(l10n Ignore Suggestions)" fi printf ']' done diff --git a/style.css b/style.css index 13d41a0..a8ebe90 100644 --- a/style.css +++ b/style.css @@ -403,6 +403,8 @@ form.ledgers { font-weight: bold; } +.ibanassign fieldset.iban.sure .card { margin-right: 1em; } + .ibanassign fieldset.iban input[name^="fn_"].disabled { pointer-events: none; } @@ -439,16 +441,18 @@ form.ledgers { border-radius: 0 2pt 2pt 0; } -.ibanassign fieldset.iban input[name^="use_"] { +.ibanassign input[name^="use_"] { display: none; } -.ibanassign fieldset.iban input[name^="use_"]:checked ~ input { +.ibanassign input[name^="use_"]:checked + fieldset.iban.guess { background-color: #EFD; } +.ibanassign input[name^="use_"]:checked + fieldset.iban.unknown { background-color: #FED; } +.ibanassign input[name^="use_"]:checked + fieldset.iban input { background-color: #DFD; pointer-events: none; border-color: #888; } -.ibanassign fieldset.iban input[name^="use_"]:checked ~ label.del, -.ibanassign fieldset.iban input[name^="use_"]:checked ~ label.add { +.ibanassign input[name^="use_"]:checked + fieldset.iban label.del, +.ibanassign input[name^="use_"]:checked + fieldset.iban label.add { display: none !important; } @@ -456,14 +460,14 @@ form.ledgers { display: block; float: right; padding: .25em .5em; - background-color: #AAF; + background-color: #DDF; border: 1pt solid; } -.ibanassign fieldset.iban input[name^="use_"] ~ label[for^="use_"] { display: block; } -.ibanassign fieldset.iban input[name^="use_"] ~ label[for^="use_"] + label[for^="use_"] { display: none; } -.ibanassign fieldset.iban input[name^="use_"]:checked ~ label[for^="use_"] { display: none; } -.ibanassign fieldset.iban input[name^="use_"]:checked ~ label[for^="use_"] + label[for^="use_"] { display: block; } +.ibanassign input[name^="use_"] + fieldset.iban label[for^="use_"] { display: block; } +.ibanassign input[name^="use_"] + fieldset.iban label[for^="use_"] + label[for^="use_"] { display: none; } +.ibanassign input[name^="use_"]:checked + fieldset.iban label[for^="use_"] { display: none; } +.ibanassign input[name^="use_"]:checked + fieldset.iban label[for^="use_"] + label[for^="use_"] { display: block; } .ibanassign > button { position: sticky; -- 2.39.2