diff options
Diffstat (limited to 'calendar/base/content/dialogs/calendar-event-dialog-recurrence.xul')
-rw-r--r-- | calendar/base/content/dialogs/calendar-event-dialog-recurrence.xul | 514 |
1 files changed, 514 insertions, 0 deletions
diff --git a/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xul b/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xul new file mode 100644 index 000000000..ea8a942e0 --- /dev/null +++ b/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xul @@ -0,0 +1,514 @@ +<?xml version="1.0"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<?xml-stylesheet type="text/css" href="chrome://global/skin/global.css"?> +<?xml-stylesheet type="text/css" href="chrome://calendar/skin/calendar-event-dialog.css"?> +<?xml-stylesheet type="text/css" href="chrome://calendar/content/calendar-event-dialog.css"?> +<?xml-stylesheet type="text/css" href="chrome://calendar/content/datetimepickers/datetimepickers.css"?> + +<!DOCTYPE dialog [ + <!ENTITY % dialogDTD SYSTEM "chrome://calendar/locale/calendar-event-dialog.dtd"> + %dialogDTD; +]> + +<dialog id="calendar-event-dialog-recurrence" + title="&recurrence.title.label;" + windowtype="Calendar:EventDialog:Recurrence" + onload="onLoad()" + ondialogaccept="return onAccept();" + ondialogcancel="return onCancel();" + persist="screenX screenY width height" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + + <!-- Javascript includes --> + <script type="application/javascript" src="chrome://calendar/content/calendar-event-dialog-recurrence.js"/> + <script type="application/javascript" src="chrome://calendar/content/calendar-dialog-utils.js"/> + <script type="application/javascript" src="chrome://calendar/content/calendar-ui-utils.js"/> + <script type="application/javascript" src="chrome://calendar/content/calUtils.js"/> + <script type="application/javascript" src="chrome://calendar/content/calendar-statusbar.js"/> + + <!-- recurrence pattern --> + <groupbox id="recurrence-pattern-groupbox"> + <caption id="recurrence-pattern-caption" + label="&event.recurrence.pattern.label;"/> + <grid id="recurrence-pattern-grid"> + <columns id="recurrence-pattern-columns"> + <column id="recurrence-pattern-description-column"/> + <column id="recurrence-pattern-controls-column"/> + </columns> + <rows id="recurrence-pattern-rows"> + <row id="recurrence-pattern-repeat-row" align="center"> + <label value="&event.recurrence.occurs.label;" + disable-on-readonly="true" + disable-on-occurrence="true" + control="period-list"/> + <menulist id="period-list" + oncommand="updateRecurrenceDeck();" + disable-on-readonly="true" + disable-on-occurrence="true"> + <menupopup id="period-list-menupopup"> + <menuitem id="period-list-day-menuitem" + label="&event.recurrence.day.label;" + value="0"/> + <menuitem id="period-list-week-menuitem" + label="&event.recurrence.week.label;" + value="1"/> + <menuitem id="period-list-month-menuitem" + label="&event.recurrence.month.label;" + value="2"/> + <menuitem id="period-list-year-menuitem" + label="&event.recurrence.year.label;" + value="3"/> + </menupopup> + </menulist> + </row> + <row id="recurrence-pattern-period-row" align="top"> + <spacer/> + <deck id="period-deck" oncommand="updateRecurrenceControls();"> + + <!-- Daily --> + <box id="period-deck-daily-box" + orient="vertical" + align="top"> + <radiogroup id="daily-group"> + <box id="daily-period-every-box" orient="horizontal" align="center"> + <radio id="daily-group-every-radio" + label="&event.recurrence.pattern.every.label;" + disable-on-readonly="true" + disable-on-occurrence="true" + selected="true"/> + <textbox id="daily-days" + type="number" + value="1" + min="1" + max="0x7FFF" + size="3" + onkeyup="updateRecurrenceControls();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <label id="daily-group-every-units-label" + value="&repeat.units.days.both;" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <spacer id="daily-group-spacer" flex="1"/> + </box> + <radio id="daily-group-weekday-radio" + label="&event.recurrence.pattern.every.weekday.label;" + disable-on-readonly="true" + disable-on-occurrence="true"/> + </radiogroup> + </box> + <!-- Weekly --> + <vbox id="period-deck-weekly-box"> + <hbox id="weekly-period-every-box" align="center"> + <label id="weekly-period-every-label" + value="&event.recurrence.pattern.weekly.every.label;" + disable-on-readonly="true" + disable-on-occurrence="true" + control="weekly-weeks"/> + <textbox id="weekly-weeks" + type="number" + value="1" + min="1" + max="0x7FFF" + size="3" + onkeyup="updateRecurrenceControls();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <label id="weekly-period-units-label" + value="&repeat.units.weeks.both;" + disable-on-readonly="true" + disable-on-occurrence="true"/> + </hbox> + <hbox align="center"> + <label id="weekly-period-on-label" + value="&event.recurrence.on.label;" + disable-on-readonly="true" + disable-on-occurrence="true" + control="daypicker-weekday"/> + <daypicker-weekday id="daypicker-weekday" + flex="1" + disable-on-readonly="true" + disable-on-occurrence="true" + onselect="updateRecurrenceControls();"/> + </hbox> + </vbox> + + <!-- Monthly --> + <vbox id="period-deck-monthly-box"> + <hbox id="montly-period-every-box" align="center"> + <label id="monthly-period-every-label" + value="&event.recurrence.pattern.monthly.every.label;" + disable-on-readonly="true" + disable-on-occurrence="true" + control="monthly-interval"/> + <textbox id="monthly-interval" + type="number" + value="1" + min="1" + max="0x7FFF" + size="3" + onkeyup="updateRecurrenceControls();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <label id="monthly-period-units-label" + value="&repeat.units.months.both;" + disable-on-readonly="true" + disable-on-occurrence="true"/> + </hbox> + <radiogroup id="monthly-group"> + <box id="monthly-period-relative-date-box" + orient="horizontal" align="center"> + <radio id="montly-period-relative-date-radio" + selected="true" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <menulist id="monthly-ordinal" + disable-on-readonly="true" + disable-on-occurrence="true"> + <menupopup id="montly-ordinal-menupopup"> + <menuitem id="monthly-ordinal-every-label" + label="&event.recurrence.monthly.every.label;" + value="0"/> + <menuitem id="monthly-ordinal-first-label" + label="&event.recurrence.monthly.first.label;" + value="1"/> + <menuitem id="monthly-ordinal-second-label" + label="&event.recurrence.monthly.second.label;" + value="2"/> + <menuitem id="monthly-ordinal-third-label" + label="&event.recurrence.monthly.third.label;" + value="3"/> + <menuitem id="monthly-ordinal-fourth-label" + label="&event.recurrence.monthly.fourth.label;" + value="4"/> + <menuitem id="monthly-ordinal-fifth-label" + label="&event.recurrence.monthly.fifth.label;" + value="5"/> + <menuitem id="monthly-ordinal-last-label" + label="&event.recurrence.monthly.last.label;" + value="-1"/> + </menupopup> + </menulist> + <menulist id="monthly-weekday" + disable-on-readonly="true" + disable-on-occurrence="true"> + <menupopup id="monthly-weekday-menupopup"> + <menuitem id="monthly-weekday-1" + label="&event.recurrence.pattern.monthly.week.1.label;" + value="1"/> + <menuitem id="monthly-weekday-2" + label="&event.recurrence.pattern.monthly.week.2.label;" + value="2"/> + <menuitem id="monthly-weekday-3" + label="&event.recurrence.pattern.monthly.week.3.label;" + value="3"/> + <menuitem id="monthly-weekday-4" + label="&event.recurrence.pattern.monthly.week.4.label;" + value="4"/> + <menuitem id="monthly-weekday-5" + label="&event.recurrence.pattern.monthly.week.5.label;" + value="5"/> + <menuitem id="monthly-weekday-6" + label="&event.recurrence.pattern.monthly.week.6.label;" + value="6"/> + <menuitem id="monthly-weekday-7" + label="&event.recurrence.pattern.monthly.week.7.label;" + value="7"/> + <menuitem id="monthly-weekday-dayofmonth" + label="&event.recurrence.repeat.dayofmonth.label;" + value="-1"/> + </menupopup> + </menulist> + </box> + <box id="monthly-period-specific-date-box" + orient="horizontal" + align="center"> + <radio id="montly-period-specific-date-radio" + label="&event.recurrence.repeat.recur.label;" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <daypicker-monthday id="monthly-days" + onselect="updateRecurrenceControls();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + </box> + </radiogroup> + </vbox> + + <!-- Yearly --> + <box id="period-deck-yearly-box" + orient="vertical" + align="top"> + <hbox id="yearly-period-every-box" align="center"> + <label id="yearly-period-every-label" + value="&event.recurrence.every.label;" + control="yearly-interval"/> + <textbox id="yearly-interval" + type="number" + value="1" + min="1" + max="0x7FFF" + size="3" + onkeyup="updateRecurrenceControls();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <label id="yearly-period-units-label" value="&repeat.units.years.both;"/> + </hbox> + <radiogroup id="yearly-group"> + <grid id="yearly-period-grid"> + <columns id="yearly-period-columns"> + <column id="yearly-period-radio-column"/> + <column id="yearly-period-controls-column"/> + </columns> + <rows id="yearly-period-rows"> + <row id="yearly-period-absolute-row" align="center"> + <radio id="yearly-period-absolute-radio" + label="&event.recurrence.pattern.yearly.every.month.label;" + selected="true" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <box id="yearly-period-absolute-controls" + orient="horizontal" + align="center"> + <textbox id="yearly-days" + type="number" + value="1" + min="1" + size="3" + onkeyup="updateRecurrenceControls();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <label id="yearly-period-of-month-label" + value="&event.recurrence.pattern.yearly.of.label;" + control="yearly-month-ordinal"/> + <menulist id="yearly-month-ordinal" + disable-on-readonly="true" + disable-on-occurrence="true"> + <menupopup id="yearly-month-ordinal-menupopup"> + <menuitem id="yearly-month-ordinal-1" + label="&event.recurrence.pattern.yearly.month.1.label;" + value="1"/> + <menuitem id="yearly-month-ordinal-2" + label="&event.recurrence.pattern.yearly.month.2.label;" + value="2"/> + <menuitem id="yearly-month-ordinal-3" + label="&event.recurrence.pattern.yearly.month.3.label;" + value="3"/> + <menuitem id="yearly-month-ordinal-4" + label="&event.recurrence.pattern.yearly.month.4.label;" + value="4"/> + <menuitem id="yearly-month-ordinal-5" + label="&event.recurrence.pattern.yearly.month.5.label;" + value="5"/> + <menuitem id="yearly-month-ordinal-6" + label="&event.recurrence.pattern.yearly.month.6.label;" + value="6"/> + <menuitem id="yearly-month-ordinal-7" + label="&event.recurrence.pattern.yearly.month.7.label;" + value="7"/> + <menuitem id="yearly-month-ordinal-8" + label="&event.recurrence.pattern.yearly.month.8.label;" + value="8"/> + <menuitem id="yearly-month-ordinal-9" + label="&event.recurrence.pattern.yearly.month.9.label;" + value="9"/> + <menuitem id="yearly-month-ordinal-10" + label="&event.recurrence.pattern.yearly.month.10.label;" + value="10"/> + <menuitem id="yearly-month-ordinal-11" + label="&event.recurrence.pattern.yearly.month.11.label;" + value="11"/> + <menuitem id="yearly-month-ordinal-12" + label="&event.recurrence.pattern.yearly.month.12.label;" + value="12"/> + </menupopup> + </menulist> + </box> + </row> + <row id="yearly-period-relative-row" align="center"> + <radio id="yearly-period-relative-radio" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <box id="yearly-period-relative-controls" + orient="horizontal" + align="center"> + <menulist id="yearly-ordinal" + disable-on-readonly="true" + disable-on-occurrence="true"> + <menupopup id="yearly-ordinal-menupopup"> + <menuitem id="yearly-ordinal-every" + label="&event.recurrence.yearly.every.label;" + value="0"/> + <menuitem id="yearly-ordinal-first" + label="&event.recurrence.yearly.first.label;" + value="1"/> + <menuitem id="yearly-ordinal-second" + label="&event.recurrence.yearly.second.label;" + value="2"/> + <menuitem id="yearly-ordinal-third" + label="&event.recurrence.yearly.third.label;" + value="3"/> + <menuitem id="yearly-ordinal-fourth" + label="&event.recurrence.yearly.fourth.label;" + value="4"/> + <menuitem id="yearly-ordinal-fifth" + label="&event.recurrence.yearly.fifth.label;" + value="5"/> + <menuitem id="yearly-ordinal-last" + label="&event.recurrence.yearly.last.label;" + value="-1"/> + </menupopup> + </menulist> + <menulist id="yearly-weekday" + disable-on-readonly="true" + disable-on-occurrence="true"> + <menupopup id="yearly-weekday-menupopup"> + <menuitem id="yearly-weekday-1" + label="&event.recurrence.pattern.yearly.week.1.label;" + value="1"/> + <menuitem id="yearly-weekday-2" + label="&event.recurrence.pattern.yearly.week.2.label;" + value="2"/> + <menuitem id="yearly-weekday-3" + label="&event.recurrence.pattern.yearly.week.3.label;" + value="3"/> + <menuitem id="yearly-weekday-4" + label="&event.recurrence.pattern.yearly.week.4.label;" + value="4"/> + <menuitem id="yearly-weekday-5" + label="&event.recurrence.pattern.yearly.week.5.label;" + value="5"/> + <menuitem id="yearly-weekday-6" + label="&event.recurrence.pattern.yearly.week.6.label;" + value="6"/> + <menuitem id="yearly-weekday-7" + label="&event.recurrence.pattern.yearly.week.7.label;" + value="7"/> + <menuitem id="yearly-weekday--1" + label="&event.recurrence.pattern.yearly.day.label;" + value="-1"/> + </menupopup> + </menulist> + </box> + </row> + <row id="yearly-period-monthname-row" align="center"> + <label id="yearly-period-of-label" + value="&event.recurrence.of.label;" + control="yearly-month-rule"/> + <menulist id="yearly-month-rule" + disable-on-readonly="true" + disable-on-occurrence="true"> + <menupopup id="yearly-month-rule-menupopup"> + <menuitem id="yearly-month-rule-1" + label="&event.recurrence.pattern.yearly.month2.1.label;" + value="1"/> + <menuitem id="yearly-month-rule-2" + label="&event.recurrence.pattern.yearly.month2.2.label;" + value="2"/> + <menuitem id="yearly-month-rule-3" + label="&event.recurrence.pattern.yearly.month2.3.label;" + value="3"/> + <menuitem id="yearly-month-rule-4" + label="&event.recurrence.pattern.yearly.month2.4.label;" + value="4"/> + <menuitem id="yearly-month-rule-5" + label="&event.recurrence.pattern.yearly.month2.5.label;" + value="5"/> + <menuitem id="yearly-month-rule-6" + label="&event.recurrence.pattern.yearly.month2.6.label;" + value="6"/> + <menuitem id="yearly-month-rule-7" + label="&event.recurrence.pattern.yearly.month2.7.label;" + value="7"/> + <menuitem id="yearly-month-rule-8" + label="&event.recurrence.pattern.yearly.month2.8.label;" + value="8"/> + <menuitem id="yearly-month-rule-9" + label="&event.recurrence.pattern.yearly.month2.9.label;" + value="9"/> + <menuitem id="yearly-month-rule-10" + label="&event.recurrence.pattern.yearly.month2.10.label;" + value="10"/> + <menuitem id="yearly-month-rule-11" + label="&event.recurrence.pattern.yearly.month2.11.label;" + value="11"/> + <menuitem id="yearly-month-rule-12" + label="&event.recurrence.pattern.yearly.month2.12.label;" + value="12"/> + </menupopup> + </menulist> + </row> + </rows> + </grid> + </radiogroup> + </box> + </deck> + </row> + </rows> + </grid> + </groupbox> + + <!-- range of recurrence --> + <groupbox id="recurrence-range-groupbox"> + <caption id="recurrence-range-caption" + label="&event.recurrence.range.label;"/> + <vbox> + <radiogroup id="recurrence-duration" + oncommand="updateRecurrenceControls()"> + <radio id="recurrence-range-forever" + label="&event.recurrence.forever.label;" + value="forever" + selected="true" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <box id="recurrence-range-count-box" + orient="horizontal" + align="center"> + <radio id="recurrence-range-for" + label="&event.recurrence.repeat.for.label;" + value="ntimes" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <textbox id="repeat-ntimes-count" + type="number" + value="5" + min="1" + max="0x7FFF" + size="3" + onkeyup="updateRecurrenceControls();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + <label id="repeat-appointments-label" + value="&event.recurrence.appointments.label;" + disable-on-readonly="true" + disable-on-occurrence="true"/> + </box> + <box id="recurrence-range-until-box" + orient="horizontal" + align="center"> + <radio id="recurrence-range-until" + label="&event.repeat.until.label;" + value="until" + disable-on-readonly="true" + disable-on-occurrence="true" + control="repeat-until-date"/> + <datepicker id="repeat-until-date" + onchange="checkUntilDate();" + disable-on-readonly="true" + disable-on-occurrence="true"/> + </box> + </radiogroup> + </vbox> + </groupbox> + + <!-- preview --> + <groupbox id="preview-border" flex="1"> + <label id="recurrence-preview-label" + value="&event.recurrence.preview.label;" + control="recurrence-preview"/> + <recurrence-preview id="recurrence-preview" flex="1"/> + </groupbox> +</dialog> |