More UI Fixes & Print Center IO-587

This commit is contained in:
Patrick Fic
2021-04-01 14:48:55 -07:00
parent ad0347e25b
commit d515db6fc9
11 changed files with 434 additions and 177 deletions

View File

@@ -10357,6 +10357,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>preview</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> </children>
</folder_node> </folder_node>
<folder_node> <folder_node>
@@ -26274,6 +26295,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>csi_invitation</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>
<concept_node> <concept_node>
<name>diagnostic_authorization</name> <name>diagnostic_authorization</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -26972,6 +27014,137 @@
<folder_node> <folder_node>
<name>labels</name> <name>labels</name>
<children> <children>
<folder_node>
<name>groups</name>
<children>
<concept_node>
<name>authorization</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>
<concept_node>
<name>financial</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>
<concept_node>
<name>post</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>
<concept_node>
<name>pre</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>
<concept_node>
<name>ro</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>
<concept_node>
<name>worksheet</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>
<concept_node> <concept_node>
<name>misc</name> <name>misc</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -13,7 +13,6 @@
"@stripe/react-stripe-js": "^1.4.0", "@stripe/react-stripe-js": "^1.4.0",
"@stripe/stripe-js": "^1.12.1", "@stripe/stripe-js": "^1.12.1",
"@tanem/react-nprogress": "^3.0.57", "@tanem/react-nprogress": "^3.0.57",
"@tinymce/tinymce-react": "^3.10.3",
"antd": "^4.13.1", "antd": "^4.13.1",
"apollo-link-logger": "^2.0.0", "apollo-link-logger": "^2.0.0",
"axios": "^0.21.1", "axios": "^0.21.1",

View File

