// If the ptCalendar bean name has been defined get the app config
var appConfig = structKeyExists(application,"ptCalendar") ? application.ptCalendar.getAppConfig() : {};
var rbController = "recurrenceBuilderController";
var rbService = "recurrenceBuilderService";
var rbForm = "recurrenceBuilderForms";
// the param structure which will hold all of the fields from the props dialog
var params = setParamDefaults(arguments.fieldName, arguments.parameters);
// Set the NO Records Text
var noRecordsText = "Recurrence has not been setup for this event. Click '#params.btnAddText#' to select recurrence properties.";
var ajaxIMG = '';
// Set the newDefaultPickerDate to be prepared if nothing is passed in
var newDefaultPickerDate = "";
var newDefaultPickerStartTime = "";
var cftRecurrenceBuilderCSS = '';
var cftRecurrenceBuilderJS = '';
var CSRF_Token = application.ADF.csSecurity.getCSRF_Token();
var eventDetailsData = {};
var brokenRecurrence = false;
var seriesParentID = '';
var dateTimeIDList = '';
var dateTimeArray = [];
if ( len(trim(arguments.value)) EQ 0 )
{
// Pass new date URL variable through to the Calendar Picker
if ( StructKeyExists(request.params,"newSelectedDate") AND application.ptCalendar.date.IsRealDate(request.params.newSelectedDate) )
newDefaultPickerDate = request.params.newSelectedDate;
if ( StructKeyExists(request.params,"newSelectedStartTime") AND IsDate(request.params.newSelectedStartTime) )
newDefaultPickerStartTime = request.params.newSelectedStartTime;
// Check if this event is part of a recurrence series
if ( StructKeyExists(request.params,'datapageid') AND VAL(request.params.datapageid) GT 0 )
{
eventDetailsData = application.ptCalendar.calEventDetailsDAO.getEventDetailsByPageID(pageid=request.params.datapageid);
//eventDetailsData = application.ptCalendar.ceData.getElementInfoByPageID(pageid=request.params.datapageid,formid=request.params.formid,separateValueStruct=false,controlID=-1);
if ( StructKeyExists(eventDetailsData,'seriesParentID') AND TRIM(eventDetailsData.seriesParentID) NEQ '' )
seriesParentID = eventDetailsData.seriesParentID;
if ( StructKeyExists(eventDetailsData,'EventDateTimeIDList') AND TRIM(eventDetailsData.EventDateTimeIDList) NEQ '' )
dateTimeIDList = eventDetailsData.EventDateTimeIDList;
if ( TRIM(seriesParentID) NEQ '' AND TRIM(dateTimeIDList) NEQ '' )
{
dateTimeArray = application.ptCalendar.dateTimeBuilderDAO.getDateTimeData(uuid=dateTimeIDList);
for (var dt=1; dt LTE ArrayLen(dateTimeArray); dt++ ) {
if ( StructKeyExists(dateTimeArray[dt],"values") AND StructKeyExists(dateTimeArray[dt].values,"dtHashID") AND len(trim(dateTimeArray[dt].values.dtHashID)) )
{
brokenRecurrence = true;
break;
}
}
}
}
}
if ( !StructKeyExists(Request, 'cftRecurrenceBuilderStylesheet') )
{
application.ADF.scripts.loadUnregisteredResource('/ADF/apps/pt_calendar/style/calendar-recurrence-builder.css', "stylesheet", "head", "TERTIARY", 0, 0);
Request.cftRecurrenceBuilderStylesheet = 1;
}
application.ptCalendar.scripts.addHeaderCSS(cftRecurrenceBuilderCSS, "TERTIARY"); // PRIMARY, SECONDARY, TERTIARY
application.ptCalendar.scripts.addFooterJS(cftRecurrenceBuilderJS,"TERTIARY");
#params.btnAddText#
#params.btnEditText#
Recurrence Properties are not available since this event no longer follows the original pattern.
/*private string function getValidationMsg()
{
if (arguments.parameters.bindRequired EQ 'one' AND len(arguments.parameters.recurrFieldID))
return "Please add a Date/Time entry or\nset-up Recurrence Properties.";
return "Please add a Date/Time entry.";
}*/
private struct function setParamDefaults(required string fieldName, required struct parameters)
{
var params = arguments.parameters;
if ( NOT StructKeyExists(params, "fieldID") )
params.fieldID = arguments.fieldName;
if ( (NOT StructKeyExists(params, "fieldClass")) OR ( len(trim(params.fieldClass)) LTE 0) )
params.fieldClass = "";
if ( (NOT StructKeyExists(params, "btnAddText")) OR ( len(trim(params.btnAddText)) LTE 0) )
params.btnAddText = "Setup Recurrence";
if ( (NOT StructKeyExists(params, "btnEditText")) OR ( len(trim(params.btnEditText)) LTE 0) )
params.btnEditText = "Edit Recurrence";
return params;
}
private boolean function isMultiline()
{
return true;
}
public string function getResourceDependencies()
{
return listAppend(super.getResourceDependencies(), "jQuery,jQueryUI,ADFLightbox");
}
public string function loadResourceDependencies()
{
application.ptCalendar.scripts.loadJQuery();
application.ptCalendar.scripts.loadJQueryUI(themeName=application.ptCalendar.getUItheme());
application.ptCalendar.scripts.loadADFLightbox();
}