From 3c70a8120237a1201d3132578dbb0ec13126471c Mon Sep 17 00:00:00 2001 From: "mattwillis%gmail.com" Date: Sat, 17 Jun 2006 13:17:39 +0000 Subject: [PATCH] bug 182274 - adds ui for selecting trash folder. r=bienvenu,sr=sspitzer --- .../en-US/chrome/messenger/am-server-top.dtd | 10 +-- .../base/prefs/resources/content/am-server.js | 71 +++++++++++++++++++ .../prefs/resources/content/am-server.xul | 55 +++++++++++--- .../resources/locale/en-US/am-server-top.dtd | 10 +-- .../content/msgFolderPickerOverlay.js | 12 +++- .../content/msgFolderPickerOverlay.xul | 54 ++++++++++++++ 6 files changed, 190 insertions(+), 22 deletions(-) diff --git a/mail/locales/en-US/chrome/messenger/am-server-top.dtd b/mail/locales/en-US/chrome/messenger/am-server-top.dtd index c40dc4262740..edea8bf13d4f 100644 --- a/mail/locales/en-US/chrome/messenger/am-server-top.dtd +++ b/mail/locales/en-US/chrome/messenger/am-server-top.dtd @@ -24,7 +24,7 @@ biffEnd.label "minutes for new messages Check" --> - + @@ -55,10 +55,12 @@ - - - + + + + + diff --git a/mailnews/base/prefs/resources/content/am-server.js b/mailnews/base/prefs/resources/content/am-server.js index b0b1c821584e..0b86dc9e7fc7 100644 --- a/mailnews/base/prefs/resources/content/am-server.js +++ b/mailnews/base/prefs/resources/content/am-server.js @@ -26,6 +26,7 @@ * racham@netscape.com * hwaara@chello.se * bienvenu@nventure.com + * Matthew Willis * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), @@ -53,6 +54,7 @@ function onInit() setupMailOnServerUI(); setupFixedUI(); setupNotifyUI(); + setupImapDeleteUI(); } function onPreInit(account, accountValues) @@ -312,3 +314,72 @@ function BrowseForNewsrc() if (fp.show() != nsIFilePicker.returnCancel) newsrcTextBox.value = fp.file.path; } + +function setupImapDeleteUI() +{ + // read delete_model preference + var deleteModel = document.getElementById("imap.deleteModel").getAttribute("value"); + selectImapDeleteModel(deleteModel) + + // read trash_folder_name preference + var trashFolderName = getTrashFolderName(); + var serverId = GetCurrentServerId(); + + // set folderPicker menulist + document.getElementById("msgTrashFolderPicker").setAttribute("ref", serverId); + var trashFolderUri = serverId+"/"+trashFolderName; + SetFolderPicker(trashFolderUri,"msgTrashFolderPicker"); +} + +function selectImapDeleteModel(choice) +{ + // set deleteModel to selected mode + document.getElementById("imap.deleteModel").setAttribute("value", choice); + + switch (choice) + { + case "0" : // markDeleted + // disable folderPicker + document.getElementById("msgTrashFolderPicker").setAttribute("disabled", "true"); + break; + case "1" : // moveToTrashFolder + // enable folderPicker + document.getElementById("msgTrashFolderPicker").removeAttribute("disabled"); + break; + case "2" : // deleteImmediately + // disable folderPicker + document.getElementById("msgTrashFolderPicker").setAttribute("disabled", "true"); + break; + default : + dump("Error in enabling/disabling server.TrashFolderPicker\n"); + break; + } +} + +// Capture any menulist changes from folderPicker +function folderPickerChange(radioItemId) +{ + var trashFolderPickerUri = document.getElementById(radioItemId).getAttribute("uri"); + var trashFolderName = GetMsgFolderFromUri(trashFolderPickerUri, true); + document.getElementById("imap.trashFolderName").setAttribute("value",trashFolderName.name); +} + +// Get trash_folder_name from prefs +function getTrashFolderName() +{ + var trashFolderName = document.getElementById("imap.trashFolderName").getAttribute("value"); + // if the preference hasn't been set, set it to a sane default + if (!trashFolderName) { + trashFolderName = "Trash"; + document.getElementById("imap.trashFolderName").setAttribute("value",trashFolderName); + } + return trashFolderName; +} + +// Get Current Server ID selected in the account tree +function GetCurrentServerId() +{ + var tree = window.parent.accounttree; + var result = getServerIdAndPageIdFromTree(tree); + return result.serverId; +} diff --git a/mailnews/base/prefs/resources/content/am-server.xul b/mailnews/base/prefs/resources/content/am-server.xul index 5ba614b90e40..53b335b90817 100644 --- a/mailnews/base/prefs/resources/content/am-server.xul +++ b/mailnews/base/prefs/resources/content/am-server.xul @@ -26,6 +26,7 @@ Contributor(s): HÃ¥kan Waara bienvenu@nventure.com + Matthew Willis Alternatively, the contents of this file may be used under the terms of either of the GNU General Public License Version 2 or later (the "GPL"), @@ -43,6 +44,8 @@ + +