item_name[XML]=""
l10n() {
- [ -n "$item_name[$1]" ] && echo "$item_name[$1]" || echo "$1"
+ [ -n "$item_name[$1]" ] && echo -n "$item_name[$1]" || echo -n "$1"
}
view_card_item() {
echo "<h2 CLASS=\"FN\">$value</h2>"
;;
*)
- echo "<span class=\"item\"><span class=\"KEY $key\">$(l10n "$key")"
- [ -n "$tag[TYPE]" ] && echo "($tag[TYPE])"
+ echo -n "<span class=\"item\"><span class=\"KEY $key\">$(l10n "$key")"
+ [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])"
echo ":</span>"
;|
EMAIL)
esac
}
+edit_card_item() {
+ case "$key" in
+ BEGIN|VERSION|END);;
+ PHOTO)
+ echo "<img class=\"PHOTO\" src=\"data:image/$tag[TYPE];base64,$value\"/>"
+ ;;
+ *)
+ echo -n "<span class=\"item\"><span class=\"KEY\">$(l10n "$key")"
+ [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])"
+ echo ":</span>"
+ ;|
+ *)
+ echo "<input class=\"VALUE\" name=\"$key\" value=\"$value\" /></item>"
+ ;;
+ esac
+}
+
view_attendee() { #Parameter: Cardfile
- key=""
- vcf_parse "$1" |while read -r line; do
+ 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";;
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