"$(pdi_value "$card" "$item" |HTML)"
fi
;;
- BDAY) if [ $cnt -gt 0 ]; then
- printf '[span .item .BDAY [b *:] %s]' \
- "$(pdi_value "$card" BDAY |grep -xE '[0-9-]+')"
- fi
+ BDAY)
+ [ $cnt -gt 0 ] && printf '[span .item .BDAY [b *:] %s]' \
+ "$(pdi_value "$card" BDAY |grep -xE '[0-9-]+')"
;;
- SOUND) if [ $cnt -gt 0 ]; then
- printf '[audio .item .SOUND controls="controls"
- [source type="audio/ogg" src="data:audio/ogg;base64,%s"]
- ]' \
- "$(pdi_value "$card" SOUND |grep -xE '[a-zA-Z0-9/+=]+')"
- fi
+ SOUND)
+ [ $cnt -gt 0 ] && printf '[audio .item .SOUND controls="controls"
+ [source type="audio/ogg" src="data:audio/ogg;base64,%s"]
+ ]' \
+ "$(pdi_value "$card" SOUND |grep -xE '[a-zA-Z0-9/+=]+')"
;;
- PHOTO|LOGO) if [ $cnt -gt 0 ]; then
- printf '[img .item .%s src="data:image/%s;base64,%s"]' "$item" \
- "$(pdi_attrib "$card" "$item" |sed -E 's;^(.*;)?TYPE="?(.+)"?(;.*)?$;\2;')" \
- "$(pdi_value "$card" "$item" |grep -xE '[a-zA-Z0-9/+=]+')"
- fi
+ PHOTO|LOGO)
+ [ $cnt -gt 0 ] && printf '[img .item .%s src="data:image/%s;base64,%s"]' "$item" \
+ "$(pdi_attrib "$card" "$item" |sed -E 's;^(.*;)?TYPE="?(.+)"?(;.*)?$;\2;')" \
+ "$(pdi_value "$card" "$item" |grep -xE '[a-zA-Z0-9/+=]+')"
;;
- EMAIL) if [ $cnt -gt 0 ]; then
- printf '[h3 %s]' "$(l10n EMAIL)"
- seq 1 $cnt |while read c; do
- printf '[a .item .EMAIL href="mailto:%s" ­%s]' \
- "$(pdi_value "$card" EMAIL $c |unescape |HTML)" \
- "$(pdi_value "$card" EMAIL $c |unescape |HTML)"
- done
- fi
+ EMAIL)
+ [ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n EMAIL)"
+ seq 1 $cnt |while read c; do
+ printf '[a .item .EMAIL href="mailto:%s" ­%s]' \
+ "$(pdi_value "$card" EMAIL $c |unescape |HTML)" \
+ "$(pdi_value "$card" EMAIL $c |unescape |HTML)"
+ done
;;
- *) if [ $cnt -gt 0 ]; then
- printf '[h3 %s]' "$(l10n "$item")"
- seq 1 $cnt |while read c; do
- printf '[span .item .%s ­%s]' "$item" \
- "$(pdi_value "$card" "$item" $c |unescape |HTML)"
- done
- fi
+ TEL)
+ [ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n TEL)"
+ seq 1 $cnt |while read c; do
+ teltype="$(pdi_attrib "$card" TEL $c TYPE)"
+ [ "$teltype" ] \
+ && printf '[span .item .TEL [span .type ­%s:] %s]' \
+ "$(l10n "TYPE=$teltype" |HTML)" \
+ "$(pdi_value "$card" TEL $c |unescape |HTML)" \
+ || printf '[span .item .TEL ­%s]' \
+ "$(pdi_value "$card" TEL $c |unescape |HTML)"
+ done
+ ;;
+ *)[ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n "$item")"
+ seq 1 $cnt |while read c; do
+ printf '[span .item .%s ­%s]' "$item" \
+ "$(pdi_value "$card" "$item" $c |unescape |HTML)"
+ done
;;
esac
done
[ $cnt -lt 1 ] && cnt=1
case $item in
- N)if N="$(pdi_value "$card" N)"; then
+ N)N="$(pdi_value "$card" N)"
+ if [ "$N" ]; then
IFS=\; read n1 n2 n3 n4 n5 <<-EOF
- $(pdi_value "$card" N)
+ $N
EOF
else
N="$(pdi_value "$card" FN |unescape)"
"$(l10n n_post)" "$(HTML "$n5")"
;;
GENDER)
+ gender="$(pdi_value "$card" GENDER)"
printf '
[select .item .GENDER name="GENDER"
[option value="" disabled="disabled" %s %s]
[option value="male" %s %s]
[option value="other" %s %s]
[option value="none" %s %s]
- ]
- ' \
- "$([ "$(pdi_value "$card" GENDER)" = '' ] && printf 'selected="selected"')" \
- "$(l10n GENDER)" \
- "$([ "$(pdi_value "$card" GENDER)" = 'female' ] && printf 'selected="selected"')" \
- "$(l10n gender_female)" \
- "$([ "$(pdi_value "$card" GENDER)" = 'male' ] && printf 'selected="selected"')" \
- "$(l10n gender_male)" \
- "$([ "$(pdi_value "$card" GENDER)" = 'other' ] && printf 'selected="selected"')" \
- "$(l10n gender_other)" \
- "$([ "$(pdi_value "$card" GENDER)" = 'none' ] && printf 'selected="selected"')" \
- "$(l10n gender_none)"
+ ]\n' \
+ "$([ "$gender" = '' ] && printf 'selected="selected"')" "$(l10n GENDER)" \
+ "$([ "$gender" = 'female' ] && printf 'selected="selected"')" "$(l10n gender_female)" \
+ "$([ "$gender" = 'male' ] && printf 'selected="selected"')" "$(l10n gender_male)" \
+ "$([ "$gender" = 'other' ] && printf 'selected="selected"')" "$(l10n gender_other)" \
+ "$([ "$gender" = 'none' ] && printf 'selected="selected"')" "$(l10n gender_none)"
;;
- BDAY|X-ZACK-JOIDATE|X-ZACK-LEAVEDATE)
+ BDAY|X-ZACK-JOINDATE|X-ZACK-LEAVEDATE)
printf '[h3 %s]
- [input .item .%s name="%s" value="%s" placeholder="YYYY-MM-DD"]
- ' \
+ [input .item .%s name="%s" value="%s" placeholder="YYYY-MM-DD"]' \
"$(l10n "$item")" "$item" "$item" "$(pdi_value "$card" "$item" |grep -xE '[0-9-]+')"
;;
ADR|NOTE)
printf '[h3 %s]' "$(l10n "$item")"
seq 1 $cnt |while read c; do
+ printf '[checkbox "%s_delete" "%i" .delete #%s_delete_%i][label for="%s_delete_%i" %s]' \
+ "$item" $c "$item" $c "$item" $c "$(l10n delete)"
printf '<textarea class="item %s" name="%s">%s</textarea>' \
- "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)"
+ "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)"
+ done
+ ;;
+ TEL) printf '[h3 %s]' "$(l10n "$item")"
+ seq 1 $cnt |while read c; do
+ printf '[checkbox "%s_delete" "%i" .delete #%s_delete_%i][label for="%s_delete_%i" %s]' \
+ "$item" $c "$item" $c "$item" $c "$(l10n delete)"
+ teltype="$(pdi_attrib "$card" TEL $c TYPE)"
+ printf '[select .item .teltype name="teltype"
+ [option value="" disabled="disabled" %s %s]
+ [option value="HOME" %s %s]
+ [option value="WORK" %s %s]
+ [option value="CELL" %s %s]
+ [option value="FAX" %s %s]
+ ]\n' \
+ "$([ "$teltype" = '' ] && printf 'selected="selected"')" "$(l10n teltype)" \
+ "$([ "$teltype" = 'HOME' ] && printf 'selected="selected"')" "$(l10n TYPE=HOME)" \
+ "$([ "$teltype" = 'WORK' ] && printf 'selected="selected"')" "$(l10n TYPE=WORK)" \
+ "$([ "$teltype" = 'CELL' ] && printf 'selected="selected"')" "$(l10n TYPE=CELL)" \
+ "$([ "$teltype" = 'FAX' ] && printf 'selected="selected"')" "$(l10n TYPE=FAX)"
+
+ printf '[input .item .%s name="%s" value="%s" placeholder="%s"]' \
+ "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)" "$(l10n "$item")"
done
;;
- *) printf '[h3 %s]' "$(l10n "$item")"
+ *)printf '[h3 %s]' "$(l10n "$item")"
seq 1 $cnt |while read c; do
+ printf '[checkbox "%s_delete" "%i" .delete #%s_delete_%i][label for="%s_delete_%i" %s]' \
+ "$item" $c "$item" $c "$item" $c "$(l10n delete)"
printf '[input .item .%s name="%s" value="%s" placeholder="%s"]' \
- "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)" "$(l10n "$item")"
+ "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)" "$(l10n "$item")"
done
;;
esac
edit_item "$card" N GENDER
[ "$(pdi_count "$card" NICKNAME)" -gt 0 ] \
&& edit_item "$card" NICKNAME
+ edit_item "$card" BDAY
edit_item "$card" X-ZACK-JOINDATE
[ "$(pdi_count "$card" X-ZACK-LEAVEDATE)" -gt 0 ] \
&& edit_item "$card" X-ZACK-LEAVEDATE
[div .control
[select .item name="newfield"
[option value="" disabled="disabled" selected="selected" $(l10n edit_addfieldtext)]
- $(for f in ; do
+ $(for f in NICKNAME EMAIL TEL IMPP ADR URL NOTE; do
printf '[option value="%s" %s] ' "$f" "$(l10n "$f")"
done)
- ]
- [button .item type="submit" name="action" value="addfield" $(l10n edit_addfield)]
+ ][button .item type="submit" name="action" value="addfield" $(l10n edit_addfield)]
[button .item type="submit" name="action" value="update" $(l10n edit_update)]
[input type="checkbox" #delete] [label .item for="delete" $(l10n edit_delete)]
[button .item type="submit" name="action" value="delete"]
print_card(){
local cardfile="$1"
- local cachefile="${_DATA}/cache/${cardfile##*/}.cache"
-
- if [ "$cachefile" -nt "$cardfile" -a "$cachefile" -nt "${_EXEC}/cards" ]; then
- cat "$cachefile"
- else
- local card="$(pdi_load "$cardfile")"
- tee "$cachefile" <<-EOF
+ local card="$(pdi_load "$cardfile")"
+ cat <<-EOF
[div .card #${cardfile##*/}
[div .section .basic ­$(
card_item "$card" FN GENDER NICKNAME BDAY X-ZACK-JOINDATE X-ZACK-LEAVEDATE SOUND PHOTO LOGO
]
]
EOF
- fi
+}
+
+print_cards(){
+ local cardfile cachefile date size name ldate=0 lsize lname
+
+ while read cardfile; do
+ cachefile="${_DATA}/cache/${cardfile##*/}.cache"
+ # if [ -s "$cachefile" -a "$cachefile" -nt "$cardfile" \
+ # -a "$cachefile" -nt "${_EXEC}/cards" ]; then
+ if [ -s "$cachefile" -a "$cachefile" -nt "$cardfile" ]; then
+ cat "$cachefile"
+ else
+ print_card "$cardfile" |tee "$cachefile"
+ fi
+ done
}
filter_cards(){
filter_cards \
| order_cards \
| grep -xvF "$edit" \
- | while read cardfile; do
- print_card "$cardfile"
- done
+ | print_cards
}