link order in handler

This commit is contained in:
Yuri Kuznetsov
2024-01-16 16:45:50 +02:00
parent 541a6b25e7
commit f4c7ba6686
2 changed files with 17 additions and 6 deletions
+2
View File
@@ -35,6 +35,8 @@
* Advanced filters map. A field name as a key.
* @property {string[]} [bool] Bool filters.
* @property {string} [primary] A primary filter.
* @property {string} [orderBy] A field to order by.
* @property {'asc'|'desc'} [order] An order direction.
*/
/**
+15 -6
View File
@@ -543,12 +543,13 @@ class LinkFieldView extends BaseFieldView {
url += '&' + $.param({'where': filters.advanced});
}
if (this.panelDefs.selectOrderBy) {
const direction = this.panelDefs.selectOrderDirection || 'asc';
const orderBy = filters.orderBy || this.panelDefs.selectOrderBy;
const orderDirection = filters.orderBy ? filters.order : this.panelDefs.selectOrderDirection;
if (orderBy) {
url += '&' + $.param({
orderBy: this.panelDefs.selectOrderBy,
order: direction,
orderBy: orderBy,
order: orderDirection || 'asc',
});
}
@@ -1118,6 +1119,9 @@ class LinkFieldView extends BaseFieldView {
null;
this._getSelectFilters().then(filters => {
const orderBy = filters.orderBy || this.panelDefs.selectOrderBy;
const orderDirection = filters.orderBy ? filters.order : this.panelDefs.selectOrderDirection;
this.createView('dialog', viewName, {
scope: this.foreignScope,
createButton: createButton,
@@ -1129,8 +1133,8 @@ class LinkFieldView extends BaseFieldView {
filterList: this.getSelectFilterList(),
createAttributesProvider: createAttributesProvider,
layoutName: this.panelDefs.selectLayout,
orderBy: this.panelDefs.selectOrderBy,
orderDirection: this.panelDefs.selectOrderDirection,
orderBy: orderBy,
orderDirection: orderDirection,
}, view => {
view.render();
@@ -1236,10 +1240,15 @@ class LinkFieldView extends BaseFieldView {
this._applyAdditionalFilter(advanced);
const orderBy = filters.orderBy;
const order = orderBy ? filters.order : undefined;
resolve({
bool: boolFilterList,
primary: primaryFilter,
advanced: advanced,
orderBy: orderBy,
order: order,
});
});
});