]> git.plutz.net Git - confetti/blob - templates/view_attendee.sh
basic editing functions
[confetti] / templates / view_attendee.sh
1 declare -A item_name
2
3 item_name[PHOTO]="Foto"
4 item_name[LOGO]="Logo"
5 item_name[FN]="Voller Name"
6 item_name[SOUND]="Aussprache"
7 item_name[GENDER]="Geschlecht"
8 item_name[KIND]="Typ"
9 item_name[TITLE]="Beruf"
10 item_name[ROLE]="Position"
11 item_name[ORG]="Organisation"
12 item_name[MEMBER]="Mitglied"
13 item_name[CATEGORIES]="Kategorien"
14 item_name[ANNIVERSARY]="Jubiläum"
15 item_name[BDAY]="Geburtstag"
16 item_name[EMAIL]="E-Mail"
17 item_name[TEL]="Telefon"
18 item_name[IMPP]="Chat"
19 item_name[ADR]="Anschrift"
20 item_name[URL]="Webseite"
21 item_name[LANG]="Sprache"
22 item_name[NOTE]="Notiz"
23
24 item_name[RELATED]="Kontakte"
25
26 item_name[BEGIN]=""
27 item_name[CALADRURI]=""
28 item_name[CALURI]=""
29 item_name[CLASS]=""
30 item_name[CLIENTPIDMAP]=""
31 item_name[END]=""
32 item_name[FBURL]=""
33 item_name[GEO]=""
34 item_name[MAILER]=""
35 item_name[NAME]=""
36 item_name[PRODID]=""
37 item_name[PROFILE]=""
38 item_name[REV]=""
39 item_name[SORT-STRING]=""
40 item_name[SOURCE]=""
41 item_name[TZ]=""
42 item_name[UID]=""
43 item_name[VERSION]=""
44 item_name[XML]=""
45
46 l10n() {
47   [ -n "$item_name[$1]" ] && echo -n "$item_name[$1]" || echo -n "$1"
48 }
49
50 view_card_item() {
51   case "$key" in
52     BEGIN|VERSION|END);;
53     PHOTO)
54       echo "<img class=\"PHOTO\" src=\"data:image/$tag[TYPE];base64,$value\"/>"
55       ;;
56     FN)
57       echo "<h2 CLASS=\"FN\">$value</h2>"
58       ;;
59     *)
60       echo -n "<span class=\"item\"><span class=\"KEY $key\">$(l10n "$key")"
61       [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])"
62       echo ":</span>"
63       ;|
64     EMAIL)
65       echo "<a href=\"mailto:$value\" class=\"VALUE $key\">$value</a></item>"
66       ;;
67     IMPP)
68       echo "<a href=\"$value\" class=\"VALUE $key\">"$(echo "$value" |cut -d: -f2-)"</a></item>"
69       ;;
70     *)
71       echo "<span class=\"VALUE $key\">$value</span></item>"
72       ;;
73   esac
74 }
75
76 edit_card_item() {
77   case "$key" in
78     BEGIN|VERSION|END);;
79     PHOTO)
80       echo "<img class=\"PHOTO\" src=\"data:image/$tag[TYPE];base64,$value\"/>"
81       ;;
82     *)
83       echo -n "<span class=\"item\"><span class=\"KEY\">$(l10n "$key")"
84       [ -n "$tag[TYPE]" ] && echo -n "($tag[TYPE])"
85       echo ":</span>"
86       ;|
87     *)
88       echo "<input class=\"VALUE\" name=\"$key\" value=\"$value\" /></item>"
89       ;;
90   esac
91 }
92
93 view_attendee() {  #Parameter: Cardfile
94   cardfile="$1"
95   cachefile="cache/vcf_$(basename "$cardfile").cache"
96   unset key
97   [ "$cachefile" -nt "$cardfile" ] && cat "$cachefile" \
98   || vcf_parse "$cardfile" |while read -r line; do
99     declare -A tag
100     case "$line" in
101       value*) eval "$line";;
102       tag*)   eval "$line";;
103       key*)
104         if [ -z "$key" ]; then
105           eval "$line"
106         else
107           view_card_item
108           eval "$line"
109           unset value
110           unset tag
111         fi
112       ;;
113     esac
114   done |tee "$cachefile"
115 }
116
117 edit_attendee() {
118   cardfile="$1"
119   unset key
120   vcf_parse "$cardfile" |while read -r line; do
121     declare -A tag
122     case "$line" in
123       value*) eval "$line";;
124       tag*)   eval "$line";;
125       key*)
126         if [ -z "$key" ]; then
127           eval "$line"
128         else
129           edit_card_item
130           eval "$line"
131           unset value
132           unset tag
133         fi
134       ;;
135     esac
136   done
137 }