in desktop/src/@batch-flask/ui/abstract-list/abstract-list-base.ts [524:571]
private _createSortByMenu() {
const sortOptions = Object.keys(this._config.sorting as any).map((key) => {
return new ContextMenuItem({
label: inflection.humanize(inflection.underscore(key)),
click: () => {
this.dataPresenter.sortBy(key);
},
checked: this.dataPresenter.sortingBy.key === key,
type: "checkbox",
});
});
const ascending = this.dataPresenter.sortingBy.direction === SortDirection.Asc;
const sortDirections = [
new ContextMenuItem({
label: "Ascending",
click: () => {
this.dataPresenter.updateSortDirection(SortDirection.Asc);
},
checked: ascending,
type: "checkbox",
}),
new ContextMenuItem({
label: "Descending",
click: () => {
this.dataPresenter.updateSortDirection(SortDirection.Desc);
},
checked: !ascending,
type: "checkbox",
}),
];
return new MultiContextMenuItem({
label: "Sort by",
subitems: [
new ContextMenuItem({
label: "Default",
click: () => {
this.dataPresenter.sortBy(null);
},
checked: this.dataPresenter.sortingBy.key === null,
type: "checkbox",
}),
...sortOptions,
new ContextMenuSeparator(),
...sortDirections,
],
});
}