]> git.plutz.net Git - confetti/commitdiff
styling for iban assignment master
authorPaul Hänsch <paul@plutz.net>
Sat, 20 Apr 2024 19:32:56 +0000 (21:32 +0200)
committerPaul Hänsch <paul@plutz.net>
Sat, 20 Apr 2024 19:32:56 +0000 (21:32 +0200)
cards/l10n.sh
cards/list.sh
cards/update_card.sh
ledgers/iban_assign.awk
ledgers/index.cgi
style.css

index 2d9dc06362d250a5719f378aa0e9ef8a61867bee..fde98e07350659d4e8a938c0175e03c9994bcbbf 100755 (executable)
@@ -37,6 +37,7 @@ l10n(){
     X-ZACK-LEAVEDATE) printf %s "Abmelde&shy;datum";;
     X-ZACK-JOINDATE_short)  printf %s "Anm.";;
     X-ZACK-LEAVEDATE_short) printf %s "Abm.";;
+    X-IBAN) printf %s "IBAN";;
 
     *) l10n_global "$word";;
   esac
index 519005c08f780bc5e09dc64717fa72bd46425482..9511fc1d015001a1dbdb2cf9a92dde6e84ed8be1 100755 (executable)
@@ -31,7 +31,10 @@ edit_card(){
            [ $(pdi_count "$card" IMPP) -gt 0 ] && edit_item "$card" IMPP
            [ $(pdi_count "$card" URL ) -gt 0 ] && edit_item "$card" URL
          )]
-         [div .section .address $(edit_item "$card" ADR)]
+         [div .section .address $(
+           edit_item "$card" ADR
+           [ $(pdi_count "$card" X-IBAN) -gt 0 ] && edit_item "$card" X-IBAN
+         )]
          [div .section .note    $(edit_item "$card" NOTE)]
          [div .section .attendance
            [h3 $(l10n course_attendance) ] [div .attendance $(
@@ -65,7 +68,7 @@ edit_card(){
             [div .item .newfield
               [select name="newfield"
                [option value="" disabled="disabled" selected="selected" $(l10n edit_addfieldtext)]
-               $(for f in NICKNAME EMAIL TEL IMPP ADR URL NOTE X-ZACK-LEAVEDATE; do
+               $(for f in NICKNAME EMAIL TEL IMPP ADR URL NOTE X-ZACK-LEAVEDATE X-IBAN; do
                  printf '[option value="%s" %s] ' "$f" "$(l10n "$f")"
                done)
              ][button type="submit" name="action" value="addfield" $(l10n edit_addfield)]
@@ -90,7 +93,7 @@ print_card(){
       )]
       [div .section .phone   . $(card_item "$card" TEL)]
       [div .section .message . $(card_item "$card" EMAIL IMPP URL)]
-      [div .section .address . $(card_item "$card" ADR)]
+      [div .section .address . $(card_item "$card" ADR X-IBAN)]
       [div .section .note    . $(card_item "$card" NOTE)]
       [div .section .attendance [h3 $(l10n course_attendance) ] [ul
         $(grep -F "    ${cardfile##*/}" "$_DATA/mappings/attendance" |while read each discard; do
index 2b87632aea3208def628e80226996b32e1eb171b..d57f5030a2431c564891d716c7f7a8ff5d769755 100755 (executable)
@@ -35,7 +35,7 @@ attfile="$_DATA/mappings/attendance"
 action="$(POST action)"
 newfield="$(POST newfield |grep -m 1 -xE '[A-Z][A-Z0-9-]*')"
 
-if printf '%s\n' "$action" |grep -qxE 'addfield [A-Z][A-Z0-9]*'; then
+if printf '%s\n' "$action" |grep -qxE 'addfield [A-Z][A-Z0-9-]*'; then
   newfield="${action##* }"
   action=addfield
 fi
index 090d950bbfe513f974f6e051c45fdbce6a112791..68a572716be79a172e86975d561426a1b46c3153 100755 (executable)
@@ -41,16 +41,15 @@ BEGIN {
 
 /^BEGIN;:VCARD$/ { fn = n = id = iban = tmp = ""; }
 
-   /^UID;[^:]*:/ { uid = $0; sub(/^[^;]+;[^:]*:/, "", uid); }
-    /^FN;[^:]*:/ {  fn = $0; sub(/^[^;]+;[^:]*:/, "",  fn); }
-     /^N;[^:]*:/ {   n = $0; sub(/^[^;]+;[^:]*:/, "",   n); sub(/;.*$/, "", n); }
-/^X-IBAN;[^:]*:/ { tmp = $0; sub(/^[^;]+;[^:]*:/, "", tmp); iban = iban ? iban " " tmp : tmp; }
+   /^UID;[^:]*:/ {  uid = $0; sub(/^[^;]+;[^:]*:/, "",  uid); }
+    /^FN;[^:]*:/ {   fn = $0; sub(/^[^;]+;[^:]*:/, "",   fn); }
+     /^N;[^:]*:/ {    n = $0; sub(/^[^;]+;[^:]*:/, "",    n); sub(/;.*$/, "", n); }
+/^X-IBAN;[^:]*:/ { iban = $0; sub(/^[^;]+;[^:]*:/, "", iban); ibans[length(ibans)] = iban; }
 
 /^END;:VCARD$/ {
   uid_n[uid] = n; uid_fn[uid] = fn; uid_iban[uid] = iban;
-  split(iban, ibans, / /);
-  for (iban in ibans) iban_uid[iban] = iban_uid[iban] ? iban_uid[iban] " " uid : uid;
-  fn = n = uid = iban = tmp = "";
+  for (iban in ibans) iban_uid[ibans[iban]] = iban_uid[ibans[iban]] ? iban_uid[ibans[iban]] " " uid : uid;
+  fn = n = uid = iban = tmp = ""; split("", ibans);
 }
 
 strftime("%Y-%m-%d", $1, "UTC") == $2 && strftime("%Y-%m-%d", $3, "UTC") == $4 { ledger = 1; }
@@ -74,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) {
index 87af8b155435e09425c6c25e0004fce8a14593ed..dbf8ee892a2b3c99454ce4a8632bf93feb131a17 100755 (executable)
@@ -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
index 98b839da1ffaa54f2ea1f170dfe7b3a0e246f98e..742163ba21d5ce1857d6af966e7b7a92f11091e0 100644 (file)
--- 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;
 }