From: Paul Hänsch Date: Sat, 5 Apr 2025 07:25:36 +0000 (+0200) Subject: improved POST data reader for numbered field arrays X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=df3db223b5681367356f56eff77ab2da611c7c94;p=invoices improved POST data reader for numbered field arrays --- diff --git a/index.cgi b/index.cgi index 31478d7..09d07c3 100755 --- a/index.cgi +++ b/index.cgi @@ -30,8 +30,8 @@ fi >&2 new_invoice) id="$(timeid)" file="$_DATA/${id}.kvd" DB3 new - DB3 set type "$(POST type)" - DB3 set status open + DB3 store type "$(POST type)" + DB3 store status open DB3 write "$file" REDIRECT "${_BASE}/doc/${id}" ;; @@ -41,13 +41,22 @@ fi >&2 DB3 open "$file" for key in $(POST_KEYS); do case $key in id|tid|session_key|action):;; + *._*) + if DB3 iterate _tmp_modified |grep -qxF "${key%._*}"; then + DB3 append "${key%._*}" "$(POST "$key")" + else + DB3 store "${key%._*}" "$(POST "$key")" + DB3 append _tmp_modified "${key%._*}" || DB3 store _tmp_modified "${key%._*}" + fi + ;; *)set -- for seq in $(seq 1 "$(POST_COUNT "$key")"); do set -- "$@" "$(POST "$key" $seq)" done - DB3 set "$key" "$@" + DB3 store "$key" "$@" ;; esac; done + DB3 delete _tmp_modified DB3 write "$file" RELEASE "$file" [ -d .git ] && {