126 строки
5.3 KiB
XML
126 строки
5.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- ***** 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 <jminta@gmail.com>
|
|
- Portions created by the Initial Developer are Copyright (C) 2006
|
|
- the Initial Developer. All Rights Reserved.
|
|
-
|
|
- Contributor(s):
|
|
- Philipp Kewisch <mozilla@kewis.ch>
|
|
-
|
|
- 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 LGPL or the GPL. 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 ***** -->
|
|
|
|
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
|
|
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
|
|
|
|
<!-- DTD File with all strings specific to the file -->
|
|
<!DOCTYPE page
|
|
[
|
|
<!ENTITY % dtd1 SYSTEM "chrome://calendar/locale/calendar.dtd" > %dtd1;
|
|
]>
|
|
|
|
<dialog id="chooseCalendar"
|
|
title="&calendar.select.dialog.title;"
|
|
windowtype="Calendar:CalendarPicker"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
buttons="accept,cancel"
|
|
onload="loadCalendars();"
|
|
ondialogaccept="return doOK();"
|
|
persist="screenX screenY height width">
|
|
|
|
<script type="application/javascript" src="chrome://calendar/content/calendar-ui-utils.js"/>
|
|
<script type="application/javascript"><![CDATA[
|
|
function loadCalendars() {
|
|
const calendarManager = Components.classes["@mozilla.org/calendar/manager;1"]
|
|
.getService(Components.interfaces.calICalendarManager);
|
|
var listbox = document.getElementById("calendar-list");
|
|
var composite = window.opener.getCompositeCalendar();
|
|
var selectedIndex = 0;
|
|
var calendars;
|
|
|
|
if (window.arguments[0].calendars) {
|
|
calendars = window.arguments[0].calendars;
|
|
} else {
|
|
calendars = calendarManager.getCalendars({});
|
|
}
|
|
calendars = sortCalendarArray(calendars);
|
|
|
|
for (var i = 0; i < calendars.length; i++) {
|
|
var cal = calendars[i];
|
|
var listItem = document.createElement("listitem");
|
|
|
|
var colorCell = document.createElement("listcell");
|
|
try {
|
|
var calColor = cal.getProperty('color');
|
|
colorCell.style.background = calColor || "#a8c2e1";
|
|
} catch(e) {}
|
|
listItem.appendChild(colorCell);
|
|
|
|
var nameCell = document.createElement("listcell");
|
|
nameCell.setAttribute("label", cal.name);
|
|
listItem.appendChild(nameCell);
|
|
|
|
listItem.calendar = cal;
|
|
listbox.appendChild(listItem);
|
|
listItem.setAttribute("flex","1");
|
|
|
|
// Select the default calendar of the opening calendar window.
|
|
if (cal.id == composite.defaultCalendar.id) {
|
|
selectedIndex = i;
|
|
}
|
|
}
|
|
document.getElementById("prompt").value = window.arguments[0].promptText;
|
|
|
|
if (calendars.length) {
|
|
listbox.ensureIndexIsVisible(selectedIndex);
|
|
var selItem = listbox.getItemAtIndex(selectedIndex);
|
|
listbox.timedSelect(selItem, 0);
|
|
} else {
|
|
// If there are no calendars, then disable the accept button
|
|
document.documentElement.getButton("accept").setAttribute("disabled", "true");
|
|
}
|
|
}
|
|
|
|
function doOK() {
|
|
var listbox = document.getElementById("calendar-list");
|
|
window.arguments[0].onOk(listbox.selectedItem.calendar);
|
|
}
|
|
]]></script>
|
|
|
|
<vbox id="dialog-box" flex="1">
|
|
<textbox id="prompt" class="plain" readonly="true" multiline="true" rows="2"/>
|
|
<listbox id="calendar-list" rows="5" flex="1" seltype="single">
|
|
<listcols>
|
|
<listcol/>
|
|
<listcol flex="1"/>
|
|
</listcols>
|
|
</listbox>
|
|
</vbox>
|
|
</dialog>
|