morffix/static/js/table_sort.js

37 lines
1.1 KiB
JavaScript

const SORT_ORDER_BY_PARAM = "order_by"
const SORT_ORDER_ASC_PARAM = "order_asc"
const SORT_PAGE_PARAM = "page"
const SORT_LIMIT_PARAM = "limit"
function setTableSort(field) {
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get(SORT_ORDER_BY_PARAM) == field) {
if (urlParams.has(SORT_ORDER_ASC_PARAM)) {
urlParams.delete(SORT_ORDER_ASC_PARAM);
} else {
urlParams.set(SORT_ORDER_ASC_PARAM, true);
}
} else {
urlParams.set(SORT_ORDER_BY_PARAM, field);
urlParams.delete(SORT_ORDER_ASC_PARAM);
}
//Reset Pagination
urlParams.delete(SORT_PAGE_PARAM);
window.location.search = urlParams;
}
function setLimit(number) {
const urlParams = new URLSearchParams(window.location.search);
urlParams.set(SORT_LIMIT_PARAM, number);
//Reset Pagination
urlParams.delete(SORT_PAGE_PARAM);
window.location.search = urlParams;
}
function setPage(number) {
const urlParams = new URLSearchParams(window.location.search);
urlParams.set(SORT_PAGE_PARAM, number);
window.location.search = urlParams;
}