1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/chrome.manifest Sat Sep 27 17:43:21 2014 +0200
1.3 @@ -0,0 +1,3 @@
1.4 +resource fburl modules/
1.5 +content fburl chrome/content/
1.6 +overlay chrome://messenger/content/messenger.xul chrome://fburl/content/fburl-overlay.xul
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/chrome/content/fburl-overlay.js Sat Sep 27 17:43:21 2014 +0200
2.3 @@ -0,0 +1,3 @@
2.4 +Components.utils.import("resource://fburl/fburl.js");
2.5 +
2.6 +fburl.initProvider();
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/chrome/content/fburl-overlay.xul Sat Sep 27 17:43:21 2014 +0200
3.3 @@ -0,0 +1,9 @@
3.4 +<?xml version="1.0"?>
3.5 +
3.6 +<overlay id="fburl-browser-overlay"
3.7 + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
3.8 +
3.9 + <script type="application/x-javascript"
3.10 + src="chrome://fburl/content/fburl-overlay.js" />
3.11 +
3.12 +</overlay>
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/install.rdf Sat Sep 27 17:43:21 2014 +0200
4.3 @@ -0,0 +1,32 @@
4.4 +<?xml version="1.0"?>
4.5 +
4.6 +<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4.7 + xmlns:em="http://www.mozilla.org/2004/em-rdf#">
4.8 +
4.9 + <Description about="urn:mozilla:install-manifest">
4.10 + <em:id>fburl@boddie.org.uk</em:id>
4.11 + <em:type>2</em:type>
4.12 + <em:name>fburl</em:name>
4.13 + <em:version>0.1</em:version>
4.14 + <em:creator>Paul Boddie</em:creator>
4.15 +
4.16 + <em:targetApplication>
4.17 + <Description>
4.18 + <!-- Thunderbird -->
4.19 + <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
4.20 + <em:minVersion>31.0</em:minVersion>
4.21 + <em:maxVersion>*</em:maxVersion>
4.22 + </Description>
4.23 + </em:targetApplication>
4.24 +
4.25 + <em:requires>
4.26 + <Description>
4.27 + <!-- Lightning -->
4.28 + <em:id>{e2fda1a4-762b-4020-b5ad-a41df1933103}</em:id>
4.29 + <em:minVersion>3.3</em:minVersion>
4.30 + <em:maxVersion>*</em:maxVersion>
4.31 + </Description>
4.32 + </em:requires>
4.33 +
4.34 + </Description>
4.35 +</RDF>
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/modules/fburl.js Sat Sep 27 17:43:21 2014 +0200
5.3 @@ -0,0 +1,40 @@
5.4 +var EXPORTED_SYMBOLS = [ "fburl" ];
5.5 +
5.6 +const Cc = Components.classes;
5.7 +const Ci = Components.interfaces;
5.8 +const Cu = Components.utils;
5.9 +
5.10 +Cu.import("resource://calendar/modules/calUtils.jsm");
5.11 +
5.12 +if ("undefined" == typeof(fburl)) {
5.13 + var fburl = {};
5.14 +};
5.15 +
5.16 +const calIFreeBusyInterval = Ci.calIFreeBusyInterval;
5.17 +const calIDateTime = Ci.calIDateTime;
5.18 +
5.19 +const fbUrlProviderClassID = Components.ID("{11291d94-b457-4322-bfba-ae9df4b6a3c1}");
5.20 +
5.21 +fburl.fbUrlProvider = function(cal) { this.cal = cal; };
5.22 +
5.23 +fburl.fbUrlProvider.prototype = {
5.24 + classID: fbUrlProviderClassID,
5.25 +
5.26 + getFreeBusyIntervals: function (aCalId, aRangeStart, aRangeEnd, aBusyTypes, aListener) {
5.27 +
5.28 + var start = this.cal.createDateTime("20140923T100000Z");
5.29 + var end = this.cal.createDateTime("20140923T120000Z");
5.30 +
5.31 + var periods = [];
5.32 + var interval = new this.cal.FreeBusyInterval(
5.33 + aCalId,
5.34 + calIFreeBusyInterval.BUSY, // fbType
5.35 + start, end);
5.36 + periods.push(interval);
5.37 + aListener.onResult(null, periods);
5.38 + }
5.39 +};
5.40 +
5.41 +fburl.initProvider = function() {
5.42 + cal.getFreeBusyService().addProvider(new fburl.fbUrlProvider(cal));
5.43 +}