var retHTML = ""; var iCalFooterJS = ""; var icalData = StructNew(); var appConfig = getAppConfig(); var dayBeginTime = getDayBeginTime(); var dayEndTime = getDayEndTime(); var contactEmail = "noreply@organization.org"; var startDateTime = ""; var endDateTime = ""; var alldayEvent = 0; var actionApp = getAppBeanName(); var actionBean = "calEventsiCalService"; var actionMethod = "iCalProxy"; var downloadEventIcons = '/ADF/thirdParty/jquery/icalendar/1.1.pt/icalendar.png'; var CSRF_Token = application.ADF.csSecurity.getCSRF_Token(); var actionURL = "#application.ADF.ajaxProxy#?app=#actionApp#&bean=#actionBean#&method=#actionMethod#&CSRF_Token=#CSRF_Token#"; //var actionURL = "#request.subsiteCache[1].url#_cs_apps/pt_calendar/customcf/icalProxy.cfm"; if ( LEN(TRIM(arguments.downloadIconsPath)) ) downloadEventIcons = arguments.downloadIconsPath; if ( LEN(TRIM(arguments.allDay)) AND arguments.allDay ) { //sTime = dayBeginTime; //sTime = dayEndTime; startDateTime = DateFormat(arguments.eventDate); // For all day events add 1 date with out a time endDateTime = DateFormat(DateAdd("d",1,arguments.eventDate)); alldayEvent = 1; } else { alldayEvent = 0; startDateTime = application.ptCalendar.date.formatDateTimeISO8601( date=arguments.eventDate ,time=arguments.startTime ); if ( LEN(TRIM(arguments.endTime)) EQ 0 ) arguments.endTime = dayEndTime; endDateTime = application.ptCalendar.date.formatDateTimeISO8601( date=arguments.eventDate ,time=arguments.endTime ); } if ( LEN(TRIM(arguments.organizerEmail)) ) contactEmail=arguments.organizerEmail; else if ( StructKeyExists(appConfig,"iCalFromEmail") AND LEN(TRIM(appConfig.iCalFromEmail)) ) contactEmail=appConfig.iCalFromEmail; // TODO: get from a default setting in the App config or use the event organizer // load jQuery headers application.ptCalendar.scripts.loadJQuery(); // Load the DateJS Plugin Headers application.ptCalendar.scripts.loadDateJS(); // load header for jQuery iCalendar application.ptCalendar.scripts.loadJQueryiCalendar(); // Load the inline JavaScript after the libraries have loaded application.ptCalendar.scripts.addFooterJS(iCalFooterJS, "TERTIARY"); // PRIMARY, SECONDARY, TERTIARY
#arguments.downloadText#
var iCalOutput = ""; #arguments.content# // Convert the supplied parameters into formated variables structure with var eventStruct = arguments; eventStruct.startDateTime = ParseDateTime(DateFormat(arguments.eventDate) & " " & TimeFormat(arguments.startTime)); eventStruct.endDateTime = ParseDateTime(DateFormat(arguments.eventDate) & " " & TimeFormat(arguments.endTime)); #formatDataForiCal(eventStruct)# #icaloutput# var retStr = ""; var text = arguments.textStr; while ( len(text) > arguments.lineLength ) { retStr = retStr & Mid(text, 1, arguments.lineLength) & arguments.lineBreak; text = Mid(text, arguments.lineLength+1, Len(text)); } retStr = retStr & text; return retStr; var vCal = ""; var CRLF=chr(13)&chr(10); var date_now = Now(); if (NOT StructKeyExists(stEvent,"organizerName")) stEvent.organizerName = ""; if (NOT StructKeyExists(stEvent,"organizerEmail")) stEvent.organizerEmail = "calendar@organization.org"; //FIX if (NOT StructKeyExists(stEvent,"eventURL")) stEvent.eventURL = ""; if (NOT StructKeyExists(stEvent,"title")) stEvent.title = ""; if (NOT StructKeyExists(stEvent,"subject")) stEvent.subject = ""; if (NOT StructKeyExists(stEvent,"location")) stEvent.location = ""; // Event Description\n---------------------------\nProvide the complete event details\n\nUse backslash+n sequences for newlines. if (NOT StructKeyExists(stEvent,"description")) stEvent.description = ""; if (NOT StructKeyExists(stEvent,"startDateTime")) stEvent.startDateTime = DateConvert('local2Utc', date_now); else stEvent.startDateTime = DateConvert('local2Utc', stEvent.startDateTime); if (NOT StructKeyExists(stEvent,"endDateTime")) stEvent.endDateTime = DateConvert('local2Utc', date_now); else stEvent.endDateTime = DateConvert('local2Utc', stEvent.endDateTime); if (NOT StructKeyExists(stEvent,"priority")) stEvent.priority = "1"; if (NOT StructKeyExists(stEvent,"AlarmTrigger")) // '-PT30M' - alert user 30 minutes before meeting begins stEvent.AlarmTrigger = ""; vCal = 'BEGIN:VCALENDAR' & CRLF; vCal = vCal & 'PRODID: -//CFLIB.ORG//iCalUS()//EN' & CRLF; vCal = vCal & 'VERSION:2.0' & CRLF; vCal = vCal & 'METHOD:PUBLISH' & CRLF; vCal = vCal & 'BEGIN:VEVENT' & CRLF; vCal = vCal & 'UID:#date_now.getTime()#.ptCalendar' & CRLF; // creates a unique identifier if ( LEN(TRIM(stEvent.eventURL)) ) vCal = vCal & 'URL:#stEvent.eventURL#' & CRLF; if ( LEN(TRIM(stEvent.organizerName)) AND LEN(TRIM(stEvent.organizerEmail)) ) vCal = vCal & 'ORGANIZER;CN="#stEvent.organizerName#":MAILTO:#stEvent.organizerEmail#' & CRLF; else if ( LEN(TRIM(stEvent.organizerEmail)) ) vCal = vCal & 'MAILTO:#stEvent.organizerEmail#' & CRLF; vCal = vCal & 'DTSTAMP:' & DateFormat(date_now, 'yyyymmdd') & 'T' & TimeFormat(date_now, 'HHmmss') & 'Z' & CRLF; if ( LEN(TRIM(stEvent.title)) ) vCal = vCal & 'TITLE:#iCalTextWrap(stEvent.title)#' & CRLF; vCal = vCal & 'DTSTART:' & DateFormat(stEvent.startDateTime,'yyyymmdd') & 'T' & TimeFormat(stEvent.startDateTime, 'HHmmss') & 'Z' & CRLF; vCal = vCal & 'DTEND:' & DateFormat(stEvent.endDateTime,'yyyymmdd') & 'T' & TimeFormat(stEvent.endDateTime, 'HHmmss') & 'Z' & CRLF; if ( LEN(TRIM(stEvent.subject)) ) vCal = vCal & 'SUMMARY:#iCalTextWrap(stEvent.subject)#' & CRLF; if ( LEN(TRIM(stEvent.location)) ) vCal = vCal & 'LOCATION:#iCalTextWrap(stEvent.location)#' & CRLF; if ( LEN(TRIM(stEvent.description)) ) vCal = vCal & 'DESCRIPTION:#iCalTextWrap(stEvent.description)#' & CRLF; vCal = vCal & 'PRIORITY:#stEvent.priority#' & CRLF; vCal = vCal & 'TRANSP:OPAQUE' & CRLF; vCal = vCal & 'CLASS:PUBLIC' & CRLF; if ( LEN(TRIM(stEvent.AlarmTrigger)) ) { vCal = vCal & 'BEGIN:VALARM' & CRLF; vCal = vCal & 'TRIGGER:#stEvent.AlarmTrigger#' & CRLF; vCal = vCal & 'ACTION:DISPLAY' & CRLF; vCal = vCal & 'DESCRIPTION:Reminder' & CRLF; vCal = vCal & 'END:VALARM' & CRLF; } vCal = vCal & 'END:VEVENT' & CRLF; vCal = vCal & 'END:VCALENDAR'; // Return the concantinated string return Trim(vCal); var vCal = ""; var CRLF=chr(13)&chr(10); var date_now = Now(); if (NOT StructKeyExists(stEvent,"organizerName")) stEvent.organizerName = ""; if (NOT StructKeyExists(stEvent,"organizerEmail")) stEvent.organizerEmail = "noreply@organization.org"; //FIX if (NOT StructKeyExists(stEvent,"eventURL")) stEvent.eventURL = ""; if (NOT StructKeyExists(stEvent,"title")) stEvent.title = ""; // Event subject if (NOT StructKeyExists(stEvent,"subject")) stEvent.subject = ""; //Event location if (NOT StructKeyExists(stEvent,"location")) stEvent.location = ""; // Event description\n---------------------------\nProvide the complete event details\n\nUse backslash+n sequences for newlines. if (NOT StructKeyExists(stEvent,"description")) stEvent.description = ""; if (NOT StructKeyExists(stEvent,"startDateTime")) // This value must be in Eastern time!!! stEvent.startDateTime = ParseDateTime(date_now); if (NOT StructKeyExists(stEvent,"endDateTime")) // This value must be in Eastern time!!! stEvent.endDateTime = ParseDateTime(date_now); if (NOT StructKeyExists(stEvent,"priority")) stEvent.priority = "1"; if (NOT StructKeyExists(stEvent,"AlarmTrigger")) // '-PT30M' - alert user 30 minutes before meeting begins stEvent.AlarmTrigger = ""; vCal = 'BEGIN:VCALENDAR' & CRLF; vCal = vCal & 'PRODID: -//CFLIB.ORG//iCalUS()//EN' & CRLF; vCal = vCal & 'VERSION:2.0' & CRLF; vCal = vCal & 'METHOD:REQUEST' & CRLF; vCal = vCal & 'BEGIN:VTIMEZONE' & CRLF; vCal = vCal & 'TZID:US-Eastern' & CRLF; vCal = vCal & 'BEGIN:STANDARD' & CRLF; vCal = vCal & 'DTSTART:20061101T020000' & CRLF; vCal = vCal & 'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11' & CRLF; vCal = vCal & 'TZOFFSETFROM:-0400' & CRLF; vCal = vCal & 'TZOFFSETTO:-0500' & CRLF; vCal = vCal & 'TZNAME:Standard Time' & CRLF; vCal = vCal & 'END:STANDARD' & CRLF; vCal = vCal & 'BEGIN:DAYLIGHT' & CRLF; vCal = vCal & 'DTSTART:20060301T020000' & CRLF; vCal = vCal & 'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3' & CRLF; vCal = vCal & 'TZOFFSETFROM:-0500' & CRLF; vCal = vCal & 'TZOFFSETTO:-0400' & CRLF; vCal = vCal & 'TZNAME:Daylight Savings Time' & CRLF; vCal = vCal & 'END:DAYLIGHT' & CRLF; vCal = vCal & 'END:VTIMEZONE' & CRLF; vCal = vCal & 'BEGIN:VEVENT' & CRLF; vCal = vCal & 'UID:#date_now.getTime()#.ptCalendar' & CRLF; // creates a unique identifier if ( LEN(TRIM(stEvent.eventURL)) ) vCal = vCal & 'URL:#stEvent.eventURL#' & CRLF; if ( LEN(TRIM(stEvent.organizerName)) AND LEN(TRIM(stEvent.organizerEmail)) ) vCal = vCal & 'ORGANIZER;CN="#stEvent.organizerName#":MAILTO:#stEvent.organizerEmail#' & CRLF; else if ( LEN(TRIM(stEvent.organizerEmail)) ) vCal = vCal & 'MAILTO:#stEvent.organizerEmail#' & CRLF; vCal = vCal & 'DTSTAMP:' & DateFormat(date_now, 'yyyymmdd') & 'T' & TimeFormat(date_now, 'HHmmss') & CRLF; if ( LEN(TRIM(stEvent.title)) ) vCal = vCal & 'TITLE:#iCalTextWrap(stEvent.title)#' & CRLF; vCal = vCal & 'DTSTART;TZID=US-Eastern:' & DateFormat(stEvent.startDateTime,'yyyymmdd') & 'T' & TimeFormat(stEvent.startDateTime, 'HHmmss') & CRLF; vCal = vCal & 'DTEND;TZID=US-Eastern:' & DateFormat(stEvent.endDateTime,'yyyymmdd') & 'T' & TimeFormat(stEvent.endDateTime, 'HHmmss') & CRLF; if ( LEN(TRIM(stEvent.subject)) ) vCal = vCal & 'SUMMARY:#iCalTextWrap(stEvent.subject)#' & CRLF; if ( LEN(TRIM(stEvent.location)) ) vCal = vCal & 'LOCATION:#iCalTextWrap(stEvent.location)#' & CRLF; if ( LEN(TRIM(stEvent.description)) ) vCal = vCal & 'DESCRIPTION:#iCalTextWrap(stEvent.description)#' & CRLF; vCal = vCal & 'PRIORITY:#stEvent.priority#' & CRLF; vCal = vCal & 'TRANSP:OPAQUE' & CRLF; vCal = vCal & 'CLASS:PUBLIC' & CRLF; if ( LEN(TRIM(stEvent.AlarmTrigger)) ) { vCal = vCal & 'BEGIN:VALARM' & CRLF; vCal = vCal & 'TRIGGER:#stEvent.AlarmTrigger#' & CRLF; vCal = vCal & 'ACTION:DISPLAY' & CRLF; vCal = vCal & 'DESCRIPTION:Reminder' & CRLF; vCal = vCal & 'END:VALARM' & CRLF; } vCal = vCal & 'END:VEVENT' & CRLF; vCal = vCal & 'END:VCALENDAR'; return Trim(vCal); var retStruct = StructNew(); return retStruct; var retString = ""; var dataStruct = StructNew(); var currData = arguments.recurrenceData; /* DEV */ return retString;