X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;ds=sidebyside;f=cards%2Fupdate_card.sh;fp=cards%2Fupdate_card.sh;h=a1143c3d72057359ef7b42a07c919c3d21ef33f4;hb=43e7c60df0632fd383306a2d3c6dc8c4213d4b9d;hp=0000000000000000000000000000000000000000;hpb=d40eb749c3b9766eb85d843e712f1b86543232d2;p=confetti
diff --git a/cards/update_card.sh b/cards/update_card.sh
new file mode 100755
index 0000000..a1143c3
--- /dev/null
+++ b/cards/update_card.sh
@@ -0,0 +1,102 @@
+#!/bin/zsh
+
+# Copyright 2014, 2016 Paul Hänsch
+#
+# This file is part of Confetti.
+#
+# Confetti is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Confetti is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Confetti. If not, see .
+
+cgi_refdata
+
+filter="&filter=${_REF[filter]}"
+filtertype="&filtertype=${_REF[filtertype]}"
+order="&order=${_REF[order]}"
+
+card="${_POST[card]}"
+tempfile="$_DATA/temp/$card"
+cardfile="$_DATA/vcard/$card"
+attfile="$_DATA/mappings/attendance"
+
+vcf_escape(){
+ for each in "$@"; do
+ printf %s\\n "$each" \
+ | sed -r ':X;$!{N;bX}; s;\r\n;\n;g; s;([;,\\]);\\\1;g; s;\n;\\n;g;'
+ done \
+ | sed -r ':X;$!{N;bX}; s;\n;\;;g'
+}
+
+[ "${_POST[hi_select]}" = "list" ] || _POST[hi_company]="${_POST[hi_other]}"
+[ -n "${_POST[hi_company]}${_POST[hi_number]}${_POST[hi_status]}" ] \
+&& _POST[X-HEALTH-INSURANCE]="$(vcf_escape "${_POST[hi_company]}" "${_POST[hi_number]}" "${_POST[hi_status]}")"
+
+sed -r 's;$;\r;' >"$tempfile" <>"$attfile"
+ sed -rn 's:^(.+)'$card'$:\1:p' "$attfile" |while read course; do
+ touch "$_DATA/ical/$course"
+ done
+
+ mv "$tempfile" "$cardfile"
+ redirect "?p=cards${filter}${filtertype}${order}#$card"
+ ;;
+ cancel)
+ rm "$tempfile"
+ [ -f "$cardfile" ] \
+ && redirect "?p=cards${filter}${filtertype}${order}#$card" \
+ || redirect "?p=cards${filter}${filtertype}${order}"
+ ;;
+ delete)
+ rm "$tempfile" "$cardfile"
+ redirect "?p=cards${filter}${filtertype}${order}"
+ ;;
+esac