/* 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/. */ /* import-globals-from ../../../../mailnews/search/content/searchTerm.js */ document.addEventListener("dialogaccept", onOK); 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.querySelector("dialog").getButton("accept"); dialog.nameField = document.getElementById("name"); dialog.nameField.focus(); setSearchScope(Ci.nsMsgSearchScope.offlineMail); if (gMailView) { dialog.nameField.value = gMailView.prettyName; initializeSearchRows( Ci.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); } } 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... }