Index: openacs-4/packages/acs-datetime/tcl/acs-calendar-2-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-datetime/tcl/acs-calendar-2-procs.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/acs-datetime/tcl/acs-calendar-2-procs.tcl 10 Mar 2002 21:42:36 -0000 1.8
+++ openacs-4/packages/acs-datetime/tcl/acs-calendar-2-procs.tcl 11 Mar 2002 16:42:00 -0000 1.9
@@ -146,7 +146,11 @@
break
}
- append return_html "[ns_set value $calendar_details $index]
\n"
+ if {$overlap_p} {
+ append return_html "[lindex [ns_set value $calendar_details $index] 2]"
+ } else {
+ append return_html "[ns_set value $calendar_details $index]
\n"
+ }
ns_set delete $calendar_details $index
}
@@ -199,9 +203,19 @@
}
if {$overlap_p} {
- set end_time [expr $hour + 2]
+ set one_item_val [ns_set value $calendar_details $index]
+
+ # One ugly hack
+ set end_time_lst [split [lindex $one_item_val 1] ":"]
+
+ if {[lindex $end_time_lst 1] == 0} {
+ set end_time [expr [string trimleft [lindex $end_time_lst 0] 0] - 1]
+ } else {
+ set end_time [lindex $end_time_lst 1]
+ }
+
set start_time $hour
- append return_html "
[ns_set value $calendar_details $index] | "
+ append return_html "[lindex $one_item_val 2] | "
} else {
append return_html "[ns_set value $calendar_details $index]
\n"
}
Index: openacs-4/packages/calendar/sql/oracle/cal-item-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/sql/oracle/cal-item-create.sql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/calendar/sql/oracle/cal-item-create.sql 8 Mar 2002 22:29:24 -0000 1.3
+++ openacs-4/packages/calendar/sql/oracle/cal-item-create.sql 11 Mar 2002 16:42:07 -0000 1.4
@@ -53,6 +53,9 @@
primary key,
-- a references to calendar
-- Each cal_item is owned by one calendar
+
+ event_type
+
on_which_calendar integer
constraint cal_item_which_cal_fk
references calendars
Index: openacs-4/packages/calendar/tcl/cal-item-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/tcl/cal-item-procs.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/calendar/tcl/cal-item-procs.tcl 15 Oct 2001 18:46:59 -0000 1.3
+++ openacs-4/packages/calendar/tcl/cal-item-procs.tcl 11 Mar 2002 16:42:07 -0000 1.4
@@ -255,11 +255,42 @@
+ad_proc -public calendar_item_add_recurrence {
+ {-cal_item_id:required}
+ {-interval_type:required}
+ {-every_n:required}
+ {-days_of_week ""}
+ {-recur_until ""}
+} {
+ Adds a recurrence for a calendar item
+} {
+ # We do things in a transaction
+ db_transaction {
+ # Create the recurrence
+ set recurrence_id [db_exec_plsql create_recurrence "
+ begin
+ :1 := recurrence.new(interval_type => :interval_type,
+ every_nth_interval => :every_n,
+ days_of_week => :days_of_week,
+ recur_until => :recur_until);
+ end;
+ "]
+
+ # Update the events table
+ db_dml update_event "update acs_events set recurrence_id= :recurrence_id where event_id= :cal_item_id"
-
-
-
-
-
-
-
+ # Insert instances
+ db_exec_plsql insert_instances "
+ begin
+ acs_event.insert_instances(event_id => :cal_item_id);
+ end;
+ "
+
+ # Make sure they're all in the calendar!
+ db_dml insert_cal_items "
+ insert into cal_items (cal_item_id, on_which_calendar)
+ select event_id, (select on_which_calendar as calendar_id from cal_items where cal_item_id = :cal_item_id) from acs_events where recurrence_id= :recurrence_id and event_id <> :cal_item_id"
+ }
+}
+
+
Index: openacs-4/packages/calendar/tcl/calendar-display-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/tcl/Attic/calendar-display-procs.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/calendar/tcl/calendar-display-procs.tcl 10 Mar 2002 21:42:49 -0000 1.6
+++ openacs-4/packages/calendar/tcl/calendar-display-procs.tcl 11 Mar 2002 16:42:07 -0000 1.7
@@ -159,7 +159,7 @@
set item [subst $item_template]
# ns_log Notice "bma-calendar: adding $item at $start_hour"
- ns_set put $items $ns_set_pos $item
+ ns_set put $items $ns_set_pos [list $pretty_start_date $pretty_end_date $item]
}
}
Index: openacs-4/packages/calendar/tcl/calendar-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/tcl/calendar-procs.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/calendar/tcl/calendar-procs.tcl 10 Mar 2002 21:42:49 -0000 1.8
+++ openacs-4/packages/calendar/tcl/calendar-procs.tcl 11 Mar 2002 16:42:07 -0000 1.9
@@ -14,49 +14,60 @@
#------------------------------------------------
# datetime info extraction
-ad_proc calendar_make_datetime { event_date
- event_time
+ad_proc calendar_make_datetime {
+ event_date
+ {event_time ""}
} {
given a date, and a time, construct the proper date string
to be imported into oracle. (yyyy-mm-dd hh24:mi format)s
} {
-
+
# MUST CONVERT TO ARRAYS! (ben)
array set event_date_arr $event_date
- array set event_time_arr $event_time
-
+ if {![empty_string_p $event_time]} {
+ array set event_time_arr $event_time
+ }
+
# extract from even-date
set year $event_date_arr(year)
set day $event_date_arr(day)
set month $event_date_arr(month)
-
- # extract from event_time
- set hours $event_time_arr(hours)
- set minutes $event_time_arr(minutes)
-
- # AM/PM? (ben - openacs fix)
- if {[info exists event_time_arr(ampm)]} {
- if {$event_time_arr(ampm)} {
- if {$hours < 12} {
- incr hours 12
+
+ if {![empty_string_p $event_time]} {
+ # extract from event_time
+ set hours $event_time_arr(hours)
+ set minutes $event_time_arr(minutes)
+
+ # AM/PM? (ben - openacs fix)
+ if {[info exists event_time_arr(ampm)]} {
+ if {$event_time_arr(ampm)} {
+ if {$hours < 12} {
+ incr hours 12
+ }
}
}
+
+ if {$hours < 10} {
+ set hours "0$hours"
+ }
+
}
-
+
+
if {$month < 10} {
set month "0$month"
}
-
+
if {$day < 10} {
set day "0$day"
}
-
- if {$hours < 10} {
- set hours "0$hours"
+
+ if {[empty_string_p $event_time]} {
+ return "$year-$month-$day"
+ } else {
+ return "$year-$month-$day $hours:$minutes"
}
-
- return "$year-$month-$day $hours:$minutes"
-
+
}
@@ -353,12 +364,3 @@
}
-
-
-
-
-
-
-
-
-
Index: openacs-4/packages/calendar/www/cal-item-create.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/Attic/cal-item-create.tcl,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/calendar/www/cal-item-create.tcl 10 Mar 2002 21:42:49 -0000 1.7
+++ openacs-4/packages/calendar/www/cal-item-create.tcl 11 Mar 2002 16:42:07 -0000 1.8
@@ -22,12 +22,6 @@
{recurrence_p 0}
}
-if {$recurrence_p} {
- # We must ask for recurrence information
- ad_returntemplate cal-item-create-recurrence
- ad_script_abort
-}
-
if { $date == "now" } {
set date [dt_sysdate]
}
@@ -38,8 +32,8 @@
#
if {$no_time_p == 1} {
- set no_time(hour) 0
- set no_time(minute) 0
+ set no_time(hours) 0
+ set no_time(minutes) 0
set start_datetime [calendar_make_datetime [array get event_date] [array get no_time]]
set end_datetime [calendar_make_datetime [array get event_date] [array get no_time]]
} else {
@@ -123,42 +117,12 @@
$creation_ip \
$creation_user]
+if {$recurrence_p} {
+ # We must ask for recurrence information
+ ad_returnredirect "cal-item-create-recurrence?cal_item_id=$cal_item_id"
+ return
+}
+
# set the date to be the date of the event
set date [calendar_make_date [array get event_date]]
ad_returnredirect "${return_url}?[export_url_vars date action view calendar_id]"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Index: openacs-4/packages/calendar/www/cal-item-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/Attic/cal-item-edit.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/calendar/www/cal-item-edit.tcl 12 Feb 2002 14:13:58 -0000 1.4
+++ openacs-4/packages/calendar/www/cal-item-edit.tcl 11 Mar 2002 16:42:07 -0000 1.5
@@ -11,6 +11,7 @@
{cal_item_id:integer}
{view day}
{action edit}
+ {no_time_p ""}
{event_date:array ""}
{start_time:array ""}
{end_time:array ""}
@@ -34,16 +35,23 @@
ad_returnredirect "${return_url}?[export_url_vars date action view]"
+ return
}
#------------------------------------------------------
# extract the time info
-set start_datetime [calendar_make_datetime [array get event_date] [array get start_time]]
+if {$no_time_p == 1} {
+ set no_time(hours) 0
+ set no_time(minutes) 0
+ set start_datetime [calendar_make_datetime [array get event_date] [array get no_time]]
+ set end_datetime [calendar_make_datetime [array get event_date] [array get no_time]]
+} else {
+ set start_datetime [calendar_make_datetime [array get event_date] [array get start_time]]
+ set end_datetime [calendar_make_datetime [array get event_date] [array get end_time]]
+}
-set end_datetime [calendar_make_datetime [array get event_date] [array get end_time]]
-
#-----------------------------------------------------------------
# validate time interval ( start_time <= end_time )
Index: openacs-4/packages/calendar/www/cal-item-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/Attic/cal-item-oracle.xql,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/calendar/www/cal-item-oracle.xql 9 Jan 2002 23:52:58 -0000 1.2
+++ openacs-4/packages/calendar/www/cal-item-oracle.xql 11 Mar 2002 16:42:07 -0000 1.3
@@ -10,7 +10,8 @@
to_char(start_date, 'HH24:MI') as start_time,
to_char(end_date, 'HH24:MI') as end_time,
nvl(a. name, e.name) as name,
- nvl(e.description, a.description) as description
+ nvl(e.description, a.description) as description,
+ recurrence_id
from acs_activities a,
acs_events e,
timespans s,
Index: openacs-4/packages/calendar/www/cal-item.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/Attic/cal-item.adp,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/calendar/www/cal-item.adp 10 Mar 2002 21:42:49 -0000 1.8
+++ openacs-4/packages/calendar/www/cal-item.adp 11 Mar 2002 16:42:07 -0000 1.9
@@ -112,7 +112,7 @@
- Recurrence?
+ Repeat?
|
No
@@ -121,7 +121,21 @@
|
+
+
+ |
+
+
+ This event is a single, non-recurring event
+
+ This event is recurring. Find out more.
+
+ |
+
+
+
+
@@ -131,17 +145,10 @@
-
-
+
Index: openacs-4/packages/calendar/www/cal-item.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/Attic/cal-item.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/calendar/www/cal-item.tcl 25 Feb 2002 22:14:20 -0000 1.6
+++ openacs-4/packages/calendar/www/cal-item.tcl 11 Mar 2002 16:42:07 -0000 1.7
@@ -92,7 +92,8 @@
to_char(start_date, 'MM/DD/YYYY') as start_date,
to_char(end_date, 'HH24:MI') as end_time,
nvl(a. name, e.name) as name,
- nvl(e.description, a.description) as description
+ nvl(e.description, a.description) as description,
+ recurrence_id
from acs_activities a,
acs_events e,
timespans s,
|