+++ /dev/null
-#!/bin/sh
-
-. "${_EXEC}"/pdiread.sh
-
-SUP_FIELDS="COMMENT"
-
-edit_course(){
- local coursefile="$_DATA/ical/$1"
- local tempfile course
-
- . $_EXEC/session_lock.sh
-
- if ! tempfile="$(CHECK_SLOCK "$coursefile")"; then
- printf '[div .message %s]' "$(l10n "This course is not set up for editing within this session.")"
- else
- course="$(pdi_load "$tempfile")"
- cat <<-EOF
- [form .course #${coursefile##*/} action="/courses/update_course.sh" method="POST"
- [input type="hidden" name="course" value="${coursefile##*/}"]
- [input type="hidden" name="tid" value="$(transid ${tempfile})"]
- [div .section .basic . $(
- edit_item "$course" SUMMARY COMMENT
- )]
- [div .section .dtstart . $(
- edit_item "$course" DTSTART
- )]
- [div .section .recur . $(
- edit_item "$course" RRULE
- )]
- [div .section .attendance . $(
- edit_item "$course" attendance
- )]
- [div .control
- [!-- select .item name=newfield
- [option disabled="disabled" selected . $(l10n edit_addfieldtext)]
- $(for f in $SUP_FIELDS; do printf '[option value="%s" . %s]\n' "$f" "$(l10n "$f")"; done)
- ]
- [button .item type="submit" name="action" value="addfield" . $(l10n edit_addfield) --]
- [button .item type="submit" name="action" value="update" . $(l10n edit_update)]
- [button .item type="submit" name="action" value="cancel" . $(l10n edit_cancel)]
- [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)]
- ]
- ]
- ]
- EOF
- fi
-}
-
-print_course(){
- local coursefile="$1"
- local course="$(pdi_load "$coursefile")"
- cat <<-EOF
- [div .course #${coursefile##*/}
- [div .section .basic . $(
- cal_item "$course" SUMMARY DTSTART RRULE
- )]
- [div .section .COMMENT . $(cal_item "$course" COMMENT)]
- [div .section .attendance [h3 $(l10n course_attendance) ] [ul .
- $(grep -F "${coursefile##*/} " "$_DATA/mappings/attendance" |while read discard each; do
- printf '[li [a .item .attendance href="/cards/#%s" . %s]]\n' \
- "$each" \
- "$(pdi_value "$(pdi_load "$_DATA/vcard/$each")" FN |unescape |HTML)"
- done |sort -k7)]
- ]
- [div .control
- [a .item href="/courses/edit_course.sh?course=${coursefile##*/}" $(l10n edit)]
- [a .item href="/courses/export_pdf.sh?course=${coursefile##*/}" target="blank" $(l10n courselist)]
- [a .item href="/courses/export_ical.sh?course=${coursefile##*/}" $(l10n ics_export)]
- [a .item href="mailto:zack@vuesch.org?bcc=$(course_mail "${coursefile##*/}" |HTML)" $(l10n course_mail)]
- ]
- ]
- EOF
-}
-
-course_mail() {
- course="$1"
- grep -F "${course} " "$_DATA/mappings/attendance" |while read junk card; do
- cat "${_DATA}/vcard/${card}"
- done \
- | pdi_load - \
- | sed -nE 's;^EMAIL(\;[^:]*)*:(.+)\r?$;\2,;p' \
- | tr -d \\n \
- | unescape
-}
-
-print_courses(){
- local calfile cachefile date size name ldate=0 lsize lname
-
- while read calfile; do
- cachefile="${_DATA}/cache/${calfile##*/}.cache"
- if [ -s "$cachefile" -a "$cachefile" -nt "$calfile" ]; then
- cat "$cachefile"
- else
- print_course "$calfile" |tee "$cachefile"
- fi
- done
-}
-
-order_courses() {
- local calfile course
-
- while read calfile; do
- icstime="$(pdi_value "$(pdi_load "$calfile")" DTSTART |cal_date)"
- case $order in
- DOW) printf '%s %s\n' "$(date -d "$icstime" "+%u %H:%M:%S")" "$calfile";;
- TOD) printf '%s %s\n' "$(date -d "$icstime" "+%H:%M:%S")" "$calfile";;
- esac
- done \
- | sort \
- | sed -E 's;^.*\t;;g'
-}
-
-list_courses(){
- printf '%s\n' ${_DATA}/ical/*.ics \
- | order_courses \
- | print_courses
-}