IO-106, IO-757

This commit is contained in:
Patrick Fic
2021-03-15 21:04:59 +00:00
11 changed files with 319 additions and 35 deletions

View File

@@ -25660,6 +25660,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>coversheet_landscape</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>coversheet_portrait</name> <name>coversheet_portrait</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -25744,6 +25765,48 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>estimate_followup</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>express_repair_checklist</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>filing_coversheet_portrait</name> <name>filing_coversheet_portrait</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -25828,6 +25891,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>guarantee</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>invoice_customer_payable</name> <name>invoice_customer_payable</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -26059,6 +26143,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>qc_sheet</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>ro_with_description</name> <name>ro_with_description</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -26122,6 +26227,48 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>vehicle_check_in</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>vehicle_delivery_check</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>window_tag</name> <name>window_tag</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -27305,6 +27452,48 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>timetickets_employee</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>timetickets_summary</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>
</children> </children>

View File

@@ -9,6 +9,12 @@
<!-- <link rel="apple-touch-icon" href="logo192.png" /> --> <!-- <link rel="apple-touch-icon" href="logo192.png" /> -->
<link rel="apple-touch-icon" href="logo192.png" /> <link rel="apple-touch-icon" href="logo192.png" />
<!-- <script
data-jsd-embedded
data-key="51adb36e-ee16-46b1-a4c6-4b6d5fcd8530"
data-base-url="https://jsd-widget.atlassian.com"
src="https://jsd-widget.atlassian.com/assets/embed.js"
></script> -->
<!-- <!--
manifest.json provides metadata used when your web app is installed on a manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/

View File

@@ -1,29 +1,37 @@
import React, { useEffect } from "react"; import React, { useEffect } from "react";
export default function JiraSupportComponent() { export default function JiraSupportComponent() {
useScript();
return <div>Jira Temp Widget</div>;
}
const useScript = () => {
useEffect(() => { useEffect(() => {
console.log("Creating JIRA widget.");
const script = document.createElement("script"); const script = document.createElement("script");
script.src = "https://jsd-widget.atlassian.com/assets/embed.js"; script.src = "https://jsd-widget.atlassian.com/assets/embed.js";
// script.attributes.setNamedItem({ "data-jsd-embedded": true });
// script.attributes.setNamedItem({
// "data-key": "d69bb65c-1dd3-483f-b109-66a970d03f44",
// });
// script.attributes.setNamedItem({
// "data-base-url": "https://jsd-widget.atlassian.com",
// });
// script["data-jsd-embedded"] = true; // script["data-jsd-embedded"] = true;
// script["data-key"] = "d69bb65c-1dd3-483f-b109-66a970d03f44"; // script["data-key"] = "51adb36e-ee16-46b1-a4c6-4b6d5fcd8530";
// script["data-base-url"] = "https://jsd-widget.atlassian.com"; // script["data-base-url"] = "https://jsd-widget.atlassian.com";
script.async = true;
document.body.appendChild(script); // script.attributes.setNamedItem("data-jsd-embedded");
// script.attributes.setNamedItem("data-key");
// script.attributes.setNamedItem("data-base-url");
script.setAttribute("data-jsd-embedded", true);
script.setAttribute("data-key", "51adb36e-ee16-46b1-a4c6-4b6d5fcd8530");
script.setAttribute("data-base-url", "https://jsd-widget.atlassian.com");
//script.async = true;
script.onload = () => {
var DOMContentLoaded_event = document.createEvent("Event");
DOMContentLoaded_event.initEvent("DOMContentLoaded", true, true);
window.document.dispatchEvent(DOMContentLoaded_event);
};
document.head.appendChild(script);
return () => { return () => {
document.body.removeChild(script); document.head.removeChild(script);
}; };
}, []); }, []);
};
return <div></div>;
}

View File

