Add vendor name sort on all bills page IO-482
This commit is contained in:
@@ -39,9 +39,20 @@ export function BillsListPage({
|
|||||||
title: t("bills.fields.vendorname"),
|
title: t("bills.fields.vendorname"),
|
||||||
dataIndex: "vendorname",
|
dataIndex: "vendorname",
|
||||||
key: "vendorname",
|
key: "vendorname",
|
||||||
// sorter: (a, b) => alphaSort(a.vendor.name, b.vendor.name),
|
sortObject: (direction) => {
|
||||||
// sortOrder:
|
return {
|
||||||
// state.sortedInfo.columnKey === "vendorname" && state.sortedInfo.order,
|
vendor: {
|
||||||
|
name: direction
|
||||||
|
? direction === "descend"
|
||||||
|
? "desc"
|
||||||
|
: "asc"
|
||||||
|
: "desc",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
sorter: (a, b) => alphaSort(a.vendor.name, b.vendor.name),
|
||||||
|
sortOrder:
|
||||||
|
state.sortedInfo.columnKey === "vendorname" && state.sortedInfo.order,
|
||||||
render: (text, record) => <span>{record.vendor.name}</span>,
|
render: (text, record) => <span>{record.vendor.name}</span>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -138,8 +149,15 @@ export function BillsListPage({
|
|||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
||||||
search.page = pagination.current;
|
search.page = pagination.current;
|
||||||
search.sortcolumn = sorter.columnKey;
|
if (sorter && sorter.column && sorter.column.sortObject) {
|
||||||
search.sortorder = sorter.order;
|
search.searchObj = JSON.stringify(sorter.column.sortObject(sorter.order));
|
||||||
|
} else {
|
||||||
|
delete search.searchObj;
|
||||||
|
search.sortcolumn = sorter.order ? sorter.columnKey : null;
|
||||||
|
search.sortorder = sorter.order;
|
||||||
|
}
|
||||||
|
|
||||||
|
search.sort = JSON.stringify({ [sorter.columnKey]: sorter.order });
|
||||||
history.push({ search: queryString.stringify(search) });
|
history.push({ search: queryString.stringify(search) });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ import { useQuery } from "react-apollo";
|
|||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { useLocation } from "react-router-dom";
|
import { useLocation } from "react-router-dom";
|
||||||
|
import AlertComponent from "../../components/alert/alert.component";
|
||||||
import BillDetailEditContainer from "../../components/bill-detail-edit/bill-detail-edit.container";
|
import BillDetailEditContainer from "../../components/bill-detail-edit/bill-detail-edit.container";
|
||||||
|
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
||||||
import { QUERY_ALL_BILLS_PAGINATED } from "../../graphql/bills.queries";
|
import { QUERY_ALL_BILLS_PAGINATED } from "../../graphql/bills.queries";
|
||||||
import {
|
import {
|
||||||
setBreadcrumbs,
|
setBreadcrumbs,
|
||||||
setSelectedHeader,
|
setSelectedHeader,
|
||||||
} from "../../redux/application/application.actions";
|
} from "../../redux/application/application.actions";
|
||||||
import BillsPageComponent from "./bills.page.component";
|
import BillsPageComponent from "./bills.page.component";
|
||||||
import AlertComponent from "../../components/alert/alert.component";
|
|
||||||
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
@@ -22,7 +22,7 @@ const mapDispatchToProps = (dispatch) => ({
|
|||||||
export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const searchParams = queryString.parse(useLocation().search);
|
const searchParams = queryString.parse(useLocation().search);
|
||||||
const { page, sortcolumn, sortorder, search } = searchParams;
|
const { page, sortcolumn, sortorder, search, searchObj } = searchParams;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t("titles.bills-list");
|
document.title = t("titles.bills-list");
|
||||||
@@ -40,13 +40,15 @@ export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
offset: page ? (page - 1) * 25 : 0,
|
offset: page ? (page - 1) * 25 : 0,
|
||||||
limit: 25,
|
limit: 25,
|
||||||
order: [
|
order: [
|
||||||
{
|
searchObj
|
||||||
[sortcolumn || "date"]: sortorder
|
? JSON.parse(searchObj)
|
||||||
? sortorder === "descend"
|
: {
|
||||||
? "desc"
|
[sortcolumn || "date"]: sortorder
|
||||||
: "asc"
|
? sortorder === "descend"
|
||||||
: "desc",
|
? "desc"
|
||||||
},
|
: "asc"
|
||||||
|
: "desc",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user