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 e247f5450..96268df7a 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"; @@ -36,7 +37,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) => ( @@ -50,7 +54,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 ? ( @@ -68,7 +71,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) => ( @@ -78,7 +80,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) => ( @@ -88,9 +89,8 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) { title: t("jobs.fields.status"), dataIndex: "status", 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"); @@ -106,7 +106,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 ? ( @@ -127,7 +126,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 : ""; @@ -138,7 +137,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 || ""}${ @@ -156,7 +155,7 @@ export function JobsList({ bodyshop, refetch, loading, jobs, 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 ? ( @@ -170,7 +169,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 0cd49d52b..f29694161 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!]