var reHTML = ""; var recurID = arguments.recurrenceID; var processAction = arguments.action; // Defualt process action: edit var recurrenceBuilderFormJS = ""; var recurrenceBuilderFormCSS = ""; var appConfig = getAppConfig(); var uiTheme = getUItheme(); var timePickerType = "UItimepickerAddon"; var timePickerFormat = "h:mm TT"; var dataArray = ArrayNew(1); var currData = StructNew(); var actionApp = getAppBeanName(); var actionBean = "recurrenceBuilderController"; var actionMethod = "processRecurrenceForm"; var actionURL = application.ADF.lightboxProxy; var submitStatusICON = ''; var submitStatusHTML = submitStatusICON & ' Saving...'; var endTimeRequired = getEndTimeRequiredStatus(); var recurPatternTypeList = "Daily,Weekly,Monthly,Yearly"; var recurPatternOptionList = "EveryXDays,EveryWeekday,WeeklyDays,MonthlyDayX,MonthlyXY,YearlyXY,YearlyXYofZ"; var recurRangeEndTypeOptions = "EndQuantity,EndDate"; //TODO: "NoEnd" - for advanced outlook style options //var recurWeekOrdinalList = "first,second,third,fourth,last"; //TODO: for advanced outlook style options var recurWeekOrdinalList = "first,last"; //var recurMonthlyDayOptions = "day,weekday,weekend day"; //TODO: for advanced outlook style options var cfDateFormatMask = getDisplayCFdateMask(); var cfTimeFormatMask = getDisplayCFtimeMask(); var jsDateFormatMask = 'm/d/yy'; // TODO: move to APP.cfc or to the Config element var jsTimeFormatMask = ''; // TODO: move to APP.cfc or to the Config element var dummyDate = getTimeDummyDate(); // Get from the App so all time fields use the same dummy date in date/time stamp var dummyDayBeginTime = getDayBeginTime(); // Get from the App so all date fields use the same dummy time in date/time stamp var dummyDayEndTime = getDayEndTime(); // Get from the App so all date fields use the same dummy time in date/time stamp var dateFieldSize = 12; var timeFieldSize = 12; // loop indexes var rpt = ''; var dow = 1; var wol = ''; var mdo = ''; var mdow = 1; var mth = 1; var ywmn = ''; var ymdo = ''; var ydow = 1; var ymth = 1; /* Set up Date, Time and Recurrence defualts */ var currDate = application.ptCalendar.date.createValidDate(year(arguments.defaultDate),month(arguments.defaultDate),day(arguments.defaultDate)); //now() var currDateTime = CreateDateTime(year(currDate),month(currDate),day(currDate),hour(now()),minute(now()),second(0)); var currentDayOfWeek = DayOfWeek(currDateTime); var currentDayOfWeekString = DayOfWeekAsString(currentDayOfWeek); var currentDayOfMonth = Day(currDateTime); var currentMonth = Month(currDateTime); var currentMonthString = MonthAsString(currentMonth); var currentWeekInMonth = application.ptCalendar.date.weekInMonth(inDate=currDateTime); var currentWeekInMonthOrdinal = application.ptCalendar.data.numberToOrdinal(number=currentWeekInMonth); var nextHour = DateAdd("h",1,CreateTime(hour(currDateTime), 0, 0)); var nextStartTimeValue = TimeFormat(nextHour,cfTimeFormatMask); var nextEndTimeValue = TimeFormat(DateAdd("h",1,nextStartTimeValue),cfTimeFormatMask); //var nextEndTimeValue = TimeFormat(DateAdd("n",30,nextStartTimeValue),cfTimeFormatMask); // half hour setting var nextAllDayValue = 0; // Time Details Defaults var selectedStartTimeValue = nextStartTimeValue; var selectedEndTimeValue = nextEndTimeValue; var selectedAllDayValue = nextAllDayValue; // Pattern Defaults var selectedPatternType = "Weekly"; var selectedPatternOption = "WeeklyDays"; // "WeeklyDays" only option for "weekly" type // Pattern - Daily Defaults var selectedPatternDayQty = 1; // Pattern - Weekly Defaults var selectedPatternWeekQty = 1; var selectedDayOfWeek = currentDayOfWeek; // Pattern - Monthly Defaults var selectedPatternMonthQty = 1; var selectedMonthlyDayNumber = currentDayOfMonth; var selectedMonthlyDayOrdinal = currentWeekInMonthOrdinal; //var selectedMonthlyWeekDay = currentDayOfWeekString; //TODO: for advanced outlook style options var selectedMonthlyWeekDay = "day"; // Pattern - Yearly Defaults var selectedPatternYearQty = 1; var selectedYearlyMonth = currentMonth; var selectedYearlyDayNumber = currentDayOfMonth; var selectedYearlyDayOrdinal = currentWeekInMonthOrdinal; //var selectedYearlyWeekDay = currentDayOfWeekString; //TODO: for advanced outlook style options var selectedYearlyWeekDay = "day"; var selectedYearlyWeekDayMonth = currentMonth; // Range Defaults var selectedRangeEndType = "EndDate"; // TODO: "NoEnd" - for advanced outlook style options var selectedStartDateValue = DateFormat(currDateTime,cfDateFormatMask); // TODO: add date format to Config element var selectedEndQtyOccurences = 10; var selectedEndDateValue = DateFormat(DateAdd("m",1,selectedStartDateValue),cfDateFormatMask); // TODO: Add date format to Config element // TEMP FIX - Until loadResouce work with the CS RenderSimpleForm UDF //var rtnScripts = server.ADF.objectFactory.getBean("scripts_1_2"); // Set the Max Week In Month number ( from the first, second, third, fourth, last ) // This logic is for advanced outlook style options /* if ( currentWeekInMonth GTE 5 ) { currentWeekInMonth = 5; // Set the Week In Month string value from the MAX week in month value currentWeekInMonthOrdinal = ListGetAt(recurWeekOrdinalList,currentWeekInMonth); // Reset the selected default from the new current week in month ordinal selectedMonthlyDayOrdinal = currentWeekInMonthOrdinal; selectedYearlyDayOrdinal = currentWeekInMonthOrdinal; } */ // Since we are now only doing "first,last" just use the first item in the list for a default value selectedMonthlyDayOrdinal = ListFirst(currentWeekInMonthOrdinal); selectedYearlyDayOrdinal = ListFirst(currentWeekInMonthOrdinal); // Get the recurrence data for the passed in recurrenceID if ( LEN(TRIM(recurID)) ) { // Get the recurrence data by the recurrenceID (uniqueID) dataArray = application.ptCalendar.recurrenceBuilderDAO.getRecurrence(uniqueID=recurID); } // if recurID is does not return any data then override the process action and set a new recurID if ( NOT ArrayLen(dataArray) ) { recurID = CreateUUID(); processAction = "add"; } // if data exists OVERRIDE the defualt value if ( ArrayLen(dataArray) AND StructKeyExists(dataArray[1],"values") ) { currData = dataArray[1].values; // Recurrence Details Existing data if ( StructKeyExists(currData,"recurAllDay") AND currData.recurAllDay EQ 1 ) { selectedAllDayValue = 1; selectedStartTimeValue = ""; selectedEndTimeValue = ""; } else { selectedAllDayValue = 0; if ( StructKeyExists(currData,"recurStartTime") AND IsDate(currData.recurStartTime) ) { selectedStartTimeValue = TimeFormat(currData.recurStartTime,cfTimeFormatMask); if ( StructKeyExists(currData,"recurEndTime") AND IsDate(currData.recurEndTime) ) selectedEndTimeValue = TimeFormat(currData.recurEndTime,cfTimeFormatMask); else selectedEndTimeValue = ""; } } // Recurrence Pattern Existing data if ( StructKeyExists(currData,"patternType") AND LEN(TRIM(currData.patternType)) ) selectedPatternType = currData.patternType; if ( StructKeyExists(currData,"patternOption") AND LEN(TRIM(currData.patternOption)) ) selectedPatternOption = currData.patternOption; // Daily Pattern Data if ( StructKeyExists(currData,"patternDayQty") AND LEN(TRIM(currData.patternDayQty)) ) selectedPatternDayQty = currData.patternDayQty; // Weekly Pattern Data if ( StructKeyExists(currData,"patternWeekQty") AND LEN(TRIM(currData.patternWeekQty)) ) selectedPatternWeekQty = currData.patternWeekQty; if ( StructKeyExists(currData,"patternDOW") AND LEN(TRIM(currData.patternDOW)) ) selectedDayOfWeek = currData.patternDOW; // Monthly Pattern Data if ( StructKeyExists(currData,"patternMonthQty") AND LEN(TRIM(currData.patternMonthQty)) ) selectedPatternMonthQty = currData.patternMonthQty; if ( StructKeyExists(currData,"patternMonthlyDayNumber") AND LEN(TRIM(currData.patternMonthlyDayNumber)) ) selectedMonthlyDayNumber = currData.patternMonthlyDayNumber; if ( StructKeyExists(currData,"patternMonthlyDayOrdinal") AND LEN(TRIM(currData.patternMonthlyDayOrdinal)) ) selectedMonthlyDayOrdinal = currData.patternMonthlyDayOrdinal; if ( StructKeyExists(currData,"patternMonthlyWeekDay") AND LEN(TRIM(currData.patternMonthlyWeekDay)) ) { selectedMonthlyWeekDay = currData.patternMonthlyWeekDay; //TODO: for advanced outlook style options //selectedMonthlyWeekDay = "day"; } // Yearly Pattern Data if ( StructKeyExists(currData,"patternYearQty") AND LEN(TRIM(currData.patternYearQty)) ) selectedPatternYearQty = currData.patternYearQty; // Yearly Pattern Data - EveryXDayOfMonth if ( StructKeyExists(currData,"patternYearlyMonth") AND LEN(TRIM(currData.patternYearlyMonth)) ) selectedYearlyMonth = currData.patternYearlyMonth; if ( StructKeyExists(currData,"patternYearlyDayNumber") AND LEN(TRIM(currData.patternYearlyDayNumber)) ) selectedYearlyDayNumber = currData.patternYearlyDayNumber; // Yearly Pattern Data - EveryXYofMonth if ( StructKeyExists(currData,"patternYearlyDayOrdinal") AND LEN(TRIM(currData.patternYearlyDayOrdinal)) ) selectedYearlyDayOrdinal = currData.patternYearlyDayOrdinal; if ( StructKeyExists(currData,"patternYearlyWeekDay") AND LEN(TRIM(currData.patternYearlyWeekDay)) ) { selectedYearlyWeekDay = currData.patternYearlyWeekDay; //TODO: for advanced outlook style options //selectedYearlyWeekDay = "day"; } if ( StructKeyExists(currData,"patternYearlyWeekDayMonth") AND LEN(TRIM(currData.patternYearlyWeekDayMonth)) ) selectedYearlyWeekDayMonth = currData.patternYearlyWeekDayMonth; // Recurrence Range Existing data if ( StructKeyExists(currData,"rangeStartDate") AND IsDate(currData.rangeStartDate) ) selectedStartDateValue = DateFormat(currData.rangeStartDate,cfDateFormatMask); if ( StructKeyExists(currData,"rangeEndType") AND LEN(TRIM(currData.rangeEndType)) ) selectedRangeEndType = currData.rangeEndType; // Range End Types: NoEnd,EndQuantity,EndDate if ( selectedRangeEndType EQ "EndQuantity") { selectedEndDateValue = ""; // set to [empty string] if ( StructKeyExists(currData,"rangeQuantity") AND IsNumeric(currData.rangeQuantity) ) selectedEndQtyOccurences = currData.rangeQuantity; } else if ( selectedRangeEndType EQ "EndDate") { selectedEndQtyOccurences = ""; // set to [empty string] if ( StructKeyExists(currData,"rangeEndDate") AND IsDate(currData.rangeEndDate) ) selectedEndDateValue = DateFormat(currData.rangeEndDate,cfDateFormatMask); } } // Load the Scripts resources application.ptCalendar.scripts.loadJQuery(); application.ptCalendar.scripts.loadJQueryUI(themeName=uiTheme); application.ptCalendar.scripts.loadADFLightbox(); // Load the DateJS Plugin Headers application.ptCalendar.scripts.loadDateJS(); // Load the CFJS Plugin Headers application.ptCalendar.scripts.loadCFJS(); if ( timePickerType IS "anytime" ) { application.ptCalendar.scripts.loadJQueryAnytime(); if ( LEN(TRIM(timePickerFormat)) EQ 0 ) timePickerFormat = "%l:%i %p"; // "%m/%d/%Y" "%l:%i %p" "%m/%d/%Y %l:%i %p" } else if ( timePickerType IS "calendrical" ) { application.ptCalendar.scripts.loadJQueryCalendrical(); } else if ( timePickerType IS "UItimepickerAddon" ) { application.ptCalendar.scripts.loadJQueryUITimepickerAddon(); if ( LEN(TRIM(timePickerFormat)) EQ 0 ) timePickerFormat = "h:mm TT"; } else if ( timePickerType IS "UItimepickerFG" ) { application.ptCalendar.scripts.loadJQueryUITimepickerFG(); } // Include the Recurrence Builder Style Sheet application.ptCalendar.calService.loadRecurrenceBuilderCSS(); jQuery(function() { // Hide Error DIV jQuery("##formErrors").hide(); //jQuery("##submitStatusBox").hide(); // Add the button style to the Save and Cancel buttons //jQuery("##submitBtn").button(); //jQuery("##cancelBtn").button(); checkForValidEntries(); //jQuery('##cancelBtn').click(function(){ // closeLB(); //); // Date Picker Options var datePickerOptions = { changeMonth : true ,changeYear : true ,showButtonPanel : true ,showOn: "both" //button ,buttonImage: "/ADF/apps/pt_calendar/images/ui_calendar.gif" ,buttonImageOnly: true ,buttonText: 'Choose a Date...' ,constrainInput: false ,dateFormat: '#jsDateFormatMask#' //,minDate: '-1M' //'-1D' }; // Calendar Picker Fields jQuery("##rangeStartDate").datepicker( datePickerOptions ); jQuery("##rangeEndDate").datepicker( datePickerOptions ); // Any+Time Picker // http://www.ama3.com/anytime/ // Any+Time Picker Options var timePickerOptions = { format: '#timePickerFormat#' //%l:%i %p ,placement: 'popup' }; // Any+Time Picker Fields jQuery("##recurStartTime").AnyTime_picker( timePickerOptions ); jQuery("##recurEndTime").AnyTime_picker( timePickerOptions ); // Calendrical // http://plugins.jquery.com/project/calendrical jQuery("##recurStartTime").calendricalTime({ usa : true }); jQuery("##recurEndTime").calendricalTime( { usa : true }} ); // jQueryUI TimePicker Addon // http://trentrichardson.com/examples/timepicker/ // jQueryUI TimePicker Addon Options var timePickerAddonOptions = { ampm: true ,timeFormat: '#timePickerFormat#' ,hourGrid: 6 ,minuteGrid: 15 }; // Calendar Picker Fields jQuery("##recurStartTime").timepicker( timePickerAddonOptions ); jQuery("##recurEndTime").timepicker( timePickerAddonOptions ); // jQuery UI Timepicker (By François Gélinas) // http://fgelinas.com/code/timepicker/ // jQueryUI TimePicker Addon Options var timePickerFGOptions = { showPeriod: true ,minutes: { interval: 5 } ,showLeadingZero: false ,button : null //,showOn : 'both' //button //,button : '.ui-timepicker-trigger' }; // jQuery UI Timepicker FG field jQuery("##recurStartTime").timepicker( timePickerFGOptions ); jQuery("##recurEndTime").timepicker( timePickerFGOptions ); /* Start Form Validation and Event handling */ var currentPatternType = jQuery("input[name='patternType']:checked").val(); /// Show the PatternProps table for the selected PatternType if ( jQuery.trim(currentPatternType).length ) jQuery("##recurPatternProps_" + currentPatternType).show(); // On Pattern Type Click set show the Pattern Properties jQuery("input[name='patternType']").click(function(){ var clickedBtnValue = jQuery("input[name='patternType']:checked").val(); jQuery(".recurPatternPropsTable").hide(); jQuery("##recurPatternProps_" + clickedBtnValue).show(); //lbResizeWindow(); recurResizeWindow(); /* if ( clickedBtnValue == 'Daily') { //jQuery('##rpEveryXDays').attr('checked', true); //jQuery("##recurPattern_" + clickedBtnValue).show(); } else if ( clickedBtnValue == 'Weekly') { //jQuery("##recurPattern_" + clickedBtnValue).show(); } else if ( clickedBtnValue == 'Monthly') { //jQuery("##recurPattern_" + clickedBtnValue).show(); } else if ( clickedBtnValue == 'Yearly') { //jQuery("##recurPattern_" + clickedBtnValue).show(); } */ }); // Set the Start and End Time Images so they activate the Time picker flyout jQuery("##recurStartTimeIMG").click(function(){ jQuery("##recurStartTime").focus(); }); jQuery("##recurEndTimeIMG").click(function(){ jQuery("##recurEndTime").focus(); }); // If the ALL Day checkbox is checked clear both start and end times jQuery("##recurAllDay_checkbox").change(function(){ if ( jQuery("##recurAllDay_checkbox").attr("checked") ) { jQuery("##recurStartTime").val(""); jQuery("##recurEndTime").val(""); // Check for valid time entries checkForValidEntries(); } }); // If a starttime is entered clear the ALL Day checkbox jQuery("##recurStartTime").change(function(){ if ( jQuery.trim(jQuery(this).val()).length ) { jQuery("##recurAllDay_checkbox").removeAttr('checked'); // Check for valid date and time entries checkForValidEntries(); } }); // If a pattern Type is modified do the validation jQuery("input[name='patternType']").click(function(){ if ( jQuery(this).is(':checked') ) { // Check for valid date and time entries checkForValidEntries(); } }); // If a pattern Option is modified do the validation jQuery("input[name='patternOption']").click(function(){ if ( jQuery(this).is(':checked') ) { // Check for valid date and time entries checkForValidEntries(); } }); // If a endtime is entered clear the ALL Day checkbox jQuery("##recurEndTime").change(function(){ if ( jQuery.trim(jQuery(this).val()).length ) { jQuery("##recurAllDay_checkbox").removeAttr('checked'); // Check for valid date and time entries checkForValidEntries(); } }); // If a start date is modified do the validation jQuery("##rangeStartDate").change(function(){ // Check for valid date and time entries checkForValidEntries(); }); // If a end date is modified do the validation jQuery("##rangeEndDate").change(function(){ // Check for valid date and time entries checkForValidEntries(); }); // If a end range quantity is modified do the validation jQuery("##rangeQuantity").change(function(){ // Check for valid date and time entries checkForValidEntries(); }); // If a rangeEndType is modified do the validation jQuery("input[name='rangeEndType']").click(function(){ if ( jQuery(this).is(':checked') ) { // Check for valid date and time entries checkForValidEntries(); } }); // On Submit button click Display Submitting Message jQuery(document).on('click','##proxyButton1',function() { // Change button to a Ajax loader image to aviod multiple clicks jQuery("##clsProxyButtonTable").hide(); jQuery("
").html('#submitStatusHTML#').appendTo("##clsProxyButtonHolder"); }); // Disable submit after the first click/submit /* jQuery('input[name="submitbutton"]').click(function() { if ( checkForValidEntries() ) { var sButton = jQuery(this).attr('disabled','disabled'); sButton.unbind(); sButton.addClass('ui-state-disabled'); sButton.button("disable"); //jQuery(this).attr('disabled','disabled'); //jQuery(this).addClass('ui-state-disabled'); // Display submitting image jQuery("##submitStatusBox").show(); // Make sure the form get submitted (fix for Chrome) jQuery(this).parents('form').submit(); return true; } else { return false; } });*/ /* DEV */ // Show all Pattern Properties Tables //jQuery(".recurPatternPropsTable").show(); }); function checkForValidEntries(){ var sTimeStr = jQuery("##recurStartTime").val(); var eTimeStr = jQuery("##recurEndTime").val(); var allDayChecked = jQuery("##recurAllDay_checkbox").attr("checked"); var sDateStr = jQuery("##rangeStartDate").val(); var eDateStr = jQuery("##rangeEndDate").val(); var rangeQty = jQuery("##rangeQuantity").val(); var clickedBtnValue = jQuery("input[name='rangeEndType']:checked").val(); var tCompare = 0; var tStartObj = ""; var tEndObj = ""; var dCompare = 0; var dStartObj = ""; var dEndObj = ""; var msg0 = ""; var msg1 = ""; var msg2 = ""; var msg3 = ""; var msg4 = ""; var msg5 = ""; var msg6 = ""; var errMsg = ""; if ( !allDayChecked ) { if ( (jQuery.trim(sTimeStr).length && jQuery.trim(eTimeStr).length==0) || (jQuery.trim(sTimeStr).length==0 && jQuery.trim(eTimeStr).length) ) { msg0 = 'Must have both a Start Time and a End Time or select All Day!'; msg0 = '
  • ' + msg0 + '
  • '; } else if ( (jQuery.trim(sTimeStr).length==0 && jQuery.trim(eTimeStr).length==0) ) { msg0 = 'Select a Start Time and an End Time or select All Day!'; msg0 = '
  • ' + msg0 + '
  • '; } }
    // Check the recurStartTime and recurEndTime if ( jQuery.trim(sTimeStr).length && jQuery.trim(eTimeStr).length ) { // Use DateJS lib to parse start time into a date/time object tStartObj = Date.parse('#dummyDate#' + ' ' + sTimeStr); // Use DateJS lib to parse end time into a date/time object tEndObj = Date.parse('#dummyDate#' + ' ' + eTimeStr); // Use DateJS lib to compare the start and end time strings tCompare = Date.compare(tStartObj,tEndObj); // If campare fails then set the error message string if ( tCompare == 1 ) { msg1 = 'The Recurrence Start Time must be before the End Time!'; msg1 = '
  • ' + msg1 + '
  • '; } } if ( jQuery.trim(sDateStr).length == 0 ) { msg3 = 'The Range Start Date can not be blank!'; msg3 = '
  • ' + msg3 + '
  • '; } if ( jQuery.trim(eDateStr).length == 0 && clickedBtnValue == 'EndDate') { msg4 = 'The Range End Date can not be blank!'; msg4 = '
  • ' + msg4 + '
  • '; } if ( jQuery.trim(sDateStr).length && jQuery.trim(eDateStr).length && clickedBtnValue == 'EndDate' ) { // Use DateJS lib to parse start time into a date/time object dStartObj = Date.parse(sDateStr + ' ' + '#dummyDayBeginTime#'); // Use DateJS lib to parse end time into a date/time object dEndObj = Date.parse(eDateStr + ' ' + '#dummyDayEndTime#'); // Use DateJS lib to compare the start and end time strings dCompare = Date.compare(dStartObj,dEndObj); // If campare fails then set the error message string if ( dCompare == 1 ) { msg5 = 'The Range Start Date must be before the End by Date!'; msg5 = '
  • ' + msg5 + '
  • '; } } if ( clickedBtnValue == 'EndQuantity' ) { if ( (jQuery.trim(rangeQty).length == 0 || rangeQty == 0) ) { msg6 = 'The Range End Quantity can not be zero or blank!'; msg6 = '
  • ' + msg6 + '
  • '; } else if ( !jQuery.IsNumeric(rangeQty) ) { msg6 = 'The Range End Quantity must be a number!'; msg6 = '
  • ' + msg6 + '
  • '; } } // Build the Error Message errMsg = msg0 + msg1 + msg2 + msg3 + msg4 + msg5 + msg6; if ( errMsg.length ) { errMsg = '
      ' + errMsg + '
    '; jQuery("##formErrors").show('slow').html(errMsg); showHideSubmitButtons('hide'); recurResizeWindow(); return false; } else { jQuery("##formErrors").html('').hide(); showHideSubmitButtons('show'); recurResizeWindow(); return true; } } function showHideSubmitButtons(status) { if ( status == 'hide' ) { // Hide CS5 style submit button //jQuery('input[name="submitbutton"]').hide(); // Hide the CS6 footer buttons //jQuery("##clsProxyButtonHolder").hide(); // Disable the submit button var sButton = jQuery('input[name="submitbutton"]').attr('disabled','disabled'); //sButton.unbind(); sButton.addClass('ui-state-disabled'); } else if ( status == 'show') { // Show CS5 style submit button //jQuery('input[name="submitbutton"]').show(); // Show the CS6 footer buttons //jQuery("##clsProxyButtonHolder").show(); // Disable the submit button var sButton = jQuery('input[name="submitbutton"]').removeAttr('disabled'); //sButton.bind(); sButton.removeClass('ui-state-disabled'); } } function recurResizeWindow(){ setTimeout( function() { ResizeWindow(); }, 1000 ); } .formErrorsBox { min-height: 20px; height: auto !important; height: 20px; /* border: 1px ##000000 solid; */ } ##formErrors ul { list-style: none; } ##formErrors ul li { font-size: 10px; color: red; } ##submitStatusBo x{ display: none; } // Load the inline CSS as a CSS Resource application.ptCalendar.scripts.addHeaderCSS(recurrenceBuilderFormCSS, "TERTIARY"); // Load the inline JavaScript after the libraries have loaded application.ptCalendar.scripts.addFooterJS(recurrenceBuilderFormJS, "TERTIARY"); // PRIMARY, SECONDARY, TERTIARY
    Recurrence Details:
    checked="checked">
    Recurrence Pattern:
    checked="checked">  
    --->
    Range of Recurrence:
    var recurrenceformID = application.ptCalendar.getEventRecurrenceFormID(); // Get the Date/Time data based on the UUID var recurrenceArray = application.ptCalendar.recurrenceBuilderDAO.getRecurrence(uniqueID=arguments.recurrenceID); // Check that we have data if ( ArrayLen(recurrenceArray) ) dataPageID = recurrenceArray[1].pageid; else dataPageID = 0; // Call the FORMS delete function return application.ptCalendar.forms.renderDeleteForm( formID=recurrenceformID ,dataPageID=dataPageID ,title=arguments.title ,callback=arguments.callback ,cbIDlist=arguments.cbIDlist );