{"version":3,"sources":["components/Jobs/Checklist/FormView.jsx","containers/Jobs/Checklist/FormView.js","helpers/jobs.js"],"names":["FormView","React","constructor","arguments","state","fetchItem","async","siblingRecords","this","props","maxPriority","max","map","each","priority","response","getSettings","type","settingsType","setState","fieldSettings","value","data","siblings","linkTargetRecord","error","showError","handleSubmit","e","stopEvent","form","validateFields","errors","values","validationErrors","isEmpty","_this$props$onSave","_this$props","_this$props$onSave2","_this$props2","_this$props$onSaveAnd","_this$props3","onSave","call","onSaveAndClose","_this$props$onSave3","_this$props4","showValidationError","setItemValue","name","produce","draft","index","findIndex","one","_this$props$linkTarge","id","lastUser","user","userName","lastUserDate","Date","toJSON","set","otherSiblings","filter","_this$props$linkTarge2","shiftedSiblings","prioritizeChecklistItems","appendedSiblings","orderBy","find","_this$props$linkTarge3","onChange","componentDidMount","render","parentRecord","_jsx","_Spin","item","_this$props$linkTarge4","createLabel","createLabelFactory","createFieldDecorator","createFieldFactory","readOnly","isReadOnly","isTemplate","_jsxs","_Form","layout","colon","onSubmit","children","className","ValidationError","Item","label","_Input","target","disabled","autoFocus","TextArea","rows","InputNumber","Math","min","t","formatUserTime","valuePropName","Checkbox","checked","_Button","onClick","onCancel","_Tooltip","title","placement","htmlType","loading","saveAndCloseButtonLoading","create","connect","mapStateToProps","createAuthStateToProps","actions","Component","items","createSearchAssets","self","debounce","_self$state","_self$state$item","_self$state2","_self$state2$item","_self$state3","_self$state3$item","assets","getAssets","search","assetIds","assetId","undefined","assetCategoryIds","assetCategoryId","locationIds","locationId","DEBOUNCE","createSearchAssignedOperators","_self$state4","_self$state4$item","assignedToOperators","getOperators","operatorIds","assignedToId","createSearchOperators","_self$state5","_self$state5$item","operators","createSaveChecklistItems","creating","updating","deleting","getChangedItems","checklistItemsOriginal","checklistItems","deleteChecklistItems","jobId","showClientNotifications","failureCount","Error","updateChecklistItems","createChecklistItems","_ref","jobChecklistId","rest","createSaveLabourItems","labourItemsOriginal","labourItems","deleteLabourItems","updateLabourItems","createLabourItems","_ref2","jobLabourId"],"mappings":"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","file":"static/js/20.352e9d1a.chunk.js","sourcesContent":["import * as React from 'react'\r\nimport produce from 'immer'\r\nimport { Form, Input, Spin, Button, Tooltip } from 'antd'\r\nimport { set, max, isEmpty, orderBy } from 'lodash'\r\nimport { showError, showValidationError, ValidationError } from 'helpers/errors'\r\nimport { createLabelFactory, createFieldFactory, isReadOnly } from 'helpers/formViews'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { prioritizeChecklistItems } from 'helpers/jobs'\r\nimport { t } from 'helpers/i18n'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport InputNumber from 'elements/InputNumber'\r\nimport Checkbox from 'elements/Checkbox'\r\n\r\nclass FormView extends React.Component {\r\n state = {}\r\n\r\n componentDidMount() {\r\n this.fetchItem()\r\n }\r\n\r\n fetchItem = async () => {\r\n try {\r\n const { siblingRecords = [] } = this.props\r\n const maxPriority = max(siblingRecords.map((each) => each.priority)) || 0\r\n const response = await this.props.getSettings({ type: this.props.settingsType })\r\n\r\n this.setState({\r\n fieldSettings: response.value.data.fieldSettings,\r\n siblings: !this.props.linkTargetRecord\r\n ? [...siblingRecords, { priority: maxPriority + 1 }]\r\n : [...siblingRecords],\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n handleSubmit = (e) => {\r\n stopEvent(e)\r\n\r\n this.props.form.validateFields((errors, values) => {\r\n this.setState({ validationErrors: errors }, async () => {\r\n if (!isEmpty(errors)) {\r\n showValidationError()\r\n return\r\n }\r\n\r\n try {\r\n await this.props.onSave?.(true)\r\n await this.props.onSave?.(false)\r\n await this.props.onSaveAndClose?.(this.state.siblings)\r\n } catch (error) {\r\n showError({ error })\r\n await this.props.onSave?.(false)\r\n }\r\n })\r\n })\r\n }\r\n\r\n setItemValue = (name, value) =>\r\n this.setState(\r\n produce((draft) => {\r\n const index = draft.siblings.findIndex((one) => one.id === this.props.linkTargetRecord?.id)\r\n\r\n if (name === 'complete') {\r\n draft.siblings[index].lastUser = value ? this.props.user.userName : null\r\n draft.siblings[index].lastUserDate = value ? new Date().toJSON() : null\r\n }\r\n\r\n set(draft.siblings[index], name, value)\r\n }),\r\n () => {\r\n if (name === 'priority') {\r\n this.setState(\r\n produce((draft) => {\r\n // Step 1. Take out the value that was just changed\r\n const otherSiblings = draft.siblings.filter(\r\n (each) => each.id !== this.props.linkTargetRecord?.id\r\n )\r\n\r\n // Step 2. Prioritize and shift forward\r\n const shiftedSiblings = prioritizeChecklistItems(otherSiblings).map((each) => {\r\n if (each.priority >= value) {\r\n return { ...each, priority: each.priority + 1 }\r\n }\r\n return each\r\n })\r\n\r\n // Step 4. Append and sort again\r\n const appendedSiblings = orderBy(\r\n [\r\n ...shiftedSiblings,\r\n draft.siblings.find((one) => one.id === this.props.linkTargetRecord?.id),\r\n ],\r\n ['priority']\r\n )\r\n\r\n // Step 5. Prioritize and replace\r\n draft.siblings = prioritizeChecklistItems(appendedSiblings)\r\n }),\r\n this.props.onChange\r\n )\r\n }\r\n }\r\n )\r\n\r\n render() {\r\n const { parentRecord } = this.props\r\n const { fieldSettings, siblings } = this.state\r\n\r\n if (!fieldSettings || isEmpty(siblings)) {\r\n return \r\n }\r\n\r\n const item = siblings.find((one) => one.id === this.props.linkTargetRecord?.id)\r\n\r\n const createLabel = createLabelFactory(fieldSettings)\r\n const createFieldDecorator = createFieldFactory(this.props.form, item, fieldSettings)\r\n\r\n const readOnly = isReadOnly(this)\r\n const { isTemplate } = parentRecord ?? {}\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {createFieldDecorator('description')(\r\n this.setItemValue('description', e.target.value)}\r\n disabled={readOnly}\r\n autoFocus\r\n />\r\n )}\r\n \r\n \r\n {createFieldDecorator('notes')(\r\n this.setItemValue('notes', e.target.value)}\r\n disabled={readOnly}\r\n rows={5}\r\n />\r\n )}\r\n \r\n \r\n {createFieldDecorator('priority')(\r\n \r\n this.setItemValue('priority', Math.max(value, item.priority === 0 ? 0 : 1))\r\n }\r\n disabled={readOnly}\r\n min={item.priority === 0 ? 0 : 1}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {createFieldDecorator('complete', { valuePropName: 'checked' })(\r\n this.setItemValue('complete', e.target.checked)}\r\n disabled={readOnly || isTemplate}\r\n >\r\n {createLabel('complete')}\r\n \r\n )}\r\n \r\n
\r\n
\r\n {' '}\r\n {!readOnly && (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Form.create()(FormView)\r\n","import { connect } from 'react-redux'\r\nimport { createAuthStateToProps } from 'helpers/auth'\r\nimport actions from 'actions/jobs/jobChecklist'\r\nimport Component from 'components/Jobs/Checklist/FormView'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nexport default connect(mapStateToProps, { getSettings: actions.getSettings })(Component)\r\n","import { debounce, isEmpty, orderBy } from 'lodash'\r\nimport { getChangedItems } from 'helpers/formViews'\r\nimport { DEBOUNCE } from 'helpers/utils'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\n\r\nexport const prioritizeChecklistItems = (items) =>\r\n orderBy(items, ['priority']).map((each, index) => ({\r\n ...each,\r\n priority: index + 1,\r\n }))\r\n\r\nexport const createSearchAssets = (self) =>\r\n debounce(async (search) => {\r\n try {\r\n const assets = await self.props.getAssets({\r\n search,\r\n assetIds: self.state?.item?.assetId ? [self.state.item.assetId] : undefined,\r\n assetCategoryIds: self.state?.item?.assetCategoryId ? [self.state.item.assetCategoryId] : undefined,\r\n locationIds: self.state?.item?.locationId ? [self.state.item.locationId] : undefined,\r\n })\r\n\r\n self.setState({ assets: assets.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }, DEBOUNCE)\r\n\r\nexport const createSearchAssignedOperators = (self) =>\r\n debounce(async (search) => {\r\n try {\r\n const assignedToOperators = await self.props.getOperators({\r\n search,\r\n operatorIds: self.state?.item?.assignedToId ? [self.state.item.assignedToId] : undefined,\r\n })\r\n\r\n self.setState({ assignedToOperators: assignedToOperators.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }, DEBOUNCE)\r\n\r\nexport const createSearchOperators = (self) =>\r\n debounce(async (search) => {\r\n try {\r\n const operators = await self.props.getOperators({\r\n search,\r\n operatorIds: self.state?.item?.operatorIds,\r\n })\r\n\r\n self.setState({ operators: operators.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }, DEBOUNCE)\r\n\r\nexport const createSaveChecklistItems = (self) => async (jobId) => {\r\n const { creating, updating, deleting } = getChangedItems(\r\n self.state.checklistItemsOriginal,\r\n prioritizeChecklistItems(self.state.checklistItems)\r\n )\r\n\r\n if (!isEmpty(deleting)) {\r\n const response = await self.props.deleteChecklistItems(\r\n jobId,\r\n deleting.map((each) => each.id)\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n if (!isEmpty(updating)) {\r\n const response = await self.props.updateChecklistItems(\r\n jobId,\r\n updating.map((each) => ({ ...each, jobId }))\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n if (!isEmpty(creating)) {\r\n const response = await self.props.createChecklistItems(\r\n jobId,\r\n creating.map(({ id, jobChecklistId, ...rest }) => ({\r\n ...rest,\r\n jobId,\r\n }))\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n}\r\n\r\nexport const createSaveLabourItems = (self) => async (jobId) => {\r\n const { creating, updating, deleting } = getChangedItems(\r\n self.state.labourItemsOriginal,\r\n self.state.labourItems\r\n )\r\n\r\n if (!isEmpty(deleting)) {\r\n const response = await self.props.deleteLabourItems(\r\n jobId,\r\n deleting.map((each) => each.id)\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n if (!isEmpty(updating)) {\r\n const response = await self.props.updateLabourItems(\r\n jobId,\r\n updating.map((each) => ({ ...each, jobId }))\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n if (!isEmpty(creating)) {\r\n const response = await self.props.createLabourItems(\r\n jobId,\r\n creating.map(({ id, jobLabourId, ...rest }) => ({\r\n ...rest,\r\n jobId,\r\n }))\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n}\r\n"],"sourceRoot":""}