Update dynamic app names for all versions.

This commit is contained in:
Patrick Fic
2024-02-26 11:46:40 -08:00
parent f190c26311
commit 6640ed629d
65 changed files with 700 additions and 230 deletions

View File

@@ -12686,6 +12686,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>insuranceexpired</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>noteconvertedfrom</name> <name>noteconvertedfrom</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -14429,6 +14450,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>phone</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>prodhrs</name> <name>prodhrs</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -14707,6 +14749,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>scheduledindate</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>scheduledintoday</name> <name>scheduledintoday</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -14728,6 +14791,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>scheduledoutdate</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>scheduledouttoday</name> <name>scheduledouttoday</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -30670,6 +30754,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>calc_scheuled_completion</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>
<folder_node> <folder_node>
<name>cards</name> <name>cards</name>
<children> <children>
@@ -33918,6 +34023,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>update_scheduled_completion</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>vehicle_info</name> <name>vehicle_info</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -45181,6 +45307,216 @@
<folder_node> <folder_node>
<name>labels</name> <name>labels</name>
<children> <children>
<concept_node>
<name>advanced_filters</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>advanced_filters_filter_field</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>advanced_filters_filter_operator</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>advanced_filters_filter_value</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>advanced_filters_filters</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>advanced_filters_hide</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>advanced_filters_show</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>advanced_filters_sorter_direction</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>advanced_filters_sorter_field</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>advanced_filters_sorters</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>dates</name> <name>dates</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -52012,6 +52348,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>imexonline</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>inventory</name> <name>inventory</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -52453,6 +52810,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>promanager</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>readyjobs</name> <name>readyjobs</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -52516,6 +52894,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>romeonline</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>schedule</name> <name>schedule</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -1,6 +1,7 @@
import React from "react"; import React from "react";
import {Button, Result} from "antd"; import {Button, Result} from "antd";
import {useTranslation} from "react-i18next"; import {useTranslation} from "react-i18next";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
export default function ConflictComponent() { export default function ConflictComponent() {
const {t} = useTranslation(); const {t} = useTranslation();
@@ -11,7 +12,7 @@ export default function ConflictComponent() {
title={t("general.labels.instanceconflictitle")} title={t("general.labels.instanceconflictitle")}
extra={ extra={
<div> <div>
<div>{t("general.labels.instanceconflictext")}</div> <div>{t("general.labels.instanceconflictext",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}</div>
<Button <Button
onClick={() => { onClick={() => {
window.location.reload(); window.location.reload();

View File

@@ -101,7 +101,7 @@ class ErrorBoundary extends React.Component {
<Result <Result
status="500" status="500"
title={t("general.labels.exceptiontitle")} title={t("general.labels.exceptiontitle")}
subTitle={t("general.messages.exception")} subTitle={t("general.messages.exception",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}
extra={ extra={
<Space> <Space>
<Button <Button

View File

@@ -5,6 +5,7 @@ import { connect } from "react-redux";
import { createStructuredSelector } from "reselect"; import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors";
import AlertComponent from "../alert/alert.component"; import AlertComponent from "../alert/alert.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -24,7 +25,7 @@ function FeatureWrapper({
return ( return (
noauth || ( noauth || (
<AlertComponent <AlertComponent
message={t("general.messages.nofeatureaccess")} message={t("general.messages.nofeatureaccess", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}
type="warning" type="warning"
/> />
) )

View File

@@ -54,7 +54,9 @@ export function SignInComponent({
<div className="login-container"> <div className="login-container">
<div className="login-logo-container"> <div className="login-logo-container">
<img src={InstanceRenderManager({imex:ImEXOnlineLogo, rome:RomeLogo})} width={200} alt="Rome Online"/> <img src={InstanceRenderManager({imex:ImEXOnlineLogo, rome:RomeLogo})} width={200} alt="Rome Online"/>
<Typography.Title>{t("titles.app")}</Typography.Title> <Typography.Title>{
InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})
}</Typography.Title>
</div> </div>
<Form onFinish={handleFinish} form={form} size="large"> <Form onFinish={handleFinish} form={form} size="large">
<Form.Item <Form.Item

View File

@@ -7,6 +7,7 @@ import {createStructuredSelector} from "reselect";
import {techLoginStart} from "../../redux/tech/tech.actions"; import {techLoginStart} from "../../redux/tech/tech.actions";
import {selectLoginError, selectLoginLoading, selectTechnician,} from "../../redux/tech/tech.selectors"; import {selectLoginError, selectLoginLoading, selectTechnician,} from "../../redux/tech/tech.selectors";
import AlertComponent from "../alert/alert.component"; import AlertComponent from "../alert/alert.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
import "./tech-login.styles.scss"; import "./tech-login.styles.scss";
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
@@ -38,7 +39,7 @@ export function TechLogin({
}, [technician, navigate]); }, [technician, navigate]);
useEffect(() => { useEffect(() => {
document.title = t("titles.techconsole"); document.title = t("titles.techconsole",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t]); }, [t]);
return ( return (

View File

@@ -9,6 +9,7 @@ import {useTranslation} from "react-i18next";
import {setUpdateAvailable} from "../../redux/application/application.actions"; import {setUpdateAvailable} from "../../redux/application/application.actions";
import {store} from "../../redux/store"; import {store} from "../../redux/store";
import * as serviceWorkerRegistration from "../../serviceWorkerRegistration"; import * as serviceWorkerRegistration from "../../serviceWorkerRegistration";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
let globalRegistration; let globalRegistration;
@@ -25,13 +26,13 @@ export function UpdateAlert({updateAvailable}) {
if (!updateAvailable) return null; if (!updateAvailable) return null;
return ( return (
<Alert <Alert
message={t("general.messages.newversiontitle")} message={t("general.messages.newversiontitle",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}
showIcon showIcon
icon={<AlertOutlined/>} icon={<AlertOutlined/>}
description={ description={
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
<Col sm={24} md={16} lg={18}> <Col sm={24} md={16} lg={18}>
{t("general.messages.newversionmessage")} {t("general.messages.newversionmessage",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}
</Col> </Col>
<Col sm={24} md={8} lg={6}> <Col sm={24} md={8} lg={6}>
<Space wrap> <Space wrap>

View File

@@ -55,7 +55,7 @@ export function UserRequestResetPw({
<div className="login-logo-container"> <div className="login-logo-container">
<img src={InstanceRenderManager({imex: ImEXOnlineLogo, rome: null}) } height="100" width="100" <img src={InstanceRenderManager({imex: ImEXOnlineLogo, rome: null}) } height="100" width="100"
alt={InstanceRenderManager({imex: "ImEX Online", rome:"Rome Online"})}/> alt={InstanceRenderManager({imex: "ImEX Online", rome:"Rome Online"})}/>
<Typography.Title>{t("titles.app")}</Typography.Title> <Typography.Title>{InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})}</Typography.Title>
</div> </div>
<Typography.Title level={3}>{t("titles.resetpassword")}</Typography.Title> <Typography.Title level={3}>{t("titles.resetpassword")}</Typography.Title>

View File

@@ -13,6 +13,7 @@ import {selectPasswordReset} from "../../redux/user/user.selectors";
import AlertComponent from "../alert/alert.component"; import AlertComponent from "../alert/alert.component";
import "./user-validate-pw-reset.styles.scss"; import "./user-validate-pw-reset.styles.scss";
import LoadingSpinner from "../loading-spinner/loading-spinner.component"; import LoadingSpinner from "../loading-spinner/loading-spinner.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
passwordReset: selectPasswordReset, passwordReset: selectPasswordReset,
@@ -74,7 +75,7 @@ export function UserValidatePwReset({
<div className="reset-container"> <div className="reset-container">
<div className="reset-logo-container"> <div className="reset-logo-container">
<img src={ImEXOnlineLogo} height="100" width="100" alt="ImEX Online"/> <img src={ImEXOnlineLogo} height="100" width="100" alt="ImEX Online"/>
<Typography.Title>{t("titles.app")}</Typography.Title> <Typography.Title>{InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})}</Typography.Title>
</div> </div>
<Typography.Title level={3}> <Typography.Title level={3}>
{t("titles.resetpasswordvalidate")} {t("titles.resetpasswordvalidate")}

View File

@@ -12,6 +12,8 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectPartnerVersion} from "../../redux/application/application.selectors"; import {selectPartnerVersion} from "../../redux/application/application.selectors";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -32,7 +34,7 @@ export function AccountingPayablesContainer({
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.accounting-payables"); document.title = t("titles.accounting-payables",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setSelectedHeader("payables"); setSelectedHeader("payables");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -12,6 +12,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {checkPartnerStatus} from "../../components/partner-ping/partner-ping.component"; import {checkPartnerStatus} from "../../components/partner-ping/partner-ping.component";
import {selectPartnerVersion} from "../../redux/application/application.selectors"; import {selectPartnerVersion} from "../../redux/application/application.selectors";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -32,7 +33,7 @@ export function AccountingPaymentsContainer({
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.accounting-payments"); document.title = t("titles.accounting-payments", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setSelectedHeader("payments"); setSelectedHeader("payments");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -13,6 +13,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {checkPartnerStatus} from "../../components/partner-ping/partner-ping.component"; import {checkPartnerStatus} from "../../components/partner-ping/partner-ping.component";
import {selectPartnerVersion} from "../../redux/application/application.selectors"; import {selectPartnerVersion} from "../../redux/application/application.selectors";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -33,7 +34,7 @@ export function AccountingReceivablesContainer({
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.accounting-receivables"); document.title = t("titles.accounting-receivables",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setSelectedHeader("receivables"); setSelectedHeader("receivables");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -12,6 +12,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import BillsPageComponent from "./bills.page.component"; import BillsPageComponent from "./bills.page.component";
import {pageLimit} from "../../utils/config"; import {pageLimit} from "../../utils/config";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -24,7 +25,7 @@ export function BillsPageContainer({setBreadcrumbs, setSelectedHeader}) {
const {page, sortcolumn, sortorder, searchObj} = searchParams; const {page, sortcolumn, sortorder, searchObj} = searchParams;
useEffect(() => { useEffect(() => {
document.title = t("titles.bills-list"); document.title = t("titles.bills-list",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setSelectedHeader("bills"); setSelectedHeader("bills");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/bills", label: t("titles.bc.bills-list")}, {link: "/manage/bills", label: t("titles.bc.bills-list")},

View File

@@ -11,6 +11,7 @@ import {UPDATE_JOB} from "../../graphql/jobs.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import ContractCreatePageComponent from "./contract-create.page.component"; import ContractCreatePageComponent from "./contract-create.page.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -105,7 +106,7 @@ export function ContractCreatePageContainer({
}; };
useEffect(() => { useEffect(() => {
document.title = t("titles.contracts-create"); document.title = t("titles.contracts-create",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setSelectedHeader("newcontract"); setSelectedHeader("newcontract");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/courtesycars", label: t("titles.bc.courtesycars")}, {link: "/manage/courtesycars", label: t("titles.bc.courtesycars")},

View File

@@ -16,6 +16,7 @@ import {CreateRecentItem} from "../../utils/create-recent-item";
import ContractDetailPageComponent from "./contract-detail.page.component"; import ContractDetailPageComponent from "./contract-detail.page.component";
import NotFound from "../../components/not-found/not-found.component"; import NotFound from "../../components/not-found/not-found.component";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -43,9 +44,9 @@ export function ContractDetailPageContainer({
useEffect(() => { useEffect(() => {
setSelectedHeader("contracts"); setSelectedHeader("contracts");
document.title = loading document.title = loading
? t("titles.app") ? InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})
: error : error
? t("titles.app") ? InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})
: t("titles.contracts-detail", { : t("titles.contracts-detail", {
id: id:
(data && (data &&

View File

@@ -11,6 +11,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import ContractsPageComponent from "./contracts.page.component"; import ContractsPageComponent from "./contracts.page.component";
import {pageLimit} from "../../utils/config"; import {pageLimit} from "../../utils/config";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -44,7 +45,7 @@ export function ContractsPageContainer({setBreadcrumbs, setSelectedHeader}) {
); );
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.contracts"); document.title = t("titles.contracts", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setSelectedHeader("contracts"); setSelectedHeader("contracts");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/courtesycars", label: t("titles.bc.courtesycars")}, {link: "/manage/courtesycars", label: t("titles.bc.courtesycars")},

View File

@@ -11,6 +11,7 @@ import {INSERT_NEW_COURTESY_CAR} from "../../graphql/courtesy-car.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -57,7 +58,7 @@ export function CourtesyCarCreateContainer({
useEffect(() => { useEffect(() => {
setSelectedHeader("courtesycarsall"); setSelectedHeader("courtesycarsall");
document.title = t("titles.courtesycars-create"); document.title = t("titles.courtesycars-create",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/courtesycars", label: t("titles.bc.courtesycars")}, {link: "/manage/courtesycars", label: t("titles.bc.courtesycars")},
{ {

View File

@@ -16,6 +16,7 @@ import NotFound from "../../components/not-found/not-found.component";
import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component"; import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
import queryString from "query-string"; import queryString from "query-string";
import {pageLimit} from "../../utils/config"; import {pageLimit} from "../../utils/config";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -59,10 +60,11 @@ export function CourtesyCarDetailPageContainer({
setSelectedHeader("courtesycarsall"); setSelectedHeader("courtesycarsall");
document.title = loading document.title = loading
? t("titles.app") ? InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})
: error : error
? t("titles.app") ? InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})
: t("titles.courtesycars-detail", { : t("titles.courtesycars-detail", {
app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
id: id:
(data && (data &&
data.courtesycars_by_pk && data.courtesycars_by_pk &&

View File

@@ -8,6 +8,7 @@ import {QUERY_ALL_CC} from "../../graphql/courtesy-car.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import CourtesyCarsPageComponent from "./courtesy-cars.page.component"; import CourtesyCarsPageComponent from "./courtesy-cars.page.component";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -24,7 +25,7 @@ export function CourtesyCarsPageContainer({
}); });
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.courtesycars"); document.title = t("titles.courtesycars",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})});
setSelectedHeader("courtesycarsall"); setSelectedHeader("courtesycarsall");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/courtesycars", label: t("titles.bc.courtesycars")}, {link: "/manage/courtesycars", label: t("titles.bc.courtesycars")},

View File

@@ -11,6 +11,7 @@ import ConfigFormComponents from "../../components/config-form-components/config
import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component"; import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
import {selectCurrentUser} from "../../redux/user/user.selectors"; import {selectCurrentUser} from "../../redux/user/user.selectors";
import {DateTimeFormat} from "./../../utils/DateFormatter"; import {DateTimeFormat} from "./../../utils/DateFormatter";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
currentUser: selectCurrentUser, currentUser: selectCurrentUser,
@@ -76,8 +77,8 @@ export function CsiContainerPage({currentUser}) {
> >
<Result <Result
status="error" status="error"
title={t("csi.labels.nologgedinuser")} title={t("csi.labels.nologgedinuser", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}
subTitle={t("csi.labels.nologgedinuser_sub")} subTitle={t("csi.labels.nologgedinuser_sub",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}
/> />
</Layout> </Layout>
); );

View File

@@ -5,6 +5,7 @@ import DashboardGridComponent from "../../components/dashboard-grid/dashboard-gr
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import FeatureWrapper from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapper from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -15,7 +16,8 @@ export function ExportsLogPageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.dashboard"); document.title = t("titles.dashboard", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})}
);
setSelectedHeader("dashboard"); setSelectedHeader("dashboard");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -11,6 +11,7 @@ import DmsLogEvents from "../../components/dms-log-events/dms-log-events.compone
import {auth} from "../../firebase/firebase.utils"; import {auth} from "../../firebase/firebase.utils";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -48,7 +49,7 @@ export function DmsContainer({bodyshop, setBreadcrumbs, setSelectedHeader}) {
const logsRef = useRef(null); const logsRef = useRef(null);
useEffect(() => { useEffect(() => {
document.title = t("titles.dms"); document.title = t("titles.dms", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("dms"); setSelectedHeader("dms");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -18,6 +18,7 @@ import {auth} from "../../firebase/firebase.utils";
import {QUERY_JOB_EXPORT_DMS} from "../../graphql/jobs.queries"; import {QUERY_JOB_EXPORT_DMS} from "../../graphql/jobs.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -62,7 +63,7 @@ export function DmsContainer({bodyshop, setBreadcrumbs, setSelectedHeader}) {
const logsRef = useRef(null); const logsRef = useRef(null);
useEffect(() => { useEffect(() => {
document.title = t("titles.dms"); document.title = t("titles.dms",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("dms"); setSelectedHeader("dms");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -5,6 +5,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import ExportLogsPage from "./export-logs.page.component"; import ExportLogsPage from "./export-logs.page.component";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -15,7 +16,7 @@ export function ExportsLogPageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.export-logs"); document.title = t("titles.export-logs",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("export-logs"); setSelectedHeader("export-logs");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -5,6 +5,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import InventoryList from "../../components/inventory-list/inventory-list.container"; import InventoryList from "../../components/inventory-list/inventory-list.container";
import InventoryUpsertModalContainer from "../../components/inventory-upsert-modal/inventory-upsert-modal.container"; import InventoryUpsertModalContainer from "../../components/inventory-upsert-modal/inventory-upsert-modal.container";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -15,7 +16,7 @@ export function InventoryPage({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.inventory"); document.title = t("titles.inventory",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("inventory"); setSelectedHeader("inventory");
setBreadcrumbs([{link: "/manage/jobs", label: t("titles.bc.inventory")}]); setBreadcrumbs([{link: "/manage/jobs", label: t("titles.bc.inventory")}]);
}, [t, setBreadcrumbs, setSelectedHeader]); }, [t, setBreadcrumbs, setSelectedHeader]);

View File

@@ -23,6 +23,7 @@ import NotFound from "../../components/not-found/not-found.component";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {GET_JOB_BY_PK} from "../../graphql/jobs.queries"; import {GET_JOB_BY_PK} from "../../graphql/jobs.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -51,6 +52,7 @@ export function JobsCloseContainer({setBreadcrumbs, setSelectedHeader}) {
useEffect(() => { useEffect(() => {
setSelectedHeader("activejobs"); setSelectedHeader("activejobs");
document.title = t("titles.jobs-admin", { document.title = t("titles.jobs-admin", {
app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
ro_number: data ? data.jobs_by_pk && data.jobs_by_pk.ro_number : null, ro_number: data ? data.jobs_by_pk && data.jobs_by_pk.ro_number : null,
}); });

View File

@@ -11,6 +11,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {QUERY_ALL_JOBS_PAGINATED_STATUS_FILTERED} from "../../graphql/jobs.queries"; import {QUERY_ALL_JOBS_PAGINATED_STATUS_FILTERED} from "../../graphql/jobs.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {pageLimit} from "../../utils/config"; import {pageLimit} from "../../utils/config";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
//bodyshop: selectBodyshop, //bodyshop: selectBodyshop,
@@ -50,7 +51,7 @@ export function AllJobs({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.jobs-all"); document.title = t("titles.jobs-all", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("alljobs"); setSelectedHeader("alljobs");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/jobs/all", label: t("titles.bc.jobs-all")}, {link: "/manage/jobs/all", label: t("titles.bc.jobs-all")},

View File

@@ -11,6 +11,7 @@ import JobsAvailableTableContainer from "../../components/jobs-available-table/j
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectPartnerVersion} from "../../redux/application/application.selectors"; import {selectPartnerVersion} from "../../redux/application/application.selectors";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
partnerVersion: selectPartnerVersion, partnerVersion: selectPartnerVersion,
@@ -29,7 +30,7 @@ export function JobsAvailablePageContainer({
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.jobsavailable"); document.title = t("titles.jobsavailable", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("availablejobs"); setSelectedHeader("availablejobs");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/available", label: t("titles.bc.availablejobs")}, {link: "/manage/available", label: t("titles.bc.availablejobs")},
@@ -50,7 +51,7 @@ export function JobsAvailablePageContainer({
{!partnerVersion && ( {!partnerVersion && (
<AlertComponent <AlertComponent
type="warning" type="warning"
message={t("general.messages.partnernotrunning")} message={t("general.messages.partnernotrunning",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}
/> />
)} )}
<JobsAvailableTableContainer/> <JobsAvailableTableContainer/>

View File

@@ -14,6 +14,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {QUERY_JOB_CHECKLISTS} from "../../graphql/jobs.queries"; import {QUERY_JOB_CHECKLISTS} from "../../graphql/jobs.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser //currentUser: selectCurrentUser
@@ -38,7 +39,7 @@ export function JobsChecklistViewContainer({
}); });
useEffect(() => { useEffect(() => {
document.title = t("titles.jobs-checklist"); document.title = t("titles.jobs-checklist",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("activejobs"); setSelectedHeader("activejobs");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/jobs", label: t("titles.bc.jobs")}, {link: "/manage/jobs", label: t("titles.bc.jobs")},

View File

@@ -13,6 +13,7 @@ import {QUERY_JOB_CLOSE_DETAILS} from "../../graphql/jobs.queries";
import {setBreadcrumbs, setJobReadOnly, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setJobReadOnly, setSelectedHeader,} from "../../redux/application/application.actions";
import IsJobReadOnly from "../../utils/jobReadOnly"; import IsJobReadOnly from "../../utils/jobReadOnly";
import JobsCloseComponent from "./jobs-close.component"; import JobsCloseComponent from "./jobs-close.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -40,6 +41,7 @@ export function JobsCloseContainer({
useEffect(() => { useEffect(() => {
setSelectedHeader("activejobs"); setSelectedHeader("activejobs");
document.title = t("titles.jobs-close", { document.title = t("titles.jobs-close", {
app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
number: data ? data.jobs_by_pk && data.jobs_by_pk.ro_number : null, number: data ? data.jobs_by_pk && data.jobs_by_pk.ro_number : null,
}); });

View File

@@ -55,7 +55,7 @@ function JobsCreateContainer({bodyshop, setBreadcrumbs, setSelectedHeader}) {
}, [state.owner.selectedid, loadOwner]); }, [state.owner.selectedid, loadOwner]);
useEffect(() => { useEffect(() => {
document.title = t("titles.jobs-create"); document.title = t("titles.jobs-create",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("newjob"); setSelectedHeader("newjob");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/available", label: t("titles.bc.availablejobs")}, {link: "/manage/available", label: t("titles.bc.availablejobs")},

View File

@@ -11,6 +11,7 @@ import {QUERY_DELIVER_CHECKLIST} from "../../graphql/bodyshop.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import JobchecklistComponent from "../../components/job-checklist/job-checklist.component"; import JobchecklistComponent from "../../components/job-checklist/job-checklist.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser //currentUser: selectCurrentUser
@@ -35,7 +36,7 @@ export function JobsDeliverContainer({
}); });
useEffect(() => { useEffect(() => {
document.title = t("titles.jobs-deliver"); document.title = t("titles.jobs-deliver",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("activejobs"); setSelectedHeader("activejobs");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/jobs", label: t("titles.bc.jobs")}, {link: "/manage/jobs", label: t("titles.bc.jobs")},

View File

@@ -20,6 +20,7 @@ import {selectBodyshop} from "../../redux/user/user.selectors";
import {CreateRecentItem} from "../../utils/create-recent-item"; import {CreateRecentItem} from "../../utils/create-recent-item";
import IsJobReadOnly from "../../utils/jobReadOnly"; import IsJobReadOnly from "../../utils/jobReadOnly";
import JobsDetailPage from "./jobs-detail.page.component"; import JobsDetailPage from "./jobs-detail.page.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -51,10 +52,11 @@ function JobsDetailPageContainer({
useEffect(() => { useEffect(() => {
setSelectedHeader("activejobs"); setSelectedHeader("activejobs");
document.title = loading document.title = loading
? t("titles.app") ? InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})
: error : error
? t("titles.app") ? InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})
: t("titles.jobsdetail", { : t("titles.jobsdetail", {
app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
ro_number: ro_number:
(data.jobs_by_pk && data.jobs_by_pk.ro_number) || (data.jobs_by_pk && data.jobs_by_pk.ro_number) ||
t("general.labels.na"), t("general.labels.na"),

View File

@@ -12,6 +12,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {Result} from "antd"; import {Result} from "antd";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser //currentUser: selectCurrentUser
@@ -37,7 +38,7 @@ export function JobsIntakeContainer({
}); });
useEffect(() => { useEffect(() => {
document.title = t("titles.jobs-intake"); document.title = t("titles.jobs-intake",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("activejobs"); setSelectedHeader("activejobs");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/jobs", label: t("titles.bc.jobs")}, {link: "/manage/jobs", label: t("titles.bc.jobs")},

View File

@@ -5,6 +5,7 @@ import JobDetailCards from "../../components/job-detail-cards/job-detail-cards.c
import JobsReadyList from "../../components/jobs-ready-list/jobs-ready-list.component"; import JobsReadyList from "../../components/jobs-ready-list/jobs-ready-list.component";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -15,7 +16,7 @@ export function JobsReadyPage({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.readyjobs"); document.title = t("titles.readyjobs",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("readyjobs"); setSelectedHeader("readyjobs");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/jobs", label: t("titles.bc.jobs-ready")}, {link: "/manage/jobs", label: t("titles.bc.jobs-ready")},

View File

@@ -5,6 +5,7 @@ import JobDetailCards from "../../components/job-detail-cards/job-detail-cards.c
import JobsList from "../../components/jobs-list/jobs-list.component"; import JobsList from "../../components/jobs-list/jobs-list.component";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -15,7 +16,7 @@ export function JobsPage({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.jobs"); document.title = t("titles.jobs",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("activejobs"); setSelectedHeader("activejobs");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/jobs", label: t("titles.bc.jobs-active")}, {link: "/manage/jobs", label: t("titles.bc.jobs-active")},

View File

@@ -5,6 +5,7 @@ import {createStructuredSelector} from "reselect";
import {setBreadcrumbs} from "../../redux/application/application.actions"; import {setBreadcrumbs} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import ManageRootPageComponent from "./manage-root.page.component"; import ManageRootPageComponent from "./manage-root.page.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -17,7 +18,7 @@ const mapDispatchToProps = (dispatch) => ({
export function ManageRootPageContainer({setBreadcrumbs, bodyshop}) { export function ManageRootPageContainer({setBreadcrumbs, bodyshop}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.manageroot"); document.title = t("titles.manageroot",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setBreadcrumbs([]); setBreadcrumbs([]);
}, [t, setBreadcrumbs]); }, [t, setBreadcrumbs]);

View File

@@ -199,11 +199,11 @@ export function Manage({conflict, bodyshop}) {
}, []); }, []);
useEffect(() => { useEffect(() => {
document.title = t("titles.app"); document.title = InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")});
}, [t]); }, [t]);
const AppRouteTable = ( const AppRouteTable = (
<Suspense <Suspense
fallback={<LoadingSpinner message={t("general.labels.loadingapp")}/>} This fallback={<LoadingSpinner message={t("general.labels.loadingapp",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}/>} This
> >
<PaymentModalContainer/> <PaymentModalContainer/>
@@ -399,7 +399,7 @@ export function Manage({conflict, bodyshop}) {
> >
<div style={{display: "flex"}}> <div style={{display: "flex"}}>
<div> <div>
{`${t("titles.app")} ${ {`${InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})} ${
import.meta.env.VITE_APP_GIT_SHA || 'Local Build' import.meta.env.VITE_APP_GIT_SHA || 'Local Build'
} - ${import.meta.env.VITE_APP_GIT_SHA_DATE}`} } - ${import.meta.env.VITE_APP_GIT_SHA_DATE}`}
</div> </div>

View File

@@ -12,6 +12,7 @@ import {CreateRecentItem} from "../../utils/create-recent-item";
import OwnersDetailComponent from "./owners-detail.page.component"; import OwnersDetailComponent from "./owners-detail.page.component";
import NotFound from "../../components/not-found/not-found.component"; import NotFound from "../../components/not-found/not-found.component";
import {OwnerNameDisplayFunction} from "../../components/owner-name-display/owner-name-display.component"; import {OwnerNameDisplayFunction} from "../../components/owner-name-display/owner-name-display.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -35,6 +36,7 @@ export function OwnersDetailContainer({
useEffect(() => { useEffect(() => {
document.title = t("titles.owners-detail", { document.title = t("titles.owners-detail", {
app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
name: data ? OwnerNameDisplayFunction(data.owners_by_pk) : "", name: data ? OwnerNameDisplayFunction(data.owners_by_pk) : "",
}); });
setSelectedHeader("owners"); setSelectedHeader("owners");

View File

@@ -4,6 +4,7 @@ import {useTranslation} from "react-i18next";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {connect} from "react-redux"; import {connect} from "react-redux";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -13,7 +14,7 @@ const mapDispatchToProps = (dispatch) => ({
export function OwnersPageContainer({setBreadcrumbs, setSelectedHeader}) { export function OwnersPageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.owners"); document.title = t("titles.owners",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("owners"); setSelectedHeader("owners");
setBreadcrumbs([{link: "/manage/owners", label: t("titles.bc.owners")}]); setBreadcrumbs([{link: "/manage/owners", label: t("titles.bc.owners")}]);
}, [t, setBreadcrumbs, setSelectedHeader]); }, [t, setBreadcrumbs, setSelectedHeader]);

View File

@@ -5,6 +5,7 @@ import PartsQueueDetailCard from "../../components/parts-queue-card/parts-queue-
import PartsQueueList from "../../components/parts-queue-list/parts-queue.list.component"; import PartsQueueList from "../../components/parts-queue-list/parts-queue.list.component";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -15,7 +16,7 @@ export function PartsQueuePageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.parts-queue"); document.title = t("titles.parts-queue",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("parts-queue"); setSelectedHeader("parts-queue");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/partsqueue", label: t("titles.bc.parts-queue")}, {link: "/manage/partsqueue", label: t("titles.bc.parts-queue")},

View File

@@ -13,6 +13,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import {pageLimit} from "../../utils/config"; import {pageLimit} from "../../utils/config";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -52,7 +53,7 @@ export function AllJobs({bodyshop, setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.payments-all"); document.title = t("titles.payments-all",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("allpayments"); setSelectedHeader("allpayments");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/payments", label: t("titles.bc.payments-all")}, {link: "/manage/payments", label: t("titles.bc.payments-all")},

View File

@@ -8,6 +8,7 @@ import {Drawer, Grid} from "antd";
import {useLocation, useNavigate} from "react-router-dom"; import {useLocation, useNavigate} from "react-router-dom";
import PhonebookFormContainer from "../../components/phonebook-form/phonebook-form.container"; import PhonebookFormContainer from "../../components/phonebook-form/phonebook-form.container";
import queryString from "query-string"; import queryString from "query-string";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -18,7 +19,7 @@ export function PhonebookContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.phonebook"); document.title = t("titles.phonebook", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("phonebook"); setSelectedHeader("phonebook");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -7,6 +7,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import ProductionBoardComponent from "./production-board.component"; import ProductionBoardComponent from "./production-board.component";
import FeatureWrapper from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapper from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -25,7 +26,7 @@ export function ProductionBoardContainer({
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.productionboard"); document.title = t("titles.productionboard",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("productionboard"); setSelectedHeader("productionboard");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -4,6 +4,7 @@ import {connect} from "react-redux";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import ProductionListComponent from "./production-list.component"; import ProductionListComponent from "./production-list.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -18,7 +19,7 @@ export function ProductionListContainer({
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.productionlist"); document.title = t("titles.productionlist",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("productionlist"); setSelectedHeader("productionlist");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/production/list", label: t("titles.bc.productionlist")}, {link: "/manage/production/list", label: t("titles.bc.productionlist")},

View File

@@ -3,6 +3,7 @@ import {useTranslation} from "react-i18next";
import {connect} from "react-redux"; import {connect} from "react-redux";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import ProfilePage from "./profile.page"; import ProfilePage from "./profile.page";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -16,7 +17,7 @@ export function ProfileContainerPage({setBreadcrumbs, setSelectedHeader}) {
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/profile", label: t("titles.bc.profile")}, {link: "/manage/profile", label: t("titles.bc.profile")},
]); ]);
document.title = t("titles.profile"); document.title = t("titles.profile",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t, setBreadcrumbs, setSelectedHeader]); }, [t, setBreadcrumbs, setSelectedHeader]);
return <ProfilePage/>; return <ProfilePage/>;

View File

@@ -4,6 +4,7 @@ import {connect} from "react-redux";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import SchedulePageComponent from "./schedule.page.component"; import SchedulePageComponent from "./schedule.page.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -14,7 +15,7 @@ export function SchedulePageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.schedule"); document.title = t("titles.schedule",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("schedule"); setSelectedHeader("schedule");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/schedule", label: t("titles.bc.schedule")}, {link: "/manage/schedule", label: t("titles.bc.schedule")},

View File

@@ -14,6 +14,7 @@ import ScoreboardTimeTicketsStats from "../../components/scoreboard-timetickets-
import ScoreboardTimeTickets from "../../components/scoreboard-timetickets/scoreboard-timetickets.component"; import ScoreboardTimeTickets from "../../components/scoreboard-timetickets/scoreboard-timetickets.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
/** /**
* Mapping state to props * Mapping state to props
@@ -46,7 +47,7 @@ export function ScoreboardContainer({setBreadcrumbs, setSelectedHeader}) {
* useEffect hook to set document title, selected header and breadcrumbs * useEffect hook to set document title, selected header and breadcrumbs
*/ */
useEffect(() => { useEffect(() => {
document.title = t("titles.scoreboard"); document.title = t("titles.scoreboard",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("scoreboard"); setSelectedHeader("scoreboard");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -12,6 +12,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {QUERY_CSI_RESPONSE_PAGINATED} from "../../graphql/csi.queries"; import {QUERY_CSI_RESPONSE_PAGINATED} from "../../graphql/csi.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -38,7 +39,7 @@ export function ShopCsiContainer({
); );
useEffect(() => { useEffect(() => {
document.title = t("titles.shop-csi"); document.title = t("titles.shop-csi",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("shop-csi"); setSelectedHeader("shop-csi");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -7,6 +7,7 @@ import {connect} from "react-redux";
import {createStructuredSelector} from "reselect"; import {createStructuredSelector} from "reselect";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -23,7 +24,7 @@ export function ShopVendorPageContainer({
}) { }) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.shop_vendors"); document.title = t("titles.shop_vendors", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("shop-vendors"); setSelectedHeader("shop-vendors");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -7,7 +7,7 @@ import ShopEmployeesContainer from "../../components/shop-employees/shop-employe
import ShopInfoContainer from "../../components/shop-info/shop-info.container"; import ShopInfoContainer from "../../components/shop-info/shop-info.container";
import ShopCsiConfig from "../../components/shop-csi-config/shop-csi-config.component"; import ShopCsiConfig from "../../components/shop-csi-config/shop-csi-config.component";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
import {connect} from "react-redux"; import {connect} from "react-redux";
import {createStructuredSelector} from "reselect"; import {createStructuredSelector} from "reselect";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
@@ -30,7 +30,7 @@ export function ShopPage({bodyshop, setSelectedHeader, setBreadcrumbs}) {
const search = queryString.parse(useLocation().search); const search = queryString.parse(useLocation().search);
useEffect(() => { useEffect(() => {
document.title = t("titles.shop"); document.title = t("titles.shop",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("shop"); setSelectedHeader("shop");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -4,12 +4,13 @@ import {useTranslation} from "react-i18next";
import TechClockInFormContainer from "../../components/tech-job-clock-in-form/tech-job-clock-in-form.container"; import TechClockInFormContainer from "../../components/tech-job-clock-in-form/tech-job-clock-in-form.container";
import TechClockedInList from "../../components/tech-job-clocked-in-list/tech-job-clocked-in-list.component"; import TechClockedInList from "../../components/tech-job-clocked-in-list/tech-job-clocked-in-list.component";
import TechJobStatistics from "../../components/tech-job-statistics/tech-job-statistics.component"; import TechJobStatistics from "../../components/tech-job-statistics/tech-job-statistics.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
export default function TechClockComponent() { export default function TechClockComponent() {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.techjobclock"); document.title = t("titles.techjobclock", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t]); }, [t]);
return ( return (

View File

@@ -2,12 +2,13 @@ import React, {useEffect} from "react";
import {useTranslation} from "react-i18next"; import {useTranslation} from "react-i18next";
import RbacWrapperComponent from "../../components/rbac-wrapper/rbac-wrapper.component"; import RbacWrapperComponent from "../../components/rbac-wrapper/rbac-wrapper.component";
import TechLookupJobsList from "../../components/tech-lookup-jobs-list/tech-lookup-jobs-list.component"; import TechLookupJobsList from "../../components/tech-lookup-jobs-list/tech-lookup-jobs-list.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
export default function TechLookupContainer() { export default function TechLookupContainer() {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.techjoblookup"); document.title = t("titles.techjoblookup", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t]); }, [t]);
return ( return (

View File

@@ -1,12 +1,13 @@
import React, {useEffect} from "react"; import React, {useEffect} from "react";
import {useTranslation} from "react-i18next"; import {useTranslation} from "react-i18next";
import TimeTicketShift from "../../components/time-ticket-shift/time-ticket-shift.container"; import TimeTicketShift from "../../components/time-ticket-shift/time-ticket-shift.container";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
export default function TechShiftClock() { export default function TechShiftClock() {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.techshiftclock"); document.title = t("titles.techshiftclock",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t]); }, [t]);
return ( return (

View File

@@ -13,6 +13,7 @@ import TechLookupJobsDrawer from "../../components/tech-lookup-jobs-drawer/tech-
import TechSider from "../../components/tech-sider/tech-sider.component"; import TechSider from "../../components/tech-sider/tech-sider.component";
import UpdateAlert from "../../components/update-alert/update-alert.component"; import UpdateAlert from "../../components/update-alert/update-alert.component";
import {selectTechnician} from "../../redux/tech/tech.selectors"; import {selectTechnician} from "../../redux/tech/tech.selectors";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
import "./tech.page.styles.scss"; import "./tech.page.styles.scss";
const TimeTicketModalContainer = lazy(() => const TimeTicketModalContainer = lazy(() =>
@@ -66,7 +67,7 @@ export function TechPage({technician}) {
const navigate = useNavigate(); const navigate = useNavigate();
useEffect(() => { useEffect(() => {
document.title = t("titles.app"); document.title = InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")});
}, [t]); }, [t]);
useEffect(() => { useEffect(() => {
@@ -86,7 +87,7 @@ export function TechPage({technician}) {
<ErrorBoundary> <ErrorBoundary>
<Suspense <Suspense
fallback={ fallback={
<LoadingSpinner message={t("general.labels.loadingapp")}/> <LoadingSpinner message={t("general.labels.loadingapp", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})})}/>
} }
> >
<FeatureWrapper featureName="tech-console"> <FeatureWrapper featureName="tech-console">

View File

@@ -7,6 +7,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import TemporaryDocsComponent from "./temporary-docs.component"; import TemporaryDocsComponent from "./temporary-docs.component";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -21,7 +22,7 @@ export function TempDocumentsContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.temporarydocs"); document.title = t("titles.temporarydocs",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("temporarydocs"); setSelectedHeader("temporarydocs");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -20,6 +20,7 @@ import TimeTicketsAttendanceTable
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import TimeTicketsCommit from "../../components/time-tickets-commit/time-tickets-commit.component"; import TimeTicketsCommit from "../../components/time-tickets-commit/time-tickets-commit.component";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({}); const mapStateToProps = createStructuredSelector({});
@@ -52,7 +53,7 @@ export function TimeTicketsContainer({
}); });
useEffect(() => { useEffect(() => {
document.title = t("titles.timetickets"); document.title = t("titles.timetickets",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("timetickets"); setSelectedHeader("timetickets");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -7,6 +7,7 @@ import TtApprovalsList from "../../components/tt-approvals-list/tt-approvals-lis
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors"; import {selectBodyshop} from "../../redux/user/user.selectors";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop, bodyshop: selectBodyshop,
@@ -21,7 +22,7 @@ export function TtApprovalsPage({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.ttapprovals"); document.title = t("titles.ttapprovals",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("ttapprovals"); setSelectedHeader("ttapprovals");
setBreadcrumbs([ setBreadcrumbs([
{ {

View File

@@ -10,6 +10,7 @@ import {addRecentItem, setBreadcrumbs, setSelectedHeader,} from "../../redux/app
import {connect} from "react-redux"; import {connect} from "react-redux";
import {CreateRecentItem} from "../../utils/create-recent-item"; import {CreateRecentItem} from "../../utils/create-recent-item";
import NotFound from "../../components/not-found/not-found.component"; import NotFound from "../../components/not-found/not-found.component";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({ const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -33,6 +34,7 @@ export function VehicleDetailContainer({
useEffect(() => { useEffect(() => {
document.title = t("titles.vehicledetail", { document.title = t("titles.vehicledetail", {
app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
vehicle: vehicle:
data && data.vehicles_by_pk data && data.vehicles_by_pk
? `${(data.vehicles_by_pk && data.vehicles_by_pk.v_model_yr) || ""} ${ ? `${(data.vehicles_by_pk && data.vehicles_by_pk.v_model_yr) || ""} ${

View File

@@ -2,6 +2,7 @@ import React, {useEffect} from "react";
import VehiclesPageComponent from "./vehicles.page.component"; import VehiclesPageComponent from "./vehicles.page.component";
import {useTranslation} from "react-i18next"; import {useTranslation} from "react-i18next";
import {connect} from "react-redux"; import {connect} from "react-redux";
import InstanceRenderManager from '../../utils/instanceRenderMgr';
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
@@ -14,7 +15,7 @@ export function VehiclesPageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation(); const {t} = useTranslation();
useEffect(() => { useEffect(() => {
document.title = t("titles.vehicles"); document.title = t("titles.vehicles",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("vehicles"); setSelectedHeader("vehicles");
setBreadcrumbs([ setBreadcrumbs([
{link: "/manage/vehicles", label: t("titles.bc.vehicles")}, {link: "/manage/vehicles", label: t("titles.bc.vehicles")},

View File

@@ -760,7 +760,7 @@
"driverinformation": "Driver's Information", "driverinformation": "Driver's Information",
"findcontract": "Find Contract", "findcontract": "Find Contract",
"findermodal": "Contract Finder", "findermodal": "Contract Finder",
"insuranceexpired": "The courtesy car insurance expires before the car is expected to return.", "insuranceexpired": "The courtesy car insurance expires before the car is expected to return.",
"noteconvertedfrom": "R.O. created from converted Courtesy Car Contract {{agreementnumber}}.", "noteconvertedfrom": "R.O. created from converted Courtesy Car Contract {{agreementnumber}}.",
"populatefromjob": "Populate from Job", "populatefromjob": "Populate from Job",
"rates": "Contract Rates", "rates": "Contract Rates",
@@ -859,8 +859,8 @@
"created_at": "Created At" "created_at": "Created At"
}, },
"labels": { "labels": {
"nologgedinuser": "Please log out of $t(titles.app)", "nologgedinuser": "Please log out of {{app}}",
"nologgedinuser_sub": "Users of $t(titles.app) cannot complete CSI surveys while logged in. Please log out and try again.", "nologgedinuser_sub": "Users of {{app}} cannot complete CSI surveys while logged in. Please log out and try again.",
"noneselected": "No response selected.", "noneselected": "No response selected.",
"title": "Customer Satisfaction Survey" "title": "Customer Satisfaction Survey"
}, },
@@ -881,7 +881,7 @@
"labels": { "labels": {
"bodyhrs": "Body Hrs", "bodyhrs": "Body Hrs",
"dollarsinproduction": "Dollars in Production", "dollarsinproduction": "Dollars in Production",
"phone": "Phone", "phone": "Phone",
"prodhrs": "Production Hrs", "prodhrs": "Production Hrs",
"refhrs": "Refinish Hrs" "refhrs": "Refinish Hrs"
}, },
@@ -898,8 +898,8 @@
"productionhours": "Total Hours in Production", "productionhours": "Total Hours in Production",
"projectedmonthlysales": "Projected Monthly Sales", "projectedmonthlysales": "Projected Monthly Sales",
"scheduledindate": "Sheduled In Today: {{date}}", "scheduledindate": "Sheduled In Today: {{date}}",
"scheduledintoday": "Sheduled In Today", "scheduledintoday": "Sheduled In Today",
"scheduledoutdate": "Sheduled Out Today: {{date}}", "scheduledoutdate": "Sheduled Out Today: {{date}}",
"scheduledouttoday": "Sheduled Out Today" "scheduledouttoday": "Sheduled Out Today"
} }
}, },
@@ -1142,12 +1142,12 @@
"help": "Help", "help": "Help",
"hours": "hrs", "hours": "hrs",
"in": "In", "in": "In",
"instanceconflictext": "Your $t(titles.app) account can only be used on one device at any given time. Refresh your session to take control.", "instanceconflictext": "Your {{app}} account can only be used on one device at any given time. Refresh your session to take control.",
"instanceconflictitle": "Your account is being used elsewhere.", "instanceconflictitle": "Your account is being used elsewhere.",
"item": "Item", "item": "Item",
"label": "Label", "label": "Label",
"loading": "Loading...", "loading": "Loading...",
"loadingapp": "Loading $t(titles.app)", "loadingapp": "Loading {{app}}",
"loadingshop": "Loading shop data...", "loadingshop": "Loading shop data...",
"loggingin": "Authorizing...", "loggingin": "Authorizing...",
"markedexported": "Manually marked as exported.", "markedexported": "Manually marked as exported.",
@@ -1202,15 +1202,15 @@
"spanish": "Spanish" "spanish": "Spanish"
}, },
"messages": { "messages": {
"exception": "$t(titles.app) has encountered an error. Please try again. If the problem persists, please submit a support ticket or contact us.", "exception": "{{app}} has encountered an error. Please try again. If the problem persists, please submit a support ticket or contact us.",
"newversionmessage": "Click refresh below to update to the latest available version of $t(titles.app). Please make sure all other tabs and windows are closed.", "newversionmessage": "Click refresh below to update to the latest available version of {{app}}. Please make sure all other tabs and windows are closed.",
"newversiontitle": "New version of $t(titles.app) Available", "newversiontitle": "New version of {{app}} Available",
"noacctfilepath": "There is no accounting file path set. You will not be able to export any items.", "noacctfilepath": "There is no accounting file path set. You will not be able to export any items.",
"nofeatureaccess": "You do not have access to this feature of $t(titles.app). Please contact support to request a license for this feature.", "nofeatureaccess": "You do not have access to this feature of {{app}}. Please contact support to request a license for this feature.",
"noshop": "You do not have access to any shops. Please reach out to your shop manager or technical support. ", "noshop": "You do not have access to any shops. Please reach out to your shop manager or technical support. ",
"notfoundsub": "Please make sure that you have access to the data or that the link is correct.", "notfoundsub": "Please make sure that you have access to the data or that the link is correct.",
"notfoundtitle": "We couldn't find what you're looking for...", "notfoundtitle": "We couldn't find what you're looking for...",
"partnernotrunning": "$t(titles.app) has detected that the partner is not running. Please ensure it is running to enable full functionality.", "partnernotrunning": "{{app}} has detected that the partner is not running. Please ensure it is running to enable full functionality.",
"rbacunauth": "You are not authorized to view this content. Please reach out to your shop manager to change your access level.", "rbacunauth": "You are not authorized to view this content. Please reach out to your shop manager to change your access level.",
"unsavedchanges": "You have unsaved changes.", "unsavedchanges": "You have unsaved changes.",
"unsavedchangespopup": "You have unsaved changes. Are you sure you want to leave?" "unsavedchangespopup": "You have unsaved changes. Are you sure you want to leave?"
@@ -1227,7 +1227,7 @@
}, },
"labels": { "labels": {
"codeplacholder": "6 digit PIN code", "codeplacholder": "6 digit PIN code",
"rescuedesc": "Enter the 6 digit code provided by $t(titles.app) Support below and click connect.", "rescuedesc": "Enter the 6 digit code provided by {{app}} Support below and click connect.",
"rescuetitle": "Rescue Me!" "rescuetitle": "Rescue Me!"
} }
}, },
@@ -1823,7 +1823,7 @@
"ca_gst_all_if_null": "If the Job is marked as a \"GST Registrant\" and this value is set to $0, the customer will be responsible for paying all of the GST by default. ", "ca_gst_all_if_null": "If the Job is marked as a \"GST Registrant\" and this value is set to $0, the customer will be responsible for paying all of the GST by default. ",
"calc_repair_days": "Calculated Repair Days", "calc_repair_days": "Calculated Repair Days",
"calc_repair_days_tt": "This is the approximate number of days required to complete the repair according to the target touch time in your shop configuration (current set to {{target_touchtime}}).", "calc_repair_days_tt": "This is the approximate number of days required to complete the repair according to the target touch time in your shop configuration (current set to {{target_touchtime}}).",
"calc_scheuled_completion": "Calculate Scheduled Completion", "calc_scheuled_completion": "Calculate Scheduled Completion",
"cards": { "cards": {
"customer": "Customer Information", "customer": "Customer Information",
"damage": "Area of Damage", "damage": "Area of Damage",
@@ -1991,7 +1991,7 @@
"total_sales_tax": "Total Sales Tax", "total_sales_tax": "Total Sales Tax",
"totals": "Totals", "totals": "Totals",
"unvoidnote": "This Job was unvoided.", "unvoidnote": "This Job was unvoided.",
"update_scheduled_completion": "Update Scheduled Completion?", "update_scheduled_completion": "Update Scheduled Completion?",
"vehicle_info": "Vehicle", "vehicle_info": "Vehicle",
"vehicleassociation": "Vehicle Association", "vehicleassociation": "Vehicle Association",
"viewallocations": "View Allocations", "viewallocations": "View Allocations",
@@ -2701,16 +2701,16 @@
"generate": "Generate" "generate": "Generate"
}, },
"labels": { "labels": {
"advanced_filters": "Advanced Filters and Sorters", "advanced_filters": "Advanced Filters and Sorters",
"advanced_filters_show": "Show", "advanced_filters_filter_field": "Field",
"advanced_filters_hide": "Hide", "advanced_filters_filter_operator": "Operator",
"advanced_filters_filters": "Filters", "advanced_filters_filter_value": "Value",
"advanced_filters_sorters": "Sorters", "advanced_filters_filters": "Filters",
"advanced_filters_filter_field": "Field", "advanced_filters_hide": "Hide",
"advanced_filters_sorter_field": "Field", "advanced_filters_show": "Show",
"advanced_filters_sorter_direction": "Direction", "advanced_filters_sorter_direction": "Direction",
"advanced_filters_filter_operator": "Operator", "advanced_filters_sorter_field": "Field",
"advanced_filters_filter_value": "Value", "advanced_filters_sorters": "Sorters",
"dates": "Dates", "dates": "Dates",
"employee": "Employee", "employee": "Employee",
"filterson": "Filters on {{object}}: {{field}}", "filterson": "Filters on {{object}}: {{field}}",
@@ -3022,9 +3022,9 @@
} }
}, },
"titles": { "titles": {
"accounting-payables": "Payables | $t(titles.app)", "accounting-payables": "Payables | {{app}}",
"accounting-payments": "Payments | $t(titles.app)", "accounting-payments": "Payments | {{app}}",
"accounting-receivables": "Receivables | $t(titles.app)", "accounting-receivables": "Receivables | {{app}}",
"app": "Rome Online", "app": "Rome Online",
"bc": { "bc": {
"accounting-payables": "Payables", "accounting-payables": "Payables",
@@ -3073,55 +3073,58 @@
"vehicle-details": "Vehicle: {{vehicle}}", "vehicle-details": "Vehicle: {{vehicle}}",
"vehicles": "Vehicles" "vehicles": "Vehicles"
}, },
"bills-list": "Bills | $t(titles.app)", "bills-list": "Bills | {{app}}",
"contracts": "Courtesy Car Contracts | $t(titles.app)", "contracts": "Courtesy Car Contracts | {{app}}",
"contracts-create": "New Contract | $t(titles.app)", "contracts-create": "New Contract | {{app}}",
"contracts-detail": "Contract {{id}} | $t(titles.app)", "contracts-detail": "Contract {{id}} | {{app}}",
"courtesycars": "Courtesy Cars | $t(titles.app)", "courtesycars": "Courtesy Cars | {{app}}",
"courtesycars-create": "New Courtesy Car | $t(titles.app)", "courtesycars-create": "New Courtesy Car | {{app}}",
"courtesycars-detail": "Courtesy Car {{id}} | $t(titles.app)", "courtesycars-detail": "Courtesy Car {{id}} | {{app}}",
"dashboard": "Dashboard | $t(titles.app)", "dashboard": "Dashboard | {{app}}",
"dms": "DMS Export | $t(titles.app)", "dms": "DMS Export | {{app}}",
"export-logs": "Export Logs | $t(titles.app)", "export-logs": "Export Logs | {{app}}",
"inventory": "Inventory | $t(titles.app)", "imexonline": "ImEX Online",
"jobs": "Active Jobs | $t(titles.app)", "inventory": "Inventory | {{app}}",
"jobs-admin": "Job {{ro_number}} - Admin | $t(titles.app)", "jobs": "Active Jobs | {{app}}",
"jobs-all": "All Jobs | $t(titles.app)", "jobs-admin": "Job {{ro_number}} - Admin | {{app}}",
"jobs-checklist": "Job Checklist | $t(titles.app)", "jobs-all": "All Jobs | {{app}}",
"jobs-close": "Close Job {{number}} | $t(titles.app)", "jobs-checklist": "Job Checklist | {{app}}",
"jobs-create": "Create a New Job | $t(titles.app)", "jobs-close": "Close Job {{number}} | {{app}}",
"jobs-deliver": "Deliver Job | $t(titles.app)", "jobs-create": "Create a New Job | {{app}}",
"jobs-intake": "Intake | $t(titles.app)", "jobs-deliver": "Deliver Job | {{app}}",
"jobsavailable": "Available Jobs | $t(titles.app)", "jobs-intake": "Intake | {{app}}",
"jobsdetail": "Job {{ro_number}} | $t(titles.app)", "jobsavailable": "Available Jobs | {{app}}",
"jobsdocuments": "Job Documents {{ro_number}} | $t(titles.app)", "jobsdetail": "Job {{ro_number}} | {{app}}",
"manageroot": "Home | $t(titles.app)", "jobsdocuments": "Job Documents {{ro_number}} | {{app}}",
"owners": "All Owners | $t(titles.app)", "manageroot": "Home | {{app}}",
"owners-detail": "{{name}} | $t(titles.app)", "owners": "All Owners | {{app}}",
"parts-queue": "Parts Queue | $t(titles.app)", "owners-detail": "{{name}} | {{app}}",
"payments-all": "Payments | $t(titles.app)", "parts-queue": "Parts Queue | {{app}}",
"phonebook": "Phonebook | $t(titles.app)", "payments-all": "Payments | {{app}}",
"productionboard": "Production Board - Visual | $t(titles.app)", "phonebook": "Phonebook | {{app}}",
"productionlist": "Production Board - List | $t(titles.app)", "productionboard": "Production Board - Visual | {{app}}",
"profile": "My Profile | $t(titles.app)", "productionlist": "Production Board - List | {{app}}",
"readyjobs": "Ready Jobs | $t(titles.app)", "profile": "My Profile | {{app}}",
"promanager": "ProManager",
"readyjobs": "Ready Jobs | {{app}}",
"resetpassword": "Reset Password", "resetpassword": "Reset Password",
"resetpasswordvalidate": "Enter New Password", "resetpasswordvalidate": "Enter New Password",
"schedule": "Schedule | $t(titles.app)", "romeonline": "Rome Online",
"scoreboard": "Scoreboard | $t(titles.app)", "schedule": "Schedule | {{app}}",
"shop": "My Shop | $t(titles.app)", "scoreboard": "Scoreboard | {{app}}",
"shop-csi": "CSI Responses | $t(titles.app)", "shop": "My Shop | {{app}}",
"shop-templates": "Shop Templates | $t(titles.app)", "shop-csi": "CSI Responses | {{app}}",
"shop_vendors": "Vendors | $t(titles.app)", "shop-templates": "Shop Templates | {{app}}",
"techconsole": "Technician Console | $t(titles.app)", "shop_vendors": "Vendors | {{app}}",
"techjobclock": "Technician Job Clock | $t(titles.app)", "techconsole": "Technician Console | {{app}}",
"techjoblookup": "Technician Job Lookup | $t(titles.app)", "techjobclock": "Technician Job Clock | {{app}}",
"techshiftclock": "Technician Shift Clock | $t(titles.app)", "techjoblookup": "Technician Job Lookup | {{app}}",
"temporarydocs": "Temporary Documents | $t(titles.app)", "techshiftclock": "Technician Shift Clock | {{app}}",
"timetickets": "Time Tickets | $t(titles.app)", "temporarydocs": "Temporary Documents | {{app}}",
"ttapprovals": "Time Ticket Approvals | $t(titles.app)", "timetickets": "Time Tickets | {{app}}",
"vehicledetail": "Vehicle Details {{vehicle}} | $t(titles.app)", "ttapprovals": "Time Ticket Approvals | {{app}}",
"vehicles": "All Vehicles | $t(titles.app)" "vehicledetail": "Vehicle Details {{vehicle}} | {{app}}",
"vehicles": "All Vehicles | {{app}}"
}, },
"tt_approvals": { "tt_approvals": {
"actions": { "actions": {

View File

@@ -760,7 +760,7 @@
"driverinformation": "", "driverinformation": "",
"findcontract": "", "findcontract": "",
"findermodal": "", "findermodal": "",
"insuranceexpired": "", "insuranceexpired": "",
"noteconvertedfrom": "", "noteconvertedfrom": "",
"populatefromjob": "", "populatefromjob": "",
"rates": "", "rates": "",
@@ -881,7 +881,7 @@
"labels": { "labels": {
"bodyhrs": "", "bodyhrs": "",
"dollarsinproduction": "", "dollarsinproduction": "",
"phone": "", "phone": "",
"prodhrs": "", "prodhrs": "",
"refhrs": "" "refhrs": ""
}, },
@@ -897,9 +897,9 @@
"productiondollars": "", "productiondollars": "",
"productionhours": "", "productionhours": "",
"projectedmonthlysales": "", "projectedmonthlysales": "",
"scheduledindate": "", "scheduledindate": "",
"scheduledintoday": "", "scheduledintoday": "",
"scheduledoutdate": "", "scheduledoutdate": "",
"scheduledouttoday": "" "scheduledouttoday": ""
} }
}, },
@@ -1147,7 +1147,7 @@
"item": "", "item": "",
"label": "", "label": "",
"loading": "Cargando...", "loading": "Cargando...",
"loadingapp": "Cargando $t(titles.app)", "loadingapp": "Cargando {{app}}",
"loadingshop": "Cargando datos de la tienda ...", "loadingshop": "Cargando datos de la tienda ...",
"loggingin": "Iniciando sesión ...", "loggingin": "Iniciando sesión ...",
"markedexported": "", "markedexported": "",
@@ -1823,7 +1823,7 @@
"ca_gst_all_if_null": "", "ca_gst_all_if_null": "",
"calc_repair_days": "", "calc_repair_days": "",
"calc_repair_days_tt": "", "calc_repair_days_tt": "",
"calc_scheuled_completion": "", "calc_scheuled_completion": "",
"cards": { "cards": {
"customer": "Información al cliente", "customer": "Información al cliente",
"damage": "Área de Daño", "damage": "Área de Daño",
@@ -1991,7 +1991,7 @@
"total_sales_tax": "", "total_sales_tax": "",
"totals": "", "totals": "",
"unvoidnote": "", "unvoidnote": "",
"update_scheduled_completion": "", "update_scheduled_completion": "",
"vehicle_info": "Vehículo", "vehicle_info": "Vehículo",
"vehicleassociation": "", "vehicleassociation": "",
"viewallocations": "", "viewallocations": "",
@@ -2701,16 +2701,16 @@
"generate": "" "generate": ""
}, },
"labels": { "labels": {
"advanced_filters": "", "advanced_filters": "",
"advanced_filters_show": "", "advanced_filters_filter_field": "",
"advanced_filters_hide": "", "advanced_filters_filter_operator": "",
"advanced_filters_filters": "", "advanced_filters_filter_value": "",
"advanced_filters_sorters": "", "advanced_filters_filters": "",
"advanced_filters_filter_field": "", "advanced_filters_hide": "",
"advanced_filters_sorter_field": "", "advanced_filters_show": "",
"advanced_filters_sorter_direction": "", "advanced_filters_sorter_direction": "",
"advanced_filters_filter_operator": "", "advanced_filters_sorter_field": "",
"advanced_filters_filter_value": "", "advanced_filters_sorters": "",
"dates": "", "dates": "",
"employee": "", "employee": "",
"filterson": "", "filterson": "",
@@ -3083,8 +3083,9 @@
"dashboard": "", "dashboard": "",
"dms": "", "dms": "",
"export-logs": "", "export-logs": "",
"imexonline": "",
"inventory": "", "inventory": "",
"jobs": "Todos los trabajos | $t(titles.app)", "jobs": "Todos los trabajos | {{app}}",
"jobs-admin": "", "jobs-admin": "",
"jobs-all": "", "jobs-all": "",
"jobs-checklist": "", "jobs-checklist": "",
@@ -3092,36 +3093,38 @@
"jobs-create": "", "jobs-create": "",
"jobs-deliver": "", "jobs-deliver": "",
"jobs-intake": "", "jobs-intake": "",
"jobsavailable": "Empleos disponibles | $t(titles.app)", "jobsavailable": "Empleos disponibles | {{app}}",
"jobsdetail": "Trabajo {{ro_number}} | $t(titles.app)", "jobsdetail": "Trabajo {{ro_number}} | {{app}}",
"jobsdocuments": "Documentos de trabajo {{ro_number}} | $t(titles.app)", "jobsdocuments": "Documentos de trabajo {{ro_number}} | {{app}}",
"manageroot": "Casa | $t(titles.app)", "manageroot": "Casa | {{app}}",
"owners": "Todos los propietarios | $t(titles.app)", "owners": "Todos los propietarios | {{app}}",
"owners-detail": "", "owners-detail": "",
"parts-queue": "", "parts-queue": "",
"payments-all": "", "payments-all": "",
"phonebook": "", "phonebook": "",
"productionboard": "", "productionboard": "",
"productionlist": "", "productionlist": "",
"profile": "Mi perfil | $t(titles.app)", "profile": "Mi perfil | {{app}}",
"promanager": "",
"readyjobs": "", "readyjobs": "",
"resetpassword": "", "resetpassword": "",
"resetpasswordvalidate": "", "resetpasswordvalidate": "",
"schedule": "Horario | $t(titles.app)", "romeonline": "",
"schedule": "Horario | {{app}}",
"scoreboard": "", "scoreboard": "",
"shop": "Mi tienda | $t(titles.app)", "shop": "Mi tienda | {{app}}",
"shop-csi": "", "shop-csi": "",
"shop-templates": "", "shop-templates": "",
"shop_vendors": "Vendedores | $t(titles.app)", "shop_vendors": "Vendedores | {{app}}",
"techconsole": "$t(titles.app)", "techconsole": "{{app}}",
"techjobclock": "$t(titles.app)", "techjobclock": "{{app}}",
"techjoblookup": "$t(titles.app)", "techjoblookup": "{{app}}",
"techshiftclock": "$t(titles.app)", "techshiftclock": "{{app}}",
"temporarydocs": "", "temporarydocs": "",
"timetickets": "", "timetickets": "",
"ttapprovals": "", "ttapprovals": "",
"vehicledetail": "Detalles del vehículo {{vehicle}} | $t(titles.app)", "vehicledetail": "Detalles del vehículo {{vehicle}} | {{app}}",
"vehicles": "Todos los vehiculos | $t(titles.app)" "vehicles": "Todos los vehiculos | {{app}}"
}, },
"tt_approvals": { "tt_approvals": {
"actions": { "actions": {

View File

@@ -760,7 +760,7 @@
"driverinformation": "", "driverinformation": "",
"findcontract": "", "findcontract": "",
"findermodal": "", "findermodal": "",
"insuranceexpired": "", "insuranceexpired": "",
"noteconvertedfrom": "", "noteconvertedfrom": "",
"populatefromjob": "", "populatefromjob": "",
"rates": "", "rates": "",
@@ -881,7 +881,7 @@
"labels": { "labels": {
"bodyhrs": "", "bodyhrs": "",
"dollarsinproduction": "", "dollarsinproduction": "",
"phone": "", "phone": "",
"prodhrs": "", "prodhrs": "",
"refhrs": "" "refhrs": ""
}, },
@@ -897,9 +897,9 @@
"productiondollars": "", "productiondollars": "",
"productionhours": "", "productionhours": "",
"projectedmonthlysales": "", "projectedmonthlysales": "",
"scheduledindate": "", "scheduledindate": "",
"scheduledintoday": "", "scheduledintoday": "",
"scheduledoutdate": "", "scheduledoutdate": "",
"scheduledouttoday": "" "scheduledouttoday": ""
} }
}, },
@@ -1147,7 +1147,7 @@
"item": "", "item": "",
"label": "", "label": "",
"loading": "Chargement...", "loading": "Chargement...",
"loadingapp": "Chargement de $t(titles.app)", "loadingapp": "Chargement de {{app}}",
"loadingshop": "Chargement des données de la boutique ...", "loadingshop": "Chargement des données de la boutique ...",
"loggingin": "Vous connecter ...", "loggingin": "Vous connecter ...",
"markedexported": "", "markedexported": "",
@@ -1823,7 +1823,7 @@
"ca_gst_all_if_null": "", "ca_gst_all_if_null": "",
"calc_repair_days": "", "calc_repair_days": "",
"calc_repair_days_tt": "", "calc_repair_days_tt": "",
"calc_scheuled_completion": "", "calc_scheuled_completion": "",
"cards": { "cards": {
"customer": "Informations client", "customer": "Informations client",
"damage": "Zone de dommages", "damage": "Zone de dommages",
@@ -1991,7 +1991,7 @@
"total_sales_tax": "", "total_sales_tax": "",
"totals": "", "totals": "",
"unvoidnote": "", "unvoidnote": "",
"update_scheduled_completion": "", "update_scheduled_completion": "",
"vehicle_info": "Véhicule", "vehicle_info": "Véhicule",
"vehicleassociation": "", "vehicleassociation": "",
"viewallocations": "", "viewallocations": "",
@@ -2701,16 +2701,16 @@
"generate": "" "generate": ""
}, },
"labels": { "labels": {
"advanced_filters": "", "advanced_filters": "",
"advanced_filters_show": "", "advanced_filters_filter_field": "",
"advanced_filters_hide": "", "advanced_filters_filter_operator": "",
"advanced_filters_filters": "", "advanced_filters_filter_value": "",
"advanced_filters_sorters": "", "advanced_filters_filters": "",
"advanced_filters_filter_field": "", "advanced_filters_hide": "",
"advanced_filters_sorter_field": "", "advanced_filters_show": "",
"advanced_filters_sorter_direction": "", "advanced_filters_sorter_direction": "",
"advanced_filters_filter_operator": "", "advanced_filters_sorter_field": "",
"advanced_filters_filter_value": "", "advanced_filters_sorters": "",
"dates": "", "dates": "",
"employee": "", "employee": "",
"filterson": "", "filterson": "",
@@ -3083,8 +3083,9 @@
"dashboard": "", "dashboard": "",
"dms": "", "dms": "",
"export-logs": "", "export-logs": "",
"imexonline": "",
"inventory": "", "inventory": "",
"jobs": "Tous les emplois | $t(titles.app)", "jobs": "Tous les emplois | {{app}}",
"jobs-admin": "", "jobs-admin": "",
"jobs-all": "", "jobs-all": "",
"jobs-checklist": "", "jobs-checklist": "",
@@ -3092,36 +3093,38 @@
"jobs-create": "", "jobs-create": "",
"jobs-deliver": "", "jobs-deliver": "",
"jobs-intake": "", "jobs-intake": "",
"jobsavailable": "Emplois disponibles | $t(titles.app)", "jobsavailable": "Emplois disponibles | {{app}}",
"jobsdetail": "Travail {{ro_number}} | $t(titles.app)", "jobsdetail": "Travail {{ro_number}} | {{app}}",
"jobsdocuments": "Documents de travail {{ro_number}} | $t(titles.app)", "jobsdocuments": "Documents de travail {{ro_number}} | {{app}}",
"manageroot": "Accueil | $t(titles.app)", "manageroot": "Accueil | {{app}}",
"owners": "Tous les propriétaires | $t(titles.app)", "owners": "Tous les propriétaires | {{app}}",
"owners-detail": "", "owners-detail": "",
"parts-queue": "", "parts-queue": "",
"payments-all": "", "payments-all": "",
"phonebook": "", "phonebook": "",
"productionboard": "", "productionboard": "",
"productionlist": "", "productionlist": "",
"profile": "Mon profil | $t(titles.app)", "profile": "Mon profil | {{app}}",
"promanager": "",
"readyjobs": "", "readyjobs": "",
"resetpassword": "", "resetpassword": "",
"resetpasswordvalidate": "", "resetpasswordvalidate": "",
"schedule": "Horaire | $t(titles.app)", "romeonline": "",
"schedule": "Horaire | {{app}}",
"scoreboard": "", "scoreboard": "",
"shop": "Mon magasin | $t(titles.app)", "shop": "Mon magasin | {{app}}",
"shop-csi": "", "shop-csi": "",
"shop-templates": "", "shop-templates": "",
"shop_vendors": "Vendeurs | $t(titles.app)", "shop_vendors": "Vendeurs | {{app}}",
"techconsole": "$t(titles.app)", "techconsole": "{{app}}",
"techjobclock": "$t(titles.app)", "techjobclock": "{{app}}",
"techjoblookup": "$t(titles.app)", "techjoblookup": "{{app}}",
"techshiftclock": "$t(titles.app)", "techshiftclock": "{{app}}",
"temporarydocs": "", "temporarydocs": "",
"timetickets": "", "timetickets": "",
"ttapprovals": "", "ttapprovals": "",
"vehicledetail": "Détails du véhicule {{vehicle} | $t(titles.app)", "vehicledetail": "Détails du véhicule {{vehicle} | {{app}}",
"vehicles": "Tous les véhicules | $t(titles.app)" "vehicles": "Tous les véhicules | {{app}}"
}, },
"tt_approvals": { "tt_approvals": {
"actions": { "actions": {

View File

@@ -1,16 +1,16 @@
import i18n from "i18next"; import i18n from 'i18next';
import LanguageDetector from "i18next-browser-languagedetector"; import LanguageDetector from 'i18next-browser-languagedetector';
import {initReactI18next} from "react-i18next"; import { initReactI18next } from 'react-i18next';
import en_Translation from "./en_us/common.json"; import en_Translation from './en_us/common.json';
import es_Translation from "./es/common.json"; import es_Translation from './es/common.json';
import fr_Translation from "./fr/common.json"; import fr_Translation from './fr/common.json';
// the translations // the translations
// (tip move them in a JSON file and import them) // (tip move them in a JSON file and import them)
const resources = { const resources = {
"en-US": en_Translation, 'en-US': en_Translation,
"fr-CA": fr_Translation, 'fr-CA': fr_Translation,
"es-MX": es_Translation, 'es-MX': es_Translation,
}; };
i18n i18n
.use(initReactI18next) .use(initReactI18next)
@@ -19,14 +19,13 @@ i18n
resources, resources,
//lng: "en", //lng: "en",
detection: {}, detection: {},
fallbackLng: "en-US", fallbackLng: 'en-US',
debug: import.meta.env.PROD ? false : true, debug: import.meta.env.PROD ? false : true,
//keySeparator: false, // we do not use keys in form messages.welcome
//keySeparator: false, // we do not use keys in form messages.welcome interpolation: {
escapeValue: false, // react already safes from xss
interpolation: { skipOnVariables: false,
escapeValue: false, // react already safes from xss },
}, });
});
export default i18n; export default i18n;

View File

@@ -43,8 +43,8 @@ const onServiceWorkerUpdate = (registration) => {
notification.open({ notification.open({
icon: <AlertOutlined/>, icon: <AlertOutlined/>,
message: i18n.t("general.messages.newversiontitle"), message: i18n.t("general.messages.newversiontitle",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})}),
description: i18n.t("general.messages.newversionmessage"), description: i18n.t("general.messages.newversionmessage", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})}),
duration: 0, duration: 0,
btn, btn,
key: "updateavailable", key: "updateavailable",