BOD-53 Created vehicle popover and fixed remnant references to vehicle records.
This commit is contained in:
@@ -9855,6 +9855,32 @@
|
|||||||
</concept_node>
|
</concept_node>
|
||||||
</children>
|
</children>
|
||||||
</folder_node>
|
</folder_node>
|
||||||
|
<folder_node>
|
||||||
|
<name>labels</name>
|
||||||
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>updatevehicle</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
</children>
|
||||||
|
</folder_node>
|
||||||
<folder_node>
|
<folder_node>
|
||||||
<name>successes</name>
|
<name>successes</name>
|
||||||
<children>
|
<children>
|
||||||
|
|||||||
@@ -35,14 +35,22 @@ export default function JobDetailCardsCustomerComponent({ loading, data }) {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div>{`${(data.owner && data.owner.preferred_contact) || ""}`}</div>
|
<div>{`${(data.owner && data.owner.preferred_contact) || ""}`}</div>
|
||||||
{data.vehicle ? (
|
<div>
|
||||||
<Link to={`/manage/vehicles/${data.vehicleid}`}>
|
{data.vehicle ? (
|
||||||
{`${data.v_model_yr || ""} ${data.v_make_desc ||
|
<Link to={`/manage/vehicles/${data.vehicleid}`}>
|
||||||
""} ${data.v_model_desc || ""}`}
|
{`${data.v_model_yr || ""} ${data.v_make_desc ||
|
||||||
</Link>
|
""} ${data.v_model_desc || ""}`}
|
||||||
) : (
|
a
|
||||||
<span>{t("jobs.errors.novehicle")}</span>
|
</Link>
|
||||||
)}
|
) : (
|
||||||
|
<span>
|
||||||
|
{`${data.v_model_yr || ""} ${data.v_make_desc ||
|
||||||
|
""} ${data.v_model_desc || ""}`}
|
||||||
|
b
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
e
|
||||||
|
</div>
|
||||||
</span>
|
</span>
|
||||||
) : null}
|
) : null}
|
||||||
</CardTemplate>
|
</CardTemplate>
|
||||||
|
|||||||
@@ -1,27 +1,16 @@
|
|||||||
import { DownCircleFilled } from "@ant-design/icons";
|
import { DownCircleFilled } from "@ant-design/icons";
|
||||||
import {
|
import { Avatar, Badge, Button, Checkbox, Descriptions, Dropdown, Menu, notification, PageHeader, Tag } from "antd";
|
||||||
Avatar,
|
|
||||||
Badge,
|
|
||||||
Button,
|
|
||||||
Checkbox,
|
|
||||||
Descriptions,
|
|
||||||
Dropdown,
|
|
||||||
Menu,
|
|
||||||
notification,
|
|
||||||
PageHeader,
|
|
||||||
Tag
|
|
||||||
} from "antd";
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import Moment from "react-moment";
|
import Moment from "react-moment";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { Link } from "react-router-dom";
|
|
||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import CarImage from "../../assets/car.svg";
|
import CarImage from "../../assets/car.svg";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import BarcodePopup from "../barcode-popup/barcode-popup.component";
|
import BarcodePopup from "../barcode-popup/barcode-popup.component";
|
||||||
import OwnerTagPopoverComponent from "../owner-tag-popover/owner-tag-popover.component";
|
import OwnerTagPopoverComponent from "../owner-tag-popover/owner-tag-popover.component";
|
||||||
|
import VehicleTagPopoverComponent from "../vehicle-tag-popover/vehicle-tag-popover.component";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop
|
bodyshop: selectBodyshop
|
||||||
@@ -113,25 +102,7 @@ export default connect(
|
|||||||
<span key="job-status">
|
<span key="job-status">
|
||||||
{job.status ? <Tag color="blue">{job.status}</Tag> : null}
|
{job.status ? <Tag color="blue">{job.status}</Tag> : null}
|
||||||
<OwnerTagPopoverComponent job={job} />
|
<OwnerTagPopoverComponent job={job} />
|
||||||
<Tag color="green">
|
<VehicleTagPopoverComponent job={job} />
|
||||||
{job.vehicleid ? (
|
|
||||||
<Link to={`/manage/vehicles/${job.vehicleid}`}>
|
|
||||||
{`${job.v_model_yr || t("general.labels.na")}
|
|
||||||
${job.v_make_desc || t("general.labels.na")}
|
|
||||||
${job.v_model_desc || t("general.labels.na")} |
|
|
||||||
${job.plate_no || t("general.labels.na")} |
|
|
||||||
${job.v_vin || t("general.labels.na")}`}
|
|
||||||
</Link>
|
|
||||||
) : (
|
|
||||||
<span>
|
|
||||||
{`${job.v_model_yr || t("general.labels.na")}
|
|
||||||
${job.v_make_desc || t("general.labels.na")}
|
|
||||||
${job.v_model_desc || t("general.labels.na")} |
|
|
||||||
${job.plate_no || t("general.labels.na")} |
|
|
||||||
${job.v_vin || t("general.labels.na")}`}
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
</Tag>
|
|
||||||
<BarcodePopup value={job.id} />
|
<BarcodePopup value={job.id} />
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export default withRouter(function JobsList({
|
|||||||
width: "15%",
|
width: "15%",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.vehicle ? (
|
return record.vehicleid ? (
|
||||||
<Link to={"/manage/vehicles/" + record.vehicleid}>
|
<Link to={"/manage/vehicles/" + record.vehicleid}>
|
||||||
{`${record.v_model_yr || ""} ${record.v_make_desc ||
|
{`${record.v_model_yr || ""} ${record.v_make_desc ||
|
||||||
""} ${record.v_model_desc || ""}`}
|
""} ${record.v_model_desc || ""}`}
|
||||||
@@ -123,12 +123,12 @@ export default withRouter(function JobsList({
|
|||||||
key: "plate_no",
|
key: "plate_no",
|
||||||
width: "8%",
|
width: "8%",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
sorter: (a, b) => alphaSort(a.vehicle.plate_no, b.vehicle.plate_no),
|
sorter: (a, b) => alphaSort(a.plate_no, b.plate_no),
|
||||||
sortOrder:
|
sortOrder:
|
||||||
state.sortedInfo.columnKey === "plate_no" && state.sortedInfo.order,
|
state.sortedInfo.columnKey === "plate_no" && state.sortedInfo.order,
|
||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.vehicle.plate_no ? (
|
return record.plate_no ? (
|
||||||
<span>{record.vehicle.plate_no}</span>
|
<span>{record.plate_no}</span>
|
||||||
) : (
|
) : (
|
||||||
t("general.labels.unknown")
|
t("general.labels.unknown")
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -0,0 +1,87 @@
|
|||||||
|
import { Button, Col, Descriptions, Popover, Row, Tag } from "antd";
|
||||||
|
import React from "react";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
|
export default function VehicleTagPopoverComponent({ job }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const content = (
|
||||||
|
<div style={{ width: "400px" }}>
|
||||||
|
<Row>
|
||||||
|
<Col span={12}>
|
||||||
|
<Descriptions
|
||||||
|
title={t("owners.labels.fromclaim")}
|
||||||
|
size="small"
|
||||||
|
column={1}
|
||||||
|
>
|
||||||
|
<Descriptions.Item key="1" label={t("jobs.fields.vehicle")}>
|
||||||
|
{`${job.v_model_yr || t("general.labels.na")}
|
||||||
|
${job.v_make_desc || t("general.labels.na")}
|
||||||
|
${job.v_model_desc || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
|
||||||
|
<Descriptions.Item key="2" label={t("vehicles.fields.plate_no")}>
|
||||||
|
{`${job.plate_no || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item key="3" label={t("vehicles.fields.plate_st")}>
|
||||||
|
{`${job.plate_st || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item key="4" label={t("vehicles.fields.v_vin")}>
|
||||||
|
{`${job.v_vin || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
</Descriptions>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<Descriptions
|
||||||
|
title={t("owners.labels.fromowner")}
|
||||||
|
size="small"
|
||||||
|
column={1}
|
||||||
|
>
|
||||||
|
<Descriptions.Item key="1" label={t("jobs.fields.vehicle")}>
|
||||||
|
{`${job.vehicle.v_model_yr || t("general.labels.na")}
|
||||||
|
${job.vehicle.v_make_desc || t("general.labels.na")}
|
||||||
|
${job.vehicle.v_model_desc || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
|
||||||
|
<Descriptions.Item key="2" label={t("vehicles.fields.plate_no")}>
|
||||||
|
{`${job.vehicle.plate_no || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item key="3" label={t("vehicles.fields.plate_st")}>
|
||||||
|
{`${job.vehicle.plate_st || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item key="4" label={t("vehicles.fields.v_vin")}>
|
||||||
|
{`${job.vehicle.v_vin || t("general.labels.na")}`}
|
||||||
|
</Descriptions.Item>
|
||||||
|
</Descriptions>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<Link to={`/manage/vehicles/${job.vehicle.id}`}>
|
||||||
|
<Button>{t("vehicle.labels.updatevehicle")}</Button>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Popover placement="bottom" content={content}>
|
||||||
|
<Tag color="green">
|
||||||
|
{job.vehicleid ? (
|
||||||
|
<Link to={`/manage/vehicles/${job.vehicleid}`}>
|
||||||
|
{`${job.v_model_yr || t("general.labels.na")}
|
||||||
|
${job.v_make_desc || t("general.labels.na")}
|
||||||
|
${job.v_model_desc || t("general.labels.na")} |
|
||||||
|
${job.plate_no || t("general.labels.na")} |
|
||||||
|
${job.v_vin || t("general.labels.na")}`}
|
||||||
|
</Link>
|
||||||
|
) : (
|
||||||
|
<span>
|
||||||
|
{`${job.v_model_yr || t("general.labels.na")}
|
||||||
|
${job.v_make_desc || t("general.labels.na")}
|
||||||
|
${job.v_model_desc || t("general.labels.na")} |
|
||||||
|
${job.plate_no || t("general.labels.na")} |
|
||||||
|
${job.v_vin || t("general.labels.na")}`}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
</Tag>
|
||||||
|
</Popover>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -108,6 +108,15 @@ export const GET_JOB_BY_PK = gql`
|
|||||||
v_model_desc
|
v_model_desc
|
||||||
v_make_desc
|
v_make_desc
|
||||||
v_color
|
v_color
|
||||||
|
vehicle {
|
||||||
|
id
|
||||||
|
plate_no
|
||||||
|
v_vin
|
||||||
|
v_model_yr
|
||||||
|
v_model_desc
|
||||||
|
v_make_desc
|
||||||
|
v_color
|
||||||
|
}
|
||||||
ins_co_id
|
ins_co_id
|
||||||
policy_no
|
policy_no
|
||||||
loss_date
|
loss_date
|
||||||
@@ -245,7 +254,13 @@ export const QUERY_JOB_CARD_DETAILS = gql`
|
|||||||
v_model_desc
|
v_model_desc
|
||||||
v_color
|
v_color
|
||||||
plate_no
|
plate_no
|
||||||
|
vehicle {
|
||||||
|
v_model_yr
|
||||||
|
v_make_desc
|
||||||
|
v_model_desc
|
||||||
|
v_color
|
||||||
|
plate_no
|
||||||
|
}
|
||||||
actual_completion
|
actual_completion
|
||||||
actual_delivery
|
actual_delivery
|
||||||
actual_in
|
actual_in
|
||||||
|
|||||||
@@ -649,6 +649,9 @@
|
|||||||
"v_type": "Type",
|
"v_type": "Type",
|
||||||
"v_vin": "Vehicle Identification Number"
|
"v_vin": "Vehicle Identification Number"
|
||||||
},
|
},
|
||||||
|
"labels": {
|
||||||
|
"updatevehicle": "Update Vehicle Information"
|
||||||
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"save": "Vehicle saved successfully."
|
"save": "Vehicle saved successfully."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -649,6 +649,9 @@
|
|||||||
"v_type": "Tipo",
|
"v_type": "Tipo",
|
||||||
"v_vin": "Número de identificación del vehículo"
|
"v_vin": "Número de identificación del vehículo"
|
||||||
},
|
},
|
||||||
|
"labels": {
|
||||||
|
"updatevehicle": ""
|
||||||
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"save": "Vehículo guardado con éxito."
|
"save": "Vehículo guardado con éxito."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -649,6 +649,9 @@
|
|||||||
"v_type": "Type",
|
"v_type": "Type",
|
||||||
"v_vin": "Plaque d'immatriculation"
|
"v_vin": "Plaque d'immatriculation"
|
||||||
},
|
},
|
||||||
|
"labels": {
|
||||||
|
"updatevehicle": ""
|
||||||
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"save": "Le véhicule a été enregistré avec succès."
|
"save": "Le véhicule a été enregistré avec succès."
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user