This commit is contained in:
@@ -177,7 +177,12 @@ namespace AyaNova.DataList
|
|||||||
//BUILD THE COLUMNS RETURN PROPERTY JSON FRAGMENT
|
//BUILD THE COLUMNS RETURN PROPERTY JSON FRAGMENT
|
||||||
Newtonsoft.Json.Linq.JArray ColumnsJSON = null;
|
Newtonsoft.Json.Linq.JArray ColumnsJSON = null;
|
||||||
ColumnsJSON = DataList.GenerateReturnListColumns(dataListTableProcessingOptions.Columns);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,14 +9,16 @@ namespace AyaNova.DataList
|
|||||||
public object Columns { get; }
|
public object Columns { get; }
|
||||||
public Dictionary<string, string> SortBy { get; set; }
|
public Dictionary<string, string> SortBy { get; set; }
|
||||||
public List<DataListFilterOption> Filter { 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;
|
Data = returnItems;
|
||||||
TotalRecordCount = totalRecordCount;
|
TotalRecordCount = totalRecordCount;
|
||||||
Columns = columns;
|
Columns = columns;
|
||||||
SortBy = sortBy;
|
SortBy = sortBy;
|
||||||
Filter = filter;
|
Filter = filter;
|
||||||
|
HiddenAffectiveColumns=hiddenAffectiveColumns;
|
||||||
}
|
}
|
||||||
}//eoc
|
}//eoc
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ namespace AyaNova.Models
|
|||||||
internal const int DefaultLimit = 25;
|
internal const int DefaultLimit = 25;
|
||||||
internal int? Offset { get; set; }
|
internal int? Offset { get; set; }
|
||||||
internal int? Limit { get; set; }
|
internal int? Limit { get; set; }
|
||||||
|
internal List<string> HiddenAffectiveColumns { get; set; }
|
||||||
|
|
||||||
internal DataListTableProcessingOptions(
|
internal DataListTableProcessingOptions(
|
||||||
DataListTableRequest request,
|
DataListTableRequest request,
|
||||||
@@ -51,6 +52,8 @@ namespace AyaNova.Models
|
|||||||
foreach (DataListFilterOption dfo in StaticServerFilterOptions)
|
foreach (DataListFilterOption dfo in StaticServerFilterOptions)
|
||||||
base.Filter.Add(dfo);
|
base.Filter.Add(dfo);
|
||||||
|
|
||||||
|
SetHiddenAffectiveColumns(dataList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal List<string> AllUniqueColumnKeysReferenced
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user