From d9d30b59f0f64ea75f34370dc54301d6bf470a42 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Tue, 12 Mar 2024 09:40:39 -0400 Subject: [PATCH] Report center filtering and shop info instance management. --- .../form-fields-changed-alert.component.jsx | 1 + .../report-center-modal.component.jsx | 7 +- .../shop-info/shop-info.component.jsx | 13 +- ....responsibilitycenters.taxes.component.jsx | 2 +- .../shop-info.scheduling.component.jsx | 262 +++++++++--------- .../jobs-create/jobs-create.component.jsx | 60 ++-- .../jobs-create/jobs-create.container.jsx | 2 +- client/src/pages/shop/shop.page.component.jsx | 14 +- client/src/utils/TemplateConstants.js | 5 +- 9 files changed, 197 insertions(+), 169 deletions(-) diff --git a/client/src/components/form-fields-changed-alert/form-fields-changed-alert.component.jsx b/client/src/components/form-fields-changed-alert/form-fields-changed-alert.component.jsx index 1d5576720..f4e278315 100644 --- a/client/src/components/form-fields-changed-alert/form-fields-changed-alert.component.jsx +++ b/client/src/components/form-fields-changed-alert/form-fields-changed-alert.component.jsx @@ -19,6 +19,7 @@ export default function FormsFieldChanged({form, skipPrompt}) { style={{margin: 0, padding: 0, minHeight: "unset"}} > {() => { + console.log("should update",form.isFieldsTouched()) const errors = form.getFieldsError().filter((e) => e.errors.length > 0); if (form.isFieldsTouched()) return ( diff --git a/client/src/components/report-center-modal/report-center-modal.component.jsx b/client/src/components/report-center-modal/report-center-modal.component.jsx index 85a2b5438..6130a5e62 100644 --- a/client/src/components/report-center-modal/report-center-modal.component.jsx +++ b/client/src/components/report-center-modal/report-center-modal.component.jsx @@ -18,6 +18,7 @@ import EmployeeSearchSelect from "../employee-search-select/employee-search-sele import VendorSearchSelect from "../vendor-search-select/vendor-search-select.component"; import "./report-center-modal.styles.scss"; import ReportCenterModalFiltersSortersComponent from "./report-center-modal-filters-sorters-component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; const mapStateToProps = createStructuredSelector({ reportCenterModal: selectReportCenter, @@ -140,6 +141,10 @@ export function ReportCenterModalComponent({reportCenterModal, bodyshop}) { const grouped = _.groupBy(FilteredReportsList, "group"); + const groupExcludeKeyFilter = [...!HasFeatureAccess({featureName: 'bills'})? ["purchases"]:[], + ...!HasFeatureAccess({featureName: 'timetickets'})? ["payroll"]:[], + ] + return (
- {Object.keys(grouped).map((key) => ( + {Object.keys(grouped).filter(key => !groupExcludeKeyFilter.includes(key)).map((key) => ( , }, - { - key: "checklists", - label: t("bodyshop.labels.checklists"), - children: , - }, + ...InstanceRenderManager({imex: [ { + key: "checklists", + label: t("bodyshop.labels.checklists"), + children: , + }], rome: "USE_IMEX", promanager:[]}) + , { key: "laborrates", label: t("bodyshop.labels.laborrates"), diff --git a/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx b/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx index 6df72ab0c..c31fa6c02 100644 --- a/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx +++ b/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx @@ -41,7 +41,7 @@ export function ShopInfoResponsibilityCenters({bodyshop, form}) { }) ); } - formItems.push(Space({children: section, wrap: true})); + formItems.push({section} ); formItems.push(); } return ( diff --git a/client/src/components/shop-info/shop-info.scheduling.component.jsx b/client/src/components/shop-info/shop-info.scheduling.component.jsx index 04bd5de6d..ac2daca8c 100644 --- a/client/src/components/shop-info/shop-info.scheduling.component.jsx +++ b/client/src/components/shop-info/shop-info.scheduling.component.jsx @@ -6,6 +6,7 @@ import ColorpickerFormItemComponent from "../form-items-formatted/colorpicker-fo import FormListMoveArrows from "../form-list-move-arrows/form-list-move-arrows.component"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; import {ColorPicker} from "./shop-info.rostatus.component"; +import InstanceRenderManager from "../../utils/instanceRenderMgr"; export default function ShopInfoSchedulingComponent({form}) { const {t} = useTranslation(); @@ -198,140 +199,143 @@ export default function ShopInfoSchedulingComponent({form}) { }} - - - {(fields, {add, remove, move}) => { - return ( -
- {fields.map((field, index) => ( - - - - - - - - + { + InstanceRenderManager({imex: + + {(fields, {add, remove, move}) => { + return ( +
+ {fields.map((field, index) => ( + + + + + + + + - - - + + + - - - + + + - - - + + + - - - {t("bodyshop.fields.ssbuckets.color")} - - - } - key={`${index}color`} - name={[field.name, "color"]} - > - - - - { - remove(field.name); - }} - /> - - - - - - ))} - - - -
- ); - }} -
-
+ form.setFields([ + { + name: ["ssbuckets", field.name, "color"], + touched: true, + }, + ]); + }} + > + Reset + + + } + key={`${index}color`} + name={[field.name, "color"]} + > + +
+ + { + remove(field.name); + }} + /> + + + + + + ))} + + + +
+ ); + }} +
+
, rome: "USE_IMEX", promanager: null}) + } +
); } diff --git a/client/src/pages/jobs-create/jobs-create.component.jsx b/client/src/pages/jobs-create/jobs-create.component.jsx index ffb329cc7..9f827ddc8 100644 --- a/client/src/pages/jobs-create/jobs-create.component.jsx +++ b/client/src/pages/jobs-create/jobs-create.component.jsx @@ -10,6 +10,7 @@ import JobsCreateOwnerInfoContainer from "../../components/jobs-create-owner-inf import JobsCreateVehicleInfoContainer from "../../components/jobs-create-vehicle-info/jobs-create-vehicle-info.container"; import JobCreateContext from "../../pages/jobs-create/jobs-create.context"; +import FormsFieldChanged from "../../components/form-fields-changed-alert/form-fields-changed-alert.component"; export default function JobsCreateComponent({form}) { const [pageIndex, setPageIndex] = useState(0); @@ -41,6 +42,7 @@ export default function JobsCreateComponent({form}) { const next = () => { setPageIndex(pageIndex + 1); + console.log("NExt") }; const prev = () => { setPageIndex(pageIndex - 1); @@ -57,24 +59,32 @@ export default function JobsCreateComponent({form}) { )} {pageIndex === steps.length - 1 && ( - )} @@ -91,18 +101,18 @@ export default function JobsCreateComponent({form}) { cursor: "pointer", fontWeight: idx === pageIndex && "bolder", }} - onClick={() => { - form - .validateFields() - .then((r) => { - if (steps[pageIndex].validation) { - setErrorMessage(null); - setPageIndex(idx); - } else { - setErrorMessage(steps[pageIndex].error); - } - }) - .catch((error) => console.log("error", error)); + onClick={() => { setPageIndex(idx); + // form + // .validateFields() + // .then((r) => { + // if (steps[pageIndex].validation) { + // setErrorMessage(null); + // setPageIndex(idx); + // } else { + // setErrorMessage(steps[pageIndex].error); + // } + // }) + // .catch((error) => console.log("error", error)); }} /> ))} @@ -132,7 +142,7 @@ export default function JobsCreateComponent({form}) { ) : (
- + {errorMessage ? (
diff --git a/client/src/pages/jobs-create/jobs-create.container.jsx b/client/src/pages/jobs-create/jobs-create.container.jsx index 32af454be..1b1af899e 100644 --- a/client/src/pages/jobs-create/jobs-create.container.jsx +++ b/client/src/pages/jobs-create/jobs-create.container.jsx @@ -153,7 +153,7 @@ function JobsCreateContainer({bodyshop, setBreadcrumbs, setSelectedHeader}) { , }, - { - key: "csiq", - label: t("bodyshop.labels.csiq"), - children: , - }); + ); + if(HasFeatureAccess("csi")){ + items.push({ + key: "csiq", + label: t("bodyshop.labels.csiq"), + children: , + }) + } return ( {