From 20bffadbc4d56005c5d756866665bd4217783f2c Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 4 Jun 2018 17:23:40 +0200 Subject: [PATCH] Changes to the FilterWidget II --- application/controllers/system/Filters.php | 73 -- .../views/widgets/filter/saveFilter.php | 4 +- .../views/widgets/filter/selectFields.php | 8 +- .../views/widgets/filter/selectFilters.php | 8 +- public/css/FilterWidget.css | 64 +- public/js/FilterWidget.js | 864 +++++++++--------- 6 files changed, 480 insertions(+), 541 deletions(-) diff --git a/application/controllers/system/Filters.php b/application/controllers/system/Filters.php index c0c1f7a4c..98e17fb6e 100644 --- a/application/controllers/system/Filters.php +++ b/application/controllers/system/Filters.php @@ -82,79 +82,6 @@ class Filters extends FHC_Controller } } - // /** - // * - // */ - // public function getFields() - // { - // $json = new stdClass(); - // - // $json->fields = $this->filterslib->getElementSession(FiltersLib::SESSION_FIELDS); - // $json->selectedFields = $this->filterslib->getElementSession(FiltersLib::SESSION_SELECTED_FIELDS); - // $json->columnsAliases = $this->filterslib->getElementSession(FiltersLib::SESSION_COLUMNS_ALIASES); - // - // $this->outputJsonSuccess($json); - // } - // - // /** - // * - // */ - // public function getFilters() - // { - // $json = new stdClass(); - // - // $session = $this->_readSession($this->_getFilterUniqueId()); - // - // $json->allSelectedFields = $this->_getFromSession('allSelectedFields'); - // $json->allColumnsAliases = $this->_getFromSession('allColumnsAliases'); - // - // $json->selectedFilters = $this->_getFromSession('selectedFilters'); - // $json->selectedFiltersAliases = array(); - // $json->selectedFiltersMetaData = array(); - // - // $json->selectedFiltersActiveFilters = array(); - // $json->selectedFiltersActiveFiltersOperation = array(); - // $json->selectedFiltersActiveFiltersOption = array(); - // - // $metaData = $this->_getFromSession('metaData'); - // $activeFilters = $this->_getFromSession('activeFilters'); - // $activeFiltersOperation = $this->_getFromSession('activeFiltersOperation'); - // $activeFiltersOption = $this->_getFromSession('activeFiltersOption'); - // - // for ($i = 0; $i < count($json->selectedFilters); $i++) - // { - // $pos = array_search($json->selectedFilters[$i], $json->allSelectedFields); - // - // if ($pos !== false) - // { - // $json->selectedFiltersAliases[$i] = $json->selectedFilters[$i]; - // if ($json->allColumnsAliases != null && is_array($json->allColumnsAliases)) - // { - // $json->selectedFiltersAliases[$i] = $json->allColumnsAliases[$pos]; - // } - // - // $json->selectedFiltersMetaData[] = $metaData[$pos]; - // - // if (isset($activeFilters[$json->selectedFilters[$i]])) - // { - // $json->selectedFiltersActiveFilters[] = $activeFilters[$json->selectedFilters[$i]]; - // } - // - // if (isset($activeFiltersOperation[$json->selectedFilters[$i]])) - // { - // $json->selectedFiltersActiveFiltersOperation[] = $activeFiltersOperation[$json->selectedFilters[$i]]; - // } - // - // if (isset($activeFiltersOption[$json->selectedFilters[$i]])) - // { - // $json->selectedFiltersActiveFiltersOption[] = $activeFiltersOption[$json->selectedFilters[$i]]; - // } - // } - // } - // - // $this->output->set_content_type('application/json')->set_output(json_encode($json)); - // } - // // /** // * // */ diff --git a/application/views/widgets/filter/saveFilter.php b/application/views/widgets/filter/saveFilter.php index c1f09a413..23f8afdc9 100644 --- a/application/views/widgets/filter/saveFilter.php +++ b/application/views/widgets/filter/saveFilter.php @@ -1,11 +1,11 @@
- + Filter description: - + diff --git a/application/views/widgets/filter/selectFields.php b/application/views/widgets/filter/selectFields.php index 73461840a..9d852256d 100644 --- a/application/views/widgets/filter/selectFields.php +++ b/application/views/widgets/filter/selectFields.php @@ -1,11 +1,13 @@ -
+
- + Add field: - +
diff --git a/application/views/widgets/filter/selectFilters.php b/application/views/widgets/filter/selectFilters.php index ffb93dfe5..97f5c300f 100644 --- a/application/views/widgets/filter/selectFilters.php +++ b/application/views/widgets/filter/selectFilters.php @@ -1,14 +1,16 @@
-
+
- + Add filter: - + diff --git a/public/css/FilterWidget.css b/public/css/FilterWidget.css index 6afe36177..42c10f2cc 100644 --- a/public/css/FilterWidget.css +++ b/public/css/FilterWidget.css @@ -1,30 +1,30 @@ -.filter-options-span { - display: inline-block; - width: 130px; - font-weight: bold; -} - .filter-name-title { font-family: inherit; font-size: 16px; - /*font-weight: bold;*/ line-height: 1.1; color: black; } +.panel-title { + font-weight: bold; + padding-top: 3px; +} + .filters-hidden-panel { margin: 0 10px 10px 10px; } -.hidden-control { - display: none !important; +.filter-span-label { + display: inline-block; + width: 130px; + font-weight: bold; } -.filter-select-fields-dnd-div { +.drag-and-drop-fields-area { height: 50px; } -.filter-select-field-dnd-span { +.drag-and-drop-fields-span { border: 1px solid black; border-radius: 7px; margin-left: 3px; @@ -33,14 +33,23 @@ top: 10px; } -.filter-select-field-dnd-span:hover { +.drag-and-drop-fields-span:hover { cursor: move; } -.filter-select-field-dnd-span a { +.remove-selected-field { + font-weight: bold; cursor: pointer; } +.remove-selected-field:hover { + text-decoration: none; +} + +.hidden-control { + display: none !important; +} + .selection-before::before { content: ""; position: absolute; @@ -61,47 +70,38 @@ border-right: 2px solid #428bca; } -.select-filter-operation { +.applied-filter-operation { display: inline; width: 130px; } -.select-filter-operation-value { +.applied-filter-condition { display: inline; width: 400px; } -.select-filter-option { +.applied-filter-option { display: inline; width: 100px; } -#addField, #customFilterDescription, #addFilter { +.remove-applied-filter { + padding-bottom: 3px; +} + +.drop-down-fields, .drop-down-filters, .input-text-custom-filter { display: inline; width: 535px; } -#selectedFilters { +#appliedFilters { margin-bottom: 20px; } -#applyFilter, #saveCustomFilterButton, .remove-selected-filter { +#applyFilter, #saveCustomFilterButton, .remove-applied-filter { font-weight: bold; } #applyFilter, #saveCustomFilterButton { width: 100px; } - -.remove-selected-filter { - padding-bottom: 3px; -} - -.panel-title { - font-weight: bold; - padding-top: 3px; -} - -.remove-field { - font-weight: bold; -} diff --git a/public/js/FilterWidget.js b/public/js/FilterWidget.js index d32cfa63a..aaaae5b18 100644 --- a/public/js/FilterWidget.js +++ b/public/js/FilterWidget.js @@ -14,7 +14,7 @@ */ function sideMenuHook() { - $(".remove-filter").click(function() { + $(".remove-applied-filter").click(function() { // FHC_AjaxClient.ajaxCallPost( 'system/Filters/deleteCustomFilter', @@ -42,6 +42,9 @@ var FHC_FilterWidget = { FHC_FilterWidget._getFilter(FHC_FilterWidget._renderFilterWidget); }, + //------------------------------------------------------------------------------------------------------------------ + // Private methods + /** * */ @@ -74,14 +77,21 @@ var FHC_FilterWidget = { FHC_FilterWidget._setFilterName(data); // - FHC_FilterWidget._renderDnDFields(data); // + FHC_FilterWidget._renderDragAndDropFields(data); // FHC_FilterWidget._renderDropDownFields(data); // FHC_FilterWidget._renderAppliedFilters(data); // + FHC_FilterWidget._renderDropDownFilters(data); // + + FHC_FilterWidget._renderTableDataset(data); // + }, + /** + * + */ _setFilterName: function(data) { if (data.hasOwnProperty('filterName')) { @@ -92,58 +102,124 @@ var FHC_FilterWidget = { /** * */ - _renderDnDFields: function(data) { + _renderDragAndDropFields: function(data) { - $(".remove-field").off('click'); + $(".remove-selected-field").off('click'); - if (data.hasOwnProperty('rowNumber') && data.rowNumber > 0) + var arrayFieldsToDisplay = []; + + if (data.hasOwnProperty('selectedFields') && $.isArray(data.selectedFields)) { - var arrayFieldsToDisplay = []; - - if (data.hasOwnProperty('selectedFields') && $.isArray(data.selectedFields)) + if (data.hasOwnProperty('columnsAliases') && $.isArray(data.columnsAliases)) { - if (data.hasOwnProperty('columnsAliases') && $.isArray(data.columnsAliases)) + for (var i = 0; i < data.selectedFields.length; i++) { - for (var i = 0; i < data.selectedFields.length; i++) + for (var j = 0; j < data.fields.length; j++) { - for (var j = 0; j < data.fields.length; j++) + if (data.selectedFields[i] == data.fields[j]) { - if (data.selectedFields[i] == data.fields[j]) - { - arrayFieldsToDisplay[i] = data.columnsAliases[j]; - } + arrayFieldsToDisplay[i] = data.columnsAliases[j]; } } } - else - { - arrayFieldsToDisplay = data.selectedFields; - } } - - for (var i = 0; i < arrayFieldsToDisplay.length; i++) + else { - var fieldToDisplay = arrayFieldsToDisplay[i]; - var fieldName = data.selectedFields[i]; - - var strHtml = ''; - strHtml += ' ' + fieldToDisplay + ''; - strHtml += ' '; - strHtml += ' X '; - strHtml += ' '; - strHtml += ''; - - $("#filterSelectFieldsDnd").append(strHtml); + arrayFieldsToDisplay = data.selectedFields; } + } - FHC_FilterWidget._drangAndDropEvents(); + for (var i = 0; i < arrayFieldsToDisplay.length; i++) + { + var fieldToDisplay = arrayFieldsToDisplay[i]; + var fieldName = data.selectedFields[i]; + + var strHtml = ''; + strHtml += ' ' + fieldToDisplay + ''; + strHtml += ' '; + strHtml += ' X '; + strHtml += ' '; + strHtml += ''; + + $("#dragAndDropFieldsArea").append(strHtml); + } + + $(".drag-and-drop-fields-span").draggable({ + containment: "parent", + cursor: "move", + opacity: 0.4, + revert: "invalid", + revertDuration: 200, + drag: function(event, ui) { + + var padding = 20; + var draggedElement = $(this); + + $(".drag-and-drop-fields-span").each(function(i, e) { + + if ($(this).attr('id') != draggedElement.attr('id')) + { + $(this).removeClass("selection-after"); + $(this).removeClass("selection-before"); + + var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2); + + if (event.pageX > ($(this).offset().left - (padding / 2)) + && event.pageX < ($(this).offset().left + $(this).width() + (padding / 2))) + { + if (event.pageX > elementCenter) + { + $(this).addClass("selection-after"); + $(this).removeClass("selection-before"); + } + else if (event.pageX < elementCenter) + { + $(this).addClass("selection-before"); + $(this).removeClass("selection-after"); + } + } + } + + }); + + } + }); + + $(".drag-and-drop-fields-span").droppable({ + accept: ".drag-and-drop-fields-span", + drop: function(event, ui) { + + var padding = 20; + var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2); + var draggedElement = ui.helper; + + if (event.pageX > elementCenter) + { + draggedElement.insertAfter($(this)); + } + else if (event.pageX < elementCenter) + { + draggedElement.insertBefore($(this)); + } + + $(this).removeClass("selection-before"); + $(this).removeClass("selection-after"); + + draggedElement.css({left: '0px', top: '10px'}); + + var arrayDndId = []; + + $(".drag-and-drop-fields-span").each(function(i, e) { + + arrayDndId[i] = $(this).attr('id').replace('dnd', ''); + + }); - $(".remove-field").click(function(event) { // FHC_AjaxClient.ajaxCallPost( - 'system/Filters/removeSelectedFields', + 'system/Filters/sortSelectedFields', { - fieldName: $(this).attr('fieldToRemove'), + selectedFieldsLst: arrayDndId, filter_page: FHC_FilterWidget._getFilterPage() }, { @@ -155,29 +231,58 @@ var FHC_FilterWidget = { } } ); - }); - } + } + }); + + $(".remove-selected-field").click(function(event) { + // + FHC_AjaxClient.ajaxCallPost( + 'system/Filters/removeSelectedFields', + { + fieldName: $(this).attr('fieldToRemove'), + filter_page: FHC_FilterWidget._getFilterPage() + }, + { + successCallback: function(data, textStatus, jqXHR) { + FHC_FilterWidget._resetSelectedFields(); + + FHC_FilterWidget.renderSelectedFields(); + FHC_FilterWidget.renderTableDataset(); + } + } + ); + }); }, _renderDropDownFields: function(data) { $("#addField").off('change'); - var strDropDown = ''; - $("#addField").append(strDropDown); + var strDropDown = ''; - if (data.fields != null) + if (data.hasOwnProperty('fields') && $.isArray(data.fields)) { for (var i = 0; i < data.fields.length; i++) { - var fieldName = data.fields[i]; - var fieldToDisplay = data.fields[i]; + var toBeDisplayed = true; - if (data.selectedFields.indexOf(fieldName) < 0) + for (var j = 0; j < data.selectedFields.length; j++) { - if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases)) + if (data.fields[i] == data.selectedFields[j]) { - fieldToDisplay = data.allColumnsAliases[i]; + toBeDisplayed = false; + break; + } + } + + if (toBeDisplayed == true) + { + var fieldName = data.fields[i]; + var fieldToDisplay = data.fields[i]; + + if (data.hasOwnProperty('columnsAliases') && $.isArray(data.columnsAliases)) + { + fieldToDisplay = data.columnsAliases[i]; } strDropDown = ''; @@ -211,77 +316,65 @@ var FHC_FilterWidget = { */ _renderAppliedFilters: function(data) { - $("#addFilter").off('change'); - - var data = FHC_AjaxClient.getData(data); - var strDropDown = ''; - - $("#addFilter").append(strDropDown); - - if (data.selectedFilters != null) + if (data.hasOwnProperty('datasetMetadata') && $.isArray(data.datasetMetadata) + && data.hasOwnProperty('filters') && $.isArray(data.filters)) { - for (var i = 0; i < data.selectedFilters.length; i++) + for (var i = 0; i < data.filters.length; i++) { - var selectedFilters = '
'; - - selectedFilters += ''; - selectedFilters += data.selectedFiltersAliases[i]; - selectedFilters += ''; - - selectedFilters += FHC_FilterWidget._getSelectedFilterFields( - data.selectedFiltersMetaData[i], - data.selectedFiltersActiveFilters[i], - data.selectedFiltersActiveFiltersOperation[i], - data.selectedFiltersActiveFiltersOption[i] - ); - - selectedFilters += ''; - selectedFilters += ''; - selectedFilters += ''; - - selectedFilters += '
'; - - $("#selectedFilters").append(selectedFilters); - } - } - - if (data.allSelectedFields != null) - { - for (var i = 0; i < data.allSelectedFields.length; i++) - { - var fieldName = data.allSelectedFields[i]; - var fieldToDisplay = data.allSelectedFields[i]; - - if (data.selectedFilters.indexOf(fieldName) < 0) + for (var j = 0; j < data.datasetMetadata.length; j++) { - if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases)) + if (data.filters[i].name == data.datasetMetadata[j].name) { - fieldToDisplay = data.allColumnsAliases[i]; - } + var appliedFilters = '
'; - strDropDown = ''; - $("#addFilter").append(strDropDown); + appliedFilters += ''; + + if (data.hasOwnProperty('columnsAliases') && $.isArray(data.columnsAliases)) + { + fieldToDisplay = data.columnsAliases[j]; + } + else + { + fieldToDisplay = data.datasetMetadata[j].name; + } + + appliedFilters += fieldToDisplay; + appliedFilters += ''; + + appliedFilters += FHC_FilterWidget._getSelectedFilterFields( + data.datasetMetadata[j], + data.filters[i] + ); + + appliedFilters += ''; + appliedFilters += ' '; + appliedFilters += ''; + + appliedFilters += '
'; + + $("#appliedFilters").append(appliedFilters); + } } } } - $(".select-filter-operation").change(function() { + $(".applied-filter-operation").change(function() { if ($(this).val() == "set" || $(this).val() == "nset") { - $(this).parent().parent().find(".select-filter-operation-value").addClass("hidden-control"); - $(this).parent().parent().find(".select-filter-option").addClass("hidden-control"); + $(this).parent().parent().find(".applied-filter-condition").addClass("hidden-control"); + $(this).parent().parent().find(".applied-filter-option").addClass("hidden-control"); - $(this).parent().parent().find(".select-filter-operation-value").prop('disabled', true); - $(this).parent().parent().find(".select-filter-option").prop('disabled', true); + $(this).parent().parent().find(".applied-filter-condition").prop('disabled', true); + $(this).parent().parent().find(".applied-filter-option").prop('disabled', true); } else { - $(this).parent().parent().find(".select-filter-operation-value").removeClass("hidden-control"); - $(this).parent().parent().find(".select-filter-option").removeClass("hidden-control"); + $(this).parent().parent().find(".applied-filter-condition").removeClass("hidden-control"); + $(this).parent().parent().find(".applied-filter-option").removeClass("hidden-control"); - $(this).parent().parent().find(".select-filter-operation-value").prop('disabled', false); - $(this).parent().parent().find(".select-filter-option").prop('disabled', false); + $(this).parent().parent().find(".applied-filter-condition").prop('disabled', false); + $(this).parent().parent().find(".applied-filter-option").prop('disabled', false); } }); @@ -295,9 +388,9 @@ var FHC_FilterWidget = { $("#selectedFilters > div").each(function(i, e) { var tmpSelectFilterName = $(this).find('.hidden-field-name').val(); - var tmpSelectFilterOperation = $(this).find('.select-filter-operation').val(); - var tmpSelectFilterOperationValue = $(this).find('.select-filter-operation-value:enabled').val(); - var tmpSelectFilterOption = $(this).find('.select-filter-option:enabled').val(); + var tmpSelectFilterOperation = $(this).find('.applied-filter-operation').val(); + var tmpSelectFilterOperationValue = $(this).find('.applied-filter-condition:enabled').val(); + var tmpSelectFilterOption = $(this).find('.applied-filter-option:enabled').val(); selectFilterName.push(tmpSelectFilterName); selectFilterOperation.push(tmpSelectFilterOperation); @@ -325,7 +418,7 @@ var FHC_FilterWidget = { ); }); - $(".remove-selected-filter").click(function(event) { + $(".remove-applied-filter").click(function(event) { // FHC_AjaxClient.ajaxCallPost( 'system/Filters/removeSelectedFilters', @@ -345,287 +438,44 @@ var FHC_FilterWidget = { }, - - - - - - - - - - - - - - - - - - - - - - - - - - - /** * */ - renderSelectedFilters: function() { - // - FHC_AjaxClient.ajaxCallGet( - 'system/Filters/getFilters', + _renderDropDownFilters: function(data) { + + $("#addFilter").off('change'); + + if (data.hasOwnProperty('fields') && $.isArray(data.fields)) + { + for (var i = 0; i < data.fields.length; i++) { - filter_page: FHC_FilterWidget._getFilterPage() - }, - { - successCallback: function(data, textStatus, jqXHR) { + var toBeDisplayed = true; - if (FHC_AjaxClient.hasData(data)) - { - - } - - FHC_FilterWidget._addEventsSFilters(); - } - } - ); - }, - - /** - * - */ - renderTableDataset: function() { - // - FHC_AjaxClient.ajaxCallGet( - 'system/Filters/tableDataset', - { - filter_page: FHC_FilterWidget._getFilterPage() - }, - { - successCallback: function(data, textStatus, jqXHR) { - - FHC_FilterWidget._resetTableDataset(); - - if (data != null) - { - if (data.checkboxes != null) - { - $("#filterTableDataset > thead > tr").append("Select"); - } - - var arrayFieldsToDisplay = []; - - if (data.columnsAliases != null && $.isArray(data.columnsAliases) && data.columnsAliases.length > 0) - { - arrayFieldsToDisplay = data.columnsAliases; - } - else if (data.selectedFields != null && $.isArray(data.selectedFields)) - { - arrayFieldsToDisplay = data.selectedFields; - } - - /* ------------------------------------------------------------------------------------------------ */ - if (data.checkboxes != null && data.checkboxes != "") - { - $("#filterTableDataset > thead > tr").html("Select"); - } - - for (var i = 0; i < arrayFieldsToDisplay.length; i++) - { - var th = arrayFieldsToDisplay[i]; - - $("#filterTableDataset > thead > tr").append("" + th + ""); - } - - if (data.additionalColumns != null && $.isArray(data.additionalColumns)) - { - for (var i = 0; i < data.additionalColumns.length; i++) - { - var th = data.additionalColumns[i]; - - $("#filterTableDataset > thead > tr").append("" + th + ""); - } - } - /* ------------------------------------------------------------------------------------------------ */ - - if (arrayFieldsToDisplay.length > 0) - { - if (data.dataset != null && $.isArray(data.dataset)) - { - for (var i = 0; i < data.dataset.length; i++) - { - var record = data.dataset[i]; - var strHtml = ''; - - if (data.checkboxes != null && data.checkboxes != "") - { - strHtml += ''; - strHtml += ''; - strHtml += ''; - } - - $.each(arrayFieldsToDisplay, function(i, fieldToDisplay) { - - if (record.hasOwnProperty(data.selectedFields[i])) - { - strHtml += '' + record[data.selectedFields[i]] + ''; - } - }); - - if (data.additionalColumns != null && $.isArray(data.additionalColumns)) - { - $.each(data.additionalColumns, function(i, additionalColumn) { - - if (record.hasOwnProperty(additionalColumn)) - { - strHtml += '' + record[additionalColumn] + ''; - } - - }); - } - - strHtml += ''; - - $("#filterTableDataset > tbody").append(strHtml); - } - } - else - { - // console.log("No dataset!!!"); - } - } - else - { - // console.log("No fields to display!!!"); - } - } - else - { - console.log("No data!!!"); - } - - FHC_FilterWidget._callTableSorter(); - - } - } - ); - }, - - //------------------------------------------------------------------------------------------------------------------ - // Private methods - - /** - * - */ - _drangAndDropEvents: function() { - $(".filter-select-field-dnd-span").draggable({ - containment: "parent", - cursor: "move", - opacity: 0.4, - revert: "invalid", - revertDuration: 200, - drag: function(event, ui) { - - var padding = 20; - var draggedElement = $(this); - - $(".filter-select-field-dnd-span").each(function(i, e) { - - if ($(this).attr('id') != draggedElement.attr('id')) - { - $(this).removeClass("selection-after"); - $(this).removeClass("selection-before"); - - var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2); - - if (event.pageX > ($(this).offset().left - (padding / 2)) - && event.pageX < ($(this).offset().left + $(this).width() + (padding / 2))) - { - if (event.pageX > elementCenter) - { - $(this).addClass("selection-after"); - $(this).removeClass("selection-before"); - } - else if (event.pageX < elementCenter) - { - $(this).addClass("selection-before"); - $(this).removeClass("selection-after"); - } - } - } - - }); - - } - }); - - $(".filter-select-field-dnd-span").droppable({ - accept: ".filter-select-field-dnd-span", - drop: function(event, ui) { - - var padding = 20; - var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2); - var draggedElement = ui.helper; - - if (event.pageX > elementCenter) + for (var j = 0; j < data.filters.length; j++) { - draggedElement.insertAfter($(this)); - } - else if (event.pageX < elementCenter) - { - draggedElement.insertBefore($(this)); - } - - $(this).removeClass("selection-before"); - $(this).removeClass("selection-after"); - - draggedElement.css({left: '0px', top: '10px'}); - - var arrayDndId = []; - - $(".filter-select-field-dnd-span").each(function(i, e) { - - arrayDndId[i] = $(this).attr('id').replace('dnd', ''); - - }); - - // - FHC_AjaxClient.ajaxCallPost( - 'system/Filters/sortSelectedFields', + if (data.fields[i] == data.filters[j].name) { - selectedFieldsLst: arrayDndId, - filter_page: FHC_FilterWidget._getFilterPage() - }, - { - successCallback: function(data, textStatus, jqXHR) { - FHC_FilterWidget._resetSelectedFields(); - - FHC_FilterWidget.renderSelectedFields(); - FHC_FilterWidget.renderTableDataset(); - } + toBeDisplayed = false; + break; } - ); + } + + if (toBeDisplayed == true) + { + var fieldName = data.fields[i]; + var fieldToDisplay = data.fields[i]; + + if (data.hasOwnProperty('columnsAliases') && $.isArray(data.columnsAliases)) + { + fieldToDisplay = data.columnsAliases[i]; + } + + strDropDown = ''; + $("#addFilter").append(strDropDown); + } } - }); - }, + } - /** - * - */ - _resetSelectedFields: function() { - $("#filterSelectFieldsDnd").html(""); - $("#addField").html(""); - }, - - /** - * - */ - _addEventsSFilters: function() { $("#addFilter").change(function(event) { // FHC_AjaxClient.ajaxCallPost( @@ -645,61 +495,68 @@ var FHC_FilterWidget = { ); }); - - }, /** * */ - _getSelectedFilterFields: function(metaData, activeFilters, activeFiltersOperation, activeFiltersOption) { + _resetSelectedFields: function() { + $("#dragAndDropFieldsArea").html(""); + $("#addField").html(""); + }, + + /** + * + */ + _getSelectedFilterFields: function(metaData, appliedFilter) { + var html = ''; if (metaData.type.toLowerCase().indexOf("int") >= 0) { html = ''; - html += ' '; + html += ' '; + html += ' '; + html += ' '; + html += ' '; html += ' '; html += ''; html += ''; - html += ' '; + html += ' '; html += ''; } if (metaData.type.toLowerCase().indexOf('varchar') >= 0 || metaData.type.toLowerCase() == 'text') { html = ''; - html += ' '; + html += ' '; + html += ' '; html += ' '; html += ''; html += ''; - html += ' '; + html += ' '; html += ''; } if (metaData.type.toLowerCase().indexOf('bool') >= 0) { html = ''; - html += ' '; + html += ' '; + html += ' '; html += ' '; html += ''; html += ''; - html += ' '; + html += ' '; html += ''; } if (metaData.type.toLowerCase().indexOf('timestamp') >= 0 || metaData.type.toLowerCase().indexOf('date') >= 0) { - var classOperation = 'form-control select-filter-operation-value'; - var classOption = 'form-control select-filter-option'; + var classOperation = 'form-control applied-filter-condition'; + var classOption = 'form-control applied-filter-option'; var disabled = ""; - if (activeFiltersOperation == "set" || activeFiltersOperation == "nset") + if (appliedFilter.operation == "set" || appliedFilter.operation == "nset") { classOperation += ' hidden-control'; classOption += ' hidden-control'; @@ -707,20 +564,20 @@ var FHC_FilterWidget = { } html = ''; - html += ' '; + html += ' '; + html += ' '; + html += ' '; + html += ' '; html += ' '; html += ''; html += ''; - html += ' '; + html += ' '; html += ''; html += ''; html += ' '; html += ''; } @@ -732,6 +589,120 @@ var FHC_FilterWidget = { return html; }, + /** + * + */ + _renderTableDataset: function(data) { + + FHC_FilterWidget._resetTableDataset(); + + if (data.hasOwnProperty('checkboxes') && data.checkboxes.trim() != '') + { + $("#filterTableDataset > thead > tr").append("Select"); + } + + var arrayFieldsToDisplay = []; + + if (data.hasOwnProperty('selectedFields') && $.isArray(data.selectedFields)) + { + if (data.hasOwnProperty('columnsAliases') && $.isArray(data.columnsAliases)) + { + for (var i = 0; i < data.selectedFields.length; i++) + { + for (var j = 0; j < data.fields.length; j++) + { + if (data.selectedFields[i] == data.fields[j]) + { + arrayFieldsToDisplay[i] = data.columnsAliases[j]; + } + } + } + } + else + { + arrayFieldsToDisplay = data.selectedFields; + } + } + + for (var i = 0; i < arrayFieldsToDisplay.length; i++) + { + var th = arrayFieldsToDisplay[i]; + + $("#filterTableDataset > thead > tr").append("" + th + ""); + } + + if (data.hasOwnProperty('additionalColumns') && $.isArray(data.additionalColumns)) + { + for (var i = 0; i < data.additionalColumns.length; i++) + { + var th = data.additionalColumns[i]; + + $("#filterTableDataset > thead > tr").append("" + th + ""); + } + } + + if (arrayFieldsToDisplay.length > 0) + { + if (data.hasOwnProperty('dataset') && $.isArray(data.dataset)) + { + for (var i = 0; i < data.dataset.length; i++) + { + var record = data.dataset[i]; + var strHtml = ''; + + if (data.checkboxes != null && data.checkboxes != "") + { + strHtml += ''; + strHtml += ''; + strHtml += ''; + } + + $.each(arrayFieldsToDisplay, function(i, fieldToDisplay) { + + if (record.hasOwnProperty(data.selectedFields[i])) + { + strHtml += '' + record[data.selectedFields[i]] + ''; + } + }); + + if (data.additionalColumns != null && $.isArray(data.additionalColumns)) + { + $.each(data.additionalColumns, function(i, additionalColumn) { + + if (record.hasOwnProperty(additionalColumn)) + { + strHtml += '' + record[additionalColumn] + ''; + } + + }); + } + + strHtml += ''; + + $("#filterTableDataset > tbody").append(strHtml); + } + } + else + { + // console.log("No dataset!!!"); + } + } + else + { + // console.log("No fields to display!!!"); + } + + FHC_FilterWidget._callTableSorter(); + + }, + + /** + * + */ + _getFilterPage: function() { + return FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method; + }, + /** * */ @@ -739,6 +710,44 @@ var FHC_FilterWidget = { $("#addFilter").html(""); $("#selectedFilters").html(""); }, + + /** + * + */ + _resetTableDataset: function() { + $("#filterTableDataset > thead > tr").html(""); + $("#filterTableDataset > tbody").html(""); + }, + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /** * @@ -758,20 +767,9 @@ var FHC_FilterWidget = { } }, - /** - * - */ - _resetTableDataset: function() { - $("#filterTableDataset > thead > tr").html(""); - $("#filterTableDataset > tbody").html(""); - }, - /** - * - */ - _getFilterPage: function() { - return FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method; - } + + }; @@ -780,27 +778,37 @@ var FHC_FilterWidget = { */ $(document).ready(function() { - $("[data-toggle='collapse']").click(function() { - - var filterOptionsStatus = sessionStorage.getItem('filter-options-status'); - - if (filterOptionsStatus != null && filterOptionsStatus == 'closed') + if (typeof(Storage) !== "undefined") + { + if (sessionStorage.getItem('filter-options-status') && sessionStorage.getItem('filter-options-status') == 'open') { - sessionStorage.setItem('filter-options-status', 'open'); + $('.collapse').collapse("show"); } else { sessionStorage.setItem('filter-options-status', 'closed'); } + } + + $("[data-toggle='collapse']").click(function() { + + if (typeof(Storage) !== "undefined") + { + if (sessionStorage.getItem('filter-options-status')) + { + if (sessionStorage.getItem('filter-options-status') == 'closed') + { + sessionStorage.setItem('filter-options-status', 'open'); + } + else + { + sessionStorage.setItem('filter-options-status', 'closed'); + } + } + } }); - var filterOptionsStatus = sessionStorage.getItem('filter-options-status'); - if (filterOptionsStatus != null && filterOptionsStatus == 'open') - { - $('.collapse').collapse("show"); - } - $("#saveCustomFilterButton").click(function() { if ($("#customFilterDescription").val() != '') {