]> git.plutz.net Git - confetti/blobdiff - courses/list.sh
implement course edit and updates
[confetti] / courses / list.sh
index abf3bf9fcf7ead89845d40b1947cd255772dfde6..93ed174dc4f924b74c295a3d9b9bdacef5f89885 100755 (executable)
@@ -2,8 +2,8 @@
 
 . "${_EXEC}"/pdiread.sh
 
-edit_card(){
-  local coursefile="$_DATA/courses/$1" 
+edit_course(){
+  local coursefile="$_DATA/ical/$1" 
   local tempfile course
 
   . $_EXEC/session_lock.sh
@@ -13,8 +13,31 @@ edit_card(){
   else
     course="$(pdi_load "$tempfile")"
     cat <<-EOF
-       [form .course #${coursefile##*/} action="/cards/update_course.sh" method="POST"
+       [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 .select_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="delete"   . $(l10n edit_delete)]
+            [button .item type="submit" name="action" value="cancel"   . $(l10n edit_cancel)]
+          ]'
        ]
        EOF
   fi
@@ -25,27 +48,38 @@ print_course(){
   local course="$(pdi_load "$coursefile")"
   cat <<-EOF
     [div .course #${coursefile##*/}
-      [div .section .basic &shy;$(
+      [div .section .basic $(
         cal_item "$course" SUMMARY DTSTART RRULE
       )]
-      [div .section .COMMENT   &shy;$(cal_item "$course" COMMENT)]
-      [div .section .attendance [h3 $(l10n course_attendance) ] [ul &shy;
-        $(grep -F "    ${cardfile##*/}" "$_DATA/mappings/attendance" |while read each discard; do
-          printf '[li [a .item .attendance href="/courses#%s" &shy;%s]]' \
+      [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/ical/$each")" SUMMARY |unescape |HTML)"
-        done)]
+                 "$(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##*/}")" $(l10n course_mail)]
+        [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 -rn 's;^EMAIL(\;[^:]*)*:(.+)\r?$;\2,;p' \
+  | tr -d \\n \
+  | unescape
+}
+
 print_courses(){
   local calfile cachefile date size name ldate=0 lsize lname
 
@@ -74,7 +108,7 @@ order_courses() {
 }
 
 list_courses(){
-  printf '%s\n' ${_DATA}/courses/*.ics \
+  printf '%s\n' ${_DATA}/ical/*.ics \
   | order_courses \
   | print_courses
 }