diff options
Diffstat (limited to 'comm/calendar/base/content/dialogs/calendar-occurrence-prompt.js')
-rw-r--r-- | comm/calendar/base/content/dialogs/calendar-occurrence-prompt.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/comm/calendar/base/content/dialogs/calendar-occurrence-prompt.js b/comm/calendar/base/content/dialogs/calendar-occurrence-prompt.js new file mode 100644 index 0000000000..cb66e24ff9 --- /dev/null +++ b/comm/calendar/base/content/dialogs/calendar-occurrence-prompt.js @@ -0,0 +1,62 @@ +/* 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/. */ + +var { cal } = ChromeUtils.import("resource:///modules/calendar/calUtils.jsm"); + +window.addEventListener("DOMContentLoaded", onLoad); + +document.addEventListener("dialogaccept", () => exitOccurrenceDialog(1)); +document.addEventListener("dialogcancel", () => exitOccurrenceDialog(0)); + +function exitOccurrenceDialog(aReturnValue) { + window.arguments[0].value = aReturnValue; + window.close(); +} + +function getDString(aKey) { + return cal.l10n.getString("calendar-occurrence-prompt", aKey); +} + +function onLoad() { + let action = window.arguments[0].action || "edit"; + // the calling code prevents sending no items + let multiple = window.arguments[0].items.length == 1 ? "single" : "multiple"; + let itemType; + for (let item of window.arguments[0].items) { + let type = item.isEvent() ? "event" : "task"; + if (itemType != type) { + itemType = itemType ? "mixed" : type; + } + } + + // Set up title and type label + document.title = getDString(`windowtitle.${itemType}.${action}`); + let title = document.getElementById("title-label"); + if (multiple == "multiple") { + title.value = getDString("windowtitle.multipleitems"); + document.getElementById("isrepeating-label").value = getDString( + `header.containsrepeating.${itemType}.label` + ); + } else { + title.value = window.arguments[0].items[0].title; + document.getElementById("isrepeating-label").value = getDString( + `header.isrepeating.${itemType}.label` + ); + } + + // Set up buttons + document.getElementById("accept-buttons-box").setAttribute("action", action); + document.getElementById("accept-buttons-box").setAttribute("type", itemType); + + document.getElementById("accept-occurrence-button").label = getDString( + `buttons.${multiple}.occurrence.${action}.label` + ); + + document.getElementById("accept-allfollowing-button").label = getDString( + `buttons.${multiple}.allfollowing.${action}.label` + ); + document.getElementById("accept-parent-button").label = getDString( + `buttons.${multiple}.parent.${action}.label` + ); +} |