mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-24 05:13:07 +09:00
85 lines
2.3 KiB
JavaScript
85 lines
2.3 KiB
JavaScript
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* 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 FOLDERS = 1;
|
|
var MESSAGES = 2;
|
|
var dialog;
|
|
|
|
function onLoad()
|
|
{
|
|
var windowArgs = window.arguments[0];
|
|
|
|
dialog = {};
|
|
|
|
dialog.nameField = document.getElementById("name");
|
|
dialog.nameField.focus();
|
|
|
|
// call this when OK is pressed
|
|
dialog.okCallback = windowArgs.okCallback;
|
|
|
|
// pre select the folderPicker, based on what they selected in the folder pane
|
|
dialog.folder = windowArgs.folder;
|
|
try {
|
|
document.getElementById("MsgNewFolderPopup").selectFolder(windowArgs.folder);
|
|
} catch(ex) {
|
|
// selected a child folder
|
|
document.getElementById("msgNewFolderPicker")
|
|
.setAttribute("label", windowArgs.folder.prettyName);
|
|
}
|
|
|
|
// can folders contain both folders and messages?
|
|
if (windowArgs.dualUseFolders) {
|
|
dialog.folderType = FOLDERS | MESSAGES;
|
|
|
|
// hide the section when folder contain both folders and messages.
|
|
var newFolderTypeBox = document.getElementById("newFolderTypeBox");
|
|
newFolderTypeBox.setAttribute("hidden", "true");
|
|
} else {
|
|
// set our folder type by calling the default selected type's oncommand
|
|
var selectedFolderType = document.getElementById("folderGroup").selectedItem;
|
|
eval(selectedFolderType.getAttribute("oncommand"));
|
|
}
|
|
|
|
doEnabling();
|
|
}
|
|
|
|
function onFolderSelect(event) {
|
|
dialog.folder = event.target._folder;
|
|
document.getElementById("msgNewFolderPicker")
|
|
.setAttribute("label", dialog.folder.prettyName);
|
|
}
|
|
|
|
function onOK()
|
|
{
|
|
var name = dialog.nameField.value;
|
|
var uri = dialog.folder;
|
|
|
|
// do name validity check?
|
|
|
|
// make sure name ends in "/" if folder to create can only contain folders
|
|
if ((dialog.folderType == FOLDERS) && !name.endsWith("/"))
|
|
dialog.okCallback(name + "/", dialog.folder);
|
|
else
|
|
dialog.okCallback(name, dialog.folder);
|
|
|
|
return true;
|
|
}
|
|
|
|
function onFoldersOnly()
|
|
{
|
|
dialog.folderType = FOLDERS;
|
|
}
|
|
|
|
function onMessagesOnly()
|
|
{
|
|
dialog.folderType = MESSAGES;
|
|
}
|
|
|
|
function doEnabling()
|
|
{
|
|
document.documentElement.getButton("accept").disabled = !dialog.nameField.value;
|
|
}
|
|
|