per field add buttons
authorPaul Hänsch <paul@plutz.net>
Tue, 6 Aug 2019 12:11:49 +0000 (14:11 +0200)
committerPaul Hänsch <paul@plutz.net>
Tue, 6 Aug 2019 12:11:49 +0000 (14:11 +0200)
cards/list.sh
cards/update_card.sh

index 825b683..8f3b720 100755 (executable)
@@ -136,6 +136,7 @@ edit_item(){
           printf '<textarea class="item %s" name="%s">%s</textarea>' \
             "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)"
         done
+        printf '[button type="submit" name="action" value="addfield %s" %s ]' "$item" "$(l10n edit_addfield)"
         ;;
       TEL) printf '[h3 %s]' "$(l10n "$item")"
         seq 1 $cnt |while read c; do
@@ -158,6 +159,7 @@ edit_item(){
           printf '[input .item .%s name="%s" value="%s" placeholder="%s"]' \
             "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)" "$(l10n "$item")"
         done
+        printf '[button type="submit" name="action" value="addfield %s" %s ]' "$item" "$(l10n edit_addfield)"
         ;;
       *)printf '[h3 %s]' "$(l10n "$item")"
         seq 1 $cnt |while read c; do
@@ -166,6 +168,7 @@ edit_item(){
           printf '[input .item .%s name="%s" value="%s" placeholder="%s"]' \
             "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)" "$(l10n "$item")"
         done
+        printf '[button type="submit" name="action" value="addfield %s" %s ]' "$item" "$(l10n edit_addfield)"
         ;;
     esac
   done
index 52ccfcd..f44eb28 100755 (executable)
 . "$_EXEC/pdiread.sh"
 . "$_EXEC/session_lock.sh"
 
+unset filter order card action newfield
+unset cardfile attfile tempfile
+unset vcf field cnt delete_key
+
 filter="$(REF f)"
 order="$(REF o)"
 
@@ -28,7 +32,12 @@ cardfile="$_DATA/vcard/$card"
 attfile="$_DATA/mappings/attendance"
 
 action="$(POST action)"
-newfield="$(POST newfield)"
+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
+  newfield="${action##* }"
+  action=addfield
+fi
 
 if ! tempfile=$(CHECK_SLOCK "$cardfile"); then
   SET_COOKIE 0 message="NO VALID FILE LOCK"