basic update functions for vcards
[confetti] / templates / view_attendee.sh
1 view_card_item() {
2   case "$key" in
3     BEGIN|VERSION|END);;
4     PHOTO)
5       echo "<img class=\"PHOTO\" src=\"data:image/$tag[TYPE];base64,$value\"/>"
6       ;;
7     FN)
8       echo "<h2 CLASS=\"FN\">$value</h2>"
9       ;;
10     *)
11       echo -n "<span class=\"item\"><span class=\"KEY $key\">$(l10n "$key")"
12       [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])"
13       echo ":</span>"
14       ;|
15     EMAIL)
16       echo "<a href=\"mailto:$value\" class=\"VALUE $key\">$value</a></item>"
17       ;;
18     IMPP)
19       echo "<a href=\"$value\" class=\"VALUE $key\">"$(echo "$value" |cut -d: -f2-)"</a></item>"
20       ;;
21     *)
22       echo "<span class=\"VALUE $key\">$value</span></item>"
23       ;;
24   esac
25 }
26
27 view_attendee() {  #Parameter: Cardfile
28   cardfile="vcard/$1"
29   cachefile="cache/vcf_$(basename "$cardfile").cache"
30   unset key
31   [ "$cachefile" -nt "$cardfile" ] && cat "$cachefile" \
32   || vcf_parse "$cardfile" |while read -r line; do
33     declare -A tag
34     case "$line" in
35       value*) eval "$line";;
36       tag*)   eval "$line";;
37       key*)
38         if [ -z "$key" ]; then
39           eval "$line"
40         else
41           view_card_item
42           eval "$line"
43           unset value
44           unset tag
45         fi
46       ;;
47     esac
48   done |tee "$cachefile"
49 }