Hi,
For people who asked to see the calendar code from my RIA entry, here 'tis
(sorry it's a bit late):
The calendar component was the Advanced version from DRK2, but I wasn't
actually using any of the advanced features of it - just the standard stuff
that's also in the basic calendar, I believe. Hey, I had great plans but not
enough time...
Here's the code for setting up the calendar - as all the events covered by
my app were held between Jan and March 2003, I limited the calendar to only
allowing dates from that period to be show/selected using the setDateRange
function:
var range = new Object();
range.begin = new Date(2003, 0, 1);
range.end = new Date(2003, 2, 31);
eventCalendar.setDisplayRange(range);
Then, I had to set the dates that would be initially selected (the entire
range) by looping over each month and adding them to an array. I think there
must be a better way to do this - in fact I'm sure of it! If anyone has any
ideas, please let me know...
dateRangeArray = new Array();
//hard-code the dates to select - not the best but will do for now
for (d = 1; d < 32; d++){
dateRangeArray[d] = new Date(2003, 0, d);
}
for (e = 1; e < 29; e++){
ee = e + 32;
dateRangeArray[ee] = new Date(2003, 1, e);
}
for (f = 1; f < 32; f++){
ff = f + 61;
dateRangeArray[ff] = new Date(2003, 2, f);
}
eventCalendar.setSelectedItems(dateRangeArray);
Next I set what month was initially displayed when the calendar loaded.
There's actually a bug in the component, where it always will show the
current month, ignoring this property, unless it's set on a different frame,
so I set it here (in case the bug ever gets fixed) and also on frame 10,
which is where the code jumped to everytime it needed to so something:
eventCalendar.setDisplayedMonth(new Date(2003, 0, 1));
The event handler for the calendar was the same as for the categories list
box. The problem I had here was the Flash sends dates in UTC format, with
the date plus the offset from GMT of the current time zone. No matter what I
did in CF (dateformat, parsedate, the LS date functions), the date always
ended up as 2002 instead of 2003. So, I asked on the fugli list and someone
there (I think it was someone there) pointed me to
http://darronschall.com/weblog/archives/000040.cfm - where a dateformat
function saved my life.
eventCalendar.setChangeHandler("onFilterChange");
onFilterChange = function(){
// get all selected items from the categories list box
var categoriesArray = categories_lb.getSelectedItems();
var categoriesList = "0";
for (var iCount=0; iCount<categoriesArray.length; iCount++){
categoriesList = categoriesList + "," +
categoriesArray[iCount]["data"];
}
// get all selected dates from the calendar
var datesArray = eventCalendar.getSelectedItems();
// use the dateformat function to convert each date to something CF
will understand
var datesList = dateFormat(new Date(2000,0,1),"mm/dd/yyyy");
for(i=0; i<datesArray.length; i++){
datesList = datesList + "," +
dateFormat(datesArray[i],"mm/dd/yyyy");
}
// call the CFC with the list of categories and list of dates as
parameters
FestivalService.getEventsByCategory(categoriesList,datesList);
}
And that's basically it! Don't ask any hard questions, because I *really*
don't know what I'm doing, actually.
Cheers!
Kay.
---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
MX Downunder AsiaPac DevCon - http://mxdu.com/