3 # Copyright 2014, 2019 Paul Hänsch
5 # This file is part of Confetti.
7 # Confetti is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU Affero General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # Confetti is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU Affero General Public License for more details.
17 # You should have received a copy of the GNU Affero General Public License
18 # along with Confetti. If not, see <http://www.gnu.org/licenses/>.
23 uid="$(timeid)$(randomid)" # 32 Octets UID, starting with timestamp
28 printf %s\\n "$each" \
29 | sed -E ':X;$!{N;bX}; s;\r\n;\n;g; s;([;,\\]);\\\1;g; s;\n;\\n;g;'
31 | sed -E ':X;$!{N;bX}; s;\n;\;;g'
34 IFS='|' read -r date fn ln bday bmonth byear tel tcell junk1 email junk2 note <<-EOF
35 $(POST seed |tr \\t \|)
38 [ ${#byear} = 1 ] && byear="200$byear"
39 [ ${#byear} = 2 ] && byear="20$byear"
40 [ ${#bmonth} = 1 ] && bmonth="0$bmonth"
41 [ ${#bday} = 1 ] && bday="0$bday"
51 mkdir -p "${_DATA}/lock/vcard/"
52 lockdir="${_DATA}/lock/vcard/${card}/"
53 lockfile=${lockdir}/${SESSION_ID}
55 if mkdir "$lockdir"; then
56 cat >"$lockfile" <<-EOF
59 N:$(vcf_escape "$ln" "$fn" "$mn" "" "")
60 FN:$(vcf_escape "${fn}${mn:+ }${mn} ${ln}")
61 BDAY:$(parse_date "${byear}-${bmonth}-${bday}")
62 TEL:$(vcf_escape "$tel")
63 TEL;TYPE=CELL:$(vcf_escape "$tcell")
64 EMAIL:$(vcf_escape "$email")
65 X-ZACK-JOINDATE:$(parse_date "$date")
67 NOTE:$(vcf_escape "$note")
71 REDIRECT "${_BASE}/cards/?o=${order}&f=${filter}&e=${card}"
73 SET_COOKIE session message="EDITLOCK"
74 REDIRECT "${_BASE}/cards/?o=${order}&f=${filter}"