Sort motion list by category weight
Sorts the motion list by the weight of the category rather than by name
This commit is contained in:
parent
4841343c02
commit
82c6929a8d
@ -89,28 +89,19 @@ export class MotionSortListService extends BaseSortListService<ViewMotion> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom function to sort the categories internal by the `category_weight` of the motion.
|
* Custom function to sort the categories by the `category_weight` of the motion.
|
||||||
*
|
*
|
||||||
* @param itemA The first item to sort
|
* @param itemA The first item to sort
|
||||||
* @param itemB The second item to sort
|
* @param itemB The second item to sort
|
||||||
* @param intl The localizer to compare strings
|
|
||||||
* @param ascending If the sorting should be in ascended or descended order
|
* @param ascending If the sorting should be in ascended or descended order
|
||||||
*
|
*
|
||||||
* @returns {number} The result of comparing.
|
* @returns {number} The result of comparing.
|
||||||
*/
|
*/
|
||||||
private categorySortFn(itemA: ViewMotion, itemB: ViewMotion, ascending: boolean, intl: Intl.Collator): number {
|
private categorySortFn(itemA: ViewMotion, itemB: ViewMotion, ascending: boolean): number {
|
||||||
const property = 'category';
|
if (itemA.category.weight < itemB.category.weight === ascending) {
|
||||||
const subProperty = 'category_weight';
|
return -1;
|
||||||
const firstValue = ascending ? itemA[property] : itemB[property];
|
|
||||||
const secondValue = ascending ? itemB[property] : itemA[property];
|
|
||||||
|
|
||||||
const diff = intl.compare(firstValue.toString(), secondValue.toString());
|
|
||||||
if (diff === 0) {
|
|
||||||
const firstSubValue = ascending ? itemA[subProperty] : itemB[subProperty];
|
|
||||||
const secondSubValue = ascending ? itemB[subProperty] : itemA[subProperty];
|
|
||||||
return firstSubValue > secondSubValue ? 1 : -1;
|
|
||||||
} else {
|
} else {
|
||||||
return diff;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user