From f6b72ab428bd8273c32eb25eb4edfd5a102c6303 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Wed, 28 Sep 2022 11:47:48 -0700 Subject: [PATCH] IO-2065 Resolve parts status filtering. --- .../parts-queue.page.component.jsx | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/client/src/pages/parts-queue/parts-queue.page.component.jsx b/client/src/pages/parts-queue/parts-queue.page.component.jsx index c9725a905..5d6226bdb 100644 --- a/client/src/pages/parts-queue/parts-queue.page.component.jsx +++ b/client/src/pages/parts-queue/parts-queue.page.component.jsx @@ -1,6 +1,7 @@ import { SyncOutlined } from "@ant-design/icons"; import { useQuery } from "@apollo/client"; import { Button, Card, Input, Space, Table } from "antd"; +import _ from "lodash"; import queryString from "query-string"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -14,7 +15,6 @@ import OwnerNameDisplay from "../../components/owner-name-display/owner-name-dis import ProductionListColumnComment from "../../components/production-list-columns/production-list-columns.comment.component"; import { QUERY_PARTS_QUEUE } from "../../graphql/jobs.queries"; import { selectBodyshop } from "../../redux/user/user.selectors"; -import { onlyUnique } from "../../utils/arrayHelper"; import { DateTimeFormatter, TimeAgoFormatter } from "../../utils/DateFormatter"; import { alphaSort, dateSort } from "../../utils/sorters"; import useLocalStorage from "../../utils/useLocalStorage"; @@ -94,6 +94,14 @@ export function PartsQueuePageComponent({ bodyshop }) { // searchParams.page = pagination.current; searchParams.sortcolumn = sorter.columnKey; searchParams.sortorder = sorter.order; + + if (filters.status) { + searchParams.statusFilters = JSON.stringify( + _.flattenDeep(filters.status) + ); + } else { + delete searchParams.statusFilters; + } setFilter(filters); history.push({ search: queryString.stringify(searchParams) }); }; @@ -136,19 +144,14 @@ export function PartsQueuePageComponent({ bodyshop }) { key: "status", sorter: (a, b) => alphaSort(a.status, b.status), sortOrder: sortcolumn === "status" && sortorder, + filteredValue: statusFilters ? JSON.parse(statusFilters) : null, filters: - (jobs && - jobs - .map((j) => j.status) - .filter(onlyUnique) - .map((s) => { - return { - text: s || "No Status*", - value: [s], - }; - })) || - [], - onFilter: (value, record) => value.includes(record.status), + bodyshop.md_ro_statuses.active_statuses.map((s) => { + return { + text: s || "No Status*", + value: [s], + }; + }) || [], render: (text, record) => { return record.status || t("general.labels.na"); },