Index: openacs-4/packages/calendar/www/view-list-display.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/view-list-display.tcl,v diff -u -r1.27 -r1.28 --- openacs-4/packages/calendar/www/view-list-display.tcl 16 Aug 2006 17:52:14 -0000 1.27 +++ openacs-4/packages/calendar/www/view-list-display.tcl 15 May 2007 20:14:21 -0000 1.28 @@ -1,3 +1,13 @@ +if { ![info exists period_days] } { + ad_page_contract { + Some documentation. + @author Sven Schmitt (s.lrn@gmx.net) + @cvs-id $Id$ + } { + {period_days:integer {[parameter::get -parameter ListView_DefaultPeriodDays -default 31]}} + } +} + if {[info exists url_stub_callback]} { # This parameter is only set if this file is called from .LRN. # This way I make sure that for the time being this adp/tcl @@ -8,15 +18,12 @@ } if {[info exists portlet_mode_p] && $portlet_mode_p} { - if {![info exists return_url]} { - set return_url [ad_urlencode "../"] - } - set item_template "\${url_stub}cal-item-view?show_cal_nav=0&return_url=${return_url}&action=edit&cal_item_id=\$item_id" + set event_url_template "\${url_stub}cal-item-view?show_cal_nav=0&return_url=[ad_urlencode "../"]&action=edit&cal_item_id=\$item_id" set url_stub_callback "calendar_portlet_display::get_url_stub" set page_num_formvar [export_form_vars page_num] set page_num "&page_num=$page_num" } else { - set item_template "cal-item-view?cal_item_id=\$item_id" + set event_url_template "cal-item-view?cal_item_id=\$item_id" set url_stub_callback "" set page_num_formvar "" set page_num "" @@ -33,6 +40,7 @@ if { ![exists_and_not_null sort_by] } { set sort_by "start_date" } + if { ![exists_and_not_null start_date] } { set start_date [clock format [clock seconds] -format "%Y-%m-%d 00:00"] } @@ -47,10 +55,19 @@ set calendars_clause [db_map dbqd.calendar.www.views.openacs_calendar] } -if { ![info exists period_days] } { - set period_days [parameter::get -parameter ListView_DefaultPeriodDays -default 31] -} else { - set end_date [clock format [clock scan "+${period_days} days" -base [clock scan $start_date]] -format "%Y-%m-%d 00:00"] +#if { ![exists_and_not_null period_days] } { +# set period_days [parameter::get -parameter ListView_DefaultPeriodDays -default 31] +#} else { +# set end_date [clock format [clock scan "+${period_days} days" -base [clock scan $start_date]] -format "%Y-%m-%d 00:00"] +#} +set end_date [clock format [clock scan "+${period_days} days" -base [clock scan $start_date]] -format "%Y-%m-%d 00:00"] + +if {[exists_and_not_null page_num]} { + set page_num_formvar [export_form_vars page_num] + set page_num "&page_num=$page_num" +} else { + set page_num_formvar "" + set page_num "" } set package_id [ad_conn package_id] @@ -81,10 +98,9 @@ set start_date_url "?view=list&sort_by=start_date&start_date=$start_date&period_days=$period_days$page_num" set view list -set form_vars [export_form_vars start_date sort_by view] +set form_vars [export_vars -form -entire_form -exclude {period_days}] +set url_vars [export_vars -url -entire_form -exclude {period_days}] -set flip -1 - multirow create items \ event_name \ event_url \ @@ -95,15 +111,22 @@ end_date \ start_time \ end_time \ - flip \ - today + today \ + description \ + name_style_class \ + description_style_class \ + container_style_class \ + event_print_url set last_pretty_start_date "" # Loop through the events, and add them set interval_limitation_clause [db_map dbqd.calendar.www.views.list_interval_limitation] set order_by_clause " order by $sort_by" set additional_limitations_clause "" +if { [exists_and_not_null cal_system_type] } { + append additional_limitations_clause " and system_type = :cal_system_type " +} if {[string match [db_type] "postgresql"]} { set sysdate "now()" @@ -145,7 +168,6 @@ if {![string equal $pretty_start_date $last_pretty_start_date]} { set last_pretty_start_date $pretty_start_date - incr flip } # Give the row different appearance depending on whether it's before today, today, or after today @@ -171,14 +193,63 @@ multirow append items \ $name \ - [subst $item_template] \ + [subst $event_url_template] \ $calendar_name \ $item_type \ $pretty_weekday \ $pretty_start_date \ $pretty_end_date \ $pretty_start_time \ $pretty_end_time \ - $flip \ - $today + $today \ + $description \ + "calendar-ItemListName" \ + "calendar-ItemListDescription" \ + "calendar-ItemListContainer" \ + "[subst $event_url_template]&export=print" } + +set start_year [lc_time_fmt $start_date "%Y"] +set start_month [lc_time_fmt $start_date "%B"] +set start_day [lc_time_fmt $start_date "%d"] +set end_year [lc_time_fmt $end_date "%Y"] +set end_month [lc_time_fmt $end_date "%B"] +set end_day [lc_time_fmt $end_date "%d"] + +set self_url [ad_conn url] + +# URLs for period picker +foreach i {1 7 14 21 30 60} { + set period_url_$i "[export_vars -base $self_url -url -entire_form {{period_days $i}}]\#calendar" +} + +if { [info exists export] && [string equal $export print] } { + set print_html [template::adp_parse [acs_root_dir]/packages/calendar/www/view-print-display [list &items items show_calendar_name_p $show_calendar_name_p]] + ns_return 200 text/html $print_html + ad_script_abort +} + + +set noprocessing_vars [list] + + + set the_form [ns_getform] + if { ![empty_string_p $the_form] } { + for { set i 0 } { $i < [ns_set size $the_form] } { incr i } { + set varname [ns_set key $the_form $i] + set varvalue [ns_set value $the_form $i] + if {!($varname eq "period_days") && !([string match "__*" $varname]) && !([string match "form:*" $varname])} { + lappend noprocessing_vars [list $varname $varvalue] + } + } + } + + +ad_form -name frmdays -has_submit 1 -html {style float:right} -export $noprocessing_vars -form { + {period_days:integer,optional + {label ""} + {html {size 3} {maxlength 3} {class "cal-input-field"}} + {value "$period_days"} + {after_html "[_ calendar.days]"} + } +} -on_submit { } \ No newline at end of file