Compare commits

...

5 Commits

Author SHA1 Message Date
Dave Richer
ee8cbe33c4 Pagination Fix 2023-12-04 14:28:44 -05:00
Dave Richer
92c8b54f85 Merged in release/2023-12-01 (pull request #1103)
Reversion

Approved-by: Allan Carr
2023-12-04 16:50:13 +00:00
Dave Richer
d8420f472c Merged in feature/reversion-to-active-jobs-pagination (pull request #1102)
Reversion
2023-12-04 16:40:50 +00:00
Dave Richer
34d93c4de0 Reversion 2023-12-04 11:39:20 -05:00
Dave Richer
1c400cd456 Merged in release/2023-12-01 (pull request #1099)
Release/2023 12 01

Approved-by: Allan Carr
2023-12-01 18:18:23 +00:00
3 changed files with 44 additions and 51 deletions

View File

@@ -29,7 +29,7 @@ export function JobsList({bodyshop,}) {
const search = queryString.parse(useLocation().search); const search = queryString.parse(useLocation().search);
const [openSearchResults, setOpenSearchResults] = useState([]); const [openSearchResults, setOpenSearchResults] = useState([]);
const [searchLoading, setSearchLoading] = useState(false); const [searchLoading, setSearchLoading] = useState(false);
const {page, selected, sortorder, sortcolumn} = search; const {page, selected, sortorder, sortcolumn,statusFilters} = search;
const selectedBreakpoint = Object.entries(Grid.useBreakpoint()) const selectedBreakpoint = Object.entries(Grid.useBreakpoint())
.filter((screen) => !!screen[1]) .filter((screen) => !!screen[1])
@@ -39,7 +39,7 @@ export function JobsList({bodyshop,}) {
variables: { variables: {
offset: page ? (page - 1) * pageLimit : 0, offset: page ? (page - 1) * pageLimit : 0,
limit: pageLimit, limit: pageLimit,
statuses: bodyshop.md_ro_statuses.active_statuses || ["Open", "Open*"], statusFilters: statusFilters ? JSON.parse(statusFilters) : bodyshop.md_ro_statuses.active_statuses || ["Open", "Open*"],
order: [ order: [
{ {
[sortcolumn || "ro_number"]: [sortcolumn || "ro_number"]:
@@ -67,9 +67,6 @@ export function JobsList({bodyshop,}) {
const jobs = data?.jobs || []; const jobs = data?.jobs || [];
const handleTableChange = (pagination, filters, sorter) => { const handleTableChange = (pagination, filters, sorter) => {
// TODO: Is this needed?
setState({...state, filteredInfo: filters});
search.page = pagination.current; search.page = pagination.current;
search.sortcolumn = sorter.column && sorter.column.key; search.sortcolumn = sorter.column && sorter.column.key;
search.sortorder = sorter.order; search.sortorder = sorter.order;
@@ -205,19 +202,13 @@ export function JobsList({bodyshop,}) {
sorter: true, sorter: true,
sortOrder: sortOrder:
sortcolumn === "status" && sortorder, sortcolumn === "status" && sortorder,
filters: filters:bodyshop.md_ro_statuses.statuses.map((s) => {
(jobs && return { text: s, value: [s] };
jobs }),
.map((j) => j.status)
.filter(onlyUnique)
.map((s) => {
return {
text: s || "No Status*",
value: [s],
};
})) ||
[],
onFilter: (value, record) => value.includes(record.status), onFilter: (value, record) => value.includes(record.status),
render: (text, record) => {
return record.status || t("general.labels.na");
},
}, },
{ {
title: t("jobs.fields.vehicle"), title: t("jobs.fields.vehicle"),
@@ -270,19 +261,20 @@ export function JobsList({bodyshop,}) {
dataIndex: "ins_co_nm", dataIndex: "ins_co_nm",
key: "ins_co_nm", key: "ins_co_nm",
ellipsis: true, ellipsis: true,
filters: // TODO: Restore Filters?
(jobs && // filters:
jobs // (jobs &&
.map((j) => j.ins_co_nm) // jobs
.filter(onlyUnique) // .map((j) => j.ins_co_nm)
.map((s) => { // .filter(onlyUnique)
return { // .map((s) => {
text: s, // return {
value: [s], // text: s,
}; // value: [s],
})) || // };
[], // })) ||
onFilter: (value, record) => value.includes(record.ins_co_nm), // [],
// onFilter: (value, record) => value.includes(record.ins_co_nm),
responsive: ["md"], responsive: ["md"],
}, },
{ {
@@ -304,23 +296,24 @@ export function JobsList({bodyshop,}) {
key: "jobs.labels.estimator", key: "jobs.labels.estimator",
ellipsis: true, ellipsis: true,
responsive: ["xl"], responsive: ["xl"],
filterSearch: true, // TODO Restore Filters?
filters: // filterSearch: true,
(jobs && // filters:
jobs // (jobs &&
.map((j) => `${j.est_ct_fn || ""} ${j.est_ct_ln || ""}`.trim()) // jobs
.filter(onlyUnique) // .map((j) => `${j.est_ct_fn || ""} ${j.est_ct_ln || ""}`.trim())
.map((s) => { // .filter(onlyUnique)
return { // .map((s) => {
text: s || "N/A", // return {
value: [s], // text: s || "N/A",
}; // value: [s],
})) || // };
[], // })) ||
onFilter: (value, record) => // [],
value.includes( // onFilter: (value, record) =>
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim() // value.includes(
), // `${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()
// ),
render: (text, record) => render: (text, record) =>
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim(), `${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim(),
}, },

View File

@@ -5,13 +5,13 @@ export const QUERY_ALL_ACTIVE_JOBS_PAGINATED = gql`
$offset: Int $offset: Int
$limit: Int $limit: Int
$order: [jobs_order_by!] $order: [jobs_order_by!]
$statuses: [String!]!, $statusFilters: [String!]!,
$isConverted: Boolean $isConverted: Boolean
) { ) {
jobs( jobs(
offset: $offset offset: $offset
limit: $limit limit: $limit
where: { status: { _in: $statuses }, converted: { _eq: $isConverted } } where: { status: { _in: $statusFilters }, converted: { _eq: $isConverted } }
order_by: $order order_by: $order
) { ) {
iouparent iouparent
@@ -52,7 +52,7 @@ export const QUERY_ALL_ACTIVE_JOBS_PAGINATED = gql`
est_ct_fn est_ct_fn
est_ct_ln est_ct_ln
} }
jobs_aggregate(where: { status: { _in: $statuses } }) { jobs_aggregate(where: { status: { _in: $statusFilters } }) {
aggregate { aggregate {
count(distinct: true) count(distinct: true)
} }

View File

@@ -1,4 +1,4 @@
// Sometimes referred to as PageSize, this variable controls the amount of records // Sometimes referred to as PageSize, this variable controls the amount of records
// to show on one page during pagination. // to show on one page during pagination.
export const pageLimit = 50; export const pageLimit = 10;