Multiple fixes in the code Doug wrote for 7.3 - Calendar / DateTime / Event

- fix: Calendar now reports proper product ID on iCal feed
 - fix: Calendar now tries to use the feed ID when sending uid of event on iCal
        feeds (to prevent over-propagation of events shared between calendars).
 - fix: Bug in AssetLineage->getLineage documentation.
 - rfe: Event now has a template var to toggle if an event only lasts one day
 - rfe: WebGUI::DateTime->toMysql now automatically adjusts to UTC. NOTE:
        toMysqlDate and toMysqlTime do NOT adjust for timezones. If you are 
	using them you must adjust manually.
 - fix: Bug in WebGUI::DateTime documentation
 - fix: Calendar default date of "first event" or "last event" now works.
 - fix: Calendar now handles Events that have ' in titles appropriately.
 - rfe: Added a "dateSpan" Event template variable that will show a properly
        formatted date/time span depending on how the event's start and end are.
This commit is contained in:
Doug Bell 2006-12-23 02:22:02 +00:00
parent 5a26e4f2d8
commit cdaef9d5e3
5 changed files with 134 additions and 50 deletions

View file

@ -358,18 +358,23 @@ Event object.
sub getEventNext
{
my $self = shift;
my $db = $self->session->db;
my $where = 'Event.startDate > "'.$self->get("startDate").'" || (Event.startDate = "'.$self->get("startDate").'" && ';
# All day events must either look for null time or greater than 00:00:00
if ($self->isAllDay)
{
$where .= "(Event.startTime IS NULL && assetData.title > '".$self->get("title")."') || Event.startTime >= '00:00:00'";
$where .= "(Event.startTime IS NULL "
. "&& assetData.title > ".$db->quote($self->get("title")).") "
. "|| Event.startTime >= '00:00:00'";
}
# Non all-day events must look for greater than time
else
{
$where .= "(Event.startTime = '".$self->get("startTime")."' && assetData.title > '".$self->get("title")."') || Event.startTime > '".$self->get("startTime")."'";
$where .= "(Event.startTime = '".$self->get("startTime")."' "
. "&& assetData.title > ".$db->quote($self->get("title")).")"
. "|| Event.startTime > '".$self->get("startTime")."'";
}
$where .= ")";
@ -403,18 +408,22 @@ object.
sub getEventPrev
{
my $self = shift;
my $db = $self->session->db;
my $where = 'Event.startDate < "'.$self->get("startDate").'" || (Event.startDate = "'.$self->get("startDate").'" && ';
# All day events must either look for null time or greater than 00:00:00
if ($self->isAllDay)
{
$where .= "(Event.startTime IS NULL && assetData.title < '".$self->get("title")."')";
$where .= "(Event.startTime IS NULL "
. "&& assetData.title < ".$db->quote($self->get("title")).")";
}
# Non all-day events must look for greater than time
else
{
$where .= "(Event.startTime = '".$self->get("startTime")."' && assetData.title < '".$self->get("title")."') || Event.startTime < '".$self->get("startTime")."'";
$where .= "(Event.startTime = '".$self->get("startTime")."' "
. "&& assetData.title < ".$db->quote($self->get("title")).")"
. "|| Event.startTime < '".$self->get("startTime")."'";
}
$where .= ")";
@ -1258,8 +1267,22 @@ sub getTemplateVars
$var{isAllDay} = $self->isAllDay;
$var{isOneDay} = 1 if ($var{isAllDay} && $var{startDateDmy} eq $var{endDateDmy});
# Make a Friendly date span
$var{dateSpan} = $var{startDateDayName}.", "
. $var{startDateMonthName}." "
. $var{startDateDayOfMonth}." "
. ( !$var{isAllDay} ? $var{startDateHour}.":".$var{startDateMinute}." ".$var{startDateM} : "" )
. ( !$var{isOneDay} ?
' &bull; '
. $var{endDateDayName}.", "
.$var{endDateMonthName}." "
.$var{endDateDayOfMonth}." "
. ( !$var{isAllDay} ? $var{endDateHour}.":".$var{endDateMinute}." ".$var{endDateM} : "")
: "");
# Make some friendly URLs
$dtStart->truncate(to=>"day");
$var{"urlDay"} = $self->getParent->getUrl("type=day;start=".$dtStart->toMysql);