diff options
Diffstat (limited to 'comm/suite/mailnews/content/mailViewSetup.js')
-rw-r--r-- | comm/suite/mailnews/content/mailViewSetup.js | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/comm/suite/mailnews/content/mailViewSetup.js b/comm/suite/mailnews/content/mailViewSetup.js new file mode 100644 index 0000000000..4c9b47f070 --- /dev/null +++ b/comm/suite/mailnews/content/mailViewSetup.js @@ -0,0 +1,119 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 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 nsMsgSearchScope = Ci.nsMsgSearchScope; +var gMailView = null; + +var dialog; + +function mailViewOnLoad() +{ + initializeSearchWidgets(); + initializeMailViewOverrides(); + dialog = {}; + + if ("arguments" in window && window.arguments[0]) + { + var args = window.arguments[0]; + if ("mailView" in args) + gMailView = window.arguments[0].mailView; + if ("onOkCallback" in args) + dialog.okCallback = window.arguments[0].onOkCallback; + } + + dialog.OKButton = document.documentElement.getButton("accept"); + dialog.nameField = document.getElementById("name"); + dialog.nameField.focus(); + + setSearchScope(nsMsgSearchScope.offlineMail); + + if (gMailView) + { + dialog.nameField.value = gMailView.prettyName; + initializeSearchRows(nsMsgSearchScope.offlineMail, gMailView.searchTerms); + } + else + onMore(null); + + doEnabling(); +} + +function mailViewOnUnLoad() +{ + +} + +function onOK() +{ + var mailViewList = Cc["@mozilla.org/messenger/mailviewlist;1"].getService(Ci.nsIMsgMailViewList); + + // reflect the search widgets back into the search session + var newMailView = null; + if (gMailView) + { + gMailView.searchTerms = saveSearchTerms(gMailView.searchTerms, gMailView); + // if the name of the view has been changed... + if (gMailView.prettyName != dialog.nameField.value) + gMailView.mailViewName = dialog.nameField.value; + } + else + { + // otherwise, create a new mail view + newMailView = mailViewList.createMailView(); + + newMailView.searchTerms = saveSearchTerms(newMailView.searchTerms, newMailView); + newMailView.mailViewName = dialog.nameField.value; + // now add the mail view to our mail view list + mailViewList.addMailView(newMailView); + } + + mailViewList.save(); + + if (dialog.okCallback) + dialog.okCallback(gMailView ? gMailView : newMailView); + + return true; +} + +function initializeMailViewOverrides() +{ + // replace some text with something we want. Need to add some ids to searchOverlay.js + //var orButton = document.getElementById('or'); + //orButton.setAttribute('label', 'Any of the following'); + //var andButton = document.getElementById('and'); + //andButton.setAttribute('label', 'All of the following'); + // matchAll doesn't make sense for views, since views are a single folder + hideMatchAllItem(); + +} + +function UpdateAfterCustomHeaderChange() +{ + updateSearchAttributes(); +} + +function doEnabling() +{ + if (dialog.nameField.value) + { + if (dialog.OKButton.disabled) + dialog.OKButton.disabled = false; + } else + { + if (!dialog.OKButton.disabled) + dialog.OKButton.disabled = true; + } +} + +function onEnterInSearchTerm() +{ + // no-op for us... +} + +function doHelpButton() +{ + openHelp("message-views-create-new"); +} + |