X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;ds=sidebyside;f=templates%2Fview_attendee.sh;h=40f09926914ffd608f98b2857ba292850e7f41d0;hb=74402713921d878553d9a7385d5e66c74775380f;hp=86dad68ea13ec06ea65678460b75e9dbb06a98ab;hpb=9da739230659371a860e93dcaf3765b977e30de7;p=lobster
diff --git a/templates/view_attendee.sh b/templates/view_attendee.sh
index 86dad68..40f0992 100755
--- a/templates/view_attendee.sh
+++ b/templates/view_attendee.sh
@@ -1,49 +1,104 @@
-view_card_item() {
- case "$key" in
- BEGIN|VERSION|END);;
- PHOTO)
- echo ""
- ;;
- FN)
- echo "
$(l10n "$key")"
- [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])"
- echo ":"
- ;|
- EMAIL)
- echo "$value"
- ;;
- IMPP)
- echo ""$(echo "$value" |cut -d: -f2-)""
- ;;
- *)
- echo "$value"
- ;;
- esac
+print_card() {
+ echo ' '
+ echo '
'$values[FN]''
+ [ -n "$value[GENDER]" ] && \
+ echo '
'$(l10n $values[GENDER])''
+ for n in NICKNAME NICKNAME{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
aka. '$values[$n]''
+ done
+ [ -n "$values[BDAY]" ] &&\
+ echo '
*: '$values[BDAY]''
+ if [ -n "$values[SOUND]" ]; then
+ echo '
'
+ fi
+ [ -n "$values[PHOTO]" ] &&\
+ echo '
'
+ [ -n "$values[LOGO]" ] &&\
+ echo '
'
+ echo '
'
+ echo ''
+ echo ' '
+ echo ' '$(l10n TEL)''
+ for n in TEL TEL{0..10}; do [ -n "$values[$n]" ] &&\
+ echo ' '$tags[${n}_TYPE]' '$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
+ [ -n "$values[EMAIL]" ] && \
+ echo '
'$(l10n EMAIL)''
+ for n in EMAIL EMAIL{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$values[$n]''
+ done
+ [ -n "$values[IMPP]" ] && \
+ echo '
'$(l10n IMPP)''
+ for n in IMPP IMPP{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$tags[${n}_TYPE]' '$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
+ echo '
'$(l10n ADR)''
+ for n in ADR ADR{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$values[$n]''
+ done
+ [ -n "$values[URL]" ] && \
+ echo '
'$(l10n URL)''
+ for n in URL URL{0..10}; do [ -n "$values[$n]" ] &&\
+ echo '
'$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
+ echo ' '$(l10n NOTE)''
+ for n in NOTE NOTE{0..10}; do [ -n "$values[$n]" ] &&\
+ echo ' '$values[$n]''
+ done
+ echo '
'
+ echo ''
+ echo ' '
}
view_attendee() { #Parameter: Cardfile
- cardfile="vcard/$1"
- cachefile="cache/vcf_$(basename "$cardfile").cache"
+ id="$1"
+ cardfile="vcard/$id"
+ cachefile="cache/${id}.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"
+ if [ "$cachefile" -nt "$cardfile" ]; then
+ cat "$cachefile"
+ else
+ declare -A tags
+ declare -A values
+ 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
+ values[$key]="$value"
+ for t in ${(k)tag}; do
+ tags[${key}_$t]="$tag[$t]"
+ done
+ eval "$line"
+ if [ -n "$values[$key]" ]; then
+ n=0
+ while [ -n "$values[$key$n]" ]; do n=$(($n + 1)); done
+ key=$key$n
+ fi
+ unset value
+ unset tag
+ fi
+ ;;
+ esac
+ done
+ print_card |tee "$cachefile"
+ fi
}