X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=cards%2Flist.sh;h=ab67fbd4edefcef625c3980dd003a64e385eb5cc;hp=6321f0b2e3a3c8550e60606faf1dc54452fd780d;hb=a6e3da877a73be739ac96b12d9cde2190b24a423;hpb=5ab459e666f2526f671fe222cd1646a4e6798b27 diff --git a/cards/list.sh b/cards/list.sh index 6321f0b..ab67fbd 100755 --- a/cards/list.sh +++ b/cards/list.sh @@ -40,12 +40,12 @@ edit_card(){ "${course##*/}" \ "$(grep -qF "${course##*/} ${cardfile##*/}" "$_DATA/mappings/attendance" \ && printf 'checked="checked"' - )" \ - "$(pdi_value "$(pdi_load "$course")" SUMMARY |unescape |HTML)" + )" \ + "$(pdi_value "$(pdi_load "$course")" SUMMARY || l10n "(unnamed course)" |unescape |HTML)" done) [h3 $(l10n CATEGORIES) ] $( grep -xE '[^ ]+' "$_DATA"/mappings/categories |while read -r cat; do - printf '[label [input type="checkbox" name="attendance" value="%s" %s] %s]' \ + printf '[label [input type="checkbox" name="CATEGORIES" value="%s" %s] %s]' \ "$(HTML "$cat")" \ "$(seq 1 $(pdi_count "$card" CATEGORIES) |while read c; do pdi_value "$card" CATEGORIES $c |grep -qxF "$cat" \ @@ -55,15 +55,20 @@ edit_card(){ done) ] [div .control - [select .item name="newfield" - [option value="" disabled="disabled" selected="selected" $(l10n edit_addfieldtext)] - $(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)] + [div .item .delete label="$(l10n edit_delete)" + [input type="checkbox" #delete] + [label for="delete" $(l10n edit_delete)] + [button type="submit" name="action" value="delete" $(l10n edit_delete)] + ] + [div .item .newfield + [select name="newfield" + [option value="" disabled="disabled" selected="selected" $(l10n edit_addfieldtext)] + $(for f in NICKNAME EMAIL TEL IMPP ADR URL NOTE; do + printf '[option value="%s" %s] ' "$f" "$(l10n "$f")" + done) + ][button 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"] [button .item type="submit" name="action" value="cancel" $(l10n edit_cancel)] ] [input type="hidden" name="UID" value="$(pdi_value "$card" UID |HTML)"] @@ -85,11 +90,11 @@ print_card(){ [div .section .message . $(card_item "$card" EMAIL IMPP URL)] [div .section .address . $(card_item "$card" ADR)] [div .section .note . $(card_item "$card" NOTE)] - [div .section .attendance [h3 $(l10n course_attendance) ] [ul . + [div .section .attendance [h3 $(l10n course_attendance) ] [ul $(grep -F " ${cardfile##*/}" "$_DATA/mappings/attendance" |while read each discard; do printf '[li [a .item .attendance href="/courses#%s" . %s]]' \ "$each" \ - "$(pdi_value "$(pdi_load "$_DATA/ical/$each")" SUMMARY |unescape |HTML)" + "$(pdi_value "$(pdi_load "$_DATA/ical/$each")" SUMMARY || l10n "(unnamed course)" |unescape |HTML)" done)] $(card_item "$card" CATEGORIES) ] @@ -129,13 +134,13 @@ filter_cards(){ case $f in '') break ;; - ANY:*) fex="/\n.*(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" + ANY:*) fex="/\n.*(\;[^:]*)?:[^\n]*(${f#*:})[^\n]*\r?\n/{${fex}}" ;; - NAME:*) fex="/\n(N|FN|NICKNAME)(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" + NAME:*) fex="/\n(N|FN|NICKNAME)(\;[^:]*)?:[^\n]*(${f#*:})[^\n]*\r?\n/{${fex}}" ;; - STREET:*|ZIP:*) fex="/\nADR(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" + STREET:*|ZIP:*) fex="/\nADR(\;[^:]*)?:[^\n]*(${f#*:})[^\n]*\r?\n/{${fex}}" ;; - *) fex="/\n${f%%:*}(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" + *) fex="/\n${f%%:*}(\;[^:]*)?:[^\n]*(${f#*:})[^\n]*\r?\n/{${fex}}" ;; esac done @@ -144,7 +149,7 @@ filter_cards(){ printf '%s\n' "$cardfile" cat "$cardfile" done \ - | sed -En ':X; /\nEND:VCARD\r?$/!{ N; bX; }; h; s;\n.*$;;; x; s;^[^\n]+\n;;; + | sed -nE ':X; /\nEND:VCARD\r?$/!{ N; bX; }; h; s;\n.*$;;; x; s;^[^\n]+\n;;; '"$upcase""$fex" }