X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=templates%2Fview_attendee.sh;h=40f09926914ffd608f98b2857ba292850e7f41d0;hp=01fb3f0383565c3f9baa56a26aac6b1eb2367705;hb=be5f12e43f464b3ca924b2131fe74d6cf24981a1;hpb=e308373633b80056507ee9cedc5c9b7fc3a00dca diff --git a/templates/view_attendee.sh b/templates/view_attendee.sh index 01fb3f0..40f0992 100755 --- a/templates/view_attendee.sh +++ b/templates/view_attendee.sh @@ -1,137 +1,104 @@ -declare -A item_name - -item_name[PHOTO]="Foto" -item_name[LOGO]="Logo" -item_name[FN]="Voller Name" -item_name[SOUND]="Aussprache" -item_name[GENDER]="Geschlecht" -item_name[KIND]="Typ" -item_name[TITLE]="Beruf" -item_name[ROLE]="Position" -item_name[ORG]="Organisation" -item_name[MEMBER]="Mitglied" -item_name[CATEGORIES]="Kategorien" -item_name[ANNIVERSARY]="Jubiläum" -item_name[BDAY]="Geburtstag" -item_name[EMAIL]="E-Mail" -item_name[TEL]="Telefon" -item_name[IMPP]="Chat" -item_name[ADR]="Anschrift" -item_name[URL]="Webseite" -item_name[LANG]="Sprache" -item_name[NOTE]="Notiz" - -item_name[RELATED]="Kontakte" - -item_name[BEGIN]="" -item_name[CALADRURI]="" -item_name[CALURI]="" -item_name[CLASS]="" -item_name[CLIENTPIDMAP]="" -item_name[END]="" -item_name[FBURL]="" -item_name[GEO]="" -item_name[MAILER]="" -item_name[NAME]="" -item_name[PRODID]="" -item_name[PROFILE]="" -item_name[REV]="" -item_name[SORT-STRING]="" -item_name[SOURCE]="" -item_name[TZ]="" -item_name[UID]="" -item_name[VERSION]="" -item_name[XML]="" - -l10n() { - [ -n "$item_name[$1]" ] && echo -n "$item_name[$1]" || echo -n "$1" -} - -view_card_item() { - case "$key" in - BEGIN|VERSION|END);; - PHOTO) - echo "" - ;; - FN) - echo "

$value

" - ;; - *) - echo -n "$(l10n "$key")" - [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])" - echo ":" - ;| - EMAIL) - echo "$value" - ;; - IMPP) - echo ""$(echo "$value" |cut -d: -f2-)"" - ;; - *) - echo "$value" - ;; - esac -} - -edit_card_item() { - case "$key" in - BEGIN|VERSION|END);; - PHOTO) - echo "" - ;; - *) - echo -n "$(l10n "$key")" - [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])" - echo ":" - ;| - *) - echo "" - ;; - 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 ' ' + 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 '
' + echo ' '$(l10n edit)'' + echo ' '$(l10n vcf_export)'' + echo '
' } view_attendee() { #Parameter: Cardfile - cardfile="$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" -} - -edit_attendee() { - cardfile="$1" - unset key - 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 - edit_card_item - eval "$line" - unset value - unset tag - fi - ;; - esac - done + 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 }