-view_attendee() { #Parameter: Cardfile
- cardfile="$1"
- cachefile="cache/vcf_$(basename "$cardfile").cache"
- unset key
- [ "$cachefile" -nt "$cardfile" ] && cat "$cachefile" \
- || vcf_parse "$cardfile" |while read -r line; do
- declare -A tag
- case "$line" in
- value*) eval "$line";;
- tag*) eval "$line";;
- key*)
- if [ -z "$key" ]; then
- eval "$line"
- else
- view_card_item
- eval "$line"
- unset value
- unset tag
- fi
- ;;
- esac
- done |tee "$cachefile"
-}
+n=$(printf %s "$values[N+3] $values[N+1] $values[N+2] $values[N+0] $values[N+4]" \
+ | sed -r ':X;$!{N;bX}; s;^[\n ]+;;; s;[\n ]+$;;; s;[\r\t\n ]+; ;g;'
+ )
+fullname="${n:-${values[FN]:-${values[NICKNAME]}}}"
+
+hi_company="${values[X-HEALTH-INSURANCE+0]}"
+ hi_number="${values[X-HEALTH-INSURANCE+1]}"
+ hi_status="${values[X-HEALTH-INSURANCE+2]}"
+
+printf '<div class="section basic">
+ <h2 class="item FN">%s</h2>
+' "$fullname"
+[ -n "$values[GENDER]" ] && printf '
+ <span class="item GENDER">%s</span>
+ ' "$(l10n "$values[GENDER]")"
+
+for n in NICKNAME NICKNAME{0..100}; do
+ [ -z "${values[$n]+x}" ] && break \
+ || printf '
+ <span class="item NICKNAME">aka. %s</span>
+ ' "$(htmlsafe ${values[$n]})"
+done
+
+[ -n "$values[BDAY]" ] && printf '
+ <span class="item BDAY"><b>*:</b>%s</span>
+ ' "$(htmlsafe "$values[BDAY]")"
+[ -n "$values[X-ZACK-JOINDATE]" ] && printf '
+ <span class="item X-ZACK-JOINDATE"><b>%s:</b>%s</span>
+ ' "$(l10n label_join)" "$(htmlsafe "$values[X-ZACK-JOINDATE]")"
+[ -n "$values[X-ZACK-LEAVEDATE]" ] && printf '
+ <span class="item X-ZACK-LEAVEDATE"><b>%s:</b>%s</span>
+ ' "$(l10n label_leave)" "$(htmlsafe "$values[X-ZACK-LEAVEDATE]")"
+
+[ -n "$values[SOUND]" ] && printf '
+ <audio controls="controls" class="item SOUND">
+ <source type="audio/ogg" src="data:audio/ogg;base64,%s" />
+ </audio>' "$values[SOUND]"