@@ -1,6 +1,5 @@
import { UploadOutlined } from "@ant-design/icons"; import { UploadOutlined } from "@ant-design/icons";
import { Editor } from "@tinymce/tinymce-react"; import { Button, Card, Divider, Input, Select, Upload } from "antd";
import { Button, Card, Input, Select, Upload } from "antd";
import React from "react"; import React from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
@@ -38,29 +37,19 @@ export default function EmailOverlayComponent({
onChange={(e) => handleConfigChange("subject", e.target.value)} onChange={(e) => handleConfigChange("subject", e.target.value)}
name="subject" name="subject"
/> />
<div style={{ color: "red" }}> <Divider>{t("emails.labels.preview")}</Divider>
DEVELOPER NOTE: Any edits made in the editor below will not be sent or <div
saved due to css inlining issues. style={{
</div> padding: "1rem",
<Editor
value={messageOptions.html} backgroundColor: "lightgray",
apiKey="f3s2mjsd77ya5qvqkee9vgh612cm6h41e85efqakn2d0kknk" borderLeft: "6px solid #2196F3",
init={{
height: 500,
//menubar: false,
encoding: "raw",
extended_valid_elements: "span",
//entity_encoding: "raw",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table paste code help wordcount",
],
toolbar:
"undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help",
}} }}
onEditorChange={handleHtmlChange} dangerouslySetInnerHTML={{ __html: messageOptions.html }}
/> />
<Divider>
<Divider>{t("emails.labels.preview")}</Divider>
</Divider>
<Card title={t("emails.labels.attachments")}> <Card title={t("emails.labels.attachments")}>
<Upload <Upload
fileList={messageOptions.fileList} fileList={messageOptions.fileList}

View File

@@ -1,5 +1,5 @@
import { MailOutlined, PrinterOutlined } from "@ant-design/icons"; import { MailOutlined, PrinterOutlined } from "@ant-design/icons";
import { Spin } from "antd"; import { Space, Spin } from "antd";
import React, { useState } from "react"; import React, { useState } from "react";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { createStructuredSelector } from "reselect"; import { createStructuredSelector } from "reselect";
@@ -40,22 +40,24 @@ export function PrintCenterItemComponent({
if (disabled) return <li className="print-center-item">{item.title} </li>; if (disabled) return <li className="print-center-item">{item.title} </li>;
return ( return (
<li className="print-center-item"> <li>
{item.title} <Space wrap>
<PrinterOutlined onClick={renderToNewWindow} /> {item.title}
<MailOutlined <PrinterOutlined onClick={renderToNewWindow} />
onClick={() => { <MailOutlined
GenerateDocument( onClick={() => {
{ GenerateDocument(
name: item.key, {
variables: { id: id }, name: item.key,
}, variables: { id: id },
{ to: context.job && context.job.ownr_ea, subject: item.subject }, },
"e" { to: context.job && context.job.ownr_ea, subject: item.subject },
); "e"
}} );
/> }}
{loading && <Spin />} />
{loading && <Spin />}
</Space>
</li> </li>
); );
} }

View File

@@ -1,6 +1,6 @@
import { Col, Collapse, Row } from "antd"; import { Card, Col, Input, Row, Typography } from "antd";
import React from "react"; import _ from "lodash";
import { useTranslation } from "react-i18next"; import React, { useState } from "react";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { createStructuredSelector } from "reselect"; import { createStructuredSelector } from "reselect";
import { selectPrintCenter } from "../../redux/modals/modals.selectors"; import { selectPrintCenter } from "../../redux/modals/modals.selectors";
@@ -8,45 +8,74 @@ import { TemplateList } from "../../utils/TemplateConstants";
import Jobd3RdPartyModal from "../job-3rd-party-modal/job-3rd-party-modal.component"; import Jobd3RdPartyModal from "../job-3rd-party-modal/job-3rd-party-modal.component";
import PrintCenterItem from "../print-center-item/print-center-item.component"; import PrintCenterItem from "../print-center-item/print-center-item.component";
import PrintCenterSpeedPrint from "../print-center-speed-print/print-center-speed-print.component"; import PrintCenterSpeedPrint from "../print-center-speed-print/print-center-speed-print.component";
import { useTranslation } from "react-i18next";
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
printCenterModal: selectPrintCenter, printCenterModal: selectPrintCenter,
}); });
const mapDispatchToProps = (dispatch) => ({}); const mapDispatchToProps = (dispatch) => ({});
const colSpan = { md: { span: 24 }, lg: { span: 12 } };
export function PrintCenterJobsComponent({ printCenterModal }) { export function PrintCenterJobsComponent({ printCenterModal }) {
const { t } = useTranslation(); const [search, setSearch] = useState("");
const { id: jobId } = printCenterModal.context; const { id: jobId } = printCenterModal.context;
const tempList = TemplateList("job", {}); const tempList = TemplateList("job", {});
const { t } = useTranslation();
const JobsReportsList = Object.keys(tempList).map((key) => { const JobsReportsList = Object.keys(tempList).map((key) => {
return tempList[key]; return tempList[key];
}); });
const filteredJobsReportsList =
search !== ""
? JobsReportsList.filter((r) => r.title.toLowerCase().includes(search))
: JobsReportsList;
//Group it, create cards, and then filter out.
const grouped = _.groupBy(filteredJobsReportsList, "group");
console.log("grouped :>> ", grouped);
return ( return (
<div> <div>
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
<Col {...colSpan}> <Col lg={8} md={12} sm={24}>
<PrintCenterSpeedPrint jobId={jobId} /> <PrintCenterSpeedPrint jobId={jobId} />
</Col> </Col>
<Col {...colSpan}> <Col lg={16} md={12} sm={24} className="print-center-list">
<Collapse accordion> <Card
<Collapse.Panel header={t("printcenter.labels.repairorder")}> extra={
<ul style={{ columns: "2 auto" }}> <Input.Search
{JobsReportsList.map((item) => ( onChange={(e) => setSearch(e.target.value)}
<PrintCenterItem value={search}
key={item.key} />
item={item} }
id={jobId} >
disabled={item.disabled} <Row gutter={[16, 16]}>
/> {Object.keys(grouped).map((key) => (
))} <Col md={12} sm={24}>
</ul> <Card.Grid
</Collapse.Panel> key={key}
<Jobd3RdPartyModal jobId={jobId} /> style={{ width: "100%", height: "100%" }}
</Collapse> >
<Typography.Title level={4}>
{t(`printcenter.labels.groups.${key}`)}
</Typography.Title>
<ul //style={{ columns: "3 auto" }}
>
{grouped[key].map((item) => (
<PrintCenterItem
key={item.key}
item={item}
id={jobId}
disabled={item.disabled}
/>
))}
</ul>
</Card.Grid>
</Col>
))}
</Row>
</Card>
<Jobd3RdPartyModal jobId={jobId} />
</Col> </Col>
</Row> </Row>
</div> </div>

View File

@@ -1,3 +1,7 @@
.print-center-item > * { .print-center-list {
padding: 0em 8px; ul {
list-style-type: none;
margin: 0;
padding: 0;
}
} }

View File

@@ -1,4 +1,4 @@
import { Button, List, Typography } from "antd"; import { Button, List, PageHeader } from "antd";
import React, { useState } from "react"; import React, { useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { connect } from "react-redux"; import { connect } from "react-redux";
@@ -33,9 +33,7 @@ export function PrintCenterSpeedPrint({ bodyshop, jobId }) {
return ( return (
<div> <div>
<Typography.Title level={2}> <PageHeader title={t("printcenter.labels.speedprint")} />
{t("printcenter.labels.speedprint")}
</Typography.Title>
<List <List
itemLayout="horizontal" itemLayout="horizontal"

View File

@@ -671,7 +671,8 @@
"notsent": "Email not sent. Error encountered while sending {{message}}" "notsent": "Email not sent. Error encountered while sending {{message}}"
}, },
"labels": { "labels": {
"attachments": "Attachments" "attachments": "Attachments",
"preview": "Email Preview"
}, },
"successes": { "successes": {
"sent": "Email sent successfully." "sent": "Email sent successfully."
@@ -999,12 +1000,12 @@
"employee_body": "Body", "employee_body": "Body",
"employee_prep": "Prep", "employee_prep": "Prep",
"employee_refinish": "Refinish", "employee_refinish": "Refinish",
"est_addr1": "Appraiser Address", "est_addr1": "Estimator Address",
"est_co_nm": "Appraiser Company", "est_co_nm": "Estimator Company",
"est_ct_fn": "Appraiser First Name", "est_ct_fn": "Estimator First Name",
"est_ct_ln": "Appraiser Last Name", "est_ct_ln": "Estimator Last Name",
"est_ea": "Appraiser Email", "est_ea": "Estimator Email",
"est_ph1": "Appraiser Phone #", "est_ph1": "Estimator Phone #",
"federal_tax_payable": "Federal Tax Payable", "federal_tax_payable": "Federal Tax Payable",
"federal_tax_rate": "Federal Tax Rate", "federal_tax_rate": "Federal Tax Rate",
"ins_addr1": "Insurance Co. Address", "ins_addr1": "Insurance Co. Address",
@@ -1137,7 +1138,7 @@
}, },
"forms": { "forms": {
"admindates": "Administrative Dates", "admindates": "Administrative Dates",
"appraiserinfo": "Appraiser Info", "appraiserinfo": "Estimator Info",
"claiminfo": "Claim Information", "claiminfo": "Claim Information",
"estdates": "Estimate Dates", "estdates": "Estimate Dates",
"laborrates": "Labor Rates", "laborrates": "Labor Rates",
@@ -1175,7 +1176,7 @@
}, },
"changeclass": "Changing the job's class can have fundamental impacts to already exported accounting items. Are you sure you want to do this?", "changeclass": "Changing the job's class can have fundamental impacts to already exported accounting items. Are you sure you want to do this?",
"checklistcompletedby": "Checklist completed by {{by}} at {{at}}", "checklistcompletedby": "Checklist completed by {{by}} at {{at}}",
"checklistdocuments": "Checklist Documents\\", "checklistdocuments": "Checklist Documents",
"checklists": "Checklists", "checklists": "Checklists",
"closeconfirm": "Are you sure you want to close this job? This cannot be easily undone.", "closeconfirm": "Are you sure you want to close this job? This cannot be easily undone.",
"cost": "Cost", "cost": "Cost",
@@ -1585,6 +1586,7 @@
"casl_authorization": "CASL Authorization", "casl_authorization": "CASL Authorization",
"coversheet_landscape": "Coversheet (Landscape)", "coversheet_landscape": "Coversheet (Landscape)",
"coversheet_portrait": "Coversheet Portrait", "coversheet_portrait": "Coversheet Portrait",
"csi_invitation": "CSI Invitation",
"diagnostic_authorization": "Diagnostic Authorization", "diagnostic_authorization": "Diagnostic Authorization",
"estimate": "Estimate Only", "estimate": "Estimate Only",
"estimate_detail": "Estimate Details", "estimate_detail": "Estimate Details",
@@ -1620,6 +1622,14 @@
"worksheet_sorted_by_operation_part_type": "Worksheet by Operation & Part Type" "worksheet_sorted_by_operation_part_type": "Worksheet by Operation & Part Type"
}, },
"labels": { "labels": {
"groups": {
"authorization": "Authorization",
"financial": "Financial",
"post": "Post-Production",
"pre": "Pre-Production",
"ro": "Repair Order",
"worksheet": "Worksheets"
},
"misc": "Miscellaneous Documents", "misc": "Miscellaneous Documents",
"repairorder": "Repair Order Related", "repairorder": "Repair Order Related",
"reportcentermodal": "Report Center", "reportcentermodal": "Report Center",

View File

@@ -671,7 +671,8 @@
"notsent": "Correo electrónico no enviado Se encontró un error al enviar {{message}}" "notsent": "Correo electrónico no enviado Se encontró un error al enviar {{message}}"
}, },
"labels": { "labels": {
"attachments": "" "attachments": "",
"preview": ""
}, },
"successes": { "successes": {
"sent": "Correo electrónico enviado con éxito." "sent": "Correo electrónico enviado con éxito."
@@ -1585,6 +1586,7 @@
"casl_authorization": "", "casl_authorization": "",
"coversheet_landscape": "", "coversheet_landscape": "",
"coversheet_portrait": "", "coversheet_portrait": "",
"csi_invitation": "",
"diagnostic_authorization": "", "diagnostic_authorization": "",
"estimate": "", "estimate": "",
"estimate_detail": "", "estimate_detail": "",
@@ -1620,6 +1622,14 @@
"worksheet_sorted_by_operation_part_type": "" "worksheet_sorted_by_operation_part_type": ""
}, },
"labels": { "labels": {
"groups": {
"authorization": "",
"financial": "",
"post": "",
"pre": "",
"ro": "",
"worksheet": ""
},
"misc": "", "misc": "",
"repairorder": "", "repairorder": "",
"reportcentermodal": "", "reportcentermodal": "",

View File

@@ -671,7 +671,8 @@
"notsent": "Courriel non envoyé. Erreur rencontrée lors de l'envoi de {{message}}" "notsent": "Courriel non envoyé. Erreur rencontrée lors de l'envoi de {{message}}"
}, },
"labels": { "labels": {
"attachments": "" "attachments": "",
"preview": ""
}, },
"successes": { "successes": {
"sent": "E-mail envoyé avec succès." "sent": "E-mail envoyé avec succès."
@@ -1585,6 +1586,7 @@
"casl_authorization": "", "casl_authorization": "",
"coversheet_landscape": "", "coversheet_landscape": "",
"coversheet_portrait": "", "coversheet_portrait": "",
"csi_invitation": "",
"diagnostic_authorization": "", "diagnostic_authorization": "",
"estimate": "", "estimate": "",
"estimate_detail": "", "estimate_detail": "",
@@ -1620,6 +1622,14 @@
"worksheet_sorted_by_operation_part_type": "" "worksheet_sorted_by_operation_part_type": ""
}, },
"labels": { "labels": {
"groups": {
"authorization": "",
"financial": "",
"post": "",
"pre": "",
"ro": "",
"worksheet": ""
},
"misc": "", "misc": "",
"repairorder": "", "repairorder": "",
"reportcentermodal": "", "reportcentermodal": "",

View File

@@ -18,6 +18,7 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.casl_authorization"), subject: i18n.t("printcenter.jobs.casl_authorization"),
key: "casl_authorization", key: "casl_authorization",
disabled: false, disabled: false,
group: "authorization",
}, },
diagnostic_authorization: { diagnostic_authorization: {
title: i18n.t("printcenter.jobs.diagnostic_authorization"), title: i18n.t("printcenter.jobs.diagnostic_authorization"),
@@ -25,34 +26,7 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.diagnostic_authorization"), subject: i18n.t("printcenter.jobs.diagnostic_authorization"),
key: "diagnostic_authorization", key: "diagnostic_authorization",
disabled: false, disabled: false,
}, group: "authorization",
job_notes: {
title: i18n.t("printcenter.jobs.job_notes"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.job_notes"),
key: "job_notes",
disabled: false,
},
ro_with_description: {
title: i18n.t("printcenter.jobs.ro_with_description"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.ro_with_description"),
key: "ro_with_description",
disabled: false,
},
window_tag: {
title: i18n.t("printcenter.jobs.window_tag"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.window_tag"),
key: "window_tag",
disabled: false,
},
payments_by_job: {
title: i18n.t("printcenter.jobs.payments_by_job"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.payments_by_job"),
key: "payments_by_job",
disabled: false,
}, },
appointment_reminder: { appointment_reminder: {
title: i18n.t("printcenter.jobs.appointment_reminder"), title: i18n.t("printcenter.jobs.appointment_reminder"),
@@ -60,6 +34,112 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.appointment_reminder"), subject: i18n.t("printcenter.jobs.appointment_reminder"),
key: "appointment_reminder", key: "appointment_reminder",
disabled: false, disabled: false,
group: "pre",
},
estimate_followup: {
title: i18n.t("printcenter.jobs.estimate_followup"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.estimate_followup"),
key: "estimate_followup",
disabled: false,
group: "pre",
},
express_repair_checklist: {
title: i18n.t("printcenter.jobs.express_repair_checklist"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.express_repair_checklist"),
key: "express_repair_checklist",
disabled: false,
group: "pre",
},
glass_express_checklist: {
title: i18n.t("printcenter.jobs.glass_express_checklist"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.glass_express_checklist"),
key: "glass_express_checklist",
disabled: false,
group: "pre",
},
vehicle_check_in: {
title: i18n.t("printcenter.jobs.vehicle_check_in"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.vehicle_check_in"),
key: "vehicle_check_in",
disabled: false,
group: "pre",
},
parts_order_history: {
title: i18n.t("printcenter.jobs.parts_order_history"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.parts_order_history"),
key: "parts_order_history",
disabled: false,
group: "ro",
},
job_notes: {
title: i18n.t("printcenter.jobs.job_notes"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.job_notes"),
key: "job_notes",
disabled: false,
group: "ro",
},
ro_with_description: {
title: i18n.t("printcenter.jobs.ro_with_description"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.ro_with_description"),
key: "ro_with_description",
disabled: false,
group: "ro",
},
window_tag: {
title: i18n.t("printcenter.jobs.window_tag"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.window_tag"),
key: "window_tag",
disabled: false,
group: "ro",
},
supplement_request: {
title: i18n.t("printcenter.jobs.supplement_request"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.supplement_request"),
key: "supplement_request",
disabled: false,
group: "ro",
},
estimate: {
title: i18n.t("printcenter.jobs.estimate"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.estimate"),
key: "estimate",
disabled: false,
group: "ro",
},
parts_list: {
title: i18n.t("printcenter.jobs.parts_list"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.parts_list"),
key: "parts_list",
disabled: false,
group: "ro",
},
coversheet_portrait: {
title: i18n.t("printcenter.jobs.coversheet_portrait"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.coversheet_portrait"),
key: "coversheet_portrait",
disabled: false,
group: "ro",
},
coversheet_landscape: {
title: i18n.t("printcenter.jobs.coversheet_landscape"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.coversheet_landscape"),
key: "coversheet_landscape",
disabled: false,
group: "ro",
}, },
worksheet_by_line_number: { worksheet_by_line_number: {
title: i18n.t("printcenter.jobs.worksheet_by_line_number"), title: i18n.t("printcenter.jobs.worksheet_by_line_number"),
@@ -67,6 +147,7 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.worksheet_by_line_number"), subject: i18n.t("printcenter.jobs.worksheet_by_line_number"),
key: "worksheet_by_line_number", key: "worksheet_by_line_number",
disabled: false, disabled: false,
group: "worksheet",
}, },
worksheet_sorted_by_operation: { worksheet_sorted_by_operation: {
title: i18n.t("printcenter.jobs.worksheet_sorted_by_operation"), title: i18n.t("printcenter.jobs.worksheet_sorted_by_operation"),
@@ -74,6 +155,7 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.worksheet_sorted_by_operation"), subject: i18n.t("printcenter.jobs.worksheet_sorted_by_operation"),
key: "worksheet_sorted_by_operation", key: "worksheet_sorted_by_operation",
disabled: false, disabled: false,
group: "worksheet",
}, },
worksheet_sorted_by_operation_no_hours: { worksheet_sorted_by_operation_no_hours: {
title: i18n.t( title: i18n.t(
@@ -85,6 +167,7 @@ export const TemplateList = (type, context) => {
), ),
key: "worksheet_sorted_by_operation_no_hours", key: "worksheet_sorted_by_operation_no_hours",
disabled: false, disabled: false,
group: "worksheet",
}, },
worksheet_sorted_by_operation_part_type: { worksheet_sorted_by_operation_part_type: {
title: i18n.t( title: i18n.t(
@@ -96,13 +179,15 @@ export const TemplateList = (type, context) => {
), ),
key: "worksheet_sorted_by_operation_part_type", key: "worksheet_sorted_by_operation_part_type",
disabled: false, disabled: false,
group: "worksheet",
}, },
supplement_request: { payments_by_job: {
title: i18n.t("printcenter.jobs.supplement_request"), title: i18n.t("printcenter.jobs.payments_by_job"),
description: "All Jobs Notes", description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.supplement_request"), subject: i18n.t("printcenter.jobs.payments_by_job"),
key: "supplement_request", key: "payments_by_job",
disabled: false, disabled: false,
group: "financial",
}, },
final_invoice: { final_invoice: {
title: i18n.t("printcenter.jobs.final_invoice"), title: i18n.t("printcenter.jobs.final_invoice"),
@@ -110,6 +195,7 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.final_invoice"), subject: i18n.t("printcenter.jobs.final_invoice"),
key: "final_invoice", key: "final_invoice",
disabled: false, disabled: false,
group: "financial",
}, },
payment_request: { payment_request: {
title: i18n.t("printcenter.jobs.payment_request"), title: i18n.t("printcenter.jobs.payment_request"),
@@ -117,6 +203,7 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.payment_request"), subject: i18n.t("printcenter.jobs.payment_request"),
key: "payment_request", key: "payment_request",
disabled: false, disabled: false,
group: "financial",
}, },
invoice_total_payable: { invoice_total_payable: {
title: i18n.t("printcenter.jobs.invoice_total_payable"), title: i18n.t("printcenter.jobs.invoice_total_payable"),
@@ -124,6 +211,7 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.invoice_total_payable"), subject: i18n.t("printcenter.jobs.invoice_total_payable"),
key: "invoice_total_payable", key: "invoice_total_payable",
disabled: false, disabled: false,
group: "financial",
}, },
invoice_customer_payable: { invoice_customer_payable: {
title: i18n.t("printcenter.jobs.invoice_customer_payable"), title: i18n.t("printcenter.jobs.invoice_customer_payable"),
@@ -131,55 +219,16 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.invoice_customer_payable"), subject: i18n.t("printcenter.jobs.invoice_customer_payable"),
key: "invoice_customer_payable", key: "invoice_customer_payable",
disabled: false, disabled: false,
group: "financial",
}, },
parts_order_history: {
title: i18n.t("printcenter.jobs.parts_order_history"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.parts_order_history"),
key: "parts_order_history",
disabled: false,
},
glass_express_checklist: {
title: i18n.t("printcenter.jobs.glass_express_checklist"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.glass_express_checklist"),
key: "glass_express_checklist",
disabled: false,
},
estimate: {
title: i18n.t("printcenter.jobs.estimate"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.estimate"),
key: "estimate",
disabled: false,
},
parts_list: {
title: i18n.t("printcenter.jobs.parts_list"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.parts_list"),
key: "parts_list",
disabled: false,
},
coversheet_portrait: {
title: i18n.t("printcenter.jobs.coversheet_portrait"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.coversheet_portrait"),
key: "coversheet_portrait",
disabled: false,
},
coversheet_landscape: {
title: i18n.t("printcenter.jobs.coversheet_landscape"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.coversheet_landscape"),
key: "coversheet_landscape",
disabled: false,
},
filing_coversheet_portrait: { filing_coversheet_portrait: {
title: i18n.t("printcenter.jobs.filing_coversheet_portrait"), title: i18n.t("printcenter.jobs.filing_coversheet_portrait"),
description: "All Jobs Notes", description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.filing_coversheet_portrait"), subject: i18n.t("printcenter.jobs.filing_coversheet_portrait"),
key: "filing_coversheet_portrait", key: "filing_coversheet_portrait",
disabled: false, disabled: false,
group: "post",
}, },
qc_sheet: { qc_sheet: {
title: i18n.t("printcenter.jobs.qc_sheet"), title: i18n.t("printcenter.jobs.qc_sheet"),
@@ -187,41 +236,25 @@ export const TemplateList = (type, context) => {
subject: i18n.t("printcenter.jobs.qc_sheet"), subject: i18n.t("printcenter.jobs.qc_sheet"),
key: "qc_sheet", key: "qc_sheet",
disabled: false, disabled: false,
group: "post",
}, },
estimate_followup: {
title: i18n.t("printcenter.jobs.estimate_followup"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.estimate_followup"),
key: "estimate_followup",
disabled: false,
},
vehicle_delivery_check: { vehicle_delivery_check: {
title: i18n.t("printcenter.jobs.vehicle_delivery_check"), title: i18n.t("printcenter.jobs.vehicle_delivery_check"),
description: "All Jobs Notes", description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.vehicle_delivery_check"), subject: i18n.t("printcenter.jobs.vehicle_delivery_check"),
key: "vehicle_delivery_check", key: "vehicle_delivery_check",
disabled: false, disabled: false,
group: "post",
}, },
express_repair_checklist: {
title: i18n.t("printcenter.jobs.express_repair_checklist"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.express_repair_checklist"),
key: "express_repair_checklist",
disabled: false,
},
guarantee: { guarantee: {
title: i18n.t("printcenter.jobs.guarantee"), title: i18n.t("printcenter.jobs.guarantee"),
description: "All Jobs Notes", description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.guarantee"), subject: i18n.t("printcenter.jobs.guarantee"),
key: "guarantee", key: "guarantee",
disabled: false, disabled: false,
}, group: "post",
vehicle_check_in: {
title: i18n.t("printcenter.jobs.vehicle_check_in"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.vehicle_check_in"),
key: "vehicle_check_in",
disabled: false,
}, },
} }
: {}), : {}),