@@ -5,7 +5,7 @@ import queryString from "query-string";
import React from "react"; import React from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { Link, useHistory, useLocation } from "react-router-dom"; import { useHistory, useLocation } from "react-router-dom";
import { GET_JOB_BY_PK } from "../../graphql/jobs.queries"; import { GET_JOB_BY_PK } from "../../graphql/jobs.queries";
import { setModalContext } from "../../redux/modals/modals.actions"; import { setModalContext } from "../../redux/modals/modals.actions";
import AlertComponent from "../alert/alert.component"; import AlertComponent from "../alert/alert.component";
@@ -90,13 +90,7 @@ export function JobDetailCards({ setPrintCenterContext }) {
{t("jobs.labels.inproduction")} {t("jobs.labels.inproduction")}
</Tag>, </Tag>,
]} ]}
title={ title={t("jobs.fields.ro_number") || t("general.labels.na")}
<Link to={`/manage/jobs/${data.jobs_by_pk.id}`}>
{data.jobs_by_pk.ro_number
? `${t("jobs.fields.ro_number")} ${data.jobs_by_pk.ro_number}`
: t("general.labels.na")}
</Link>
}
subTitle={data.jobs_by_pk.status} subTitle={data.jobs_by_pk.status}
extra={ extra={
<Button <Button

View File

@@ -5,7 +5,7 @@ import queryString from "query-string";
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";
import { Link, useHistory, useLocation } from "react-router-dom"; import { useHistory, useLocation } from "react-router-dom";
import { createStructuredSelector } from "reselect"; import { createStructuredSelector } from "reselect";
import { QUERY_ALL_ACTIVE_JOBS } from "../../graphql/jobs.queries"; import { QUERY_ALL_ACTIVE_JOBS } from "../../graphql/jobs.queries";
import { selectBodyshop } from "../../redux/user/user.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors";
@@ -95,11 +95,8 @@ export function TechLookupJobsList({ bodyshop }) {
sortOrder: sortOrder:
state.sortedInfo.columnKey === "ro_number" && state.sortedInfo.order, state.sortedInfo.columnKey === "ro_number" && state.sortedInfo.order,
render: (text, record) => ( render: (text, record) => record.ro_number || t("general.labels.na"),
<Link to={"/manage/jobs/" + record.id}>{record.ro_number}</Link>
),
}, },
{ {
title: t("jobs.fields.owner"), title: t("jobs.fields.owner"),
dataIndex: "owner", dataIndex: "owner",

View File

@@ -10,7 +10,7 @@ import Axios from "axios";
import Dinero from "dinero.js"; import Dinero from "dinero.js";
import moment from "moment"; import moment from "moment";
import queryString from "query-string"; import queryString from "query-string";
import React, { lazy, Suspense, useState, useEffect } from "react"; import React, { lazy, Suspense, useEffect, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { FaHardHat, FaRegStickyNote, FaShieldAlt } from "react-icons/fa"; import { FaHardHat, FaRegStickyNote, FaShieldAlt } from "react-icons/fa";
import { connect } from "react-redux"; import { connect } from "react-redux";
@@ -95,7 +95,6 @@ export function JobsDetailPage({
}; };
useEffect(() => { useEffect(() => {
console.log("Resetting jobs form as job has changed.");
form.resetFields(); form.resetFields();
form.resetFields(); form.resetFields();
}, [form, job]); }, [form, job]);

View File

@@ -7,7 +7,6 @@ import UserValidatePwReset from "../../components/user-validate-pw-reset/user-va
export default function ResetPassword() { export default function ResetPassword() {
const searchParams = queryString.parse(useLocation().search); const searchParams = queryString.parse(useLocation().search);
const { mode, oobCode } = searchParams; const { mode, oobCode } = searchParams;
console.log("ResetPassword -> mode, oobCode", mode, oobCode);
if (mode === "resetPassword") if (mode === "resetPassword")
return <UserValidatePwReset oobCode={oobCode} />; return <UserValidatePwReset oobCode={oobCode} />;

View File

@@ -1554,14 +1554,18 @@
"appointment_confirmation": "Appointment Confirmation", "appointment_confirmation": "Appointment Confirmation",
"appointment_reminder": "Appointment Reminder", "appointment_reminder": "Appointment Reminder",
"casl_authorization": "CASL Authorization", "casl_authorization": "CASL Authorization",
"coversheet_landscape": "Coversheet (Landscape)",
"coversheet_portrait": "Coversheet Portrait", "coversheet_portrait": "Coversheet Portrait",
"diagnostic_authorization": "Diagnostic Authorization", "diagnostic_authorization": "Diagnostic Authorization",
"estimate": "Estimate Only", "estimate": "Estimate Only",
"estimate_detail": "Estimate Details", "estimate_detail": "Estimate Details",
"estimate_followup": "Estimate Followup",
"express_repair_checklist": "Express Repair Checklist",
"filing_coversheet_portrait": "Filing Coversheet (Portrait)", "filing_coversheet_portrait": "Filing Coversheet (Portrait)",
"final_invoice": "Final Invoice", "final_invoice": "Final Invoice",
"fippa_authorization": "FIPPA Authorization", "fippa_authorization": "FIPPA Authorization",
"glass_express_checklist": "Glass Express Checklist", "glass_express_checklist": "Glass Express Checklist",
"guarantee": "Repair Guarantee",
"invoice_customer_payable": "Invoice (Customer Payable)", "invoice_customer_payable": "Invoice (Customer Payable)",
"invoice_total_payable": "Invoice (Total Payable)", "invoice_total_payable": "Invoice (Total Payable)",
"job_notes": "Job Notes", "job_notes": "Job Notes",
@@ -1573,9 +1577,12 @@
"payment_receipt": "Payment Receipt", "payment_receipt": "Payment Receipt",
"payment_request": "Payment Request", "payment_request": "Payment Request",
"payments_by_job": "Job Payments", "payments_by_job": "Job Payments",
"qc_sheet": "Quality Control Sheet",
"ro_with_description": "RO Summary with Descriptions", "ro_with_description": "RO Summary with Descriptions",
"supplement_request": "Supplement Request", "supplement_request": "Supplement Request",
"thirdpartypayer": "Third Party Payer", "thirdpartypayer": "Third Party Payer",
"vehicle_check_in": "Vehicle Intake",
"vehicle_delivery_check": "Vehicle Delivery Checklist",
"window_tag": "Window Tag", "window_tag": "Window Tag",
"work_authorization": "Work Authorization", "work_authorization": "Work Authorization",
"worksheet_by_line_number": "Worksheet by Line Number", "worksheet_by_line_number": "Worksheet by Line Number",
@@ -1656,7 +1663,9 @@
"purchases_by_vendor_detailed_date_range": "Purchases By Vendor - Detailed", "purchases_by_vendor_detailed_date_range": "Purchases By Vendor - Detailed",
"purchases_by_vendor_summary_date_range": "Purchases by Vendor - Summary", "purchases_by_vendor_summary_date_range": "Purchases by Vendor - Summary",
"schedule": "Appointment Schedule", "schedule": "Appointment Schedule",
"timetickets": "Time Tickets" "timetickets": "Time Tickets",
"timetickets_employee": "Employee Time Tickets",
"timetickets_summary": "Time Tickets Summary"
} }
}, },
"scoreboard": { "scoreboard": {

View File

@@ -1554,14 +1554,18 @@
"appointment_confirmation": "", "appointment_confirmation": "",
"appointment_reminder": "", "appointment_reminder": "",
"casl_authorization": "", "casl_authorization": "",
"coversheet_landscape": "",
"coversheet_portrait": "", "coversheet_portrait": "",
"diagnostic_authorization": "", "diagnostic_authorization": "",
"estimate": "", "estimate": "",
"estimate_detail": "", "estimate_detail": "",
"estimate_followup": "",
"express_repair_checklist": "",
"filing_coversheet_portrait": "", "filing_coversheet_portrait": "",
"final_invoice": "", "final_invoice": "",
"fippa_authorization": "", "fippa_authorization": "",
"glass_express_checklist": "", "glass_express_checklist": "",
"guarantee": "",
"invoice_customer_payable": "", "invoice_customer_payable": "",
"invoice_total_payable": "", "invoice_total_payable": "",
"job_notes": "", "job_notes": "",
@@ -1573,9 +1577,12 @@
"payment_receipt": "", "payment_receipt": "",
"payment_request": "", "payment_request": "",
"payments_by_job": "", "payments_by_job": "",
"qc_sheet": "",
"ro_with_description": "", "ro_with_description": "",
"supplement_request": "", "supplement_request": "",
"thirdpartypayer": "", "thirdpartypayer": "",
"vehicle_check_in": "",
"vehicle_delivery_check": "",
"window_tag": "", "window_tag": "",
"work_authorization": "", "work_authorization": "",
"worksheet_by_line_number": "", "worksheet_by_line_number": "",
@@ -1656,7 +1663,9 @@
"purchases_by_vendor_detailed_date_range": "", "purchases_by_vendor_detailed_date_range": "",
"purchases_by_vendor_summary_date_range": "", "purchases_by_vendor_summary_date_range": "",
"schedule": "", "schedule": "",
"timetickets": "" "timetickets": "",
"timetickets_employee": "",
"timetickets_summary": ""
} }
}, },
"scoreboard": { "scoreboard": {

View File

@@ -1554,14 +1554,18 @@
"appointment_confirmation": "", "appointment_confirmation": "",
"appointment_reminder": "", "appointment_reminder": "",
"casl_authorization": "", "casl_authorization": "",
"coversheet_landscape": "",
"coversheet_portrait": "", "coversheet_portrait": "",
"diagnostic_authorization": "", "diagnostic_authorization": "",
"estimate": "", "estimate": "",
"estimate_detail": "", "estimate_detail": "",
"estimate_followup": "",
"express_repair_checklist": "",
"filing_coversheet_portrait": "", "filing_coversheet_portrait": "",
"final_invoice": "", "final_invoice": "",
"fippa_authorization": "", "fippa_authorization": "",
"glass_express_checklist": "", "glass_express_checklist": "",
"guarantee": "",
"invoice_customer_payable": "", "invoice_customer_payable": "",
"invoice_total_payable": "", "invoice_total_payable": "",
"job_notes": "", "job_notes": "",
@@ -1573,9 +1577,12 @@
"payment_receipt": "", "payment_receipt": "",
"payment_request": "", "payment_request": "",
"payments_by_job": "", "payments_by_job": "",
"qc_sheet": "",
"ro_with_description": "", "ro_with_description": "",
"supplement_request": "", "supplement_request": "",
"thirdpartypayer": "", "thirdpartypayer": "",
"vehicle_check_in": "",
"vehicle_delivery_check": "",
"window_tag": "", "window_tag": "",
"work_authorization": "", "work_authorization": "",
"worksheet_by_line_number": "", "worksheet_by_line_number": "",
@@ -1656,7 +1663,9 @@
"purchases_by_vendor_detailed_date_range": "", "purchases_by_vendor_detailed_date_range": "",
"purchases_by_vendor_summary_date_range": "", "purchases_by_vendor_summary_date_range": "",
"schedule": "", "schedule": "",
"timetickets": "" "timetickets": "",
"timetickets_employee": "",
"timetickets_summary": ""
} }
}, },
"scoreboard": { "scoreboard": {

View File

@@ -167,6 +167,13 @@ export const TemplateList = (type, context) => {
key: "coversheet_portrait", key: "coversheet_portrait",
disabled: false, 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",
@@ -174,6 +181,48 @@ export const TemplateList = (type, context) => {
key: "filing_coversheet_portrait", key: "filing_coversheet_portrait",
disabled: false, disabled: false,
}, },
qc_sheet: {
title: i18n.t("printcenter.jobs.qc_sheet"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.qc_sheet"),
key: "qc_sheet",
disabled: false,
},
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: {
title: i18n.t("printcenter.jobs.vehicle_delivery_check"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.vehicle_delivery_check"),
key: "vehicle_delivery_check",
disabled: false,
},
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: {
title: i18n.t("printcenter.jobs.guarantee"),
description: "All Jobs Notes",
subject: i18n.t("printcenter.jobs.guarantee"),
key: "guarantee",
disabled: false,
},
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,
},
} }
: {}), : {}),
...(!type || type === "job_special" ...(!type || type === "job_special"
@@ -308,6 +357,22 @@ export const TemplateList = (type, context) => {
idtype: "vendor", idtype: "vendor",
disabled: false, disabled: false,
}, },
timetickets_employee: {
title: i18n.t("reportcenter.templates.timetickets_employee"),
description: "Est Detail",
subject: i18n.t("reportcenter.templates.timetickets_employee"),
key: "timetickets_employee",
idtype: "vendor",
disabled: false,
},
timetickets_summary: {
title: i18n.t("reportcenter.templates.timetickets_summary"),
description: "Est Detail",
subject: i18n.t("reportcenter.templates.timetickets_summary"),
key: "timetickets_summary",
idtype: "vendor",
disabled: false,
},
} }
: {}), : {}),
...(!type || type === "courtesycarcontract" ...(!type || type === "courtesycarcontract"