Index: openacs-4/packages/calendar/www/view.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/view.tcl,v diff -u -r1.11 -r1.12 --- openacs-4/packages/calendar/www/view.tcl 26 May 2003 10:00:10 -0000 1.11 +++ openacs-4/packages/calendar/www/view.tcl 21 Jul 2003 19:21:36 -0000 1.12 @@ -1,8 +1,8 @@ - ad_page_contract { - Viewing Calendar Stuff + Viewing Calendar Information. Currently offers list, day, week, month view. + @author Dirk Gomez (openacs@dirkgomez.de) @author Ben Adida (ben@openforce.net) @creation-date May 29, 2002 @cvs-id $Id$ @@ -12,6 +12,8 @@ {julian_date ""} {calendar_list:multiple ""} {sort_by ""} + {start_date ""} + {period_days:integer "31"} } -validate { valid_date -requires { date } { if {![string equal $date ""]} { @@ -22,106 +24,24 @@ } } + + set package_id [ad_conn package_id] set user_id [ad_conn user_id] set calendar_list [calendar::adjust_calendar_list -calendar_list $calendar_list -package_id $package_id -user_id $user_id] set date [calendar::adjust_date -date $date -julian_date $julian_date] -# Calendar ID list - -# Set up some template -set item_template "\$item" -set hour_template "\$hour" -set item_add_template "\"[_" - - -# Depending on the view, make a different widget -if {$view == "day"} { - - # Check that the previous and next days are in the tcl boundaries - # so that the calendar widget doesn't bomb when it creates the next/prev links - if {[catch {set yest [clock format [clock scan "1 day ago" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set previous_link "" - } else { - if {[catch {clock scan $yest}]} { - set previous_link "" - } else { - set previous_link "<" - } +if {$view == "list"} { + if {[empty_string_p $start_date]} { + set start_date $date } - if {[catch {set tomor [clock format [clock scan "1 day" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set next_link "" - } else { - if {[catch {clock scan $tomor}]} { - set next_link "" - } else { - set next_link ">" - } - } -} - -if {$view == "week"} { - - # Check that the previous and next weeks are in the tcl boundaries - # so that the calendar widget doesn't bomb when it creates the next/prev links - if {[catch {set prev_w [clock format [clock scan "1 week ago" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set previous_link "" - } else { - if {[catch {clock scan $prev_w}]} { - set previous_link "" - } else { - set previous_link "<" - } - } - - if {[catch {set next_w [clock format [clock scan "1 week" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set next_link "" - } else { - if {[catch {clock scan $next_w}]} { - set next_link "" - } else { - set next_link ">" - } - } -} - -if {$view == "month"} { - - # Check that the previous and next months are in the tcl boundaries - # so that the calendar widget doesn't bomb when it creates the next/prev links - if {[catch {set prev_m [clock format [clock scan "1 month ago" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set previous_link "" - } else { - if {[catch {clock scan $prev_m}]} { - set previous_link "" - } else { - set previous_link "<" - } - } - - if {[catch {set next_m [clock format [clock scan "1 month" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set next_link "" - } else { - if {[catch {clock scan $next_m}]} { - set next_link "" - } else { - set next_link ">" - } - } - -} - -if {$view == "list"} { - set start_date $date - set ansi_list [split $date "- "] + set ansi_list [split $start_date "- "] set ansi_year [lindex $ansi_list 0] set ansi_month [string trimleft [lindex $ansi_list 1] "0"] set ansi_day [string trimleft [lindex $ansi_list 2] "0"] - set end_date [dt_julian_to_ansi [expr [dt_ansi_to_julian $ansi_year $ansi_month $ansi_day ] + 31]] + set end_date [dt_julian_to_ansi [expr [dt_ansi_to_julian $ansi_year $ansi_month $ansi_day ] + $period_days]] } -set cal_nav [dt_widget_calendar_navigation "view" $view $date "calendar_list="] - ad_return_template