summaryrefslogtreecommitdiffstats
path: root/comm/mail/extensions/mailviews/content/mailViewSetup.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/extensions/mailviews/content/mailViewSetup.js')
-rw-r--r--comm/mail/extensions/mailviews/content/mailViewSetup.js108
1 files changed, 108 insertions, 0 deletions
diff --git a/comm/mail/extensions/mailviews/content/mailViewSetup.js b/comm/mail/extensions/mailviews/content/mailViewSetup.js
new file mode 100644
index 0000000000..b10213c5a7
--- /dev/null
+++ b/comm/mail/extensions/mailviews/content/mailViewSetup.js
@@ -0,0 +1,108 @@
+/* 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...
+}