X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=templates%2Fedit_attendee.sh;h=679a7bd249fd06644a1bcbc7ad0e2e524a0cbe75;hp=3d7ad0457eff8d21e795d3fea609906ffc6acb3b;hb=be5f12e43f464b3ca924b2131fe74d6cf24981a1;hpb=737e7f91162ec98b99dd2796ca26dd95e8c21f49 diff --git a/templates/edit_attendee.sh b/templates/edit_attendee.sh index 3d7ad04..679a7bd 100755 --- a/templates/edit_attendee.sh +++ b/templates/edit_attendee.sh @@ -1,24 +1,107 @@ -edit_card_item() { - case "$key" in - BEGIN|VERSION|END);; - PHOTO) - echo "" - ;; - *) - echo -n "$(l10n "$key")" - [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])" - echo ":" - ;| - *) - echo "" - echo "" - ;; - esac +check_gen() { + [ "$value[GENDER]" = "$1" ] && echo 'selected="selected"' +} + +edit_card() { + n_last="$(echo "$values[N]" |sed -rn 's:^([^;]*;){0} *([^;]*).*$:\2:p')" + n_first="$(echo "$values[N]" |sed -rn 's:^([^;]*;){1} *([^;]*).*$:\2:p')" + n_middle="$(echo "$values[N]" |sed -rn 's:^([^;]*;){2} *([^;]*).*$:\2:p')" + n_pre="$(echo "$values[N]" |sed -rn 's:^([^;]*;){3} *([^;]*).*$:\2:p')" + n_post="$(echo "$values[N]" |sed -rn 's:^([^;]*;){4} *([^;]*)*$:\2:p')" + + [ -z "$values[UID]" ] && values[UID]="$(dbus-uuidgen)" + + echo '
' + echo ' '$(l10n N)'' + echo ' ' + echo ' ' + echo ' ' + echo ' ' + echo ' ' + if [ -n "$value[GENDER]" ]; then + echo '
' + echo ' ' + fi + for n in NICKNAME NICKNAME{0..10}; do [ -n "$values[$n]" ] &&\ + echo ' ' + done + if [ -n "$values[BDAY]" ]; then + echo ' '$(l10n BDAY)'' + echo ' ' + fi + if [ -n "$values[SOUND]" ]; then + echo ' ' + fi + [ -n "$values[PHOTO]" ] &&\ + echo ' ' + [ -n "$values[LOGO]" ] &&\ + echo ' ' + echo '
' + echo '' + echo '
' + echo ' '$(l10n TEL)'' + print -l ${(k)values} |egrep '^TEL[0-9]*$' |while read n; do + echo ' ' + done + echo '
' + echo '' + echo '
' + 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 ' ' + done + echo '
' + echo '' + echo '
' + echo ' '$(l10n ADR)'' + for n in ADR ADR{0..10}; do [ -n "$values[$n]" ] &&\ + echo ' ' + done + [ -n "$values[URL]" ] && \ + echo ' '$(l10n URL)'' + for n in URL URL{0..10}; do [ -n "$values[$n]" ] &&\ + echo ' ' + done + echo '
' + echo '' + echo '
' + echo ' '$(l10n NOTE)'' + for n in NOTE NOTE{0..10}; do [ -n "$values[$n]" ] &&\ + echo ' ' + done + echo '
' + echo '' + echo '
' + echo ' ' + echo ' ' + echo ' ' + echo ' ' + echo '
' + echo '' } -edit_attendee() { - cardfile="$1" +edit_attendee() { #Parameter: Cardfile + id="$1" + cardfile="vcard/$id" unset key + + declare -A tags + declare -A values vcf_parse "$cardfile" |while read -r line; do declare -A tag case "$line" in @@ -28,12 +111,21 @@ edit_attendee() { if [ -z "$key" ]; then eval "$line" else - edit_card_item + [ -n "$value" ] && values[$key]="$value" || values[$key]='\r' + for t in ${(k)tag}; do + tags[${key}_$t]="$tag[$t]" + done eval "$line" - unset value - unset tag + 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 + edit_card }