From 0dbe56d36c885aed0dc13324b5ea606729ab02fd Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Mon, 3 Aug 2020 09:20:06 -0700 Subject: [PATCH] Added searching to available jobs page. BOD-199 --- bodyshop_translations.babel | 21 ++++++++++ .../jobs-available-new.component.jsx | 41 +++++++++++++----- .../jobs-available-supplement.component.jsx | 42 +++++++++++++------ .../jobs-export-all-button.component.jsx | 5 +-- client/src/translations/en_us/common.json | 1 + client/src/translations/es/common.json | 1 + client/src/translations/fr/common.json | 1 + 7 files changed, 86 insertions(+), 26 deletions(-) diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 47c2e9df8..e6ddcb657 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -6108,6 +6108,27 @@ + + deleteall + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + edit false diff --git a/client/src/components/jobs-available-new/jobs-available-new.component.jsx b/client/src/components/jobs-available-new/jobs-available-new.component.jsx index 381866d7c..574237241 100644 --- a/client/src/components/jobs-available-new/jobs-available-new.component.jsx +++ b/client/src/components/jobs-available-new/jobs-available-new.component.jsx @@ -3,7 +3,7 @@ import { PlusCircleFilled, SyncOutlined, } from "@ant-design/icons"; -import { Button, notification, Table } from "antd"; +import { Button, notification, Table, Input } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; @@ -27,7 +27,7 @@ export default function JobsAvailableComponent({ estData, }) { const { t } = useTranslation(); - + const [searchText, setSearchText] = useState(""); const [state, setState] = useState({ sortedInfo: {}, filteredInfo: { text: "" }, @@ -156,6 +156,21 @@ export default function JobsAvailableComponent({ ? estData.data.available_jobs_by_pk.est_data.owner.data : null; + const availableJobs = data + ? searchText + ? data.available_jobs.filter( + (j) => + (j.ownr_name || "") + .toLowerCase() + .includes(searchText.toLowerCase()) || + (j.vehicle_info || "") + .toLowerCase() + .includes(searchText.toLowerCase()) || + (j.clm_no || "").toLowerCase().includes(searchText.toLowerCase()) + ) + : data.available_jobs + : []; + return (
{ return ( -
- - {t("jobs.labels.availablenew")} - +
+ {t("jobs.labels.availablenew")} +
+ { + setSearchText(e.currentTarget.value); + }} + /> +
); }} size="small" pagination={{ position: "top" }} - columns={columns.map((item) => ({ ...item }))} + columns={columns} rowKey="id" - dataSource={data && data.available_jobs} + dataSource={availableJobs} onChange={handleTableChange} />
diff --git a/client/src/components/jobs-available-supplement/jobs-available-supplement.component.jsx b/client/src/components/jobs-available-supplement/jobs-available-supplement.component.jsx index aac9a0abc..eeeec7bb3 100644 --- a/client/src/components/jobs-available-supplement/jobs-available-supplement.component.jsx +++ b/client/src/components/jobs-available-supplement/jobs-available-supplement.component.jsx @@ -3,7 +3,7 @@ import { PlusCircleFilled, SyncOutlined, } from "@ant-design/icons"; -import { Button, notification, Table } from "antd"; +import { Button, notification, Table, Input } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; @@ -29,6 +29,7 @@ export default function JobsAvailableSupplementComponent({ modalSearchState, }) { const { t } = useTranslation(); + const [searchText, setSearchText] = useState(""); const [state, setState] = useState({ sortedInfo: {}, @@ -176,6 +177,21 @@ export default function JobsAvailableSupplementComponent({ }); }; + const availableJobs = data + ? searchText + ? data.available_jobs.filter( + (j) => + (j.ownr_name || "") + .toLowerCase() + .includes(searchText.toLowerCase()) || + (j.vehicle_info || "") + .toLowerCase() + .includes(searchText.toLowerCase()) || + (j.clm_no || "").toLowerCase().includes(searchText.toLowerCase()) + ) + : data.available_jobs + : []; + return (
{ return ( -
- - {t("jobs.labels.availablesupplements")} - +
+ {t("jobs.labels.availablesupplements")} - +
+ { + setSearchText(e.currentTarget.value); + }} + /> +
); }} @@ -218,7 +236,7 @@ export default function JobsAvailableSupplementComponent({ pagination={{ position: "top" }} columns={columns} rowKey="id" - dataSource={data && data.available_jobs} + dataSource={availableJobs} onChange={handleTableChange} />
diff --git a/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx b/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx index f945260d7..f62acd956 100644 --- a/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx +++ b/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx @@ -5,10 +5,9 @@ import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; -import { auth } from "../../firebase/firebase.utils"; -import { UPDATE_JOB, UPDATE_JOBS } from "../../graphql/jobs.queries"; +import { auth, logImEXEvent } from "../../firebase/firebase.utils"; +import { UPDATE_JOBS } from "../../graphql/jobs.queries"; import { selectBodyshop } from "../../redux/user/user.selectors"; -import { logImEXEvent } from "../../firebase/firebase.utils"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 49342a037..faf7f16cc 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -408,6 +408,7 @@ "close": "Close", "create": "Create", "delete": "Delete", + "deleteall": "Delete All", "edit": "Edit", "login": "Login", "refresh": "Refresh", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 2511b9587..1c3c1da2f 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -408,6 +408,7 @@ "close": "", "create": "", "delete": "Borrar", + "deleteall": "", "edit": "Editar", "login": "", "refresh": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index c47639861..084ebc36a 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -408,6 +408,7 @@ "close": "", "create": "", "delete": "Effacer", + "deleteall": "", "edit": "modifier", "login": "", "refresh": "",