From 81c373d79e22b4630bed8b066d9fce058ca03a85 Mon Sep 17 00:00:00 2001 From: "bienvenu%nventure.com" Date: Wed, 1 Jun 2005 17:15:30 +0000 Subject: [PATCH] frontend support for message aging, 11055, r=neil, sr=mscott, a=chofmann --- .../en-US/chrome/messenger/am-offline.dtd | 18 ++-- .../en-US/chrome/messenger/folderProps.dtd | 16 +++ .../prefs/resources/content/am-offline.js | 99 +++++-------------- .../prefs/resources/content/am-offline.xul | 29 +++--- .../resources/locale/en-US/am-offline.dtd | 18 ++-- .../base/resources/content/folderProps.js | 63 ++++++++++-- .../base/resources/content/folderProps.xul | 37 ++++++- mailnews/base/resources/content/retention.js | 80 +++++++++++++++ .../resources/locale/en-US/folderProps.dtd | 20 ++++ 9 files changed, 263 insertions(+), 117 deletions(-) create mode 100755 mailnews/base/resources/content/retention.js diff --git a/mail/locales/en-US/chrome/messenger/am-offline.dtd b/mail/locales/en-US/chrome/messenger/am-offline.dtd index fc2ba0c4c41f..7fb40829a51e 100644 --- a/mail/locales/en-US/chrome/messenger/am-offline.dtd +++ b/mail/locales/en-US/chrome/messenger/am-offline.dtd @@ -12,15 +12,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/mail/locales/en-US/chrome/messenger/folderProps.dtd b/mail/locales/en-US/chrome/messenger/folderProps.dtd index 993825f68846..c8e6163e826e 100644 --- a/mail/locales/en-US/chrome/messenger/folderProps.dtd +++ b/mail/locales/en-US/chrome/messenger/folderProps.dtd @@ -46,6 +46,22 @@ + + + + + + + + + + + + + + + + diff --git a/mailnews/base/prefs/resources/content/am-offline.js b/mailnews/base/prefs/resources/content/am-offline.js index 18d273dd07cb..ea2642572e91 100644 --- a/mailnews/base/prefs/resources/content/am-offline.js +++ b/mailnews/base/prefs/resources/content/am-offline.js @@ -75,40 +75,14 @@ function initServerSettings() function initRetentionSettings() { - var retentionSettings = gIncomingServer.retentionSettings; + initCommonRetentionSettings(retentionSettings); - document.getElementById("nntp.keepUnread").checked = retentionSettings.keepUnreadMessagesOnly; document.getElementById("nntp.removeBody").checked = retentionSettings.cleanupBodiesByDays; - document.getElementById("nntp.keepMsg").setAttribute("value", retentionSettings.retainByPreference); - if(retentionSettings.daysToKeepHdrs > 0) - document.getElementById("nntp.keepOldMsgMin").setAttribute("value", retentionSettings.daysToKeepHdrs); - else - document.getElementById("nntp.keepOldMsgMin").setAttribute("value", "30"); - if(retentionSettings.numHeadersToKeep > 0) - document.getElementById("nntp.keepNewMsgMin").setAttribute("value", retentionSettings.numHeadersToKeep); - else - document.getElementById("nntp.keepNewMsgMin").setAttribute("value", "30"); if(retentionSettings.daysToKeepBodies > 0) document.getElementById("nntp.removeBodyMin").setAttribute("value", retentionSettings.daysToKeepBodies); else document.getElementById("nntp.removeBodyMin").setAttribute("value", "30"); - - var keepAllMsg = document.getElementById("nntp.keepAllMsg"); - switch(retentionSettings.retainByPreference) - { - case 1: - keepAllMsg.radioGroup.selectedItem = keepAllMsg; - break; - case 2: - keepAllMsg.radioGroup.selectedItem = document.getElementById("nntp.keepOldMsg"); - break; - case 3: - keepAllMsg.radioGroup.selectedItem = document.getElementById("nntp.keepNewMsg"); - break; - default: - keepAllMsg.radioGroup.selectedItem = keepAllMsg; - } } @@ -134,19 +108,29 @@ function onPreInit(account, accountValues) gIncomingServer= account.incomingServer; gIncomingServer.type = gServerType; - var titleStringID; // 10 is OFFLINE_SUPPORT_LEVEL_REGULAR, see nsIMsgIncomingServer.idl // currently, there is no offline without diskspace - if (gIncomingServer.offlineSupportLevel >= 10) { - titleStringID = "prefPanel-offline-and-diskspace"; - } - else { - titleStringID = "prefPanel-diskspace"; - } + var titleStringID = (gIncomingServer.offlineSupportLevel >= 10) ? + "prefPanel-offline-and-diskspace" : "prefPanel-diskspace"; var prefBundle = document.getElementById("bundle_prefs"); var headertitle = document.getElementById("headertitle"); headertitle.setAttribute('title',prefBundle.getString(titleStringID)); + + if (gServerType == "pop3") + { + var pop3Server = gIncomingServer.QueryInterface(Components.interfaces.nsIPop3IncomingServer); + // hide retention settings for deferred accounts + if (pop3Server.deferredToAccount.length) + { + var retentionRadio = document.getElementById("retention.keepMsg"); + retentionRadio.setAttribute("hidden", "true"); + var retentionCheckbox = document.getElementById("retention.keepUnread"); + retentionCheckbox.setAttribute("hidden", "true"); + var retentionLabel = document.getElementById("retentionDescription"); + retentionLabel.setAttribute("hidden", "true"); + } + } } function onClickSelect() @@ -160,24 +144,14 @@ function onClickSelect() function onSave() { - var retentionSettings = new Array; var downloadSettings = new Array; gIncomingServer.limitOfflineMessageSize = document.getElementById("offline.notDownload").checked; gIncomingServer.maxMessageSize = document.getElementById("offline.notDownloadMin").value; - if(document.getElementById("nntp.keepAllMsg").selected) - retentionSettings.retainByPreference = 1; - else if(document.getElementById("nntp.keepOldMsg").selected) - retentionSettings.retainByPreference = 2; - else if(document.getElementById("nntp.keepNewMsg").selected) - retentionSettings.retainByPreference = 3; + var retentionSettings = saveCommonRetentionSettings(); - document.getElementById("nntp.keepMsg").value = retentionSettings.retainByPreference; - retentionSettings.daysToKeepHdrs = document.getElementById("nntp.keepOldMsgMin").value; retentionSettings.daysToKeepBodies = document.getElementById("nntp.removeBodyMin").value; - retentionSettings.numHeadersToKeep = document.getElementById("nntp.keepNewMsgMin").value; - retentionSettings.keepUnreadMessagesOnly = document.getElementById("nntp.keepUnread").checked; retentionSettings.cleanupBodiesByDays = document.getElementById("nntp.removeBody").checked; downloadSettings.downloadByDate = document.getElementById("nntp.downloadMsg").checked; @@ -238,10 +212,10 @@ function onLockPreference() { prefstring:"downloadUnreadOnly", id:"nntp.notDownloadRead"}, { prefstring:"downloadByDate", id:"nntp.downloadMsg"}, { prefstring:"ageLimit", id:"nntp.downloadMsgMin"}, - { prefstring:"retainBy", id:"nntp.keepMsg"}, - { prefstring:"daysToKeepHdrs", id:"nntp.keepOldMsgMin"}, - { prefstring:"numHdrsToKeep", id:"nntp.keepNewMsgMin"}, - { prefstring:"keepUnreadOnly", id:"nntp.keepUnread"}, + { prefstring:"retainBy", id:"retention.keepMsg"}, + { prefstring:"daysToKeepHdrs", id:"retention.keepOldMsgMin"}, + { prefstring:"numHdrsToKeep", id:"retention.keepNewMsgMin"}, + { prefstring:"keepUnreadOnly", id:"retention.keepUnread"}, { prefstring:"daysToKeepBodies", id:"nntp.removeBodyMin"}, { prefstring:"cleanupBodies", id:"nntp.removeBody" }, { prefstring:"disable_button.selectFolder", id:"selectNewsgroupsButton"}, @@ -267,30 +241,3 @@ function onCheckItem(broadcasterElementId, checkElementId) } -function onCheckKeepMsg() -{ - if (gLockedPref["nntp.keepMsg"]) { - // if the pref associated with the radiobutton is locked, as indicated - // by the gLockedPref, skip this function. All elements in this - // radiogroup have been locked by the function onLockPreference. - return; - } - var checkedOld = document.getElementById("nntp.keepOldMsg").selected; - var checkedNew = document.getElementById("nntp.keepNewMsg").selected; - var checkedAll = document.getElementById("nntp.keepAllMsg").selected; - if(checkedAll) { - document.getElementById("nntp.keepNewMsgMin").setAttribute("disabled", "true"); - document.getElementById("nntp.keepOldMsgMin").setAttribute("disabled", "true"); - } - else if(checkedOld) { - document.getElementById("nntp.keepOldMsgMin").removeAttribute("disabled"); - document.getElementById("nntp.keepNewMsgMin").setAttribute("disabled", "true"); - } - else if(checkedNew) { - document.getElementById("nntp.keepNewMsgMin").removeAttribute("disabled"); - document.getElementById("nntp.keepOldMsgMin").setAttribute("disabled", "true"); - } - - -} - diff --git a/mailnews/base/prefs/resources/content/am-offline.xul b/mailnews/base/prefs/resources/content/am-offline.xul index 57863b6981cf..2786e6876cb3 100644 --- a/mailnews/base/prefs/resources/content/am-offline.xul +++ b/mailnews/base/prefs/resources/content/am-offline.xul @@ -52,6 +52,7 @@ - +