зеркало из https://github.com/mozilla/gecko-dev.git
bug 272732
more work on new/edit event dialog. more of the todo/task controls are wired in and working. r=pavlov@pavlov.net
This commit is contained in:
Родитель
f994b38bd7
Коммит
7cf8f4a5a1
|
@ -1,4 +1,5 @@
|
||||||
/* ***** BEGIN LICENSE BLOCK *****
|
/* -*- 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
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
*
|
*
|
||||||
* The contents of this file are subject to the Mozilla Public License Version
|
* The contents of this file are subject to the Mozilla Public License Version
|
||||||
|
@ -11,6 +12,14 @@
|
||||||
* for the specific language governing rights and limitations under the
|
* for the specific language governing rights and limitations under the
|
||||||
* License.
|
* License.
|
||||||
*
|
*
|
||||||
|
* The Original Code is Mozilla Calendar code.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is Eric Belhaire.
|
||||||
|
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||||
|
* the Initial Developer. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s): Matthew Willis <mattwillis@gmail.com>
|
||||||
|
*
|
||||||
* Alternatively, the contents of this file may be used under the terms of
|
* 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
|
* 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"),
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
@ -25,6 +34,7 @@
|
||||||
*
|
*
|
||||||
* ***** END LICENSE BLOCK ***** */
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
|
|
||||||
const nsIWindowMediator = Components.interfaces.nsIWindowMediator;
|
const nsIWindowMediator = Components.interfaces.nsIWindowMediator;
|
||||||
|
|
||||||
function toOpenWindowByType( inType, uri )
|
function toOpenWindowByType( inType, uri )
|
||||||
|
@ -103,6 +113,7 @@ function launchBrowser( UrlToGoTo )
|
||||||
//window.open( UrlToGoTo, "calendar-opened-window" );
|
//window.open( UrlToGoTo, "calendar-opened-window" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function goToggleToolbar( id, elementID )
|
function goToggleToolbar( id, elementID )
|
||||||
{
|
{
|
||||||
var toolbar = document.getElementById(id);
|
var toolbar = document.getElementById(id);
|
||||||
|
@ -118,6 +129,7 @@ function goToggleToolbar( id, elementID )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function openExtensions(aOpenMode)
|
function openExtensions(aOpenMode)
|
||||||
{
|
{
|
||||||
const EMTYPE = "Extension:Manager";
|
const EMTYPE = "Extension:Manager";
|
||||||
|
@ -143,24 +155,112 @@ function openExtensions(aOpenMode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function showElement( elementId )
|
function showElement( elementId )
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
dump("showElement: showing "+elementId+"\n");
|
debug("showElement: showing " + elementId );
|
||||||
document.getElementById( elementId ).removeAttribute( "hidden" );
|
document.getElementById( elementId ).removeAttribute( "hidden" );
|
||||||
}
|
} catch (e) {
|
||||||
catch (e) {
|
|
||||||
dump("showElement: Couldn't remove hidden attribute from " + elementId + "\n");
|
dump("showElement: Couldn't remove hidden attribute from " + elementId + "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function hideElement( elementId )
|
function hideElement( elementId )
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
dump("hideElement: hiding "+elementId+"\n");
|
debug("hideElement: hiding " + elementId );
|
||||||
document.getElementById( elementId ).setAttribute( "hidden", "true" );
|
document.getElementById( elementId ).setAttribute( "hidden", "true" );
|
||||||
}
|
} catch (e) {
|
||||||
catch (e) {
|
|
||||||
dump("hideElement: Couldn't set hidden attribute on " + elementId + "\n");
|
dump("hideElement: Couldn't set hidden attribute on " + elementId + "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function enableElement( elementId )
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
debug("enableElement: enabling " + elementId );
|
||||||
|
//document.getElementById( elementId ).setAttribute( "disabled", "false" );
|
||||||
|
|
||||||
|
// call remove attribute beacuse some widget code checks for the presense of a
|
||||||
|
// disabled attribute, not the value.
|
||||||
|
document.getElementById( elementId ).removeAttribute( "disabled" );
|
||||||
|
} catch (e) {
|
||||||
|
dump("enableElement: Couldn't remove disabled attribute on " + elementId + "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function disableElement( elementId )
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
debug("disableElement: disabling " + elementId );
|
||||||
|
document.getElementById( elementId ).setAttribute( "disabled", "true" );
|
||||||
|
} catch (e) {
|
||||||
|
dump("disableElement: Couldn't set disabled attribute to true on " + elementId + "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function processEnableCheckbox( checkboxId, elementId )
|
||||||
|
{
|
||||||
|
if( document.getElementById( checkboxId ).checked )
|
||||||
|
enableElement( elementId );
|
||||||
|
else
|
||||||
|
disableElement( elementId );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Update plural singular menu items
|
||||||
|
*/
|
||||||
|
|
||||||
|
function updateMenuPlural( lengthFieldId, menuId )
|
||||||
|
{
|
||||||
|
var field = document.getElementById( lengthFieldId );
|
||||||
|
var menu = document.getElementById( menuId );
|
||||||
|
|
||||||
|
// figure out whether we should use singular or plural
|
||||||
|
var length = field.value;
|
||||||
|
|
||||||
|
var newLabelNumber;
|
||||||
|
|
||||||
|
// XXX This assumes that "0 days, minutes, etc." is plural in other languages.
|
||||||
|
if( ( Number( length ) == 0 ) || ( Number( length ) > 1 ) )
|
||||||
|
newLabelNumber = "labelplural"
|
||||||
|
else
|
||||||
|
newLabelNumber = "labelsingular"
|
||||||
|
|
||||||
|
// see what we currently show and change it if required
|
||||||
|
var oldLabelNumber = menu.getAttribute( "labelnumber" );
|
||||||
|
|
||||||
|
if( newLabelNumber != oldLabelNumber ) {
|
||||||
|
// remember what we are showing now
|
||||||
|
menu.setAttribute( "labelnumber", newLabelNumber );
|
||||||
|
|
||||||
|
// update the menu items
|
||||||
|
var items = menu.getElementsByTagName( "menuitem" );
|
||||||
|
|
||||||
|
for( var i = 0; i < items.length; ++i ) {
|
||||||
|
var menuItem = items[i];
|
||||||
|
var newLabel = menuItem.getAttribute( newLabelNumber );
|
||||||
|
menuItem.label = newLabel;
|
||||||
|
menuItem.setAttribute( "label", newLabel );
|
||||||
|
}
|
||||||
|
|
||||||
|
// force the menu selection to redraw
|
||||||
|
var saveSelectedIndex = menu.selectedIndex;
|
||||||
|
menu.selectedIndex = -1;
|
||||||
|
menu.selectedIndex = saveSelectedIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function debug( text )
|
||||||
|
{
|
||||||
|
if( gDebugEnabled )
|
||||||
|
dump( text + "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -14,8 +14,7 @@
|
||||||
-
|
-
|
||||||
- The Original Code is OEone Calendar Code, released October 31st, 2001.
|
- The Original Code is OEone Calendar Code, released October 31st, 2001.
|
||||||
-
|
-
|
||||||
- The Initial Developer of the Original Code is
|
- The Initial Developer of the Original Code is OEone Corporation.
|
||||||
- OEone Corporation.
|
|
||||||
- Portions created by the Initial Developer are Copyright (C) 2001
|
- Portions created by the Initial Developer are Copyright (C) 2001
|
||||||
- the Initial Developer. All Rights Reserved.
|
- the Initial Developer. All Rights Reserved.
|
||||||
-
|
-
|
||||||
|
@ -45,8 +44,7 @@
|
||||||
|
|
||||||
<!-- CSS File with all styles specific to the dialog -->
|
<!-- CSS File with all styles specific to the dialog -->
|
||||||
<?xml-stylesheet href="chrome://calendar/skin/eventDialog.css" ?>
|
<?xml-stylesheet href="chrome://calendar/skin/eventDialog.css" ?>
|
||||||
<?xml-stylesheet
|
<?xml-stylesheet href="chrome://calendar/content/datetimepickers/datetimepicker.css" ?>
|
||||||
href="chrome://calendar/content/datetimepickers/datetimepicker.css" ?>
|
|
||||||
|
|
||||||
<!-- CSS for selecting contacts to invite to event -->
|
<!-- CSS for selecting contacts to invite to event -->
|
||||||
<?xml-stylesheet href="chrome://calendar/skin/selectAddresses.css" ?>
|
<?xml-stylesheet href="chrome://calendar/skin/selectAddresses.css" ?>
|
||||||
|
@ -60,15 +58,14 @@
|
||||||
]>
|
]>
|
||||||
|
|
||||||
|
|
||||||
<dialog
|
<dialog id="calendar-new-component-window"
|
||||||
id="calendar-new-component-window"
|
|
||||||
title="Calendar Component"
|
title="Calendar Component"
|
||||||
onload="loadCalendarEventDialog()"
|
onload="loadCalendarEventDialog()"
|
||||||
buttons="accept,cancel"
|
buttons="accept,cancel"
|
||||||
ondialogaccept="return onOKCommand();"
|
ondialogaccept="return onOKCommand();"
|
||||||
ondialogcancel="return true;"
|
ondialogcancel="return true;"
|
||||||
persist="screenX screenY"
|
persist="screenX screenY"
|
||||||
minwidth="490"
|
minwidth="500" minheight="400"
|
||||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
xmlns:nc="http://home.netscape.com/NC-rdf#">
|
xmlns:nc="http://home.netscape.com/NC-rdf#">
|
||||||
|
|
||||||
|
@ -90,13 +87,13 @@
|
||||||
|
|
||||||
|
|
||||||
<!-- Javascript includes -->
|
<!-- Javascript includes -->
|
||||||
|
|
||||||
<script type="application/x-javascript" src="chrome://calendar/content/calendar.js"/>
|
|
||||||
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
|
<script type="application/x-javascript" src="chrome://global/content/strres.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/dateUtils.js"/>
|
||||||
<script type="application/x-javascript" src="chrome://calendar/content/eventDialog.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/selectAddressesDialog.js"/>
|
||||||
<script type="application/x-javascript" src="chrome://calendar/content/attachFile.js"/>
|
<script type="application/x-javascript" src="chrome://calendar/content/attachFile.js"/>
|
||||||
|
|
||||||
<!-- NEEDED FOR APPLICATION SUPPORT -->
|
<!-- NEEDED FOR APPLICATION SUPPORT -->
|
||||||
<script type="application/x-javascript" src="chrome://calendar/content/applicationUtil.js"/>
|
<script type="application/x-javascript" src="chrome://calendar/content/applicationUtil.js"/>
|
||||||
|
|
||||||
|
@ -108,26 +105,22 @@
|
||||||
<dataset>
|
<dataset>
|
||||||
<data id="data-event-title-new" value="&event.title.new;" />
|
<data id="data-event-title-new" value="&event.title.new;" />
|
||||||
<data id="data-event-title-edit" value="&event.title.edit;" />
|
<data id="data-event-title-edit" value="&event.title.edit;" />
|
||||||
<data id="data-event-title-new" value="&todo.title.new;" />
|
<data id="data-todo-title-new" value="&todo.title.new;" />
|
||||||
<data id="data-event-title-edit" value="&todo.title.edit;" />
|
<data id="data-todo-title-edit" value="&todo.title.edit;" />
|
||||||
<data id="onthe-text" value="&onthe-text;" />
|
<data id="onthe-text" value="&onthe-text;" />
|
||||||
<data id="last-text" value="&last-text;" />
|
<data id="last-text" value="&last-text;" />
|
||||||
<data id="ofthemonth-text" value="&ofthemonth-text;" />
|
<data id="ofthemonth-text" value="&ofthemonth-text;" />
|
||||||
</dataset>
|
</dataset>
|
||||||
|
|
||||||
|
|
||||||
<!-- Dialog content -->
|
<!-- Dialog content -->
|
||||||
|
|
||||||
<tabbox>
|
<tabbox>
|
||||||
<tabs>
|
<tabs>
|
||||||
<!-- XXX label="&newevent.newevent.tab.label;" -->
|
<tab label="&newevent.general.tab.label;"/>
|
||||||
<tab label="General"/>
|
|
||||||
<tab label="&newevent.recurrence.tab.label;"/>
|
<tab label="&newevent.recurrence.tab.label;"/>
|
||||||
<!-- XXX label="&newevent.contacts.tab.label;" -->
|
<tab label="&newevent.attendees.tab.label;"/>
|
||||||
<tab label="Attendees"/>
|
<tab label="&newevent.attachments.tab.label;"/>
|
||||||
<!-- XXX label="&newevent.files.tab.label;" -->
|
<tab label="&newevent.advanced.tab.label;"/>
|
||||||
<tab label="Attachments"/>
|
|
||||||
<tab label="Advanced"/>
|
|
||||||
</tabs>
|
</tabs>
|
||||||
<tabpanels>
|
<tabpanels>
|
||||||
<tabpanel>
|
<tabpanel>
|
||||||
|
@ -144,21 +137,24 @@
|
||||||
<row align="center">
|
<row align="center">
|
||||||
<!-- Item Type -->
|
<!-- Item Type -->
|
||||||
<hbox pack="end">
|
<hbox pack="end">
|
||||||
<label for="component-type" value="Item Type"/>
|
<label for="component-type" value="&newevent.itemType.label;"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox>
|
<hbox>
|
||||||
<menulist id="component-type" crop="none" oncommand="processComponentType()">
|
<menulist id="component-type" crop="none"
|
||||||
|
oncommand="processComponentType()">
|
||||||
<menupopup id="component-menulist-menupopup">
|
<menupopup id="component-menulist-menupopup">
|
||||||
<menuitem label="Event" value="ICAL_COMPONENT_EVENT"/>
|
<menuitem label="&newevent.itemType.event.label;"
|
||||||
<menuitem label="Task" value="ICAL_COMPONENT_TODO"/>
|
value="ICAL_COMPONENT_EVENT"/>
|
||||||
<menuitem label="Journal" value="ICAL_COMPONENT_JOURNAL"
|
<menuitem label="&newevent.itemType.todo.label;"
|
||||||
disabled="true"/>
|
value="ICAL_COMPONENT_TODO"/>
|
||||||
|
<menuitem label="newevent.itemType.journal.label"
|
||||||
|
value="ICAL_COMPONENT_JOURNAL"
|
||||||
|
hidden="true" disabled="true"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
<spacer width="10px"/>
|
<spacer width="10px"/>
|
||||||
<!-- Calendar Server &newevent.server.label; -->
|
|
||||||
<hbox align="center" flex="1">
|
<hbox align="center" flex="1">
|
||||||
<label id="server-field-label" value="Calendar"/>
|
<label id="server-field-label" value="&newevent.server.label;"/>
|
||||||
<menulist id="server-field">
|
<menulist id="server-field">
|
||||||
<menupopup id="server-menulist-menupopup" datasources="rdf:null"
|
<menupopup id="server-menulist-menupopup" datasources="rdf:null"
|
||||||
ref="urn:calendarcontainer">
|
ref="urn:calendarcontainer">
|
||||||
|
@ -189,16 +185,25 @@
|
||||||
<textbox id="location-field"/>
|
<textbox id="location-field"/>
|
||||||
</row>
|
</row>
|
||||||
<row align="center">
|
<row align="center">
|
||||||
<!-- Status -->
|
<!-- Categories -->
|
||||||
<hbox pack="end">
|
<hbox pack="end">
|
||||||
<label id="event-status-label" for="event-status-menulist-menupopup"
|
<label for="categories-menulist-menupopup"
|
||||||
value="&newevent.status.label;" hidden="true"/>
|
value="&newtodo.categories.label;"/>
|
||||||
<label id="task-status-label" for="cancelled-checkbox"
|
|
||||||
value="&newtodo.status.label;" hidden="true"/>
|
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox>
|
<hbox>
|
||||||
<menulist id="event-status-field" label="&newevent.status.label;"
|
<menulist id="categories-field">
|
||||||
hidden="true">
|
<menupopup id="categories-menulist-menupopup">
|
||||||
|
<menuitem label="&priority.level.none;" value="0"/>
|
||||||
|
</menupopup>
|
||||||
|
</menulist>
|
||||||
|
<spacer width="10px"/>
|
||||||
|
<!-- Status / Priority -->
|
||||||
|
<hbox align="center">
|
||||||
|
<label id="event-status-label" for="event-status-menulist-menupopup"
|
||||||
|
value="&newevent.status.label;" hidden="true"/>
|
||||||
|
<label id="task-priority-label" for="priority-levels"
|
||||||
|
value="&newtodo.priority.label;" hidden="true"/>
|
||||||
|
<menulist id="event-status-field" hidden="true">
|
||||||
<menupopup id="event-status-menulist-menupopup">
|
<menupopup id="event-status-menulist-menupopup">
|
||||||
<menuitem label="None"/>
|
<menuitem label="None"/>
|
||||||
<menuitem label="&newevent.status.tentative.label;"
|
<menuitem label="&newevent.status.tentative.label;"
|
||||||
|
@ -209,15 +214,12 @@
|
||||||
value="ICAL_STATUS_CANCELLED"/>
|
value="ICAL_STATUS_CANCELLED"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
<checkbox id="cancelled-checkbox" label="&newtodo.cancelled.label;"
|
<menulist id="priority-levels" hidden="true">
|
||||||
checked="false" hidden="true"/>
|
<menupopup>
|
||||||
<spacer width="10px"/>
|
|
||||||
<!-- Categories -->
|
|
||||||
<hbox align="center">
|
|
||||||
<label for="categories-menulist-menupopup" value="&newtodo.categories.label;"/>
|
|
||||||
<menulist id="categories-field" label="&newevent.category.label;">
|
|
||||||
<menupopup id="categories-menulist-menupopup">
|
|
||||||
<menuitem label="&priority.level.none;" value="0"/>
|
<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>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
@ -248,22 +250,39 @@
|
||||||
<rows>
|
<rows>
|
||||||
<row>
|
<row>
|
||||||
<hbox pack="end" align="center">
|
<hbox pack="end" align="center">
|
||||||
<label class="field-label-box-class" value="From"/>
|
<label id="event-start-datetime-label" class="field-label-box-class"
|
||||||
|
value="From" hidden="true"/>
|
||||||
|
<label id="task-start-datetime-label" class="field-label-box-class"
|
||||||
|
value="&newevent.startdate.label;" hidden="true"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox flex="1">
|
<hbox flex="1">
|
||||||
<datetimepicker id="start-datetime" value="" onchange="onDateTimePick( this );"/>
|
<checkbox id="start-checkbox"
|
||||||
|
oncommand="onDateTimeCheckbox(this, 'start-datetime')"
|
||||||
|
persist="checked" hidden="true"/>
|
||||||
|
<datetimepicker id="start-datetime" value=""
|
||||||
|
onchange="onDateTimePick( this );"/>
|
||||||
<spacer flex="1"/>
|
<spacer flex="1"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<hbox pack="end" align="center">
|
<hbox pack="end" align="center">
|
||||||
<label value="To"/>
|
<label id="event-end-datetime-label"
|
||||||
|
value="To" hidden="true"/>
|
||||||
|
<label id="task-due-datetime-label"
|
||||||
|
value="&newtodo.duedate.label;" hidden="true"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox flex="1">
|
<hbox flex="1">
|
||||||
<datetimepicker id="end-datetime" value="" onchange="onDateTimePick( this );"/>
|
<checkbox id="due-checkbox"
|
||||||
|
oncommand="onDateTimeCheckbox(this, 'due-datetime')"
|
||||||
|
persist="checked" hidden="true"/>
|
||||||
|
<datetimepicker id="due-datetime" value=""
|
||||||
|
onchange="onDateTimePick( this );" hidden="true"/>
|
||||||
|
<datetimepicker id="end-datetime" value=""
|
||||||
|
onchange="onDateTimePick( this );" hidden="true"/>
|
||||||
<spacer flex="1"/>
|
<spacer flex="1"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<!-- Invalid end date/time warnings -->
|
<!-- Invalid end date/time warnings -->
|
||||||
<row align="center">
|
<row align="center">
|
||||||
<spacer />
|
<spacer />
|
||||||
|
@ -287,6 +306,56 @@
|
||||||
<label id="due-date-warning" class="warning-text-class"
|
<label id="due-date-warning" class="warning-text-class"
|
||||||
value="&newtodo.duedate.warning;" hidden="true"/>
|
value="&newtodo.duedate.warning;" hidden="true"/>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
<!-- Completed -->
|
||||||
|
<row>
|
||||||
|
<hbox pack="end" align="center">
|
||||||
|
<label id="task-completed-label"
|
||||||
|
value="&newtodo.completed.label;" hidden="true"/>
|
||||||
|
</hbox>
|
||||||
|
<hbox flex="1" align="center">
|
||||||
|
<checkbox id="completed-checkbox" hidden="true"
|
||||||
|
oncommand="updateCompletedItemEnabled()"/>
|
||||||
|
<datepicker id="completed-date-picker"
|
||||||
|
disabled="true" value="" hidden="true"/>
|
||||||
|
<spacer/>
|
||||||
|
<menulist id="percent-complete-menulist"
|
||||||
|
editable="true" 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="true"/>
|
||||||
|
<spacer flex="1"/>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- Task Cancelled -->
|
||||||
|
<row>
|
||||||
|
<hbox pack="end" align="center">
|
||||||
|
<label id="todo-cancelled-label"
|
||||||
|
value="&newtodo.cancelled.label;" hidden="true"/>
|
||||||
|
</hbox>
|
||||||
|
<hbox flex="1" align="center">
|
||||||
|
<checkbox id="todo-cancelled-checkbox"
|
||||||
|
checked="false" hidden="true"/>
|
||||||
|
<spacer flex="1"/>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
@ -307,7 +376,7 @@
|
||||||
<menuitem label="None" value="none"/>
|
<menuitem label="None" value="none"/>
|
||||||
<menuitem label="Popup" value="popup"/>
|
<menuitem label="Popup" value="popup"/>
|
||||||
<menuitem label="Popup & Play Sound" value="popupAndSound"
|
<menuitem label="Popup & Play Sound" value="popupAndSound"
|
||||||
disabled="true"/>
|
hidden="true" disabled="true"/>
|
||||||
<menuitem label="Send Email" value="email"/>
|
<menuitem label="Send Email" value="email"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
|
@ -362,6 +431,14 @@
|
||||||
-->
|
-->
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
|
<menulist id="alarm-trigger-relation" crop="none" hidden="true">
|
||||||
|
<menupopup>
|
||||||
|
<menuitem label="&newtodo.beforealarm.label;"
|
||||||
|
value="ICAL_RELATED_START"/>
|
||||||
|
<menuitem label="&newtodo.beforealarmends.label;"
|
||||||
|
value="ICAL_RELATED_END"/>
|
||||||
|
</menupopup>
|
||||||
|
</menulist>
|
||||||
</vbox>
|
</vbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox id="alarm-box-email" align="center">
|
<hbox id="alarm-box-email" align="center">
|
||||||
|
@ -435,7 +512,7 @@
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox id="repeat-extenstions-week"
|
<hbox id="repeat-extensions-week"
|
||||||
disabled="true"
|
disabled="true"
|
||||||
disable-controller="repeat"
|
disable-controller="repeat"
|
||||||
collapsed="false"
|
collapsed="false"
|
||||||
|
@ -483,7 +560,7 @@
|
||||||
value="6"
|
value="6"
|
||||||
checked="false" />
|
checked="false" />
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox id="repeat-extenstions-month"
|
<hbox id="repeat-extensions-month"
|
||||||
disabled="true"
|
disabled="true"
|
||||||
collapsed="true"
|
collapsed="true"
|
||||||
align="center">
|
align="center">
|
||||||
|
@ -564,11 +641,13 @@
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<listbox id="exception-dates-listbox"
|
<listbox id="exception-dates-listbox"
|
||||||
|
oninput="textboxChanged( this.id, 'delete-exception-button' );"
|
||||||
disable-controller="repeat"
|
disable-controller="repeat"
|
||||||
rows="4"/>
|
rows="4"/>
|
||||||
<vbox>
|
<vbox>
|
||||||
<button label="&newevent.deleteexceptions.label;"
|
<button id="delete-exception-button"
|
||||||
disable-controller="repeat"
|
label="&newevent.deleteexceptions.label;"
|
||||||
|
disabled="true"
|
||||||
oncommand="removeSelectedExceptionDate()"/>
|
oncommand="removeSelectedExceptionDate()"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
</row>
|
</row>
|
||||||
|
@ -576,6 +655,9 @@
|
||||||
</grid>
|
</grid>
|
||||||
</groupbox>
|
</groupbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
<hbox flex="2">
|
||||||
|
<spacer flex="2"/>
|
||||||
|
</hbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
</tabpanel><!-- /Repeat -->
|
</tabpanel><!-- /Repeat -->
|
||||||
|
|
||||||
|
@ -587,9 +669,10 @@
|
||||||
<checkbox id="invite-checkbox"
|
<checkbox id="invite-checkbox"
|
||||||
label="&newevent.invite.label;"
|
label="&newevent.invite.label;"
|
||||||
checked="false"
|
checked="false"
|
||||||
oncommand="commandInvite()"/>
|
oncommand="processInviteCheckbox()"/>
|
||||||
<textbox id="invite-email-field"
|
<textbox id="invite-email-field"
|
||||||
size="39"
|
size="39"
|
||||||
|
oninput="textboxChanged( this.id, 'invite-email-button' );"
|
||||||
disabled="true"/>
|
disabled="true"/>
|
||||||
<button label="Add" id="invite-email-button" onclick="onIniviteAdd();"/>
|
<button label="Add" id="invite-email-button" onclick="onIniviteAdd();"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
@ -707,7 +790,9 @@
|
||||||
|
|
||||||
<!-- "Advanced" tab -->
|
<!-- "Advanced" tab -->
|
||||||
<tabpanel>
|
<tabpanel>
|
||||||
|
<vbox flex="1">
|
||||||
|
<hbox flex="1">
|
||||||
|
<groupbox flex="1">
|
||||||
<grid>
|
<grid>
|
||||||
<columns>
|
<columns>
|
||||||
<column/>
|
<column/>
|
||||||
|
@ -722,13 +807,16 @@
|
||||||
</hbox>
|
</hbox>
|
||||||
<hbox>
|
<hbox>
|
||||||
<textbox id="uri-field"
|
<textbox id="uri-field"
|
||||||
|
oninput="textboxChanged( this.id, 'load-url-button' );"
|
||||||
#ifndef MOZ_SUNBIRD
|
#ifndef MOZ_SUNBIRD
|
||||||
type="autocomplete"
|
type="autocomplete"
|
||||||
searchSessions="history"
|
searchSessions="history"
|
||||||
#endif
|
#endif
|
||||||
flex="1"/>
|
flex="1"/>
|
||||||
<button label="&newevent.uri.visit.label;"
|
<button id="load-url-button"
|
||||||
oncommand="loadURL()"/>
|
label="&newevent.uri.visit.label;"
|
||||||
|
oncommand="loadURL()"
|
||||||
|
disabled="true"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
@ -753,8 +841,9 @@
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
|
</groupbox>
|
||||||
|
</hbox>
|
||||||
|
</vbox>
|
||||||
</tabpanel>
|
</tabpanel>
|
||||||
|
|
||||||
</tabpanels>
|
</tabpanels>
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
<!ENTITY newevent.private.label "Private" >
|
<!ENTITY newevent.private.label "Private" >
|
||||||
<!ENTITY newevent.private.note "This event is private." >
|
<!ENTITY newevent.private.note "This event is private." >
|
||||||
<!ENTITY newevent.alarm.label "Alarm" >
|
<!ENTITY newevent.alarm.label "Alarm" >
|
||||||
<!ENTITY newevent.server.label "Calendar File" >
|
<!ENTITY newevent.server.label "Calendar" >
|
||||||
<!ENTITY newevent.invite.label "Invite" >
|
<!ENTITY newevent.invite.label "Invite" >
|
||||||
<!ENTITY newevent.email.label "Email Alarm To:" >
|
<!ENTITY newevent.email.label "Email Alarm To:" >
|
||||||
<!ENTITY newevent.beforealarm.label "before the event starts" >
|
<!ENTITY newevent.beforealarm.label "before the event starts" >
|
||||||
|
@ -105,10 +105,11 @@
|
||||||
<!ENTITY newevent.endtime.tooltip "Choose an end time for this event" >
|
<!ENTITY newevent.endtime.tooltip "Choose an end time for this event" >
|
||||||
<!ENTITY newevent.starttimeerror.alertmessage "Your event cannot end before it has started. Please fix either the start time or the end time." >
|
<!ENTITY newevent.starttimeerror.alertmessage "Your event cannot end before it has started. Please fix either the start time or the end time." >
|
||||||
<!ENTITY newevent.recurendtimeerror.alertmessage "Your event's repeat time cannot be before the event end time. Please fix this, or disable repeating." >
|
<!ENTITY newevent.recurendtimeerror.alertmessage "Your event's repeat time cannot be before the event end time. Please fix this, or disable repeating." >
|
||||||
<!ENTITY newevent.newevent.tab.label "Event" >
|
<!ENTITY newevent.general.tab.label "General" >
|
||||||
<!ENTITY newevent.recurrence.tab.label "Recurrence" >
|
<!ENTITY newevent.recurrence.tab.label "Recurrence" >
|
||||||
<!ENTITY newevent.contacts.tab.label "Contacts" >
|
<!ENTITY newevent.attendees.tab.label "Attendees" >
|
||||||
<!ENTITY newevent.files.tab.label "Files" >
|
<!ENTITY newevent.attachments.tab.label "Attachments" >
|
||||||
|
<!ENTITY newevent.advanced.tab.label "Advanced" >
|
||||||
<!ENTITY newevent.status.label "Status" >
|
<!ENTITY newevent.status.label "Status" >
|
||||||
<!ENTITY newevent.status.longlabel "Event Status">
|
<!ENTITY newevent.status.longlabel "Event Status">
|
||||||
<!ENTITY newevent.status.needsaction.label "Needs Action" >
|
<!ENTITY newevent.status.needsaction.label "Needs Action" >
|
||||||
|
@ -117,6 +118,10 @@
|
||||||
<!ENTITY newevent.status.cancelled.label "Cancelled" >
|
<!ENTITY newevent.status.cancelled.label "Cancelled" >
|
||||||
<!ENTITY newevent.status.tentative.label "Tentative" >
|
<!ENTITY newevent.status.tentative.label "Tentative" >
|
||||||
<!ENTITY newevent.status.confirmed.label "Confirmed" >
|
<!ENTITY newevent.status.confirmed.label "Confirmed" >
|
||||||
|
<!ENTITY newevent.itemType.label "Item Type" >
|
||||||
|
<!ENTITY newevent.itemType.event.label "Event" >
|
||||||
|
<!ENTITY newevent.itemType.todo.label "Task" >
|
||||||
|
<!ENTITY newevent.itemType.journal.label "Journal" >
|
||||||
|
|
||||||
<!ENTITY newevent.advanced.repeat.dayofmonth.label "On the xth day of the month">
|
<!ENTITY newevent.advanced.repeat.dayofmonth.label "On the xth day of the month">
|
||||||
<!ENTITY newevent.advanced.repeat.dayofweek.label "4th Tuesday of the month">
|
<!ENTITY newevent.advanced.repeat.dayofweek.label "4th Tuesday of the month">
|
||||||
|
|
Загрузка…
Ссылка в новой задаче