From 57b6bbb6ec28b8395a8ff3302bfa52768c0136db Mon Sep 17 00:00:00 2001 From: "neil%parkwaycc.co.uk" Date: Fri, 20 Aug 2004 22:30:30 +0000 Subject: [PATCH] Bug 219122 Filter editor should validate actions before attempting to create filter p=mark@standard8.demon.co.uk r=me sr=bienvenu --- .../search/resources/content/FilterEditor.js | 71 +++++++++---------- .../resources/locale/en-US/filter.properties | 2 - 2 files changed, 32 insertions(+), 41 deletions(-) diff --git a/mailnews/base/search/resources/content/FilterEditor.js b/mailnews/base/search/resources/content/FilterEditor.js index 47d6554a8ed..afb34d9e701 100644 --- a/mailnews/base/search/resources/content/FilterEditor.js +++ b/mailnews/base/search/resources/content/FilterEditor.js @@ -390,6 +390,7 @@ function saveFilter() { var isNewFilter; var filterAction; + var targetUri; var filterName= gFilterNameElement.value; if (!filterName || filterName == "") @@ -401,6 +402,37 @@ function saveFilter() return false; } + if (!(gMoveToFolderCheckbox.checked || + gChangePriorityCheckbox.checked || + gLabelCheckbox.checked || + gJunkScoreCheckbox.checked || + gMarkReadCheckbox.checked || + gMarkFlaggedCheckbox.checked || + gDeleteCheckbox.checked || + gWatchCheckbox.checked || + gKillCheckbox.checked || + gDeleteFromServerCheckbox.checked || + gFetchBodyFromServerCheckbox.checked)) + { + if (gPromptService) + gPromptService.alert(window, null, + gFilterBundle.getString("mustSelectAction")); + return false; + } + + if (gMoveToFolderCheckbox.checked) + { + if (gActionTargetElement) + targetUri = gActionTargetElement.getAttribute("uri"); + if (!targetUri || targetUri == "") + { + if (gPromptService) + gPromptService.alert(window, null, + gFilterBundle.getString("mustSelectFolder")); + return false; + } + } + if (!gFilter) { gFilter = gFilterList.createFilter(gFilterNameElement.value); @@ -425,18 +457,6 @@ function saveFilter() if (gMoveToFolderCheckbox.checked) { - var targetUri; - - if (gActionTargetElement) - targetUri = gActionTargetElement.getAttribute("uri"); - if (!targetUri || targetUri == "") - { - if (gPromptService) - gPromptService.alert(window, null, - gFilterBundle.getString("mustSelectFolder")); - return false; - } - filterAction = gFilter.createAction(); filterAction.type = nsMsgFilterAction.MoveToFolder; filterAction.targetFolderUri = targetUri; @@ -445,14 +465,6 @@ function saveFilter() if (gChangePriorityCheckbox.checked) { - if (!gActionPriority.selectedItem) - { - if (gPromptService) - gPromptService.alert(window, null, - gFilterBundle.getString("mustSelectPriority")); - return false; - } - filterAction = gFilter.createAction(); filterAction.type = nsMsgFilterAction.ChangePriority; filterAction.priority = gActionPriority.selectedItem.getAttribute("value"); @@ -461,14 +473,6 @@ function saveFilter() if (gLabelCheckbox.checked) { - if (!gActionLabel.selectedItem) - { - if (gPromptService) - gPromptService.alert(window, null, - gFilterBundle.getString("mustSelectLabel")); - return false; - } - filterAction = gFilter.createAction(); filterAction.type = nsMsgFilterAction.Label; filterAction.label = gActionLabel.selectedItem.getAttribute("value"); @@ -532,17 +536,6 @@ function saveFilter() gFilter.appendAction(filterAction); } - if (gFilter.actionList.Count() <= 0) - { - if (gPromptService) - gPromptService.alert(window, null, - gFilterBundle.getString("mustSelectAction")); - // reset gFilter so that filter is still saved next time around - // see bug #186217 - gFilter = null; - return false; - } - if (getScope(gFilter) == Components.interfaces.nsMsgSearchScope.newsFilter) gFilter.filterType = Components.interfaces.nsMsgFilterType.NewsRule; else diff --git a/mailnews/base/search/resources/locale/en-US/filter.properties b/mailnews/base/search/resources/locale/en-US/filter.properties index fa484e4dddd..7f86f84c03b 100644 --- a/mailnews/base/search/resources/locale/en-US/filter.properties +++ b/mailnews/base/search/resources/locale/en-US/filter.properties @@ -1,6 +1,4 @@ mustSelectFolder=You must select a target folder. -mustSelectPriority=You must select a priority. -mustSelectLabel=You must select a label. mustEnterName=You must give this filter a name. mustSelectAction=You must select at least one filter action. cannotHaveDuplicateFilterTitle=Duplicate Filter Name