paul@0 | 1 | var EXPORTED_SYMBOLS = [ "fburl" ]; |
paul@0 | 2 | |
paul@0 | 3 | const Cc = Components.classes; |
paul@0 | 4 | const Ci = Components.interfaces; |
paul@0 | 5 | const Cu = Components.utils; |
paul@0 | 6 | |
paul@0 | 7 | Cu.import("resource://calendar/modules/calUtils.jsm"); |
paul@0 | 8 | |
paul@0 | 9 | if ("undefined" == typeof(fburl)) { |
paul@0 | 10 | var fburl = {}; |
paul@0 | 11 | }; |
paul@0 | 12 | |
paul@0 | 13 | const calIFreeBusyInterval = Ci.calIFreeBusyInterval; |
paul@0 | 14 | const calIDateTime = Ci.calIDateTime; |
paul@0 | 15 | |
paul@0 | 16 | const fbUrlProviderClassID = Components.ID("{11291d94-b457-4322-bfba-ae9df4b6a3c1}"); |
paul@0 | 17 | |
paul@0 | 18 | fburl.fbUrlProvider = function(cal) { this.cal = cal; }; |
paul@0 | 19 | |
paul@0 | 20 | fburl.fbUrlProvider.prototype = { |
paul@0 | 21 | classID: fbUrlProviderClassID, |
paul@0 | 22 | |
paul@0 | 23 | getFreeBusyIntervals: function (aCalId, aRangeStart, aRangeEnd, aBusyTypes, aListener) { |
paul@0 | 24 | |
paul@0 | 25 | var start = this.cal.createDateTime("20140923T100000Z"); |
paul@0 | 26 | var end = this.cal.createDateTime("20140923T120000Z"); |
paul@0 | 27 | |
paul@0 | 28 | var periods = []; |
paul@0 | 29 | var interval = new this.cal.FreeBusyInterval( |
paul@0 | 30 | aCalId, |
paul@0 | 31 | calIFreeBusyInterval.BUSY, // fbType |
paul@0 | 32 | start, end); |
paul@0 | 33 | periods.push(interval); |
paul@0 | 34 | aListener.onResult(null, periods); |
paul@0 | 35 | } |
paul@0 | 36 | }; |
paul@0 | 37 | |
paul@0 | 38 | fburl.initProvider = function() { |
paul@0 | 39 | cal.getFreeBusyService().addProvider(new fburl.fbUrlProvider(cal)); |
paul@0 | 40 | } |