From 6dfabf31fb85ccf8b24d62ed4318220b1f543755 Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 20 Oct 2021 12:54:00 +0200 Subject: [PATCH] - When the apply button is click it is checked that the conditions are not empty, in case the filter is not applied and the empty conditions are marked - Added new type bpchar to the conditions --- public/js/FilterWidget.js | 54 +++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/public/js/FilterWidget.js b/public/js/FilterWidget.js index 2563a9629..f32001c07 100644 --- a/public/js/FilterWidget.js +++ b/public/js/FilterWidget.js @@ -505,33 +505,51 @@ var FHC_FilterWidget = { */ _applyFilterEvent: function() { + var isValid = true; var appliedFilters = []; var appliedFiltersOperations = []; var appliedFiltersConditions = []; var appliedFiltersOptions = []; + // Get all the data from the filter form and fill the arrays $("#appliedFilters > div").each(function(i, e) { + appliedFilters.push($(this).find(".hidden-field-name").val()); appliedFiltersOperations.push($(this).find(".applied-filter-operation").val()); - appliedFiltersConditions.push($(this).find(".applied-filter-condition:enabled").val()); + + // Checks if the conditions are filled by the user + if ($(this).find(".applied-filter-condition:enabled").length > 0 + && $(this).find(".applied-filter-condition:enabled").val().trim() != '') + { + appliedFiltersConditions.push($(this).find(".applied-filter-condition:enabled").val()); + } + else // otherwise mark the empty conditions in red + { + $(this).find(".applied-filter-condition:enabled").css("border", "1px solid red"); + isValid = false; + } + appliedFiltersOptions.push($(this).find(".applied-filter-option:enabled").val()); }); - FHC_AjaxClient.ajaxCallPost( - "widgets/Filters/applyFilters", - { - appliedFilters: appliedFilters, - appliedFiltersOperations: appliedFiltersOperations, - appliedFiltersConditions: appliedFiltersConditions, - appliedFiltersOptions: appliedFiltersOptions, - filterUniqueId: FHC_FilterWidget.getFilterUniqueIdPrefix() - }, - { - successCallback: function(data, textStatus, jqXHR) { - FHC_FilterWidget._failOrReload(data, textStatus, jqXHR); + if (isValid) + { + FHC_AjaxClient.ajaxCallPost( + "widgets/Filters/applyFilters", + { + appliedFilters: appliedFilters, + appliedFiltersOperations: appliedFiltersOperations, + appliedFiltersConditions: appliedFiltersConditions, + appliedFiltersOptions: appliedFiltersOptions, + filterUniqueId: FHC_FilterWidget.getFilterUniqueIdPrefix() + }, + { + successCallback: function(data, textStatus, jqXHR) { + FHC_FilterWidget._failOrReload(data, textStatus, jqXHR); + } } - } - ); + ); + } }, /** @@ -770,6 +788,8 @@ var FHC_FilterWidget = { var html = ""; + console.log(metaData.type.toLowerCase()); + if (metaData.type.toLowerCase().indexOf("int") >= 0) { if (appliedFilter.condition == null) appliedFilter.condition = 0; @@ -786,7 +806,9 @@ var FHC_FilterWidget = { html += " "; html += ""; } - if (metaData.type.toLowerCase().indexOf("varchar") >= 0 || metaData.type.toLowerCase() == "text") + if (metaData.type.toLowerCase().indexOf("varchar") >= 0 + || metaData.type.toLowerCase().indexOf("text") >= 0 + || metaData.type.toLowerCase().indexOf("bpchar") >= 0) { if (appliedFilter.condition == null) appliedFilter.condition = "";