X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=pages%2Fattendees.sh;h=b528e5416d9f5623fa0e64e3822dbf5c437d6db0;hp=35e790ec6d934bdcc0e83de4c8f3d7465c892fa1;hb=0e814c6ffab2486405f60a1dfbfa048e76bba1f2;hpb=19a85441a8f173c3d2cd3d29fd7d95d2b471bb3c diff --git a/pages/attendees.sh b/pages/attendees.sh index 35e790e..b528e54 100755 --- a/pages/attendees.sh +++ b/pages/attendees.sh @@ -1,8 +1,33 @@ #!/bin/sh -[ "$_GET[\"choice\"]" = "del_filter" ] && _GET["filter"]="" && _GET["filtertype"]="" +# Copyright 2014 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 . + +[ -z "$_GET[\"order\"]" ] && _GET["order"]=firstname + +listcourses() { + ls -1 ${_DATA}/ical/*ics |while read file; do + icstime="$(sed -rn 's:^DTSTART\:(TZID=.*\:)?([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})Z?\r$:\2-\3-\4 \5\:\6\:\7:p' "$file")" + echo "$(date -d "$icstime" "+%u %H%M%S")\t$file" + done |sort |sed -r 's:^.*\t(.*/)([^/]+)$:\2:' +} + listcards() { - case "$_GET["filtertype"]" in + case "$_GET[\"filtertype\"]" in any) grep -il "$_GET[\"filter\"]" ${_DATA}/vcard/*vcf ;; @@ -23,9 +48,31 @@ listcards() { ;; course) ;; - *) ls -1 ${_DATA}/vcard/*vcf + *) ls -1 ${_DATA}/vcard/*vcf 2>/dev/null + ;; + esac |case "$_GET[\"order\"]" in + firstname) + while read file; do + fn=$(sed -rn 's:^N(;.+)*\:([^;]*;){1} *([^;]*).*$:\3:p' "$file") + echo "$fn\t$file" + done ;; - esac |sed -r 's:^(.*/)([^/]+)$:\2:' + lastname) + while read file; do + ln=$(sed -rn 's:^N(;.+)*\:([^;]*;){0} *([^;]*).*$:\3:p' "$file") + echo "$ln\t$file" + done + ;; + bdate) + while read file; do + bd=$(sed -rn 's:^BDAY(;.+)*\:(.*)$:\2:p' "$file") + echo "$bd\t$file" + done + ;; + *) + sed -r 's:^.*$:x\t&:' + ;; + esac |sort |sed -r 's:^.*\t(.*/)([^/]+)$:\2:' } vcf_parse() { @@ -153,7 +200,8 @@ vcf_parse() { done ;; esac - done + done \ + | sed -r 's:[\\$`]:\\&:g' } view_attendee() { #Parameter: Cardfile