basic editing functions for new view
[confetti] / templates / edit_attendee.sh
1 edit_card() {
2   n_last="$(echo "$values[N]" |sed -r 's:^([^;]*;){0} *([^;]*);.*$:\2:')"
3   n_first="$(echo "$values[N]" |sed -r 's:^([^;]*;){1} *([^;]*);.*$:\2:')"
4   n_middle="$(echo "$values[N]" |sed -r 's:^([^;]*;){2} *([^;]*);.*$:\2:')"
5   n_pre="$(echo "$values[N]" |sed -r 's:^([^;]*;){3} *([^;]*);.*$:\2:')"
6   n_post="$(echo "$values[N]" |sed -r 's:^([^;]*;){4} *([^;]*);*$:\2:')"
7
8
9   echo '  <div class="section basic">'
10   echo '    <span class="sectitle">'$(l10n NAME)'</span>'
11   echo '    <input class="item N" name="3N" placeholder="'$(l10n n_pre)'" value="'$n_pre'" />'
12   echo '    <input class="item N" name="1N" placeholder="'$(l10n n_first)'" value="'$n_first'" />'
13   echo '    <input class="item N" name="2N" placeholder="'$(l10n n_middle)'" value="'$n_middle'" />'
14   echo '    <input class="item N" name="0N" placeholder="'$(l10n n_last)'" value="'$n_last'" />'
15   echo '    <input class="item N" name="4N" placeholder="'$(l10n n_post)'" value="'$n_post'" />'
16   [ -n "$value[GENDER]" ] && \
17     echo '    <span class="item GENDER">'$(l10n $values[GENDER])'</span>'
18   for n in NICKNAME NICKNAME{0..10}; do [ -n "$values[$n]" ] &&\
19     echo '    <span class="item NICKNAME">aka. '$values[$n]'</span>'
20   done
21   [ -n "$values[BDAY]" ] &&\
22     echo '    <span class="item BDAY"><b>*:</b> '$values[BDAY]'</span>'
23   if [ -n "$values[SOUND]" ]; then
24     echo '    <audio controls="controls" class="item SOUND">'
25     echo '      <source type="audio/ogg" src="data:audio/ogg;base64,'$values[SOUND]'" />'
26     echo '    </audio>'
27   fi
28   [ -n "$values[PHOTO]" ] &&\
29     echo '    <img class="item PHOTO" src="data:image/'$tags[PHOTO_TYPE]';base64,'$values[PHOTO]'" />'
30   [ -n "$values[LOGO]" ] &&\
31     echo '    <img class="item LOGO" src="data:image/'$tags[LOGO_TYPE]';base64,'$values[LOGO]'" />'
32   echo '  </div>'
33   echo ''
34   echo '  <div class="section phone">'
35   echo '    <span class="sectitle">'$(l10n TEL)'</span>'
36   for n in TEL TEL{0..10}; do [ -n "$values[$n]" ] &&\
37     echo '    <span class="item TEL">'$tags[${n}_TYPE]' '$values[$n]'</span>'
38   done
39   echo '  </div>'
40   echo ''
41   echo '  <div class="section message">'
42   echo '    <span class="sectitle">'$(l10n EMAIL)'</span>'
43   for n in EMAIL EMAIL{0..10}; do [ -n "$values[$n]" ] &&\
44     echo '    <span class="item EMAIL"><a href="mailto:'$values[$n]'">'$values[$n]'</a></span>'
45   done
46   [ -n "$values[IMPP]" ] && \
47     echo '    <span class="sectitle">'$(l10n IMPP)'</span>'
48   for n in IMPP IMPP{0..10}; do [ -n "$values[$n]" ] &&\
49     echo '    <span class="item IMPP">'$tags[${n}_TYPE]' <a href="'$values[$n]'">'$values[$n]'</a></span>'
50   done
51   echo '  </div>'
52   echo ''
53   echo '  <div class="section address">'
54   echo '    <span class="sectitle">'$(l10n ADR)'</span>'
55   for n in ADR ADR{0..10}; do [ -n "$values[$n]" ] &&\
56     echo '    <span class="item ADR">'$values[$n]'</span>'
57   done
58   [ -n "$values[URL]" ] && \
59     echo '    <span class="sectitle">'$(l10n URL)'</span>'
60   for n in URL URL{0..10}; do [ -n "$values[$n]" ] &&\
61     echo '    <span class="item URL"><a href="'$values[$n]'">'$values[$n]'</a></span>'
62   done
63   echo '  </div>'
64   echo ''
65   echo '  <div class="section note">'
66   echo '    <span class="sectitle">'$(l10n NOTE)'</span>'
67   for n in NOTE NOTE{0..10}; do [ -n "$values[$n]" ] &&\
68     echo '    <span class="item IMPP">'$values[$n]'</span>'
69   done
70   echo '  </div>'
71   echo ''
72   echo '  <div class="section control">'
73   echo '    <select class="item control" name="newfield">'
74   echo '      <option value="" disabled="disabled" selected="selected">'$(l10n edit_addfieldtext)'</option>'
75               for f in $VCF_FIELDS; do echo "<option value=\"$f\">$(l10n $f)</option>"; done
76   echo '    </select>'
77   echo '    <button class="item control" type="submit" name="action" value="addfield">'$(l10n edit_addfield)'</button>'
78   echo '    <button class="item control" type="submit" name="action" value="update">'$(l10n edit_update)'</button>'
79   echo '    <button class="item control" type="submit" name="action" value="cancel">'$(l10n edit_cancel)'</button>'
80   echo '  </div>'
81 }
82
83 edit_attendee() {  #Parameter: Cardfile
84   id="$1"
85   cardfile="vcard/$id"
86   unset key
87
88   declare -A tags
89   declare -A values
90   vcf_parse "$cardfile" |while read -r line; do
91     declare -A tag
92     case "$line" in
93       value*) eval "$line";;
94       tag*)   eval "$line";;
95       key*)
96         if [ -z "$key" ]; then
97           eval "$line"
98         else
99           values[$key]="$value"
100           for t in ${(k)tag}; do
101             tags[${key}_$t]="$tag[$t]"
102           done
103           eval "$line"
104           if [ -n "$values[$key]" ]; then
105             n=0
106             while [ -n "$values[$key$n]" ]; do n=$(($n + 1)); done
107             key=$key$n
108           fi
109             unset value
110             unset tag
111         fi
112       ;;
113     esac
114   done
115   edit_card
116 }