improved visual style
[confetti] / templates / view_attendee.sh
1 print_card() {
2   echo '  <div class="section basic">'
3   echo '    <span class="item FN">'$values[FN]'</span>'
4   [ -n "$value[GENDER]" ] && \
5     echo '    <span class="item GENDER">'$(l10n $values[GENDER])'</span>'
6   for n in NICKNAME NICKNAME{0..10}; do [ -n "$values[$n]" ] &&\
7     echo '    <span class="item NICKNAME">aka. '$values[$n]'</span>'
8   done
9   [ -n "$values[BDAY]" ] &&\
10     echo '    <span class="item BDAY"><b>*:</b> '$values[BDAY]'</span>'
11   if [ -n "$values[SOUND]" ]; then
12     echo '    <audio controls="controls" class="item SOUND">'
13     echo '      <source type="audio/ogg" src="data:audio/ogg;base64,'$values[SOUND]'" />'
14     echo '    </audio>'
15   fi
16   [ -n "$values[PHOTO]" ] &&\
17     echo '    <img class="item PHOTO" src="data:image/'$tags[PHOTO_TYPE]';base64,'$values[PHOTO]'" />'
18   [ -n "$values[LOGO]" ] &&\
19     echo '    <img class="item LOGO" src="data:image/'$tags[LOGO_TYPE]';base64,'$values[LOGO]'" />'
20   echo '  </div>'
21   echo ''
22   echo '  <div class="section phone">'
23   echo '    <span class="sectitle">'$(l10n TEL)'</span>'
24   for n in TEL TEL{0..10}; do [ -n "$values[$n]" ] &&\
25     echo '    <span class="item TEL">'$tags[${n}_TYPE]' '$values[$n]'</span>'
26   done
27   echo '  </div>'
28   echo ''
29   echo '  <div class="section message">'
30   echo '    <span class="sectitle">'$(l10n EMAIL)'</span>'
31   for n in EMAIL EMAIL{0..10}; do [ -n "$values[$n]" ] &&\
32     echo '    <span class="item EMAIL"><a href="mailto:'$values[$n]'">'$values[$n]'</a></span>'
33   done
34   [ -n "$values[IMPP]" ] && \
35     echo '    <span class="sectitle">'$(l10n IMPP)'</span>'
36   for n in IMPP IMPP{0..10}; do [ -n "$values[$n]" ] &&\
37     echo '    <span class="item IMPP">'$tags[${n}_TYPE]' <a href="'$values[$n]'">'$values[$n]'</a></span>'
38   done
39   echo '  </div>'
40   echo ''
41   echo '  <div class="section address">'
42   echo '    <span class="sectitle">'$(l10n ADR)'</span>'
43   for n in ADR ADR{0..10}; do [ -n "$values[$n]" ] &&\
44     echo '    <span class="item ADR">'$values[$n]'</span>'
45   done
46   [ -n "$values[URL]" ] && \
47     echo '    <span class="sectitle">'$(l10n URL)'</span>'
48   for n in URL URL{0..10}; do [ -n "$values[$n]" ] &&\
49     echo '    <span class="item URL"><a href="'$values[$n]'">'$values[$n]'</a></span>'
50   done
51   echo '  </div>'
52   echo ''
53   echo '  <div class="section note">'
54   echo '    <span class="sectitle">'$(l10n NOTE)'</span>'
55   for n in NOTE NOTE{0..10}; do [ -n "$values[$n]" ] &&\
56     echo '    <span class="item IMPP">'$values[$n]'</span>'
57   done
58   echo '  </div>'
59   echo ''
60   echo '  <div class="section control">'
61   echo '    <a class="item control" href="?page=attendees&edit='${id}'#'${id}'">'$(l10n edit)'</a>'
62   echo '    <a class="item control" href="?export=vcard&card='${id}'">'$(l10n vcf_export)'</a>'
63   echo '  </div>'
64 }
65
66 view_attendee() {  #Parameter: Cardfile
67   id="$1"
68   cardfile="vcard/$id"
69   cachefile="cache/${id}.cache"
70   unset key
71   if [ "$cachefile" -nt "$cardfile" ]; then
72     cat "$cachefile"
73   else
74     declare -A tags
75     declare -A values
76     vcf_parse "$cardfile" |while read -r line; do
77       declare -A tag
78       case "$line" in
79         value*) eval "$line";;
80         tag*)   eval "$line";;
81         key*)
82           if [ -z "$key" ]; then
83             eval "$line"
84           else
85             values[$key]="$value"
86             for t in ${(k)tag}; do
87               tags[${key}_$t]="$tag[$t]"
88             done
89             eval "$line"
90             if [ -n "$values[$key]" ]; then
91               n=0
92               while [ -n "$values[$key$n]" ]; do n=$(($n + 1)); done
93               key=$key$n
94             fi
95             unset value
96             unset tag
97           fi
98         ;;
99       esac
100     done
101     print_card |tee "$cachefile"
102   fi
103 }