var retArr = [];
var dataQry = arguments.eventsQuery;
var eData = {};
var item = {};
var linkParamsData = {};
var calOpts = {
useAdminTools: false,
detailsLink: '',
eventBackgroundColor: '',
eventBorderColor: '',
eventTextColor: ''
};
var titleMaxWordCnt = 25;
var tooltipDescMaxWordCnt = getToolTipDescriptionMaxWordCount();
// Convert the calOptions to calOpts to make sure we have defaults
structAppend(calOpts, arguments.calOptions, true);
for ( var i=1; i <= dataQry.RecordCount; i++ ) {
eData = QueryGetRow(dataQry, i);
item = {};
item['id'] = i;
item['groupId'] = eData.calEventID; // Events that have the same Event Details GCE ID
item['title'] = encodeForHTML(trimStringByWordCount(str=eData.title,words=titleMaxWordCnt,useEllipsis=1,stripHTML=0));
item['title_text'] = trimStringByWordCount(str=eData.title,words=titleMaxWordCnt,useEllipsis=1,stripHTML=1,stripTagsList="");
item['allDay'] = false;
// Add colors from Element Config if set
if ( TRIM(calOpts.eventBackgroundColor) NEQ '' )
item['backgroundColor'] = calOpts.eventBackgroundColor;
if ( TRIM(calOpts.eventBorderColor) NEQ '' )
item['borderColor'] = calOpts.eventBorderColor;
if ( TRIM(calOpts.eventTextColor) NEQ '' )
item['textColor'] = calOpts.eventTextColor;
if ( VAL(eData.allDay) GT 0 )
{
item['start'] = DateFormat(eData.eventDate,'yyyy-mm-dd');
item['allDay'] = true;
}
else
{
item['start'] = DateFormat(eData.eventDate,'yyyy-mm-dd') & 'T' & TimeFormat(eData.startTime,'HH:mm:ss');
item['end'] = DateFormat(eData.eventDate,'yyyy-mm-dd') & 'T' & TimeFormat(eData.endTime,'HH:mm:ss');
}
item['description'] = '';
if ( TRIM(eData.description) NEQ '' )
item['description'] = sanitizeHtmlStr(eData.description);
// automagically get moved to 'extendedProps'
item['eventid'] = eData.calEventID;
item['datetimeid'] = eData.datetimeID;
item['dthashid'] = eData.dtHashID;
if ( TRIM(eData.dateTimeID) NEQ '' AND TRIM(eData.dthashID) NEQ '' )
item['title'] = item['title'] & '';
else if ( TRIM(eData.dthashID) NEQ '' AND TRIM(eData.dateTimeID) EQ '' )
item['title'] = item['title'] & '';
// Set the Tooltip Title and description
item['tooltip_title'] = item['title'];
item['tooltip_desc'] = '';
if ( TRIM(item['description']) NEQ '' )
{
item['tooltip_desc'] = trimStringByWordCount(str=item['description'],words=tooltipDescMaxWordCnt,useEllipsis=1,stripHTML=1,stripTagsList="");
item['tooltip_desc'] = '' & item['tooltip_desc'] & '
';
}
item['detailsLink'] = '';
if ( StructKeyExists(calOpts,"detailsLink") )
{
linkParamsData = application.ptCalendar.calRenderService.buildEventDetailsLinksParams(eventDataStruct=eData);
//item['linkParamsData'] = linkParamsData;
//item['calOptions'] = calOpts;
item['detailsLink'] = application.ptCalendar.calRenderService.buildLinkParamURL(
linkURL=calOpts.detailsLink
,linkParamName=linkParamsData.UIDvarName
,linkParamValue=linkParamsData.UIDvalue
,urlParams=""
);
}
ArrayAppend(retArr, item);
}
return retArr;