From c6012f73354f08d2583b1bf54396fc3bea0bee2a Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Mon, 8 Jan 2024 17:32:20 -0500 Subject: [PATCH] additional cleanup of kanban utils. Signed-off-by: Dave Richer --- .../production-board-kanban.utils.js | 165 +++++++++--------- 1 file changed, 82 insertions(+), 83 deletions(-) diff --git a/client/src/components/production-board-kanban/production-board-kanban.utils.js b/client/src/components/production-board-kanban/production-board-kanban.utils.js index 65b69675a..59cb6225d 100644 --- a/client/src/components/production-board-kanban/production-board-kanban.utils.js +++ b/client/src/components/production-board-kanban/production-board-kanban.utils.js @@ -1,106 +1,105 @@ -import _ from "lodash/"; +import {groupBy} from "lodash"; const sortByParentId = (arr) => { - // return arr.reduce((accumulator, currentValue) => { - // //Find the parent item. - // let item = accumulator.find((x) => x.id === currentValue.kanbanparent); - // //Get index of praent item - // let index = accumulator.indexOf(item); + // return arr.reduce((accumulator, currentValue) => { + // //Find the parent item. + // let item = accumulator.find((x) => x.id === currentValue.kanbanparent); + // //Get index of parent item + // let index = accumulator.indexOf(item); - // index = index !== -1 ? index + 1 : 0; - // accumulator.splice(index, 0, currentValue); - // return accumulator; - // }, []); + // index = index !== -1 ? index + 1 : 0; + // accumulator.splice(index, 0, currentValue); + // return accumulator; + // }, []); - var parentId = "-1"; - var sortedList = []; - var byParentsIdsList = _.groupBy(arr, "kanbanparent"); // Create a new array with objects indexed by parentId - //console.log("sortByParentId -> byParentsIdsList", byParentsIdsList); + let parentId = "-1"; + const sortedList = []; + const byParentsIdsList = groupBy(arr, "kanbanparent"); // Create a new array with objects indexed by parentId + //console.log("sortByParentId -> byParentsIdsList", byParentsIdsList); - while (byParentsIdsList[parentId]) { - sortedList.push(byParentsIdsList[parentId][0]); - parentId = byParentsIdsList[parentId][0].id; - } + while (byParentsIdsList[parentId]) { + sortedList.push(byParentsIdsList[parentId][0]); + parentId = byParentsIdsList[parentId][0].id; + } - if (byParentsIdsList["null"]) - byParentsIdsList["null"].map((i) => sortedList.push(i)); + if (byParentsIdsList["null"]) + byParentsIdsList["null"].map((i) => sortedList.push(i)); - //Validate that the 2 arrays are of the same length and no children are missing. - if (arr.length !== sortedList.length) { - arr.map((origItem) => { - if (!!!sortedList.find((s) => s.id === origItem.id)) { - sortedList.push(origItem); - console.log("DATA CONSISTENCY ERROR: ", origItem.ro_number); - } - return 1; - }); - } + //Validate that the 2 arrays are of the same length and no children are missing. + if (arr.length !== sortedList.length) { + arr.map((origItem) => { + if (!!!sortedList.find((s) => s.id === origItem.id)) { + sortedList.push(origItem); + console.log("DATA CONSISTENCY ERROR: ", origItem.ro_number); + } + return 1; + }); + } - return sortedList; + return sortedList; }; export const createBoardData = (AllStatuses, Jobs, filter) => { - const { search, employeeId } = filter; - console.log("==========GENERATING BOARD DATA============="); - const boardLanes = { - columns: AllStatuses.map((s) => { - return { - id: s, - title: s, - cards: [], - }; - }), - }; + const {search, employeeId} = filter; + const boardLanes = { + columns: AllStatuses.map((s) => { + return { + id: s, + title: s, + cards: [], + }; + }), + }; - const filteredJobs = - (search === "" || !search) && !employeeId - ? Jobs - : Jobs.filter((j) => { - let include = false; - if (search && search !== "") { - include = CheckSearch(search, j); - } + const filteredJobs = + (search === "" || !search) && !employeeId + ? Jobs + : Jobs.filter((j) => { + let include = false; + if (search && search !== "") { + include = CheckSearch(search, j); + } - if (!!employeeId) { - include = - include || - j.employee_body === employeeId || - j.employee_prep === employeeId || - j.employee_csr === employeeId || - j.employee_refinish === employeeId; - } + if (!!employeeId) { + include = + include || + j.employee_body === employeeId || + j.employee_prep === employeeId || + j.employee_csr === employeeId || + j.employee_refinish === employeeId; + } - return include; - }); + return include; + }); - const DataGroupedByStatus = _.groupBy(filteredJobs, (d) => d.status); + const DataGroupedByStatus = groupBy(filteredJobs, (d) => d.status); - Object.keys(DataGroupedByStatus).map((statusGroupKey) => { - try { - const needle = boardLanes.columns.find((l) => l.id === statusGroupKey); - if (!needle?.cards) return null; - needle.cards = sortByParentId(DataGroupedByStatus[statusGroupKey]); - } catch (error) { - console.log("Error while creating board card", error); - } - return null; - }); + Object.keys(DataGroupedByStatus).map((statusGroupKey) => { + try { + const needle = boardLanes.columns.find((l) => l.id === statusGroupKey); + if (!needle?.cards) return null; + needle.cards = sortByParentId(DataGroupedByStatus[statusGroupKey]); + } catch (error) { + console.log("Error while creating board card", error); + } + return null; + }); - return boardLanes; + return boardLanes; }; const CheckSearch = (search, job) => { - return ( - (job.ro_number || "").toLowerCase().includes(search.toLowerCase()) || - (job.ownr_fn || "").toLowerCase().includes(search.toLowerCase()) || - (job.ownr_co_nm || "").toLowerCase().includes(search.toLowerCase()) || - (job.ownr_ln || "").toLowerCase().includes(search.toLowerCase()) || - (job.status || "").toLowerCase().includes(search.toLowerCase()) || - (job.v_make_desc || "").toLowerCase().includes(search.toLowerCase()) || - (job.v_model_desc || "").toLowerCase().includes(search.toLowerCase()) || - (job.clm_no || "").toLowerCase().includes(search.toLowerCase()) || - (job.plate_no || "").toLowerCase().includes(search.toLowerCase()) - ); + return ( + (job.ro_number || "").toLowerCase().includes(search.toLowerCase()) || + (job.ownr_fn || "").toLowerCase().includes(search.toLowerCase()) || + (job.ownr_co_nm || "").toLowerCase().includes(search.toLowerCase()) || + (job.ownr_ln || "").toLowerCase().includes(search.toLowerCase()) || + (job.status || "").toLowerCase().includes(search.toLowerCase()) || + (job.v_make_desc || "").toLowerCase().includes(search.toLowerCase()) || + (job.v_model_desc || "").toLowerCase().includes(search.toLowerCase()) || + (job.clm_no || "").toLowerCase().includes(search.toLowerCase()) || + (job.plate_no || "").toLowerCase().includes(search.toLowerCase()) + ); }; // export const updateBoardOnMove = (board, card, source, destination) => {