mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-18 05:10:45 +00:00
Keep columnStats, RecordGridWidget columns sorted by-section, not alpha.
This commit is contained in:
@ -66,7 +66,7 @@ function RecordGridWidget({widgetMetaData, data}: Props): JSX.Element
|
|||||||
// note - tablePath may be null, if the user doesn't have access to the table. //
|
// note - tablePath may be null, if the user doesn't have access to the table. //
|
||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
const childTablePath = data.tablePath ? data.tablePath + (data.tablePath.endsWith("/") ? "" : "/") : data.tablePath;
|
const childTablePath = data.tablePath ? data.tablePath + (data.tablePath.endsWith("/") ? "" : "/") : data.tablePath;
|
||||||
const columns = DataGridUtils.setupGridColumns(tableMetaData, childTablePath);
|
const columns = DataGridUtils.setupGridColumns(tableMetaData, childTablePath, null, "bySection");
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
// do not not show the foreign-key column of the parent table //
|
// do not not show the foreign-key column of the parent table //
|
||||||
|
@ -127,7 +127,7 @@ function ColumnStats({tableMetaData, fieldMetaData, filter}: Props): JSX.Element
|
|||||||
fakeTableMetaData.sections.push(new QTableSection({fieldNames: [fieldMetaData.name, "count"]}));
|
fakeTableMetaData.sections.push(new QTableSection({fieldNames: [fieldMetaData.name, "count"]}));
|
||||||
|
|
||||||
const rows = DataGridUtils.makeRows(valueCounts, fakeTableMetaData);
|
const rows = DataGridUtils.makeRows(valueCounts, fakeTableMetaData);
|
||||||
const columns = DataGridUtils.setupGridColumns(fakeTableMetaData);
|
const columns = DataGridUtils.setupGridColumns(fakeTableMetaData, null, null, "bySection");
|
||||||
columns.forEach((c) =>
|
columns.forEach((c) =>
|
||||||
{
|
{
|
||||||
c.width = 200;
|
c.width = 200;
|
||||||
|
@ -474,7 +474,7 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
|
|||||||
{
|
{
|
||||||
let linkBase = metaData.getTablePath(table);
|
let linkBase = metaData.getTablePath(table);
|
||||||
linkBase += linkBase.endsWith("/") ? "" : "/";
|
linkBase += linkBase.endsWith("/") ? "" : "/";
|
||||||
const columns = DataGridUtils.setupGridColumns(tableMetaData, linkBase, metaData);
|
const columns = DataGridUtils.setupGridColumns(tableMetaData, linkBase, metaData, "alphabetical");
|
||||||
setColumnsModel(columns);
|
setColumnsModel(columns);
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -89,10 +89,10 @@ export default class DataGridUtils
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public static setupGridColumns = (tableMetaData: QTableMetaData, linkBase: string = "", metaData?: QInstance): GridColDef[] =>
|
public static setupGridColumns = (tableMetaData: QTableMetaData, linkBase: string = "", metaData?: QInstance, columnSort: "bySection" | "alphabetical" = "alphabetical"): GridColDef[] =>
|
||||||
{
|
{
|
||||||
const columns = [] as GridColDef[];
|
const columns = [] as GridColDef[];
|
||||||
this.addColumnsForTable(tableMetaData, linkBase, columns, null);
|
this.addColumnsForTable(tableMetaData, linkBase, columns, columnSort, null, null);
|
||||||
|
|
||||||
if(tableMetaData.exposedJoins)
|
if(tableMetaData.exposedJoins)
|
||||||
{
|
{
|
||||||
@ -107,7 +107,7 @@ export default class DataGridUtils
|
|||||||
joinLinkBase += joinLinkBase.endsWith("/") ? "" : "/";
|
joinLinkBase += joinLinkBase.endsWith("/") ? "" : "/";
|
||||||
}
|
}
|
||||||
|
|
||||||
this.addColumnsForTable(join.joinTable, joinLinkBase, columns, join.joinTable.name + ".", join.label + ": ");
|
this.addColumnsForTable(join.joinTable, joinLinkBase, columns, columnSort, join.joinTable.name + ".", join.label + ": ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,36 +118,39 @@ export default class DataGridUtils
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
private static addColumnsForTable(tableMetaData: QTableMetaData, linkBase: string, columns: GridColDef[], namePrefix?: string, labelPrefix?: string)
|
private static addColumnsForTable(tableMetaData: QTableMetaData, linkBase: string, columns: GridColDef[], columnSort: "bySection" | "alphabetical" = "alphabetical", namePrefix?: string, labelPrefix?: string)
|
||||||
{
|
{
|
||||||
/*
|
const sortedKeys: string[] = [];
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
// this sorted by sections - e.g., manual sorting by the meta-data... //
|
// this sorted by sections - e.g., manual sorting by the meta-data... //
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
const sortedKeys: string[] = [];
|
if(columnSort === "bySection")
|
||||||
for (let i = 0; i < tableMetaData.sections.length; i++)
|
|
||||||
{
|
{
|
||||||
const section = tableMetaData.sections[i];
|
for (let i = 0; i < tableMetaData.sections.length; i++)
|
||||||
if (!section.fieldNames)
|
|
||||||
{
|
{
|
||||||
continue;
|
const section = tableMetaData.sections[i];
|
||||||
}
|
if (!section.fieldNames)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (let j = 0; j < section.fieldNames.length; j++)
|
for (let j = 0; j < section.fieldNames.length; j++)
|
||||||
{
|
{
|
||||||
sortedKeys.push(section.fieldNames[j]);
|
sortedKeys.push(section.fieldNames[j]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
else // columnSort = "alphabetical"
|
||||||
|
|
||||||
///////////////////////////
|
|
||||||
// sort by labels... mmm //
|
|
||||||
///////////////////////////
|
|
||||||
const sortedKeys = [...tableMetaData.fields.keys()];
|
|
||||||
sortedKeys.sort((a: string, b: string): number =>
|
|
||||||
{
|
{
|
||||||
return (tableMetaData.fields.get(a).label.localeCompare(tableMetaData.fields.get(b).label))
|
///////////////////////////
|
||||||
})
|
// sort by labels... mmm //
|
||||||
|
///////////////////////////
|
||||||
|
sortedKeys.sort((a: string, b: string): number =>
|
||||||
|
{
|
||||||
|
return (tableMetaData.fields.get(a).label.localeCompare(tableMetaData.fields.get(b).label))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
sortedKeys.forEach((key) =>
|
sortedKeys.forEach((key) =>
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user