diff --git a/client/src/components/jobs-list-paginated/jobs-list-paginated.component.jsx b/client/src/components/jobs-list-paginated/jobs-list-paginated.component.jsx index 59e7dbd80..fe3799c49 100644 --- a/client/src/components/jobs-list-paginated/jobs-list-paginated.component.jsx +++ b/client/src/components/jobs-list-paginated/jobs-list-paginated.component.jsx @@ -11,6 +11,7 @@ import { createStructuredSelector } from "reselect"; import { selectBodyshop } from "../../redux/user/user.selectors"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { pageLimit } from "../../utils/config"; +import { alphaSort, statusSort } from "../../utils/sorters"; import useLocalStorage from "../../utils/useLocalStorage"; import StartChatButton from "../chat-open-button/chat-open-button.component"; import OwnerNameDisplay from "../owner-name-display/owner-name-display.component"; @@ -37,7 +38,10 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { title: t("jobs.fields.ro_number"), dataIndex: "ro_number", key: "ro_number", - sorter: true, //(a, b) => alphaSort(a.ro_number, b.ro_number), + sorter: search?.search + ? (a, b) => + parseInt((a.ro_number || "0").replace(/\D/g, "")) - parseInt((b.ro_number || "0").replace(/\D/g, "")) + : true, sortOrder: sortcolumn === "ro_number" && sortorder, render: (text, record) => ( {record.ro_number || t("general.labels.na")} @@ -49,7 +53,6 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { key: "ownr_ln", ellipsis: true, //sorter: true, // (a, b) => alphaSort(a.ownr_ln, b.ownr_ln), - //sortOrder: sortcolumn === "ownr_ln" && sortorder, render: (text, record) => { return record.ownerid ? ( @@ -67,7 +70,6 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { title: t("jobs.fields.ownr_ph1"), dataIndex: "ownr_ph1", key: "ownr_ph1", - ellipsis: true, render: (text, record) => }, @@ -75,7 +77,6 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { title: t("jobs.fields.ownr_ph2"), dataIndex: "ownr_ph2", key: "ownr_ph2", - ellipsis: true, render: (text, record) => }, @@ -85,7 +86,7 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { key: "status", ellipsis: true, - sorter: true, // (a, b) => alphaSort(a.status, b.status), + sorter: search?.search ? (a, b) => statusSort(a.status, b.status, bodyshop.md_ro_statuses.active_statuses) : true, sortOrder: sortcolumn === "status" && sortorder, render: (text, record) => { return record.status || t("general.labels.na"); @@ -100,7 +101,6 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { title: t("jobs.fields.vehicle"), dataIndex: "vehicle", key: "vehicle", - ellipsis: true, render: (text, record) => { return record.vehicleid ? ( @@ -117,7 +117,7 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { dataIndex: "plate_no", key: "plate_no", ellipsis: true, - sorter: true, //(a, b) => alphaSort(a.plate_no, b.plate_no), + sorter: search?.search ? (a, b) => alphaSort(a.plate_no, b.plate_no) : true, sortOrder: sortcolumn === "plate_no" && sortorder, render: (text, record) => { return record.plate_no ? record.plate_no : ""; @@ -128,7 +128,7 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { dataIndex: "clm_no", key: "clm_no", ellipsis: true, - sorter: true, //(a, b) => alphaSort(a.clm_no, b.clm_no), + sorter: search?.search ? (a, b) => alphaSort(a.clm_no, b.clm_no) : true, sortOrder: sortcolumn === "clm_no" && sortorder, render: (text, record) => `${record.clm_no || ""}${record.po_number ? ` (PO: ${record.po_number})` : ""}` }, @@ -142,8 +142,7 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { title: t("jobs.fields.clm_total"), dataIndex: "clm_total", key: "clm_total", - - sorter: true, //(a, b) => a.clm_total - b.clm_total, + sorter: search?.search ? (a, b) => a.clm_total - b.clm_total : true, sortOrder: sortcolumn === "clm_total" && sortorder, render: (text, record) => { return record.clm_total ? ( @@ -157,7 +156,6 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { title: t("jobs.fields.owner_owing"), dataIndex: "owner_owing", key: "owner_owing", - render: (text, record) => {record.owner_owing} }, { diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js index 569936b7c..90169eccc 100644 --- a/client/src/graphql/jobs.queries.js +++ b/client/src/graphql/jobs.queries.js @@ -1,7 +1,7 @@ import { gql } from "@apollo/client"; export const QUERY_ALL_ACTIVE_JOBS_PAGINATED = gql` - query QUERY_ALL_JOBS_PAGINATED_STATUS_FILTERED( + query QUERY_ALL_ACTIVE_JOBS_PAGINATED( $offset: Int $limit: Int $order: [jobs_order_by!]