gecko-dev/calendar/base/content/calendar-event-dialog.xul

324 строки
14 KiB
XML

<?xml version="1.0"?>
<!-- -*- Mode: xml; indent-tabs-mode: nil; -*- -->
<!--
- ***** 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 calendar views.
-
- The Initial Developer of the Original Code is Oracle Corporation
- Portions created by the Initial Developer are Copyright (C) 2005
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Stuart Parmenter <stuart.parmenter@oracle.com>
- Simon Paquet <bugzilla@babylonsounds.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 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 ***** -->
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<?xml-stylesheet href="chrome://calendar/content/calendar-event-dialog.css" type="text/css"?>
<?xml-stylesheet href="chrome://calendar/content/datetimepickers/datetimepickers.css" ?>
<!DOCTYPE dialog
[
<!ENTITY % dtd1 SYSTEM "chrome://calendar/locale/calendar.dtd" > %dtd1;
]>
<dialog
id="calendar-event-dialog"
title="&event.title.label;"
buttons="accept,cancel,disclosure"
ondialogaccept="return onAccept();"
ondialogcancel="return onCancel();"
ondialogdisclosure="toggleDetails();"
onload="onLoad()"
persist="screenX screenY width"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- Javascript includes -->
<script type="application/x-javascript" src="chrome://calendar/content/calendar-event-dialog.js"/>
<script type="application/x-javascript" src="chrome://calendar/content/calendar-dialog-utils.js"/>
<script type="application/x-javascript" src="chrome://calendar/content/calendarUtils.js"/>
<script type="application/x-javascript" src="chrome://calendar/content/applicationUtil.js"/>
<!-- Used for the button to show/hide details -->
<script type="application/x-javascript">
var moreLabel = "&calendar.more.label; &gt;&gt;";
var lessLabel = "&lt;&lt; &calendar.less.label;";
</script>
<vbox id="dialog-box" flex="1">
<label id="read-only-item" value="&newevent.readonly.item.warning;"
class="warning-text-class" hidden="true"/>
<grid flex="1">
<columns>
<column/>
<column flex="1"/>
</columns>
<rows>
<row align="center">
<label value="&newevent.title.label;"/>
<hbox flex="1" align="center">
<textbox id="item-title" oninput="updateAccept();" flex="1"/>
<menulist id="component-type" crop="none" disabled="true"
oncommand="updateComponentType(this.value)">
<menupopup id="component-menulist-menupopup">
<menuitem label="&newevent.itemType.event.label;"
value="event"/>
<menuitem label="&newevent.itemType.todo.label;"
value="todo"/>
</menupopup>
</menulist>
</hbox>
</row>
<row align="center">
<label value="&newevent.location.label;"/>
<textbox id="item-location"/>
</row>
<row align ="center">
<hbox align="center">
<label value="&newevent.from.label;" class="event-only"/>
<label value="&newevent.date.label;" class="todo-only"/>
</hbox>
<hbox>
<datetimepicker id="event-starttime" onchange="onStartTimeChange();"
class="event-only"/>
<checkbox id="event-all-day" oncommand="updateAllDay();"
class="event-only" label="&newevent.alldayevent.label;"/>
<checkbox id="todo-has-entrydate" oncommand="updateEntryDate();"
class="todo-only"/>
<datetimepicker id="todo-entrydate" onchange="onStartTimeChange();"
class="todo-only"/>
<spacer flex="1"/>
</hbox>
</row>
<row>
<hbox align="center">
<label value="&newevent.to.label;" class="event-only"/>
<label value="&newtodo.duedate.label;" class="todo-only"/>
</hbox>
<vbox>
<hbox align="center">
<datetimepicker id="event-endtime" onchange="onEndTimeChange();" class="event-only"/>
<checkbox id="todo-has-duedate" oncommand="updateDueDate();" class="todo-only"/>
<datetimepicker id="todo-duedate" onchange="onEndTimeChange();" class="todo-only"/>
<checkbox id="item-recurrence" oncommand="updateRecurrence();"
label="&newevent.repeat.label2;"/>
<button id="set-recurrence" label="&newevent.set.label;" oncommand="editRecurrence();"/>
</hbox>
<label id="end-time-warning" class="warning-text-class"
value="&newevent.endtime.warning;"/>
<label id="task-repeat-warning" class="warning-text-class"
value="&newtodo.repeatstart.warning;" hidden="true"/>
</vbox>
</row>
<row>
<spacer height="5"/>
</row>
<row align="center">
<label value="&newevent.server.label;"/>
<hbox align="center">
<menulist id="item-calendar"/>
<label id="read-only-cal"
value="&newevent.readonly.cal.warning;"
class="warning-text-class" hidden="true"/>
<spacer flex="1"/>
<hbox id="categories-box" align="center">
<label value="&newtodo.categories.label;" class="label"/>
<menulist id="item-categories" oncommand="categorySelect(this.value)"/>
</hbox>
</hbox>
</row>
<!-- Details -->
<row details="true">
<spacer height="5"/>
</row>
<!-- We work off of this row's collapsed state to determine whether or
not to show details when loading the dialog -->
<row id="description-row" details="true" collapsed="true" persist="collapsed" flex="1">
<label value="&newevent.description.label;"/>
<textbox id="item-description" multiline="true" rows="4" flex="1"/>
</row>
<row details="true">
<label value="&newevent.attendees.label;"/>
<hbox flex="1">
<vbox flex="1">
<listbox id="attendees-listbox" rows="5" flex="1"/>
<button label="&calendar.edit.attendees;" disabled="true"/>
</vbox>
<spacer width="10"/>
<grid>
<columns>
<column/>
<column/>
</columns>
<rows>
<row align="center">
<label value="&newevent.privacy.label;"/>
<menulist id="privacy-menulist" crop="none">
<menupopup>
<menuitem label="&newevent.public.label;" value="PUBLIC"/>
<menuitem label="&newevent.private.label;" value="PRIVATE"/>
<menuitem label="&newevent.confidential.label;" value="CONFIDENTIAL"/>
</menupopup>
</menulist>
</row>
<row align="center">
<label id="priority-label"
value="&newtodo.priority.label;"/>
<menulist id="priority-levels">
<menupopup>
<menuitem label="&priority.level.none;" value="0"/>
<menuitem label="&priority.level.low;" value="9"/>
<menuitem label="&priority.level.medium;" value="5"/>
<menuitem label="&priority.level.high;" value="1"/>
</menupopup>
</menulist>
</row>
<row align="center">
<label id="status-label" class="event-only"
value="&newevent.status.label;"/>
<menulist id="event-status" class="event-only">
<menupopup>
<menuitem label="&newevent.status.none.label;"
value="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>
</row>
<row align="center">
<label value="&newevent.alarm.label;"/>
<hbox align="center">
<menulist id="item-alarm" oncommand="updateAlarm()">
<menupopup>
<menuitem label="&newevent.none.label;" value="none" selected="true"/>
<menuseparator/>
<menuitem label="&newevent.15minutes.before.label;" length="15" unit="minutes" relation="START"/>
<menuitem label="&newevent.30minutes.before.label;" length="30" unit="minutes" relation="START"/>
<menuseparator/>
<menuitem id="alarm-custom-menuitem" label="&newevent.custom.label;" value="custom"/>
</menupopup>
</menulist>
</hbox>
</row>
<row id="alarm-details">
<spacer flex="1"/>
<vbox>
<hbox>
<textbox id="alarm-length-field" size="1" oninput="validateIntegers(event);"/>
<menulist id="alarm-length-units">
<menupopup>
<menuitem label="&alarm.units.minutes;" value="minutes" selected="true"/>
<menuitem label="&alarm.units.hours;" value="hours"/>
<menuitem label="&alarm.units.days;" value="days"/>
</menupopup>
</menulist>
<menulist id="alarm-trigger-relation" oncommand="updateAccept()">
<menupopup>
<menuitem label="&newevent.before.label;" value="START" selected="true"/>
<menuitem label="&newevent.after.label;" value="END"/>
</menupopup>
</menulist>
</hbox>
<label id="alarm-start-warning" value="&alarm.start.warning;"
class="warning-text-class"/>
<label id="alarm-end-warning" value="&alarm.due.warning;"
class="warning-text-class"/>
</vbox>
</row>
</rows>
</grid>
</hbox>
</row>
<row details="true">
<spacer height="5"/>
</row>
<row align="center" details="true">
<label value="&newevent.uri.label;"/>
<hbox flex="1">
<textbox id="item-url" flex="1" oninput="updateURL(this.value)"/>
<button id="load-url-button" oncommand="loadURL()"
label="&newevent.uri.visit.label;"/>
</hbox>
</row>
<row class="todo-only" details="true">
<label id="todo-status-label" value="&newevent.status.label;"/>
<hbox align="center">
<menulist id="todo-status" class="todo-only"
oncommand="updateToDoStatus(this.value);">
<menupopup>
<menuitem label="&newevent.status.none.label;"
value="NONE"/>
<menuitem label="&newevent.status.needsaction.label;"
value="NEEDS-ACTION"/>
<menuitem label="&newevent.status.inprogress.label;"
value="IN-PROCESS"/>
<menuitem label="&newevent.status.completed.label;"
value="COMPLETED"/>
<menuitem label="&newevent.status.cancelled.label;"
value="CANCELLED"/>
</menupopup>
</menulist>
<datepicker id="completed-date-picker" class="todo-only"
value="" disabled="true"/>
<textbox id="percent-complete-textbox" size="3" oninput="validateIntegers(event);"/>
<label id="percent-complete-label" class="todo-only"
value="&newtodo.percentcomplete.label;"/>
</hbox>
</row>
</rows>
</grid>
<spacer height="10"/>
</vbox>
</dialog>