Index: openacs-4/packages/calendar-includelet/lib/calendar-full-includelet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar-includelet/lib/calendar-full-includelet.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/calendar-includelet/lib/calendar-full-includelet.tcl 1 Sep 2008 00:51:02 -0000 1.3 +++ openacs-4/packages/calendar-includelet/lib/calendar-full-includelet.tcl 8 Sep 2008 20:13:37 -0000 1.4 @@ -9,6 +9,8 @@ {date ""} {period_days:optional} {julian_date ""} + {export ""} + {sort_by ""} } -properties { } -validate { @@ -24,6 +26,11 @@ # Note that the variable calendar_id is a list of all calendar_id parameter values set for # this layout element. +set private_calendar_id [calendar_includelet::get_private_calendar_id \ + -user_id [ad_conn user_id] \ + -package_id $package_id] +lappend calendar_id $private_calendar_id + if {[empty_string_p $view]} { set view $default_view } @@ -32,6 +39,15 @@ set base_url [ad_conn package_url] set calendar_url [site_node::get_url_from_object_id -object_id $package_id] +set notification_chunk [notification::display::request_widget \ + -type calendar_notif \ + -object_id $package_id \ + -pretty_name [site_node::get_element \ + -node_id [site_node::get_node_id_from_object_id \ + -object_id $package_id] \ + -element instance_name] \ + -url $calendar_url] + if {$scoped_p == "t"} { set show_calendar_name_p 1 } else { @@ -45,130 +61,32 @@ set period_days [parameter::get -package_id $package_id -parameter ListView_DefaultPeriodDays -default 31] } -if {[llength $calendar_id] > 1} { - set force_calendar_id [calendar::have_private_p -return_id 1 -calendar_id_list $calendar_id -party_id [ad_conn user_id]] -} else { - set force_calendar_id [lindex $calendar_id 0] -} - # permissions -set create_p [ad_permission_p $force_calendar_id cal_item_create] -set edit_p [ad_permission_p $force_calendar_id cal_item_edit] -set admin_p [ad_permission_p $force_calendar_id calendar_admin] +set admin_p [permission::permission_p -object_id $package_id -privilege admin] - # set up some vars if {[empty_string_p $date]} { - if {[empty_string_p $julian_date]} { - set date [dt_sysdate] - } else { - set date [db_string select_from_julian "select to_date(:julian_date ,'J') from dual"] - } + set date [dt_sysdate] } # global variables -set current_date $date set date_format "YYYY-MM-DD HH24:MI" set return_url "[ns_conn url]?[ns_conn query]" -set encoded_return_url [ns_urlencode $return_url] -set add_item_url [export_vars -base ${calendar_url}cal-item-new {{date $current_date} {time_p 1} return_url}] +set add_item_url [export_vars -base ${calendar_url}cal-item-new {{date $date} {time_p 1} return_url}] -set item_template "\[ad_quotehtml \$item\]" - -if {$create_p} { - set hour_template "\$localized_day_current_hour" - set item_add_template "+" -} else { - set hour_template "\$localized_day_current_hour" - set item_add_template "" +multirow create calendars calendar_name calendar_id calendar_admin_p url +foreach calendar $calendar_id { + multirow append calendars [calendar::name $calendar] $calendar \ + [permission::permission_p -object_id $calendar -privilege admin] \ + [export_vars -base ${calendar_url}calendar-item-types {calendar_id}] } -set url_stub_callback "calendar_portlet_display::get_url_stub" - -if {$view == "day"} { - 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 "\"back" - } - } - - 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 "\"forward" - } - } -} - -if {$view == "week"} { - if {[catch {set last_w [clock format [clock scan "1 week ago" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set previous_link "" - } else { - if {[catch {clock scan $last_w}]} { - set previous_link "" - } else { - set previous_link "\"back" - } - } - - 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 "\"forward" - } - } - - set prev_week_template "\"back" - set next_week_template "\"forward" -} - - -if {$view == "month"} { - if {[catch {set prev_m [clock format [clock scan "1 month ago" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set prev_month_template "" - } else { - if {[catch {clock scan $prev_m}]} { - set prev_month_template "" - } else { - set prev_month_template "\"back" - } - } - - if {[catch {set next_m [clock format [clock scan "1 month" -base [clock scan $date]] -format "%Y-%m-%d"]}]} { - set next_month_template "" - } else { - if {[catch {clock scan $next_m}]} { - set next_month_template "" - } else { - set next_month_template "\"forward" - } - } -} - - -if {$view == "list"} { - set sort_by [ns_queryget sort_by] - - +if {$view eq "list"} { set start_date [ns_fmttime [expr [ns_time]] "%Y-%m-%d 00:00"] set end_date [ns_fmttime [expr {[ns_time] + 60*60*24*$period_days}] "%Y-%m-%d 00:00"] - - set url_template "?view=list&sort_by=\$order_by&page_num=$page_num" } -set export [ns_queryget export] - if { [lsearch [list csv vcalendar] $export] != -1 } { set user_id [ad_conn user_id] set package_id [ad_conn package_id]