- Now the FilterWidget always store the required permissions into the session to let the Filters controller to provide data even if the dataset is empty

- Now the _renderDropDown method of the FilterWidget.js checks the parameter to avoid errors
This commit is contained in:
Paolo
2018-06-08 18:28:40 +02:00
parent 81e4f2968e
commit abcdd37e90
2 changed files with 29 additions and 28 deletions
+3 -4
View File
@@ -263,6 +263,9 @@ class FilterWidget extends Widget
// Read the all session for this filter widget
$session = $this->filterslib->getSession();
// To be always stored in the session, otherwise is not possible to load data from Filters controller
$this->filterslib->setElementSession(FiltersLib::REQUIRED_PERMISSIONS_PARAMETER, $this->_requiredPermissions);
// If session is NOT empty -> a filter was already loaded
if ($session != null)
{
@@ -339,14 +342,10 @@ class FilterWidget extends Widget
// Stores an array that contains all the data useful for
$this->filterslib->setSession(
array(
FiltersLib::REQUIRED_PERMISSIONS_PARAMETER => $this->_requiredPermissions, // required permissions
FiltersLib::FILTER_ID => $this->_filterId, // the current filter id
FiltersLib::APP_PARAMETER => $this->_app, // the current app parameter
FiltersLib::DATASET_NAME_PARAMETER => $this->_datasetName, // the carrent dataset name
FiltersLib::SESSION_FILTER_NAME => $filterName, // the current filter name
FiltersLib::SESSION_FIELDS => $this->FiltersModel->getExecutedQueryListFields(), // all the fields of the dataset
FiltersLib::SESSION_SELECTED_FIELDS => $this->_getColumnsNames($parsedFilterJson->columns), // all the selected fields
FiltersLib::SESSION_COLUMNS_ALIASES => $this->_columnsAliases, // all the fields aliases
+26 -24
View File
@@ -160,6 +160,8 @@ var FHC_FilterWidget = {
*/
_renderFilterWidget: function(data) {
console.log(data);
FHC_FilterWidget._initSessionStorage(); // initialize the session storage
FHC_FilterWidget._turnOffEvents(); // turns all the events off
FHC_FilterWidget._resetGUI(); // Reset the entire GUI
@@ -545,10 +547,7 @@ var FHC_FilterWidget = {
*/
_renderDropDownFields: function(data) {
if (data.hasOwnProperty("fields") && $.isArray(data.fields))
{
FHC_FilterWidget._renderDropDown(data, data.selectedFields, 'addField');
}
FHC_FilterWidget._renderDropDown(data, data.selectedFields, 'addField');
},
/**
@@ -557,34 +556,37 @@ var FHC_FilterWidget = {
*/
_renderDropDown: function(data, elements, ddElementId) {
for (var i = 0; i < data.fields.length; i++)
if (data.hasOwnProperty("fields") && $.isArray(data.fields))
{
var toBeDisplayed = true;
for (var j = 0; j < elements.length; j++)
for (var i = 0; i < data.fields.length; i++)
{
var elementName = elements[j].hasOwnProperty("name") ? elements[j].name : elements[j];
var toBeDisplayed = true;
if (data.fields[i] == elementName)
for (var j = 0; j < elements.length; j++)
{
toBeDisplayed = false;
break;
}
}
var elementName = elements[j].hasOwnProperty("name") ? elements[j].name : elements[j];
if (toBeDisplayed == true)
{
var fieldName = data.fields[i];
var fieldToDisplay = data.fields[i];
if (data.hasOwnProperty("columnsAliases") && $.isArray(data.columnsAliases))
{
fieldToDisplay = data.columnsAliases[i];
if (data.fields[i] == elementName)
{
toBeDisplayed = false;
break;
}
}
if ($("#" + ddElementId).length) // checks if the element exists
if (toBeDisplayed == true)
{
$("#" + ddElementId).append("<option value='" + fieldName + "'>" + fieldToDisplay + "</option>");
var fieldName = data.fields[i];
var fieldToDisplay = data.fields[i];
if (data.hasOwnProperty("columnsAliases") && $.isArray(data.columnsAliases))
{
fieldToDisplay = data.columnsAliases[i];
}
if ($("#" + ddElementId).length) // checks if the element exists
{
$("#" + ddElementId).append("<option value='" + fieldName + "'>" + fieldToDisplay + "</option>");
}
}
}
}