mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-07 12:15:51 +00:00
a85fe1c62e
- move some utility code into new calendarUtils.js - calendarCreation.xul only depends on calendarCreation.js and calendarUtils.js - remove old wizard.xul/js code and unused launch function
920 lines
42 KiB
XML
920 lines
42 KiB
XML
<?xml version="1.0"?>
|
|
<!-- ***** 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 OEone Calendar Code, released October 31st, 2001.
|
|
-
|
|
- The Initial Developer of the Original Code is OEone Corporation.
|
|
- Portions created by the Initial Developer are Copyright (C) 2001
|
|
- the Initial Developer. All Rights Reserved.
|
|
-
|
|
- Contributor(s): Garth Smedley <garths@oeone.com>
|
|
- Mike Potter <mikep@oeone.com>
|
|
- Colin Phillips <colinp@oeone.com>
|
|
- Chris Charabaruk <ccharabaruk@meldstar.com>
|
|
- ArentJan Banck <ajbanck@planet.nl>
|
|
- Mostafa Hosseini <mostafah@oeone.com>
|
|
- Matthew Willis <mattwillis@gmail.com>
|
|
-
|
|
- 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"?>
|
|
|
|
<!-- CSS File with all styles specific to the dialog -->
|
|
<?xml-stylesheet href="chrome://calendar/skin/eventDialog.css" ?>
|
|
<?xml-stylesheet href="chrome://calendar/content/datetimepickers/datetimepicker.css" ?>
|
|
|
|
<!-- CSS for selecting contacts to invite to event -->
|
|
<?xml-stylesheet href="chrome://calendar/skin/selectAddresses.css" ?>
|
|
|
|
<!-- DTD File with all strings specific to the calendar -->
|
|
<!DOCTYPE dialog
|
|
[
|
|
<!ENTITY % dtd1 SYSTEM "chrome://calendar/locale/global.dtd" > %dtd1;
|
|
<!ENTITY % dtd2 SYSTEM "chrome://calendar/locale/calendar.dtd" > %dtd2;
|
|
<!ENTITY % dtd3 SYSTEM "chrome://calendar/locale/selectAddresses.dtd" > %dtd3;
|
|
]>
|
|
|
|
|
|
<dialog id="calendar-new-component-window"
|
|
title="Calendar Component"
|
|
onload="loadCalendarEventDialog()"
|
|
buttons="accept,cancel"
|
|
ondialogaccept="return onOKCommand();"
|
|
ondialogcancel="return true;"
|
|
persist="screenX screenY"
|
|
minwidth="500" minheight="500"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
xmlns:nc="http://home.netscape.com/NC-rdf#">
|
|
|
|
<stringbundleset id="stringbundleset">
|
|
<stringbundle id="bundle_calendar" src="chrome://calendar/locale/calendar.properties"/>
|
|
</stringbundleset>
|
|
|
|
<script type="application/x-javascript">
|
|
var DTD_noEmailMessage = "&ab-selectAddressesDialogNoEmailMessage.label;";
|
|
var DTD_toPrefix = "&ab-selectAddressesDialogPrefixTo.label;";
|
|
</script>
|
|
|
|
|
|
<!-- Select addresses commands -->
|
|
<commandset id="selectAddressesCommands">
|
|
<command id="addToInviteList" oncommand="addSelectedAddressesIntoInviteBucket( '', '' );" disabled="true" />
|
|
<command id="removeFromInviteList" oncommand="removeSelectedFromInviteBucket();" disabled="true" />
|
|
</commandset>
|
|
|
|
|
|
<!-- Javascript includes -->
|
|
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
|
|
<script type="application/x-javascript" src="chrome://calendar/content/calendarUtils.js"/>
|
|
<script type="application/x-javascript" src="chrome://calendar/content/calendar.js"/>
|
|
<script type="application/x-javascript" src="chrome://calendar/content/dateUtils.js"/>
|
|
<script type="application/x-javascript" src="chrome://calendar/content/eventDialog.js"/>
|
|
<script type="application/x-javascript" src="chrome://calendar/content/selectAddressesDialog.js"/>
|
|
<script type="application/x-javascript" src="chrome://calendar/content/attachFile.js"/>
|
|
|
|
<!-- NEEDED FOR APPLICATION SUPPORT -->
|
|
<script type="application/x-javascript" src="chrome://calendar/content/applicationUtil.js"/>
|
|
|
|
<!-- needed to get the default categories -->
|
|
<script type="application/x-javascript" src="chrome://calendar/content/pref/rootCalendarPref.js"/>
|
|
|
|
<!-- Data used in JS from dtd -->
|
|
|
|
<dataset>
|
|
<data id="data-event-title-new" value="&event.title.new;" />
|
|
<data id="data-event-title-edit" value="&event.title.edit;" />
|
|
<data id="data-todo-title-new" value="&todo.title.new;" />
|
|
<data id="data-todo-title-edit" value="&todo.title.edit;" />
|
|
<data id="onthe-text" value="&onthe-text;" />
|
|
<data id="last-text" value="&last-text;" />
|
|
<data id="ofthemonth-text" value="&ofthemonth-text;" />
|
|
</dataset>
|
|
|
|
<!-- Dialog content -->
|
|
|
|
<tabbox>
|
|
<tabs>
|
|
<tab label="&newevent.general.tab.label;"/>
|
|
<tab label="&newevent.recurrence.tab.label;"/>
|
|
<tab label="&newevent.attendees.tab.label;"/>
|
|
<tab label="&newevent.attachments.tab.label;"/>
|
|
<tab label="&newevent.advanced.tab.label;"/>
|
|
</tabs>
|
|
<tabpanels>
|
|
<tabpanel>
|
|
<vbox flex="1">
|
|
<hbox flex="1">
|
|
<groupbox flex="1">
|
|
<caption label="General Settings"/>
|
|
<grid>
|
|
<columns>
|
|
<column />
|
|
<column flex="1"/>
|
|
</columns>
|
|
<rows>
|
|
<!-- Title -->
|
|
<row align="center">
|
|
<hbox pack="end">
|
|
<label for="title-field" value="&newevent.title.label;"/>
|
|
</hbox>
|
|
<textbox id="title-field"/>
|
|
</row>
|
|
<!-- Location -->
|
|
<row align="center">
|
|
<hbox pack="end">
|
|
<label for="location-field" value="&newevent.location.label;"/>
|
|
</hbox>
|
|
<textbox id="location-field"/>
|
|
</row>
|
|
<!-- Description -->
|
|
<row flex="1" align="start">
|
|
<hbox class="field-label-box-class" pack="end">
|
|
<label for="description-field"
|
|
value="&newevent.description.label;"/>
|
|
</hbox>
|
|
<textbox id="description-field"
|
|
multiline="true"
|
|
rows="1"
|
|
cols="65"
|
|
flex="1" />
|
|
</row>
|
|
<row align="center">
|
|
<!-- Categories -->
|
|
<hbox pack="end">
|
|
<label for="categories-menulist-menupopup"
|
|
value="&newtodo.categories.label;"/>
|
|
</hbox>
|
|
<hbox>
|
|
<menulist id="categories-field">
|
|
<menupopup id="categories-menulist-menupopup">
|
|
<menuitem label="&priority.level.none;" value="0"/>
|
|
</menupopup>
|
|
</menulist>
|
|
<spacer width="10px"/>
|
|
<!-- Server -->
|
|
<hbox align="center" flex="1">
|
|
<label id="server-field-label" value="&newevent.server.label;"/>
|
|
<menulist id="server-field">
|
|
<menupopup id="server-menulist-menupopup" datasources="rdf:null"
|
|
ref="urn:calendarcontainer">
|
|
<template>
|
|
<rule>
|
|
<menuitem uri="rdf:*"
|
|
value="rdf:http://home.netscape.com/NC-rdf#path"
|
|
label="rdf:http://home.netscape.com/NC-rdf#name"/>
|
|
</rule>
|
|
</template>
|
|
</menupopup>
|
|
</menulist>
|
|
</hbox>
|
|
</hbox>
|
|
</row>
|
|
<row align="center" flex="1">
|
|
<!-- Privacy -->
|
|
<hbox class="field-label-box-class" pack="end">
|
|
<!-- XXX Localise this: &newevent.private.label; -->
|
|
<label for="privacy-menulist" value="Privacy"/>
|
|
</hbox>
|
|
<hbox flex="1">
|
|
<menulist id="privacy-menulist" crop="none">
|
|
<menupopup>
|
|
<menuitem label="Public"
|
|
value="PUBLIC"/>
|
|
<menuitem label="Private"
|
|
value="PRIVATE"/>
|
|
<menuitem label="Confidential"
|
|
value="CONFIDENTIAL"/>
|
|
</menupopup>
|
|
</menulist>
|
|
<spacer width="10px"/>
|
|
<!-- Priority -->
|
|
<hbox align="center" flex="1">
|
|
<label id="priority-label"
|
|
for="priority-levels"
|
|
value="&newtodo.priority.label;"/>
|
|
<menulist id="priority-levels">
|
|
<menupopup>
|
|
<menuitem label="Not Specified" value="0"/>
|
|
<!-- XXX localize "&priority.level.none;" -->
|
|
<menuitem label="&priority.level.low;" value="9"/>
|
|
<menuitem label="&priority.level.medium;" value="5"/>
|
|
<menuitem label="&priority.level.high;" value="1"/>
|
|
</menupopup>
|
|
</menulist>
|
|
</hbox>
|
|
<spacer flex="1"/>
|
|
</hbox>
|
|
</row>
|
|
</rows>
|
|
</grid>
|
|
<hbox>
|
|
<separator class="thin"/>
|
|
</hbox>
|
|
</groupbox>
|
|
</hbox>
|
|
<hbox flex="1">
|
|
<!-- Schedule -->
|
|
<groupbox flex="1">
|
|
<caption label="Details"/>
|
|
<hbox>
|
|
<grid>
|
|
<columns>
|
|
<column/>
|
|
<column/>
|
|
</columns>
|
|
<rows>
|
|
<row>
|
|
<hbox pack="end" align="center">
|
|
<label for="component-type" value="&newevent.itemType.label;"/>
|
|
</hbox>
|
|
<hbox flex="1">
|
|
<menulist id="component-type" crop="none"
|
|
oncommand="processComponentType(this.value)">
|
|
<menupopup id="component-menulist-menupopup">
|
|
<menuitem label="&newevent.itemType.event.label;"
|
|
value="event"/>
|
|
<menuitem label="&newevent.itemType.todo.label;"
|
|
value="todo"/>
|
|
<!--<menuitem label="newevent.itemType.journal.label"
|
|
value="journal"
|
|
hidden="true"
|
|
disabled="true"/>-->
|
|
</menupopup>
|
|
</menulist>
|
|
<spacer flex="1"/>
|
|
</hbox>
|
|
</row>
|
|
<row>
|
|
<hbox pack="end" align="center">
|
|
<label id="event-start-datetime-label"
|
|
class="field-label-box-class"
|
|
value="From"
|
|
hidden-controller="event"
|
|
hidden="true"/>
|
|
<label id="task-start-datetime-label"
|
|
class="field-label-box-class"
|
|
value="Date"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
<!-- XXX Localise: &newevent.startdate.label; -->
|
|
</hbox>
|
|
<hbox flex="1">
|
|
<checkbox id="start-checkbox"
|
|
oncommand="onDateTimeCheckbox(this, 'start-datetime')"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
<datetimepicker id="start-datetime"
|
|
value=""
|
|
onchange="onDateTimePick( this );"/>
|
|
<spacer width="10px"/>
|
|
<hbox pack="end" align="center">
|
|
<checkbox id="all-day-event-checkbox"
|
|
label="&newevent.alldayevent.label;"
|
|
oncommand="commandAllDay()"
|
|
hidden-controller="event"
|
|
hidden="true"/>
|
|
</hbox>
|
|
<spacer flex="1"/>
|
|
</hbox>
|
|
</row>
|
|
<row>
|
|
<hbox pack="end" align="center">
|
|
<label id="event-end-datetime-label"
|
|
value="To"
|
|
hidden-controller="event"
|
|
hidden="true"/>
|
|
<label id="task-due-datetime-label"
|
|
value="&newtodo.duedate.label;"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
</hbox>
|
|
<hbox flex="1">
|
|
<checkbox id="due-checkbox"
|
|
oncommand="onDateTimeCheckbox(this, 'due-datetime')"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
<datetimepicker id="due-datetime"
|
|
value=""
|
|
onchange="onDateTimePick( this );"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
<datetimepicker id="end-datetime"
|
|
value=""
|
|
onchange="onDateTimePick( this );"
|
|
hidden-controller="event"
|
|
hidden="true"/>
|
|
<spacer flex="1"/>
|
|
</hbox>
|
|
</row>
|
|
|
|
<!-- Invalid end date/time warnings -->
|
|
<row align="center">
|
|
<spacer />
|
|
<label id="end-time-warning" class="warning-text-class"
|
|
value="&newevent.endtime.warning;" hidden="true"/>
|
|
</row>
|
|
<row align="center">
|
|
<spacer />
|
|
<label id="end-date-warning" class="warning-text-class"
|
|
value="&newevent.enddate.warning;" hidden="true"/>
|
|
</row>
|
|
|
|
<!-- Invalid due date/time warnings -->
|
|
<row align="center">
|
|
<spacer />
|
|
<label id="due-time-warning" class="warning-text-class"
|
|
value="&newtodo.duetime.warning;" hidden="true"/>
|
|
</row>
|
|
<row align="center">
|
|
<spacer />
|
|
<label id="due-date-warning" class="warning-text-class"
|
|
value="&newtodo.duedate.warning;" hidden="true"/>
|
|
</row>
|
|
|
|
<!-- Status -->
|
|
<row>
|
|
<hbox pack="end" align="center">
|
|
<label id="event-status-label"
|
|
for="event-status-menulist-menupopup"
|
|
value="&newevent.status.label;"/>
|
|
</hbox>
|
|
<hbox flex="1" align="center">
|
|
<menulist id="event-status-field"
|
|
hidden-controller="event"
|
|
hidden="true">
|
|
<menupopup id="event-status-menulist-menupopup">
|
|
<menuitem label="None"/>
|
|
<menuitem label="&newevent.status.tentative.label;"
|
|
value="TENTATIVE"/>
|
|
<menuitem label="&newevent.status.confirmed.label;"
|
|
value="CONFIRMED"/>
|
|
<menuitem label="&newevent.status.cancelled.label;"
|
|
value="CANCELLED"/>
|
|
</menupopup>
|
|
</menulist>
|
|
<menulist id="todo-status-field"
|
|
oncommand="processToDoStatus(this.value)"
|
|
hidden-controller="todo"
|
|
hidden="true">
|
|
<menupopup id="todo-status-menulist-menupopup">
|
|
<menuitem label="None"
|
|
value="None"/>
|
|
<menuitem label="Cancelled"
|
|
value="CANCELLED"/>
|
|
<menuitem label="Completed on"
|
|
value="COMPLETED"/>
|
|
<menuitem label="In Process"
|
|
value="IN-PROCESS"/>
|
|
<menuitem label="Needs Action"
|
|
value="NEEDS-ACTION"/>
|
|
</menupopup>
|
|
</menulist>
|
|
<spacer/>
|
|
<datepicker id="completed-date-picker"
|
|
value=""
|
|
disabled="true"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
<spacer/>
|
|
<menulist id="percent-complete-menulist"
|
|
editable="true"
|
|
hidden-controller="todo"
|
|
hidden="true">
|
|
<!-- oncommand="percentCompleteCommand()" -->
|
|
<menupopup>
|
|
<menuitem label="0" value="0"/>
|
|
<menuitem label="10" value="10"/>
|
|
<menuitem label="20" value="20"/>
|
|
<menuitem label="30" value="30"/>
|
|
<menuitem label="40" value="40"/>
|
|
<menuitem label="50" value="50"/>
|
|
<menuitem label="60" value="60"/>
|
|
<menuitem label="70" value="70"/>
|
|
<menuitem label="80" value="80"/>
|
|
<menuitem label="90" value="90"/>
|
|
<menuitem label="100" value="100"/>
|
|
</menupopup>
|
|
</menulist>
|
|
<label id="percent-complete-label"
|
|
for="percent-complete-menulist"
|
|
value="&newtodo.percentcomplete.label;"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
<spacer flex="1"/>
|
|
</hbox>
|
|
</row>
|
|
|
|
<!-- Alarm -->
|
|
<!-- XXX Should support alarm firing on absolute date/time - rfc2245 does -->
|
|
<row>
|
|
<hbox pack="end" align="center">
|
|
<label id="alarm-label"
|
|
for="alarm-type"
|
|
value="Alarm"/>
|
|
</hbox>
|
|
<hbox flex="1" align="center">
|
|
<menulist id="alarm-type" crop="none" oncommand="processAlarmType()">
|
|
<menupopup>
|
|
<menuitem label="None" value="none"/>
|
|
<menuitem label="Popup" value="popup"/>
|
|
<menuitem label="Popup & Play Sound" value="popupAndSound"
|
|
hidden="true" disabled="true"/>
|
|
<menuitem label="Send Email" value="email"/>
|
|
</menupopup>
|
|
</menulist>
|
|
<textbox id="alarm-length-field" size="5" maxlength="3"
|
|
oninput="alarmLengthKeyDown( this )"/>
|
|
<menulist id="alarm-length-units"
|
|
crop="none"
|
|
labelnumber="label2">
|
|
<menupopup>
|
|
<menuitem label="minutes"
|
|
label1="minute "
|
|
label2="minutes"
|
|
value="minutes"/>
|
|
<menuitem label="hours"
|
|
label1="hour "
|
|
label2="hours"
|
|
value="hours"/>
|
|
<menuitem label="days"
|
|
label1="day "
|
|
label2="days"
|
|
value="days"/>
|
|
<!-- XXX original code for fixing localization
|
|
<menuitem label="&alarm.units.minutes;"
|
|
label1="&alarm.units.minutes;"
|
|
label2="&alarm.units.minutes.singular;"
|
|
value="minutes"/>
|
|
<menuitem label="&alarm.units.hours;"
|
|
label1="&alarm.units.hours;"
|
|
label2="&alarm.units.hours.singular;"
|
|
value="hours" />
|
|
<menuitem label="&alarm.units.days;"
|
|
label1="&alarm.units.days;"
|
|
label2="&alarm.units.days.singular;"
|
|
value="days"/>
|
|
-->
|
|
</menupopup>
|
|
</menulist>
|
|
<label id="before-this-event-label"
|
|
value="before this event"
|
|
hidden-controller="event"
|
|
hidden="true"/>
|
|
<label id="before-this-todo-label"
|
|
value="before this task"
|
|
hidden-controller="todo"
|
|
hidden="true"/>
|
|
<!-- Here we're reusing the plural/singular code to
|
|
switch the text for events vs. todos.
|
|
Event text is plural (2), Todo is singular (1). -->
|
|
<textbox id="alarm-trigger-text-kludge"
|
|
maxlength="1" value="2" hidden="true"/>
|
|
<menulist id="alarm-trigger-relation"
|
|
crop="none"
|
|
labelnumber="label2">
|
|
<menupopup>
|
|
<menuitem label="begins"
|
|
label1="begins"
|
|
label2="begins"
|
|
value="START"/>
|
|
<menuitem label="ends"
|
|
label1="is due"
|
|
label2="ends"
|
|
value="END"/>
|
|
<!-- XXX original code for fixing localization
|
|
<menuitem label="&newevent.beforealarm.label;">
|
|
<menuitem label="&newevent.beforealarmends.label;">
|
|
<menuitem label="&newtodo.beforealarm.label;">
|
|
<menuitem label="&newtodo.beforealarmends.label;">-->
|
|
</menupopup>
|
|
</menulist>
|
|
</hbox>
|
|
</row>
|
|
<row>
|
|
<hbox pack="end" align="center">
|
|
<spacer />
|
|
</hbox>
|
|
<hbox flex="1" align="center">
|
|
<label id="alarm-email-field-label"
|
|
class="field-label-box-class"
|
|
for="alarm-email-field"
|
|
value="Send email to:"/>
|
|
<!-- XXX oncommand="commandAlarmEmail()" -->
|
|
<textbox id="alarm-email-field"
|
|
#ifndef MOZ_SUNBIRD
|
|
type="autocomplete"
|
|
searchSessions="addrbook"
|
|
#endif
|
|
size="40"
|
|
value=""
|
|
hidden="false"/>
|
|
<textbox id="alarm-trigger-relation" hidden="true"/>
|
|
</hbox>
|
|
</row>
|
|
</rows>
|
|
</grid>
|
|
</hbox>
|
|
<hbox>
|
|
<separator class="thin"/>
|
|
</hbox>
|
|
</groupbox>
|
|
</hbox>
|
|
<hbox flex="10"/> <!-- Creates white space at bottom of dialog -->
|
|
</vbox>
|
|
</tabpanel>
|
|
|
|
<!-- Repeat -->
|
|
<tabpanel>
|
|
<vbox flex="1">
|
|
<hbox flex="1">
|
|
<groupbox flex="1">
|
|
<caption label="Recurrence"/>
|
|
<hbox id="repeat-box" align="center">
|
|
<checkbox id="repeat-checkbox"
|
|
class="proper-align"
|
|
label="&newevent.repeat.label;"
|
|
checked="false"
|
|
oncommand="commandRepeat();commandUntil()"/>
|
|
<textbox id="repeat-length-field"
|
|
class="cursor-pointer"
|
|
disable-controller="repeat"
|
|
value=""
|
|
oninput="repeatLengthKeyDown( this )"/>
|
|
<menulist crop="none"
|
|
oncommand="repeatUnitCommand( this )"
|
|
labelnumber="label2"
|
|
id="repeat-length-units"
|
|
disable-controller="repeat">
|
|
<menupopup>
|
|
<menuitem label="&repeat.units.days;"
|
|
label1="&repeat.units.days.singular;"
|
|
label2="&repeat.units.days;"
|
|
id="repeat-length-days"
|
|
value="DAILY" />
|
|
<menuitem label="&repeat.units.weeks;"
|
|
label1="&repeat.units.weeks.singular;"
|
|
label2="&repeat.units.weeks;"
|
|
id="repeat-length-weeks"
|
|
value="WEEKLY"/>
|
|
<menuitem label="&repeat.units.months;"
|
|
label1="&repeat.units.months.singular;"
|
|
label2="&repeat.units.months;"
|
|
id="repeat-length-months"
|
|
value="MONTHLY"/>
|
|
<menuitem label="&repeat.units.years;"
|
|
label1="&repeat.units.years.singular;"
|
|
label2="&repeat.units.years;"
|
|
id="repeat-length-years"
|
|
value="YEARLY" />
|
|
</menupopup>
|
|
</menulist>
|
|
</hbox>
|
|
<hbox id="repeat-extensions-week"
|
|
disabled="true"
|
|
disable-controller="repeat"
|
|
align="center">
|
|
<checkbox disable-controller="repeat"
|
|
class="repeat-day-class"
|
|
label="&day.1.Ddd;"
|
|
id="advanced-repeat-week-0"
|
|
value="0"
|
|
checked="false" />
|
|
<checkbox disable-controller="repeat"
|
|
class="repeat-day-class"
|
|
label="&day.2.Ddd;"
|
|
id="advanced-repeat-week-1"
|
|
value="1"
|
|
checked="false" />
|
|
<checkbox disable-controller="repeat"
|
|
class="repeat-day-class"
|
|
label="&day.3.Ddd;"
|
|
id="advanced-repeat-week-2"
|
|
value="2"
|
|
checked="false" />
|
|
<checkbox disable-controller="repeat"
|
|
class="repeat-day-class"
|
|
label="&day.4.Ddd;"
|
|
id="advanced-repeat-week-3"
|
|
value="3"
|
|
checked="false" />
|
|
<checkbox disable-controller="repeat"
|
|
class="repeat-day-class"
|
|
label="&day.5.Ddd;"
|
|
id="advanced-repeat-week-4"
|
|
value="4"
|
|
checked="false" />
|
|
<checkbox disable-controller="repeat"
|
|
class="repeat-day-class"
|
|
label="&day.6.Ddd;"
|
|
id="advanced-repeat-week-5"
|
|
value="5"
|
|
checked="false" />
|
|
<checkbox disable-controller="repeat"
|
|
class="repeat-day-class"
|
|
label="&day.7.Ddd;"
|
|
id="advanced-repeat-week-6"
|
|
value="6"
|
|
checked="false" />
|
|
</hbox>
|
|
<hbox id="repeat-extensions-month"
|
|
disabled="true"
|
|
hidden="true"
|
|
align="center">
|
|
<vbox align="center">
|
|
<radiogroup id="advanced-repeat-month"
|
|
disable-controller="repeat">
|
|
<radio disable-controller="repeat"
|
|
id="advanced-repeat-dayofmonth"
|
|
label="&newevent.advanced.repeat.dayofmonth.label;"
|
|
selected="true"
|
|
class="indent"/>
|
|
<radio disable-controller="repeat"
|
|
id="advanced-repeat-dayofweek"
|
|
label="&newevent.advanced.repeat.dayofweek.label;"
|
|
class="indent"/>
|
|
<radio disable-controller="repeat"
|
|
id="advanced-repeat-dayofweek-last"
|
|
label="&newevent.advanced.repeat.lastdayofweek.label;"
|
|
class="indent"
|
|
disabled="true"/>
|
|
</radiogroup>
|
|
</vbox>
|
|
</hbox>
|
|
<spacer height="10" />
|
|
<hbox align="center">
|
|
<spacer class="repeat-left-spacer" />
|
|
<radiogroup id="repeat-until-group"
|
|
disable-controller="repeat">
|
|
<hbox class="indent">
|
|
<radio id="repeat-forever-radio"
|
|
disable-controller="repeat"
|
|
label="&newevent.forever.label;"
|
|
oncommand="commandUntil()"
|
|
selected="true"/>
|
|
</hbox>
|
|
<hbox class="indent">
|
|
<radio id="repeat-numberoftimes-radio"
|
|
disable-controller="repeat"
|
|
label="&newevent.numberoftimes.label;"
|
|
oncommand="commandUntil()"/>
|
|
<textbox id="repeat-numberoftimes-textbox"
|
|
disable-controller="repeat"/>
|
|
</hbox>
|
|
<hbox class="indent">
|
|
<radio id="repeat-until-radio"
|
|
disable-controller="repeat"
|
|
label="&newevent.until.label;"
|
|
oncommand="commandUntil()"/>
|
|
<spacer id="until-spacer"/>
|
|
<datepicker id="repeat-end-date-picker"
|
|
disable-controller="repeat"
|
|
value=""
|
|
onchange="commandUntil()"/>
|
|
</hbox>
|
|
<label id="repeat-time-warning"
|
|
class="warning-text-class"
|
|
value="&newevent.recurend.warning;"
|
|
hidden="true"/>
|
|
</radiogroup>
|
|
</hbox>
|
|
<hbox>
|
|
<separator class="thin"/>
|
|
</hbox>
|
|
</groupbox>
|
|
</hbox>
|
|
<hbox flex="1">
|
|
<spacer class="repeat-left-spacer" />
|
|
<groupbox flex="1">
|
|
<caption label="&newevent.exceptions.caption;"/>
|
|
<hbox align="start" flex="1">
|
|
<vbox flex="1" align="start" pack="start">
|
|
<datepicker id="exceptions-date-picker"
|
|
disable-controller="repeat"
|
|
onchange="updateAddExceptionButton();"
|
|
value=""/>
|
|
<spacer flex="1"/>
|
|
</vbox>
|
|
<vbox flex="1" align="start" pack="start">
|
|
<listbox id="exception-dates-listbox"
|
|
disable-controller="repeat"
|
|
flex="1"/> <!--rows="4"-->
|
|
</vbox>
|
|
<vbox flex="1" align="center" pack="center">
|
|
<button id="exception-add-button"
|
|
label="&newevent.addexceptions.label;"
|
|
disable-controller="repeat"
|
|
oncommand="addException()"/>
|
|
<button id="delete-exception-button"
|
|
label="&newevent.deleteexceptions.label;"
|
|
disabled="true"
|
|
oncommand="removeSelectedExceptionDate()"/>
|
|
<spacer flex="1"/>
|
|
</vbox>
|
|
</hbox>
|
|
<hbox>
|
|
<separator class="thin"/>
|
|
</hbox>
|
|
</groupbox>
|
|
</hbox>
|
|
</vbox>
|
|
</tabpanel><!-- /Repeat -->
|
|
|
|
<!-- "Contacts" tab -->
|
|
<tabpanel orient="vertical">
|
|
<!-- Invite -->
|
|
<vbox collapsed="false">
|
|
<hbox id="invite-box" align="center">
|
|
<checkbox id="invite-checkbox"
|
|
label="&newevent.invite.label;"
|
|
checked="false"
|
|
oncommand="processInviteCheckbox()"/>
|
|
<textbox id="invite-email-field"
|
|
size="39"
|
|
oninput="processTextboxWithButton( this.id, 'invite-email-button' );"
|
|
disabled="true"/>
|
|
<button id="invite-email-button"
|
|
label="Add"
|
|
onclick="onInviteeAdd();"
|
|
disabled="true"/>
|
|
</hbox>
|
|
</vbox>
|
|
|
|
<vbox flex="1">
|
|
<hbox id="topBox" align="center">
|
|
<label value="&ab-selectAddressesDialogLookIn.label;" />
|
|
|
|
<!-- Address book chooser -->
|
|
<!-- <menulist id="addressBookList" oncommand="onChooseAddressBookEventDialog( this );">
|
|
<menupopup id="addressBookList-menupopup"
|
|
ref="moz-abdirectory://"
|
|
datasources="rdf:addressdirectory">
|
|
<template>
|
|
<rule nc:IsMailList="false">
|
|
<menuitem uri="..."
|
|
label="rdf:http://home.netscape.com/NC-rdf#DirName"
|
|
value="rdf:http://home.netscape.com/NC-rdf#DirUri"/>
|
|
</rule>
|
|
</template>
|
|
</menupopup>
|
|
</menulist>-->
|
|
</hbox>
|
|
|
|
<hbox flex="1">
|
|
<!-- Existing addresses -->
|
|
<vbox id="resultsBox" flex="4">
|
|
<label value=" " />
|
|
<tree id="abResultsTree"
|
|
flex="1"
|
|
persist="height"
|
|
hidecolumnpicker="true"
|
|
onclick="this.contactsTree.onClick( event );"
|
|
ondblclick="this.contactsTree.onDblClick( event );">
|
|
|
|
<treecols id="recipientTreeCols">
|
|
<treecol id="GeneratedName"
|
|
sort-field="GeneratedName"
|
|
class="sortDirectionIndicator"
|
|
list-view-sort-field="true"
|
|
persist="ordinal width"
|
|
flex="1"
|
|
label="&ab-selectAddressesDialogNameColumn.label;"
|
|
primary="true"/>
|
|
|
|
<splitter class="tree-splitter"/>
|
|
|
|
<treecol id="PrimaryEmail"
|
|
sort-field="PrimaryEmail"
|
|
class="sortDirectionIndicator"
|
|
list-view-sort-field="true"
|
|
persist="ordinal width"
|
|
flex="1"
|
|
label="&ab-selectAddressesDialogEmailColumn.label;"/>
|
|
</treecols>
|
|
|
|
<treechildren />
|
|
|
|
</tree>
|
|
</vbox>
|
|
|
|
<!-- Add and remove buttons -->
|
|
<vbox id="addToBucketButtonBox">
|
|
<spacer flex="1" />
|
|
<button id="toButton"
|
|
label="&ab-selectAddressesDialogInvite.label;"
|
|
command="addToInviteList" />
|
|
<spacer />
|
|
<button id="remove"
|
|
label="&ab-selectAddressesDialogUninvite.label;"
|
|
class="dialog"
|
|
command="removeFromInviteList" />
|
|
<spacer flex="1" />
|
|
</vbox>
|
|
|
|
<!-- Recipient list -->
|
|
<vbox id="bucketBox" flex="1">
|
|
<label value="&ab-selectAddressesDialogInviteList.label;"/>
|
|
|
|
<tree id="addressBucket"
|
|
flex="1"
|
|
hidecolumnpicker="true"
|
|
onclick="selectEventRecipient(this);">
|
|
<treecols>
|
|
<treecol id="addressCol"
|
|
flex="1"
|
|
hideheader="true"/>
|
|
</treecols>
|
|
|
|
<treechildren id="bucketBody" flex="1"/>
|
|
</tree>
|
|
</vbox>
|
|
|
|
</hbox>
|
|
</vbox>
|
|
</tabpanel>
|
|
|
|
<!-- "Attachments" tab -->
|
|
<tabpanel>
|
|
<groupbox flex="1">
|
|
<listbox id="attachmentBucket" flex="1" rows="12"
|
|
onkeypress="if (event.keyCode == 8 || event.keyCode == 46) RemoveSelectedAttachment();"
|
|
onclick="AttachmentBucketClicked(event);"
|
|
ondragover="nsDragAndDrop.dragOver(event, attachmentBucketObserver);"
|
|
ondragdrop="nsDragAndDrop.drop(event, attachmentBucketObserver);"
|
|
ondragexit="nsDragAndDrop.dragExit(event, attachmentBucketObserver);"/>
|
|
<hbox pack="end">
|
|
<spacer flex="1"/>
|
|
<button id="attachment-delete-button"
|
|
onclick="removeSelectedAttachment()"
|
|
label="&newevent.removeselectedfile.label;"/>
|
|
<button id="attachment-add-button"
|
|
onclick="AttachFile()"
|
|
label="Attach File..."/>
|
|
<!-- XXX Localize "&newevent.choosefile.label;" -->
|
|
</hbox>
|
|
</groupbox>
|
|
</tabpanel>
|
|
|
|
<!-- "Advanced" tab -->
|
|
<tabpanel>
|
|
<vbox flex="1">
|
|
<hbox flex="1">
|
|
<groupbox flex="1">
|
|
<grid>
|
|
<columns>
|
|
<column/>
|
|
<column flex="1"/>
|
|
</columns>
|
|
<rows>
|
|
<!-- URI/URL -->
|
|
<row align="center" flex="1">
|
|
<hbox class="field-label-box-class" pack="end">
|
|
<label for="uri-field" value="&newevent.uri.label;"/>
|
|
</hbox>
|
|
<hbox>
|
|
<textbox id="uri-field"
|
|
oninput="processTextboxWithButton( this.id, 'load-url-button' );"
|
|
#ifndef MOZ_SUNBIRD
|
|
type="autocomplete"
|
|
searchSessions="history"
|
|
#endif
|
|
flex="1"/>
|
|
<button id="load-url-button"
|
|
label="&newevent.uri.visit.label;"
|
|
oncommand="loadURL()"
|
|
disabled="true"/>
|
|
</hbox>
|
|
</row>
|
|
</rows>
|
|
</grid>
|
|
</groupbox>
|
|
</hbox>
|
|
</vbox>
|
|
</tabpanel>
|
|
|
|
</tabpanels>
|
|
</tabbox>
|
|
</dialog>
|