add: Calendar List view and associated Help
add: Ical Page length add: WWW::Mech tests for Auth and Redirect
This commit is contained in:
parent
fc524df15c
commit
4a65691dcc
8 changed files with 1083 additions and 259 deletions
|
|
@ -2,15 +2,15 @@ package WebGUI::Asset::Wobject::Calendar;
|
|||
|
||||
use strict;
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2008 Plain Black Corporation.
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
use Tie::IxHash;
|
||||
|
||||
|
|
@ -26,21 +26,20 @@ use base 'WebGUI::Asset::Wobject';
|
|||
use DateTime;
|
||||
use JSON qw/to_json/;
|
||||
|
||||
=head1 Name
|
||||
=head1 NAME
|
||||
|
||||
|
||||
=head1 Description
|
||||
=head1 DESCRIPTION
|
||||
|
||||
|
||||
=head1 Synopsis
|
||||
=head1 SYNOPSIS
|
||||
|
||||
|
||||
=head1 Methods
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=cut
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
sub definition {
|
||||
my $class = shift;
|
||||
|
|
@ -50,25 +49,27 @@ sub definition {
|
|||
my $i18n = WebGUI::International->new($session, 'Asset_Calendar');
|
||||
|
||||
### Set up list options ###
|
||||
tie (my %optionsDefaultView, 'Tie::IxHash',
|
||||
tie my %optionsDefaultView, 'Tie::IxHash', (
|
||||
month => $i18n->get("defaultView value month"),
|
||||
week => $i18n->get("defaultView value week"),
|
||||
day => $i18n->get("defaultView value day"),
|
||||
list => $i18n->get('defaultView value list'),
|
||||
);
|
||||
tie (my %optionsDefaultDate, 'Tie::IxHash',
|
||||
|
||||
tie my %optionsDefaultDate, 'Tie::IxHash', (
|
||||
current => $i18n->get("defaultDate value current"),
|
||||
first => $i18n->get("defaultDate value first"),
|
||||
last => $i18n->get("defaultDate value last"),
|
||||
);
|
||||
tie (my %optionsEventSort, 'Tie::IxHash',
|
||||
|
||||
tie my %optionsEventSort, 'Tie::IxHash', (
|
||||
time => $i18n->get("sortEventsBy value time"),
|
||||
sequencenumber => $i18n->get("sortEventsBy value sequencenumber"),
|
||||
);
|
||||
|
||||
|
||||
### Build properties hash ###
|
||||
tie my %properties, 'Tie::IxHash';
|
||||
%properties = (
|
||||
|
||||
tie my %properties, 'Tie::IxHash', (
|
||||
##### DEFAULTS #####
|
||||
defaultView => {
|
||||
fieldType => "SelectBox",
|
||||
|
|
@ -97,6 +98,7 @@ sub definition {
|
|||
label => $i18n->get("groupIdEventEdit label"),
|
||||
hoverHelp => $i18n->get("groupIdEventEdit description"),
|
||||
},
|
||||
|
||||
groupIdSubscribed => {
|
||||
fieldType => 'hidden',
|
||||
},
|
||||
|
|
@ -133,6 +135,16 @@ sub definition {
|
|||
label => $i18n->get('templateIdDay label'),
|
||||
},
|
||||
|
||||
# List
|
||||
templateIdList => {
|
||||
fieldType => "template",
|
||||
defaultValue => '',
|
||||
tab => "display",
|
||||
namespace => "Calendar/List",
|
||||
hoverHelp => $i18n->get('editForm templateIdList description'),
|
||||
label => $i18n->get('editForm templateIdList label'),
|
||||
},
|
||||
|
||||
# Event Details
|
||||
templateIdEvent => {
|
||||
fieldType => "template",
|
||||
|
|
@ -195,6 +207,16 @@ sub definition {
|
|||
label => $i18n->get('templateIdPrintDay label'),
|
||||
},
|
||||
|
||||
# List
|
||||
templateIdPrintList => {
|
||||
fieldType => "template",
|
||||
defaultValue => '',
|
||||
tab => "display",
|
||||
namespace => "Calendar/Print/List",
|
||||
hoverHelp => $i18n->get('editForm templateIdPrintList description'),
|
||||
label => $i18n->get('editForm templateIdPrintList label'),
|
||||
},
|
||||
|
||||
# Event Details
|
||||
templateIdPrintEvent => {
|
||||
fieldType => "template",
|
||||
|
|
@ -222,6 +244,24 @@ sub definition {
|
|||
label => $i18n->get("sortEventsBy label"),
|
||||
hoverHelp => $i18n->get("sortEventsBy description"),
|
||||
},
|
||||
|
||||
listViewPageInterval => {
|
||||
fieldType => "interval",
|
||||
defaultValue => $session->datetime->intervalToSeconds( 3, 'months' ),
|
||||
tab => "display",
|
||||
label => $i18n->get('editForm listViewPageInterval label'),
|
||||
hoverHelp => $i18n->get('editForm listViewPageInterval description'),
|
||||
unitsAvailable => [ qw( days weeks months years ) ],
|
||||
},
|
||||
|
||||
icalInterval => {
|
||||
fieldType => "interval",
|
||||
defaultValue => $session->datetime->intervalToSeconds( 3, 'months' ),
|
||||
tab => "display",
|
||||
label => $i18n->get('editForm icalInterval label'),
|
||||
hoverHelp => $i18n->get('editForm icalInterval description'),
|
||||
unitsAvailable => [ qw( days weeks months years ) ],
|
||||
},
|
||||
|
||||
# This doesn't function currently
|
||||
#subscriberNotifyOffset => {
|
||||
|
|
@ -233,24 +273,19 @@ sub definition {
|
|||
#},
|
||||
);
|
||||
|
||||
push(@{$definition}, {
|
||||
push @{$definition}, {
|
||||
assetName => $i18n->get('assetName'),
|
||||
icon => 'calendar.gif',
|
||||
tableName => 'Calendar',
|
||||
className => 'WebGUI::Asset::Wobject::Calendar',
|
||||
properties => \%properties,
|
||||
autoGenerateForms => 1,
|
||||
});
|
||||
};
|
||||
|
||||
return $class->SUPER::definition($session, $definition);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 addChild ( properties [, more ] )
|
||||
|
||||
|
|
@ -271,11 +306,69 @@ sub addChild {
|
|||
return $self->SUPER::addChild($properties, @other);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 appendTemplateVarsDateTime( var, datetime [, prefix ] )
|
||||
|
||||
Append template vars from the given datetime. C<var> is a hash reference.
|
||||
C<datetime> is a WebGUI::DateTime object. C<prefix> is an optional prefix for
|
||||
the template variables.
|
||||
|
||||
=cut
|
||||
|
||||
####################################################################
|
||||
sub appendTemplateVarsDateTime {
|
||||
my $self = shift;
|
||||
my $var = shift;
|
||||
my $dt = shift;
|
||||
my $prefix = shift || '';
|
||||
|
||||
# Simple fields
|
||||
my %fields = (
|
||||
# label => method
|
||||
hour24 => 'hour',
|
||||
hour => 'hour_12',
|
||||
dayName => 'day_name',
|
||||
dayAbbr => 'day_abbr',
|
||||
dayOfMonth => 'day_of_month',
|
||||
dayOfWeek => 'day_of_week',
|
||||
monthName => 'month_name',
|
||||
monthAbbr => 'month_abbr',
|
||||
month => 'month',
|
||||
year => 'year',
|
||||
ymd => 'ymd',
|
||||
mdy => 'mdy',
|
||||
dmy => 'dmy',
|
||||
hms => 'hms',
|
||||
epoch => 'epoch',
|
||||
);
|
||||
|
||||
for my $name ( keys %fields ) {
|
||||
if ( $prefix ) {
|
||||
$var->{ $prefix . ucfirst $name }
|
||||
= $dt->can( $fields{ $name } )->( $dt );
|
||||
}
|
||||
else {
|
||||
$var->{ $name } = $dt->can( $fields{ $name } )->( $dt );
|
||||
}
|
||||
}
|
||||
|
||||
# Special fields
|
||||
if ( $prefix ) {
|
||||
$var->{ $prefix . "Second" } = sprintf "%02d", $dt->second;
|
||||
$var->{ $prefix . "Minute" } = sprintf "%02d", $dt->minute;
|
||||
$var->{ $prefix . "M" } = ( $dt->hour < 12 ? "AM" : "PM" );
|
||||
$var->{ $prefix . "Meridiem" } = $var->{ $prefix . "M" };
|
||||
}
|
||||
else {
|
||||
$var->{ "second" } = sprintf "%02d", $dt->second;
|
||||
$var->{ "minute" } = sprintf "%02d", $dt->minute;
|
||||
$var->{ "meridiem" } = ( $dt->hour < 12 ? "AM" : "PM" );
|
||||
}
|
||||
|
||||
return $var;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canEdit
|
||||
|
||||
|
|
@ -303,10 +396,7 @@ sub canEdit {
|
|||
return $self->SUPER::canEdit()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 canAddEvent
|
||||
|
||||
|
|
@ -332,10 +422,7 @@ sub canAddEvent {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 createSubscriptionGroup ( )
|
||||
|
||||
|
|
@ -361,11 +448,7 @@ sub createSubscriptionGroup {
|
|||
return undef;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 duplicate ( )
|
||||
|
||||
|
|
@ -393,11 +476,7 @@ sub duplicate {
|
|||
return $newCalendar;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getEditForm
|
||||
|
||||
|
|
@ -557,11 +636,7 @@ ENDHTML
|
|||
return $form;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getEvent ( assetId )
|
||||
|
||||
|
|
@ -582,17 +657,18 @@ sub getEvent {
|
|||
|
||||
my $event = WebGUI::Asset->newByDynamicClass($self->session, $assetId);
|
||||
|
||||
unless ( $event ) {
|
||||
$self->session->errorHandler->warn("Event '$assetId' doesn't exist!");
|
||||
return undef;
|
||||
}
|
||||
|
||||
$self->session->errorHandler->warn("WebGUI::Asset::Wobject::Calendar->getEvent :: Event '$assetId' not a child of calendar '".$self->getId."'"), return
|
||||
unless $event->get("parentId") eq $self->getId;
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getEventsIn ( startDate, endDate, options )
|
||||
|
||||
|
|
@ -638,6 +714,8 @@ sub getEventsIn {
|
|||
my ($startDate,$startTime) = split / /, $start;
|
||||
my ($endDate,$endTime) = split / /, $end;
|
||||
|
||||
#use Data::Dumper;
|
||||
#$self->session->errorHandler->warn( Dumper [caller(1), caller(2), caller(3)] );
|
||||
my $startTz = WebGUI::DateTime->new($self->session, mysql => $start, time_zone => $tz)
|
||||
->set_time_zone("UTC")->toMysql;
|
||||
my $endTz = WebGUI::DateTime->new($self->session, mysql => $end, time_zone => $tz)
|
||||
|
|
@ -689,7 +767,7 @@ sub getEventsIn {
|
|||
return @{$events};
|
||||
}
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getEventVars ( event )
|
||||
|
||||
|
|
@ -710,11 +788,7 @@ sub getEventVars {
|
|||
return %eventVar, %eventDates;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getFeeds ( )
|
||||
|
||||
|
|
@ -734,11 +808,7 @@ sub getFeeds {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getFirstEvent ( )
|
||||
|
||||
|
|
@ -760,14 +830,11 @@ sub getFirstEvent {
|
|||
LIMIT 1
|
||||
ENDSQL
|
||||
|
||||
return unless $assetId;
|
||||
return $self->getEvent($assetId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getLastEvent ( )
|
||||
|
||||
|
|
@ -789,13 +856,27 @@ sub getLastEvent {
|
|||
LIMIT 1
|
||||
ENDSQL
|
||||
|
||||
return unless $assetId;
|
||||
return $self->getEvent($assetId);
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getTemplateVars ( )
|
||||
|
||||
Get template variables common to all views of the Calendar.
|
||||
|
||||
####################################################################
|
||||
=cut
|
||||
|
||||
sub getTemplateVars {
|
||||
my $self = shift;
|
||||
my $var = $self->get;
|
||||
|
||||
|
||||
return $var;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 getSearchUrl ( )
|
||||
|
||||
|
|
@ -808,10 +889,7 @@ sub getSearchUrl {
|
|||
return $self->getUrl('func=search');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 prepareView ( )
|
||||
|
||||
|
|
@ -835,7 +913,7 @@ sub prepareView {
|
|||
$self->session->style->makePrintable(1);
|
||||
}
|
||||
|
||||
#$self->session->errorHandler->warn("Prepare view ".$view." with template ".$self->get("templateId".$view));
|
||||
$self->session->errorHandler->warn("Prepare view ".$view." with template ".$self->get("templateId".$view));
|
||||
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId".$view));
|
||||
$template->prepare;
|
||||
|
|
@ -843,12 +921,7 @@ sub prepareView {
|
|||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 processPropertiesFromFormPost ( )
|
||||
|
||||
|
|
@ -869,7 +942,8 @@ sub processPropertiesFromFormPost {
|
|||
unless ($self->get("groupIdSubscribed")) {
|
||||
$self->createSubscriptionGroup();
|
||||
}
|
||||
|
||||
|
||||
$self->session->errorHandler->info( "DEFAULT VIEW:" . $self->get('defaultView') );
|
||||
|
||||
### Get feeds from the form
|
||||
# Workaround WebGUI::Session::Form->param bug that returns duplicate
|
||||
|
|
@ -906,10 +980,12 @@ sub processPropertiesFromFormPost {
|
|||
feedType => "ical",
|
||||
});
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 purge ( )
|
||||
|
||||
|
|
@ -925,7 +1001,7 @@ sub purge {
|
|||
$self->SUPER::purge;
|
||||
}
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 view ( )
|
||||
|
||||
|
|
@ -943,8 +1019,6 @@ sub view {
|
|||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $form = $session->form;
|
||||
my $var;
|
||||
|
||||
|
||||
## INTERRUPT: If user is only a Visitor and we have a cached version
|
||||
# and is not expired, use it.
|
||||
|
|
@ -955,7 +1029,7 @@ sub view {
|
|||
$params->{start} = $form->param("start");
|
||||
|
||||
# Validate type passed, or recover from session scratchpad
|
||||
if ($params->{type} =~ /^(?:month|week|day)$/) {
|
||||
if ($params->{type} =~ /^(?:month|week|day|list)$/i) {
|
||||
$session->scratch->set('cal_view_type', $params->{'type'});
|
||||
}
|
||||
else {
|
||||
|
|
@ -985,13 +1059,16 @@ sub view {
|
|||
}
|
||||
|
||||
# Get the template from the appropriate view* method
|
||||
$var = lc $params->{type} eq "month" ? $self->viewMonth($params)
|
||||
: lc $params->{type} eq "week" ? $self->viewWeek($params)
|
||||
: lc $params->{type} eq "day" ? $self->viewDay($params)
|
||||
# TODO: This should be abstracted
|
||||
my $var = lc $params->{type} eq "month" ? $self->viewMonth( $params )
|
||||
: lc $params->{type} eq "week" ? $self->viewWeek( $params )
|
||||
: lc $params->{type} eq "day" ? $self->viewDay( $params )
|
||||
: lc $params->{type} eq "list" ? $self->viewList( $params )
|
||||
: return $self->errorHandler->error("Calendar invalid 'type=' url parameter")
|
||||
;
|
||||
|
||||
##### Add any global variables
|
||||
##### Process the template
|
||||
# Add any global variables
|
||||
# Admin
|
||||
if ($self->session->var->isAdminOn) {
|
||||
$var->{'admin'} = 1;
|
||||
|
|
@ -1005,6 +1082,7 @@ sub view {
|
|||
}
|
||||
|
||||
# URLs
|
||||
$var->{ url } = $self->getUrl;
|
||||
$var->{"urlDay"} = $self->getUrl("type=day;start=".$params->{start});
|
||||
$var->{"urlWeek"} = $self->getUrl("type=week;start=".$params->{start});
|
||||
$var->{"urlMonth"} = $self->getUrl("type=month;start=".$params->{start});
|
||||
|
|
@ -1016,25 +1094,18 @@ sub view {
|
|||
$params->{start},
|
||||
);
|
||||
|
||||
# Parameters
|
||||
$var->{"paramStart"} = $params->{start};
|
||||
$var->{"paramType"} = $params->{type};
|
||||
|
||||
|
||||
$var->{"extrasUrl"} = $self->session->url->extras();
|
||||
|
||||
##### Process the template
|
||||
$var->{ paramStart } = $params->{ start };
|
||||
$var->{ paramType } = $params->{ type };
|
||||
|
||||
# TODO: If user is only a Visitor and we've gotten this far, update the cache
|
||||
|
||||
# Return the processed template to be displayed for the user
|
||||
return $self->processTemplate($var, undef, $self->{_viewTemplate});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 viewDay ( \%params )
|
||||
|
||||
|
|
@ -1057,7 +1128,7 @@ sub viewDay {
|
|||
my $session = $self->session;
|
||||
my $params = shift;
|
||||
my $i18n = WebGUI::International->new($session,"Asset_Calendar");
|
||||
my $var = {};
|
||||
my $var = $self->getTemplateVars;
|
||||
|
||||
### Get all the events in this time period
|
||||
# Get the range of the epoch of this day
|
||||
|
|
@ -1120,12 +1191,85 @@ sub viewDay {
|
|||
return $var;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 viewList ( \%params )
|
||||
|
||||
Shows the list view. Returns the template parameters as a hash reference.
|
||||
|
||||
%params keys:
|
||||
|
||||
=over 4
|
||||
|
||||
####################################################################
|
||||
=item start
|
||||
|
||||
The start of the list page
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
sub viewList {
|
||||
my $self = shift;
|
||||
my $params = shift;
|
||||
my $session = $self->session;
|
||||
my $i18n = WebGUI::International->new($session,"Asset_Calendar");
|
||||
my $var = $self->getTemplateVars;
|
||||
|
||||
### Get the events
|
||||
my $dtStart = WebGUI::DateTime->new( $session, $params->{start} );
|
||||
my $dtEnd = $dtStart->clone->add( seconds => $self->get('listViewPageInterval') );
|
||||
|
||||
my @events
|
||||
= $self->getEventsIn(
|
||||
$dtStart->toDatabase,
|
||||
$dtEnd->toDatabase,
|
||||
);
|
||||
|
||||
### Build the event vars
|
||||
my $dtLast = $dtStart; # The DateTime of the last event
|
||||
for my $event (@events) {
|
||||
my ( %eventVar, %eventDate )
|
||||
= $self->getEventVars( $event );
|
||||
|
||||
# Add the change flags
|
||||
my $dt = $event->getDateTimeStart;
|
||||
if ( $dt->year > $dtLast->year ) {
|
||||
$eventVar{ new_year } = 1;
|
||||
}
|
||||
if ( $dt->month > $dtLast->month ) {
|
||||
$eventVar{ new_month } = 1;
|
||||
}
|
||||
if ( $dt->day > $dtLast->day ) {
|
||||
$eventVar{ new_day } = 1;
|
||||
}
|
||||
|
||||
push @{ $var->{events} }, { %eventVar, %eventDate };
|
||||
$dtLast = $dt;
|
||||
}
|
||||
|
||||
### Additional variables
|
||||
# Date span
|
||||
$self->appendTemplateVarsDateTime( $var, $dtStart, "start" );
|
||||
$self->appendTemplateVarsDateTime( $var, $dtEnd, "end" );
|
||||
|
||||
# Previous and next pages
|
||||
if ( $self->getFirstEvent && $self->getFirstEvent->getDateTimeStart < $dtStart ) {
|
||||
my $dtPrevious
|
||||
= $dtStart->clone->add( seconds => 0 - $self->get('listViewPageInterval') );
|
||||
$var->{ url_previousPage }
|
||||
= $self->getUrl( 'type=list;start=' . $dtPrevious->toDatabase );
|
||||
}
|
||||
|
||||
if ( $self->getLastEvent && $self->getLastEvent->getDateTimeStart > $dtEnd ) {
|
||||
$var->{ url_nextPage }
|
||||
= $self->getUrl( 'type=list;start=' . $dtEnd->toDatabase );
|
||||
}
|
||||
|
||||
return $var;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 viewMonth ( \%params )
|
||||
|
||||
|
|
@ -1148,7 +1292,7 @@ sub viewMonth {
|
|||
my $session = $self->session;
|
||||
my $params = shift;
|
||||
my $i18n = WebGUI::International->new($session,"Asset_Calendar");
|
||||
my $var = {};
|
||||
my $var = $self->getTemplateVars;
|
||||
my $tz = $session->user->profileField("timeZone");
|
||||
my $today = WebGUI::DateTime->new($self->session, time)
|
||||
->set_time_zone($tz)->toMysqlDate;
|
||||
|
|
@ -1265,12 +1409,7 @@ sub viewMonth {
|
|||
return $var;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 viewWeek ( \%params )
|
||||
|
||||
|
|
@ -1293,7 +1432,7 @@ sub viewWeek {
|
|||
my $session = $self->session;
|
||||
my $params = shift;
|
||||
my $i18n = WebGUI::International->new($session,"Asset_Calendar");
|
||||
my $var = {};
|
||||
my $var = $self->getTemplateVars;
|
||||
my $tz = $session->user->profileField("timeZone");
|
||||
my $today = WebGUI::DateTime->new($self->session, time)->set_time_zone($tz)
|
||||
->toMysqlDate;
|
||||
|
|
@ -1571,11 +1710,7 @@ sub viewWeek {
|
|||
return $var;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 unwrapIcal ( text )
|
||||
|
||||
|
|
@ -1594,11 +1729,7 @@ sub unwrapIcal
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 wrapIcal ( text )
|
||||
|
||||
|
|
@ -1621,11 +1752,7 @@ sub wrapIcal {
|
|||
return join "\r\n ",@text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 www_edit ( )
|
||||
|
||||
|
|
@ -1647,12 +1774,7 @@ sub www_edit {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 www_ical
|
||||
|
||||
|
|
@ -1663,17 +1785,9 @@ Export an iCalendar feed of this Events Calendar's events.
|
|||
sub www_ical {
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $user = $self->session->user;
|
||||
my $form = $self->session->form;
|
||||
|
||||
#!!! Events from what time period should we show? Default perpage?
|
||||
# By default show the events for a month
|
||||
my $type = $form->param("type") || lc($self->get("defaultView")) || "month";
|
||||
my $start = $form->param("start");
|
||||
my $end = $form->param("end");
|
||||
|
||||
|
||||
|
||||
|
||||
#!!! KLUDGE:
|
||||
# An "adminId" may be passed as a parameter in order to facilitate
|
||||
# calls between calendars on the same server getting administrator
|
||||
|
|
@ -1696,53 +1810,31 @@ sub www_ical {
|
|||
}
|
||||
#/KLUDGE
|
||||
|
||||
|
||||
my $dt_start;
|
||||
unless ($start) {
|
||||
#if ($self->get("defaultDate") eq "first")
|
||||
#{
|
||||
#!! TODO: Get the first event's date
|
||||
# select startDate from Events
|
||||
# join assetLineage
|
||||
# order by startDate ASC, revisionDate DESC
|
||||
# limit 1
|
||||
#}
|
||||
#elsif ($self->get("defaultDate") eq "last")
|
||||
#{
|
||||
#!! TODO: Get the last event's date
|
||||
# select startDate from Events
|
||||
# join assetLineage
|
||||
# order by startDate DESC, revisionDate DESC
|
||||
# limit 1
|
||||
#}
|
||||
#else
|
||||
#{
|
||||
$dt_start = WebGUI::DateTime->new($self->session, time)->set_time_zone($session->user->profileField("timeZone"));
|
||||
#}
|
||||
my $start = $form->param("start");
|
||||
if ($start) {
|
||||
$dt_start
|
||||
= WebGUI::DateTime->new($session,
|
||||
mysql => $start,
|
||||
time_zone => $user->profileField("timeZone")
|
||||
);
|
||||
}
|
||||
else {
|
||||
$dt_start = WebGUI::DateTime->new($self->session, mysql => $start, time_zone => $session->user->profileField("timeZone"));
|
||||
$dt_start = WebGUI::DateTime->new($self->session, time);
|
||||
$dt_start->set_time_zone( $user->profileField("timeZone") );
|
||||
}
|
||||
|
||||
|
||||
|
||||
my $dt_end;
|
||||
unless ($end) {
|
||||
#if ($type eq "month")
|
||||
#{
|
||||
$dt_end = $dt_start->clone->add(months => 1);
|
||||
#}
|
||||
#elsif ($type eq "week")
|
||||
#{
|
||||
# $dt_end = $dt_start->clone->add(weeks => 1);
|
||||
#}
|
||||
#elsif ($type eq "day")
|
||||
#{
|
||||
# $dt_end = $dt_start->clone->add(days => 1);
|
||||
#}
|
||||
my $end = $form->param("end");
|
||||
if ($end) {
|
||||
$dt_end
|
||||
= WebGUI::DateTime->new($self->session,
|
||||
mysql => $end,
|
||||
time_zone => $user->profileField("timeZone")
|
||||
);
|
||||
}
|
||||
else {
|
||||
$dt_end = WebGUI::DateTime->new($self->session, mysql => $end, time_zone => $session->user->profileField("timeZone"));
|
||||
$dt_end = $dt_start->clone->add( seconds => $self->get('icalInterval') );
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1820,11 +1912,7 @@ sub www_ical {
|
|||
return $ical;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 www_importIcal
|
||||
|
||||
|
|
@ -1840,11 +1928,7 @@ sub www_importIcal {
|
|||
return $_[0]->session->privilege->noAccess;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 www_search ( )
|
||||
|
||||
|
|
@ -1864,7 +1948,7 @@ sub www_search {
|
|||
my $endDate = $form->process("enddate");
|
||||
my $perpage = $form->param("perpage");
|
||||
|
||||
my $var = $self->get;
|
||||
my $var = $self->getTemplateVars;
|
||||
$var->{url} = $self->getUrl;
|
||||
|
||||
# If there is a search to perform
|
||||
|
|
@ -1988,11 +2072,7 @@ sub www_search {
|
|||
return "chunked";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
####################################################################
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 www_view ( )
|
||||
|
||||
|
|
@ -2021,18 +2101,6 @@ page.
|
|||
|
||||
=back
|
||||
|
||||
|
||||
|
||||
|
||||
=head1 Templates
|
||||
|
||||
The templates provided by this Wobject and the parameters they contain
|
||||
|
||||
!!! TODO !!!
|
||||
|
||||
|
||||
|
||||
|
||||
=head1 BUGS / RFE
|
||||
|
||||
In the calendar edit form on the Default View field on the display tab, put the
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ use warnings;
|
|||
|
||||
our $HELP = {
|
||||
|
||||
#### View Calendar Page
|
||||
|
||||
'view calendar template' => {
|
||||
title => 'view calendar title',
|
||||
body => 'view calendar body',
|
||||
|
|
@ -38,13 +36,38 @@ our $HELP = {
|
|||
related => []
|
||||
},
|
||||
|
||||
#### Search Calendar Page
|
||||
'calendar dateTime' => {
|
||||
title => 'help calendar dateTime title',
|
||||
body => 'help calendar dateTime body',
|
||||
variables => [
|
||||
{ 'name' => 'second', description => 'helpvar dateTime second', },
|
||||
{ 'name' => 'minute', description => 'helpvar dateTime minute', },
|
||||
{ 'name' => 'meridiem', description => 'helpvar dateTime meridiem', },
|
||||
{ 'name' => 'month', description => 'helpvar dateTime month', },
|
||||
{ 'name' => 'monthName', description => 'helpvar dateTime monthName', },
|
||||
{ 'name' => 'monthAbbr', description => 'helpvar dateTime monthAbbr', },
|
||||
{ 'name' => 'dayOfMonth', description => 'helpvar dateTime dayOfMonth', },
|
||||
{ 'name' => 'dayName', description => 'helpvar dateTime dayName', },
|
||||
{ 'name' => 'dayAbbr', description => 'helpvar dateTime dayAbbr', },
|
||||
{ 'name' => 'year', description => 'helpvar dateTime year', },
|
||||
{ 'name' => 'dayOfWeek', description => 'helpvar dateTime dayOfWeek', },
|
||||
{ 'name' => 'ymd', description => 'helpvar dateTime ymd', },
|
||||
{ 'name' => 'mdy', description => 'helpvar dateTime mdy', },
|
||||
{ 'name' => 'dmy', description => 'helpvar dateTime dmy', },
|
||||
{ 'name' => 'epoch', description => 'helpvar dateTime epoch', },
|
||||
],
|
||||
},
|
||||
|
||||
#### ICal Calendar Page
|
||||
|
||||
#### View Month Template
|
||||
|
||||
#### View Week Template
|
||||
'event variables' => {
|
||||
title => 'help event variables title',
|
||||
body => 'help event variables body',
|
||||
related => [
|
||||
{
|
||||
namespace => 'Asset_Event',
|
||||
tag => 'event common variables',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
'view week template' => {
|
||||
title => 'view calendar week title',
|
||||
|
|
@ -143,9 +166,60 @@ our $HELP = {
|
|||
related => []
|
||||
},
|
||||
|
||||
#### List view template
|
||||
'view list template' => {
|
||||
title => 'help view list title',
|
||||
body => 'help view list body',
|
||||
isa => [
|
||||
{
|
||||
namespace => "Asset_Calendar",
|
||||
tag => "view calendar template",
|
||||
},
|
||||
{
|
||||
namespace => "Asset_Calendar",
|
||||
tag => "event variables",
|
||||
},
|
||||
],
|
||||
related => [
|
||||
{
|
||||
namespace => "Asset_Calendar",
|
||||
tag => 'calendar dateTime',
|
||||
},
|
||||
],
|
||||
variables => [
|
||||
{
|
||||
name => 'newYear',
|
||||
description => 'helpvar newYear',
|
||||
},
|
||||
{
|
||||
name => 'newMonth',
|
||||
description => 'helpvar newMonth',
|
||||
},
|
||||
{
|
||||
name => 'newDay',
|
||||
description => 'helpvar newDay',
|
||||
},
|
||||
{
|
||||
name => 'url_previousPage',
|
||||
description => 'helpvar url_previousPage',
|
||||
},
|
||||
{
|
||||
name => 'url_nextPage',
|
||||
description => 'helpvar url_nextPage',
|
||||
},
|
||||
{
|
||||
name => 'start',
|
||||
description => 'helpvar dateTime start',
|
||||
},
|
||||
{
|
||||
name => 'end',
|
||||
description => 'helpvar dateTime end',
|
||||
},
|
||||
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
#### Search Template
|
||||
|
||||
1;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,18 +8,17 @@ our $I18N = {
|
|||
# context => q{},
|
||||
#},
|
||||
|
||||
'assetName' => {
|
||||
message => q{Calendar},
|
||||
lastUpdated => 1131394072,
|
||||
},
|
||||
|
||||
#################### DATETIME LOCALE ####################
|
||||
'locale' => {
|
||||
message => q{en_US},
|
||||
lastUpdated => 0,
|
||||
context => q{The ISO locale name for month and day labels.},
|
||||
},
|
||||
|
||||
|
||||
#################### CALENDAR PROPERTIES FIELDS ####################
|
||||
|
||||
##### Subscriber Notify Offset #####
|
||||
'subscriberNotifyOffset label' => {
|
||||
message => q{Subscriber Notify Offset},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -31,11 +30,6 @@ our $I18N = {
|
|||
context => q{The Hover Help for the Subscriber Notify Offset field},
|
||||
},
|
||||
|
||||
|
||||
|
||||
#################### CALENDAR DISPLAY FIELDS ####################
|
||||
|
||||
##### Default View #####
|
||||
'defaultView label' => {
|
||||
message => q{Default View},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -61,9 +55,13 @@ our $I18N = {
|
|||
lastUpdated => 0,
|
||||
context => q{A value for the Default View field.},
|
||||
},
|
||||
'defaultView value list' => {
|
||||
message => q{List},
|
||||
lastUpdated => 0,
|
||||
context => q{A value for the Default View field.},
|
||||
},
|
||||
|
||||
|
||||
##### Default Date #####
|
||||
'defaultDate label' => {
|
||||
message => q{Default Date},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -91,7 +89,6 @@ our $I18N = {
|
|||
},
|
||||
|
||||
|
||||
##### Visitor Cache Timeout #####
|
||||
'visitorCacheTimeout label' => {
|
||||
message => q{Visitor Cache Timeout},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -104,7 +101,6 @@ our $I18N = {
|
|||
},
|
||||
|
||||
|
||||
##### Default Daily Event Sort Order #####
|
||||
'sortEventsBy label' => {
|
||||
message => q{Daily Events Sort Order},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -126,14 +122,32 @@ our $I18N = {
|
|||
context => q{A value for the Daily Events Sort Order field.},
|
||||
},
|
||||
|
||||
|
||||
'editForm listViewPageInterval label' => {
|
||||
message => "List View Page Interval",
|
||||
lastUpdated => 0,
|
||||
context => 'Label for the asset property',
|
||||
},
|
||||
'editForm listViewPageInterval description' => {
|
||||
message => "Period of time displayed in a single page of the list view",
|
||||
lastUpdated => 0,
|
||||
context => 'Description of the asset property',
|
||||
},
|
||||
|
||||
'editForm icalInterval label' => {
|
||||
message => "ICalendar Feed Interval",
|
||||
lastUpdated => 0,
|
||||
context => 'Label for the asset property',
|
||||
},
|
||||
'editForm icalInterval description' => {
|
||||
message => "Period of time displayed in the iCalendar feed",
|
||||
lastUpdated => 0,
|
||||
context => 'Description of the asset property',
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#################### CALENDAR SECURITY FIELDS ####################
|
||||
|
||||
##### Group to add/edit events #####
|
||||
'groupIdEventEdit label' => {
|
||||
message => q{Who can add Events?},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -148,9 +162,7 @@ our $I18N = {
|
|||
|
||||
|
||||
|
||||
#################### CALENDAR FEEDS FIELDS ####################
|
||||
|
||||
##### Feeds tab #####
|
||||
'feeds' => {
|
||||
message => q{Feeds},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -159,11 +171,9 @@ our $I18N = {
|
|||
|
||||
|
||||
|
||||
#################### TEMPLATES ####################
|
||||
|
||||
|
||||
|
||||
##### Template - Month #####
|
||||
'templateIdMonth label' => {
|
||||
message => q{Month View Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -175,7 +185,6 @@ our $I18N = {
|
|||
context => q{Hover Help for the default month template.},
|
||||
},
|
||||
|
||||
##### Template - Week #####
|
||||
'templateIdWeek label' => {
|
||||
message => q{Week View Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -187,7 +196,6 @@ our $I18N = {
|
|||
context => q{Hover Help for the default Week template.},
|
||||
},
|
||||
|
||||
##### Template - Day #####
|
||||
'templateIdDay label' => {
|
||||
message => q{Day View Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -198,8 +206,18 @@ our $I18N = {
|
|||
lastUpdated => 0,
|
||||
context => q{Hover Help for the default Day template.},
|
||||
},
|
||||
|
||||
'editForm templateIdList label' => {
|
||||
message => q{List View Template},
|
||||
lastUpdated => 0,
|
||||
context => q{The label for the default List template.},
|
||||
},
|
||||
'editForm templateIdList description' => {
|
||||
message => q{This template shows the calendar in List form.},
|
||||
lastUpdated => 0,
|
||||
context => q{Hover Help for the default List template.},
|
||||
},
|
||||
|
||||
##### Template - Event #####
|
||||
'templateIdEvent label' => {
|
||||
message => q{Event Details Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -211,7 +229,6 @@ our $I18N = {
|
|||
context => q{Hover Help for the default Event template.},
|
||||
},
|
||||
|
||||
##### Template - EventEdit #####
|
||||
'templateIdEventEdit label' => {
|
||||
message => q{Event Edit Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -223,7 +240,6 @@ our $I18N = {
|
|||
context => q{Hover Help for the default Event Edit template.},
|
||||
},
|
||||
|
||||
##### Template - Search #####
|
||||
'templateIdSearch label' => {
|
||||
message => q{Search View Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -237,7 +253,6 @@ our $I18N = {
|
|||
|
||||
|
||||
|
||||
##### Template - Print Month #####
|
||||
'templateIdPrintMonth label' => {
|
||||
message => q{Print Month Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -249,7 +264,6 @@ our $I18N = {
|
|||
context => q{Hover Help for the default month template.},
|
||||
},
|
||||
|
||||
##### Template - Print Week #####
|
||||
'templateIdPrintWeek label' => {
|
||||
message => q{Print Week Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -261,7 +275,6 @@ our $I18N = {
|
|||
context => q{Hover Help for the default Week template.},
|
||||
},
|
||||
|
||||
##### Template - Print Day #####
|
||||
'templateIdPrintDay label' => {
|
||||
message => q{Print Day Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -273,7 +286,17 @@ our $I18N = {
|
|||
context => q{Hover Help for the default Day template.},
|
||||
},
|
||||
|
||||
##### Template - Print Event #####
|
||||
'editForm templateIdPrintList label' => {
|
||||
message => q{Print List View Template},
|
||||
lastUpdated => 0,
|
||||
context => q{The label for the default Print List template.},
|
||||
},
|
||||
'editForm templateIdPrintList description' => {
|
||||
message => q{This template print the calendar in List form.},
|
||||
lastUpdated => 0,
|
||||
context => q{Hover Help for the default Print List template.},
|
||||
},
|
||||
|
||||
'templateIdPrintEvent label' => {
|
||||
message => q{Print Event Details Template},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -285,9 +308,6 @@ our $I18N = {
|
|||
context => q{Hover Help for the default Event template.},
|
||||
},
|
||||
|
||||
|
||||
|
||||
#################### WORKFLOW ACTIVITIES ####################
|
||||
'workflow updateFeeds' => {
|
||||
message => q{Update Calendar Feeds},
|
||||
lastUpdated => 0,
|
||||
|
|
@ -313,14 +333,11 @@ our $I18N = {
|
|||
context => q{Description of what the CalendarGenerateRecurringEvents workflow activity does},
|
||||
},
|
||||
|
||||
#################### HELP PAGES ####################
|
||||
'searchButtonLabel' => {
|
||||
message => q|Search|,
|
||||
lastUpdated => 1170803504,
|
||||
},
|
||||
|
||||
#################### HELP PAGES View Calendar ####################
|
||||
|
||||
'add event' => {
|
||||
message => q|Add Event|,
|
||||
lastUpdated => 1171043337,
|
||||
|
|
@ -624,11 +641,184 @@ our $I18N = {
|
|||
},
|
||||
|
||||
|
||||
#################### ASSET NAME ####################
|
||||
'assetName' => {
|
||||
message => q{Calendar},
|
||||
lastUpdated => 1131394072,
|
||||
},
|
||||
'help view list title' => {
|
||||
message => 'Calendar List View',
|
||||
lastUpdated => 0,
|
||||
context => 'Title for help page',
|
||||
},
|
||||
|
||||
'help view list body' => {
|
||||
message => 'These variables are available to the Calendar List View',
|
||||
lastUpdated => 0,
|
||||
context => 'Body of help page',
|
||||
},
|
||||
|
||||
'helpvar newYear' => {
|
||||
message => 'This variable is true when the current event is in a different
|
||||
year than the previous event.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar newMonth' => {
|
||||
message => 'This variable is true when the current event is in a different
|
||||
month than the previous event.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar newDay' => {
|
||||
message => 'This variable is true when the current event is in a different
|
||||
day than the previous event.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar url_previousPage' => {
|
||||
message => 'The URL to the previous page. If there is no previous page, this
|
||||
variable will not exist.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar url_nextPage' => {
|
||||
message => 'The URL to the next page. If there is no previous page, this
|
||||
variable will not exist.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
|
||||
'help calendar dateTime title' => {
|
||||
message => 'Calendar Date/Time variables',
|
||||
lastUpdated => 0,
|
||||
context => 'Title for help page',
|
||||
},
|
||||
|
||||
'help calendar dateTime body' => {
|
||||
message => 'These variables are available for most date/time in the Calendar. <br/><br/>
|
||||
NOTE: Sometimes these variables have a prefix, like "start" or "end".
|
||||
In that case, the first letter of the variables below is capitalized, so
|
||||
"monthName" with a prefix of "start" becomes "startMonthName".',
|
||||
lastUpdated => 0,
|
||||
context => 'Body for help page',
|
||||
},
|
||||
|
||||
'helpvar dateTime second' => {
|
||||
message => 'The seconds',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime minute' => {
|
||||
message => 'The minutes',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime meridiem' => {
|
||||
message => 'The meridiem (A.M. or P.M.)',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime month' => {
|
||||
message => 'The month number (01)',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime monthName' => {
|
||||
message => 'The month name ("January")',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},,
|
||||
|
||||
'helpvar dateTime monthAbbr' => {
|
||||
message => 'The abbreviated month name ("Jan")',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime dayOfMonth' => {
|
||||
message => 'The number of the day of the month',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime dayName' => {
|
||||
message => 'The day name (Sunday)',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime dayAbbr' => {
|
||||
message => 'The abbreviated day name (Sun)',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime year' => {
|
||||
message => 'The year',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime dayOfWeek' => {
|
||||
message => 'The number of the day of the week (1 is Monday, 7 is Sunday)',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime ymd' => {
|
||||
message => 'The year, month, and day in ISO format: YYYY-MM-DD',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime mdy' => {
|
||||
message => 'The month, day, and year in US format: MM/DD/YYYY',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime dmy' => {
|
||||
message => 'The day, month, and year in UK format: DD/MM/YYYY',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime epoch' => {
|
||||
message => 'The epoch date (number of seconds since 1970-01-01 00:00:00). Suitable to be used in the Date macro.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'helpvar dateTime start' => {
|
||||
message => 'A set of date/time variables with the prefix "start". See "Calendar Date/Time Variables" for more information.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable.',
|
||||
},
|
||||
|
||||
'helpvar dateTime end' => {
|
||||
message => 'A set of date/time variables with the prefix "end". See "Calendar Date/Time Variables for more information.',
|
||||
lastUpdated => 0,
|
||||
context => 'Description of template variable',
|
||||
},
|
||||
|
||||
'help event variables title' => {
|
||||
message => "Calendar Event Variables",
|
||||
lastUpdated => 0,
|
||||
context => 'Title for help page',
|
||||
},
|
||||
|
||||
'help event variables body' => {
|
||||
message => q{When the Calendar is displaying an Event, it gets the entire set of Event template variables and changes the name slightly. <br/><br/>
|
||||
The Event template variable "title" becomes "eventTitle". The Event template variable "startDate" becomes "eventStartDate" and so on.
|
||||
},
|
||||
lastUpdated => 0,
|
||||
context => 'Body for help page',
|
||||
},
|
||||
};
|
||||
|
||||
1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue