This commit is contained in:
2021-03-15 21:45:24 +00:00
parent 7817288463
commit e592e06926
3 changed files with 50 additions and 2 deletions

View File

@@ -177,7 +177,12 @@ namespace AyaNova.DataList
//BUILD THE COLUMNS RETURN PROPERTY JSON FRAGMENT
Newtonsoft.Json.Linq.JArray ColumnsJSON = null;
ColumnsJSON = DataList.GenerateReturnListColumns(dataListTableProcessingOptions.Columns);
return new DataListReturnData(rows, totalRecordCount, ColumnsJSON, dataListTableProcessingOptions.SortBy, dataListTableProcessingOptions.Filter.Where(z => z.Column.StartsWith("meta") == false).ToList());
return new DataListReturnData(rows,
totalRecordCount,
ColumnsJSON,
dataListTableProcessingOptions.SortBy,
dataListTableProcessingOptions.Filter.Where(z => z.Column.StartsWith("meta") == false).ToList(),
dataListTableProcessingOptions.HiddenAffectiveColumns);
}

View File

@@ -9,14 +9,16 @@ namespace AyaNova.DataList
public object Columns { get; }
public Dictionary<string, string> SortBy { get; set; }
public List<DataListFilterOption> Filter { get; set; }
public List<string> HiddenAffectiveColumns {get;set;}
public DataListReturnData(object returnItems, long totalRecordCount, Newtonsoft.Json.Linq.JArray columns, Dictionary<string, string> sortBy, List<DataListFilterOption> filter)
public DataListReturnData(object returnItems, long totalRecordCount, Newtonsoft.Json.Linq.JArray columns, Dictionary<string, string> sortBy, List<DataListFilterOption> filter, List<string> hiddenAffectiveColumns)
{
Data = returnItems;
TotalRecordCount = totalRecordCount;
Columns = columns;
SortBy = sortBy;
Filter = filter;
HiddenAffectiveColumns=hiddenAffectiveColumns;
}
}//eoc

View File

@@ -15,6 +15,7 @@ namespace AyaNova.Models
internal const int DefaultLimit = 25;
internal int? Offset { get; set; }
internal int? Limit { get; set; }
internal List<string> HiddenAffectiveColumns { get; set; }
internal DataListTableProcessingOptions(
DataListTableRequest request,
@@ -51,6 +52,8 @@ namespace AyaNova.Models
foreach (DataListFilterOption dfo in StaticServerFilterOptions)
base.Filter.Add(dfo);
SetHiddenAffectiveColumns(dataList);
}
internal List<string> AllUniqueColumnKeysReferenced
@@ -62,5 +65,43 @@ namespace AyaNova.Models
}
}
//All columns that are hidden but are affecting the query (sorting, filtering)
//so in UI can show that there are hidden columns affecting the result set
internal void SetHiddenAffectiveColumns(IDataListProcessing dataList)
{
List<string> tempKeys = new List<string>();
foreach (string s in base.Filter.Select(z => z.Column).ToList())
{
if (!Columns.Contains(s))
{
if (!tempKeys.Contains(s))
{
tempKeys.Add(s);
}
}
}
foreach (string s in base.SortBy.Select(z => z.Key).ToList())
{
if (!Columns.Contains(s))
{
if (!tempKeys.Contains(s))
{
tempKeys.Add(s);
}
}
}
foreach (string s in tempKeys)
{
var fd = dataList.FieldDefinitions.Where(z => z.FieldKey == s).FirstOrDefault();
if (fd != null)
HiddenAffectiveColumns.Add(fd.TKey);
}
}
}
}