diff --git a/calendar/import-export/Makefile.in b/calendar/import-export/Makefile.in index cd36a3e3701..bf0b13530a3 100644 --- a/calendar/import-export/Makefile.in +++ b/calendar/import-export/Makefile.in @@ -52,6 +52,7 @@ EXTRA_SCRIPTS = \ calListFormatter.js \ calMonthGridPrinter.js \ calOutlookCSVImportExport.js \ + calWeekPrinter.js \ $(NULL) # Use NSINSTALL to make the directory, as there's no mtime to preserve. diff --git a/calendar/import-export/calImportExportModule.js b/calendar/import-export/calImportExportModule.js index d2fdfb76fa7..ca1bd5be871 100644 --- a/calendar/import-export/calImportExportModule.js +++ b/calendar/import-export/calImportExportModule.js @@ -75,6 +75,13 @@ const componentData = category: "cal-print-formatters", categoryEntry: "cal-month-printer", service: false}, + {cid: Components.ID("{2d6ec97b-9109-4b92-89c5-d4b4806619ce}"), + contractid: "@mozilla.org/calendar/printformatter;1?type=weekplan", + script: "calWeekPrinter.js", + constructor: "calWeekPrinter", + category: "cal-print-formatters", + categoryEntry: "cal-week-planner-printer", + service: false}, {cid: Components.ID("{64a5d17a-0497-48c5-b54f-72b15c9e9a14}"), contractid: "@mozilla.org/calendar/import;1?type=csv", diff --git a/calendar/import-export/calWeekPrinter.js b/calendar/import-export/calWeekPrinter.js new file mode 100644 index 00000000000..c648491d3df --- /dev/null +++ b/calendar/import-export/calWeekPrinter.js @@ -0,0 +1,293 @@ +/* -*- Mode: javascript; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Calendar code. + * + * The Initial Developer of the Original Code is + * Joey Minta + * Portions created by the Initial Developer are Copyright (C) 2006 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Matthew Willis + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/** + * Prints a two column view of a week of events, much like a paper day-planner + */ + +function calWeekPrinter() { + this.wrappedJSObject = this; +} + +calWeekPrinter.prototype.QueryInterface = +function QueryInterface(aIID) { + if (!aIID.equals(Components.interfaces.nsISupports) && + !aIID.equals(Components.interfaces.calIPrintFormatter)) { + throw Components.results.NS_ERROR_NO_INTERFACE; + } + + return this; +}; + +calWeekPrinter.prototype.getName = +function weekPrint_getName() { + return calGetString("calendar", "weekPrinterName"); +}; +calWeekPrinter.prototype.__defineGetter__("name", calWeekPrinter.prototype.getName); + +calWeekPrinter.prototype.formatToHtml = +function weekPrint_format(aStream, aStart, aEnd, aCount, aItems, aTitle) { + // Create the e4x framework of the HTML document + var html = ; + html.appendChild( + + {aTitle} + +