diff --git a/mozilla/mailnews/base/resources/content/widgetglue.js b/mozilla/mailnews/base/resources/content/widgetglue.js index b798fe2a00c..f1ab924e42d 100644 --- a/mozilla/mailnews/base/resources/content/widgetglue.js +++ b/mozilla/mailnews/base/resources/content/widgetglue.js @@ -192,6 +192,47 @@ function MsgCompactFolder(isAll) } } +function openNewVirtualFolderDialogWithArgs(defaultViewName, aSearchTerms) +{ + var folderURI = GetSelectedFolderURI(); + var folderTree = GetFolderTree(); + var name = GetFolderNameFromUri(folderURI, folderTree); + name += "-" + defaultViewName; + + var dialog = window.openDialog("chrome://messenger/content/virtualFolderProperties.xul", "", + "chrome,titlebar,modal,centerscreen", + {preselectedURI:folderURI, + searchTerms:aSearchTerms, + newFolderName:name}); +} + + +function MsgVirtualFolderProperties(aEditExistingVFolder) +{ + var preselectedFolder = GetFirstSelectedMsgFolder(); + var preselectedURI; + if(preselectedFolder) + { + var preselectedFolderResource = preselectedFolder.QueryInterface(Components.interfaces.nsIRDFResource); + if(preselectedFolderResource) + preselectedURI = preselectedFolderResource.Value; + } + + var dialog = window.openDialog("chrome://messenger/content/virtualFolderProperties.xul", "", + "chrome,titlebar,modal,centerscreen", + {preselectedURI:preselectedURI, + editExistingFolder: aEditExistingVFolder, + onOKCallback:onEditVirtualFolderPropertiesCallback, + msgWindow:msgWindow}); +} + +function onEditVirtualFolderPropertiesCallback(aVirtualFolder) +{ + // we need to reload the folder if it is the currently loaded folder... + FolderPaneSelectionChange(); +} + + function MsgFolderProperties() { var preselectedURI = GetSelectedFolderURI(); diff --git a/mozilla/mailnews/base/search/resources/content/SearchDialog.js b/mozilla/mailnews/base/search/resources/content/SearchDialog.js index 2f6a7e96db6..b0ef90d5def 100644 --- a/mozilla/mailnews/base/search/resources/content/SearchDialog.js +++ b/mozilla/mailnews/base/search/resources/content/SearchDialog.js @@ -140,10 +140,7 @@ var nsSearchResultsController = return true; case "saveas_vf_button": - // prompt for view name - create virtual folder in ok callback. - getViewName("search"); - - + saveAsVirtualFolder(); return true; default: return false; @@ -790,40 +787,23 @@ function BeginDragThreadPane(event) return false; } -function getViewName(defaultViewName) +function saveAsVirtualFolder() { var preselectedURI = gCurrentFolder.URI; - - var name = gCurrentFolder.name; - name += defaultViewName + "-view"; - dump("preselectedURI = " + preselectedURI + "\n"); searchFolderURIs = preselectedURI; var searchSubfolders = document.getElementById("checkSearchSubFolders").checked; if (gCurrentFolder && (searchSubfolders || gCurrentFolder.isServer || gCurrentFolder.noSelect)) { - var subFolderURIs = AddSubFoldersToURI(gCurrentFolder); - if (subFolderURIs.length > 0) - searchFolderURIs += '|' + subFolderURIs; + var subFolderURIs = AddSubFoldersToURI(gCurrentFolder); + if (subFolderURIs.length > 0) + searchFolderURIs += '|' + subFolderURIs; } - dump("search folders = " + searchFolderURIs + "\n"); - - // need to calculate the uri string of all the folders - // to search over, folder1|folder2|folder3... - var dialog = window.openDialog( - "chrome://messenger/content/virtualFolderName.xul", - "newFolder", - "chrome,titlebar,modal", - {siblingFolderURI: preselectedURI, searchFolderURIs: searchFolderURIs, - okCallback: CreateSearchView, name: name}); + var dialog = window.openDialog("chrome://messenger/content/virtualFolderProperties.xul", "", + "chrome,titlebar,modal,centerscreen", + {preselectedURI:preselectedURI, + searchTerms:gSearchSession.searchTerms, + searchFolderURIs: searchFolderURIs}); } -function CreateSearchView(newName, siblingFolderURI, foldersToSearch) -{ - dump ("in create view, new name = " + newName + " orig uri = " + siblingFolderURI + "\n"); - var siblingFolder = GetResourceFromUri(siblingFolderURI); - var siblingMsgFolder = siblingFolder.QueryInterface(Components.interfaces.nsIMsgFolder); - CreateVirtualFolder(newName, siblingMsgFolder.parent ? siblingMsgFolder.parent : siblingMsgFolder, - foldersToSearch, gSearchSession.searchTerms); -} diff --git a/mozilla/mailnews/base/search/resources/locale/en-US/SearchDialog.dtd b/mozilla/mailnews/base/search/resources/locale/en-US/SearchDialog.dtd index a21a81a44e3..c0bfb556938 100644 --- a/mozilla/mailnews/base/search/resources/locale/en-US/SearchDialog.dtd +++ b/mozilla/mailnews/base/search/resources/locale/en-US/SearchDialog.dtd @@ -26,8 +26,8 @@ - - + + diff --git a/mozilla/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js b/mozilla/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js index 75a4e778692..9ae181635f0 100644 --- a/mozilla/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js +++ b/mozilla/mailnews/extensions/mailviews/resources/content/msgViewPickerOverlay.js @@ -85,9 +85,9 @@ function viewChange(aMenuList, val) ViewLabel(parseInt(val) - kLabelOffset); break; case "7": // save view as virtual folder - getViewName(CreateVFFromView, gCurrentViewLabel); val = oldViewValue; aMenuList.value = val; + openNewVirtualFolderDialogWithArgs(gCurrentViewLabel, gSaveDefaultSVTerms); break; default: LoadCustomMailView(parseInt(val) - kLastDefaultViewIndex); @@ -110,14 +110,6 @@ function viewChange(aMenuList, val) } } -function CreateVFFromView(newName, origFolderURI) -{ - var selectedFolder = GetResourceFromUri(origFolderURI); - var folderToSearch = selectedFolder.QueryInterface(Components.interfaces.nsIMsgFolder); - - CreateVirtualFolder(newName, folderToSearch.parent, origFolderURI, gSaveDefaultSVTerms); -} - const kLabelPrefs = "mailnews.labels.description."; const gLabelPrefListener = { @@ -271,6 +263,7 @@ function ViewLabel(labelID) // create an i supports array to store our search terms var searchTermsArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray); + var term = gSearchSession.createTerm(); var value = term.value;