Thanks for the quick reply. It appears there was another mistake in the code (their most of the time is I suppose).
The problem was not the callback function, it was the calendarUrl variable. For some reason it did not get set to the right value at instantiation (I suppose I don't understand the option concept in mootools enough). By modifying the code so it does write the right url to the calendarUrl variable I fixed the problem. It appears the google data api does not have a problem with calling a class method as callback :) Regards Kyran On 8 jan, 09:37, Trevor Johns <[email protected]> wrote: > On Wed, Jan 7, 2009 at 1:55 PM, Kyran <[email protected]> wrote: > > > Hey, > > > For my site I'm using the calendar api to format all events into a > > nice list. Nothing really fancy. > > > As I'm using the mootools library I figured it would be if I could put > > all my google calendar functionality into a class. > > > Unfortunately after restructuring the code this way I can no longer > > get the eventsfeed. I get the following error when the line > > "this.googleService.getEventsFeed(futureEventsQuery, this.handleFeed, > > this.handleError);" > > is executed : > > XML tag name mismatch (expected meta) > >http://www.google.com/uds/api/gdata/1.6/ade37c0dee097720d54a5070af58d... > > Line 96 > > > Can I use the api from within a mootools class, or should I just > > reverse back to calling all the calendar api related stuff from the > > main function? > > > Here's the code for the class: > > var googleCalendar = new Class({ > > Implements: [Options, Events], > > options: { > > calendarFeedUrl: "http://www.google.com/calendar/feeds/ > > [email protected]/public/full", > > }, > > initialize: function(options){ > > this.setOptions(options); > > this.getCalendarFeed(); > > }, > > calendarFeedUrl: "", > > googleService: "ieps", > > entries: [], > > getCalendarFeed: function(){ > > google.gdata.client.init(this.handleInitError); > > this.googleService = new > > google.gdata.calendar.CalendarService > > ('exodub-exodub_calendar-1.0'); > > > var futureEventsQuery = new > > google.gdata.calendar.CalendarEventQuery > > (this.calendarFeedUrl); > > futureEventsQuery.setFutureEvents(); > > > this.googleService.getEventsFeed(futureEventsQuery, > > this.handleFeed, > > this.handleError); > > }, > > handleFeed: function(calendarFeed){ > > alert("yes"); > > this.entries = calendarFeed; > > }, > > handleError: function(e){ > > alert("An error occured!"); > > alert(e.cause ? e.cause.statusText : e.message); > > }, > > createEventTable: function(table){ > > alert((this.entries)[0].getTitle().getText()); > > for (var i = 0; i < (this.entries).length; i++){ > > var eventEntry = this.entries[i]; > > alert(eventEntry.getTitle().getText()); > > var newHTMLRow = document.createElement('tr'); > > > HTMLContent = > > (eventEntry.getTimes())[0].getStartTime().getDate > > ().toDateString(); > > this.addTableElement(newHTMLRow, HTMLContent); > > > HTMLContent = eventEntry.getTitle().getText(); > > this.addTableElement(newHTMLRow, HTMLContent); > > > HTMLContent = HTMLcontent = > > (eventEntry.getLocations()) > > [0].getValueString(); > > this.addTableElement(newHTMLRow, HTMLContent); > > > table.appendChild(newHTMLRow); > > } > > }, > > addTableElement: function(row,content){ > > item = document.createElement('td'); > > item.innerHTML = content; > > item.setStyle('visibility','hidden'); > > row.addChild(item); > > }, > > handleInitError: function(e){ > > //Do nothing > > }, > > }); > > > In the main function (which is called after domready), I instantiate > > the class and call > > googleCalendarInstance.createEventTable($('gigs_go_here')); > > but it already goes wrong during the instantiation. > > > Thanks already > > > Kyran > > Kyran, > I'm not familiar with MooTools classes, but the most likely > explanation I can think of is that it's somehow interfering with the > callback after making a server request. > > Maybe somebody else on this list is more familiar with it than I am. > Barring that, I'd recommend avoiding using MooTools if you can't get > it to work. > > -- > Trevor Johns --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Calendar Data API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-calendar-help-dataapi?hl=en -~----------~----~----~----~------~----~------~--~---
