]> git.plutz.net Git - invoices/blob - clients.sh
split code into multiple files
[invoices] / clients.sh
1 #!/bin/sh
2
3 edit_client(){
4   id="$1"
5   if [ -f "clients/$id" ]; then
6     read -r address hourly <"clients/$id"
7   fi
8   [ "$address" ] || address="address="
9   [  "$hourly" ] ||  hourly="hourly="
10   printf '
11     [form method="POST" action="/update_client"
12       [hidden "id" "%s"]
13       <textarea name="address" placeholder="address">
14 %s</textarea>
15       [label for=hourly Hourly Rate:]
16       [input #hourly type=number name=hourly value="%s"]
17       [submit "update" "update" Update]
18     ]' \
19     "$(HTML $id)" \
20     "$(UNSTRING "${address#address=}" |HTML)" \
21     "$(UNSTRING "${hourly#hourly=}" |grep -xE '[0-9]+')"
22 }
23
24 list_clients(){
25   [ -d clients/ ] && for c in clients/*; do
26     read -r address hourly <"$c"
27     address="$(UNSTRING "${address#address=}")"
28     [ "$address" ] || address="(no address)"
29     printf '[div .client .address <!--
30       -->%s
31
32 [label Hourly Rate:] %s€
33     [a href="/clients/%s" Edit]]
34     ' "$(HTML "$address")" \
35       "$(HTML "${hourly#hourly=}")" \
36       "$(HTML "${c#clients/}")"
37   done
38 }
39
40 update_client(){
41   id="$(POST id |checkid)"
42   if [ "$(POST update)" = update -a "$id" ]; then
43     mkdir -p clients
44     printf 'address=%s  hourly=%s' \
45       "$(POST address |STRING)" "$(POST hourly |STRING)" \
46       >"clients/$id"
47   else
48     echo Invalid Data "$(POST id)" "$(POST update)" >&2
49   fi
50 }