Merge branch 'feature/IO-2733-pwa-timer' into release/2024-09-13
This commit is contained in:
@@ -226,7 +226,9 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
|
curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
|
||||||
hasura migrate apply --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >>
|
hasura migrate apply --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >>
|
||||||
|
sleep 5
|
||||||
hasura metadata apply --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >>
|
hasura metadata apply --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >>
|
||||||
|
sleep 10
|
||||||
hasura metadata reload --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >>
|
hasura metadata reload --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >>
|
||||||
- jira/notify:
|
- jira/notify:
|
||||||
environment: Test (Rome) - Hasura
|
environment: Test (Rome) - Hasura
|
||||||
@@ -313,7 +315,9 @@ jobs:
|
|||||||
command: |
|
command: |
|
||||||
curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
|
curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
|
||||||
hasura migrate apply --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >>
|
hasura migrate apply --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >>
|
||||||
|
sleep 5
|
||||||
hasura metadata apply --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >>
|
hasura metadata apply --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >>
|
||||||
|
sleep 10
|
||||||
hasura metadata reload --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >>
|
hasura metadata reload --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >>
|
||||||
- jira/notify:
|
- jira/notify:
|
||||||
environment: Test (ImEX) - Hasura
|
environment: Test (ImEX) - Hasura
|
||||||
@@ -433,7 +437,7 @@ workflows:
|
|||||||
branches:
|
branches:
|
||||||
only: master-AIO
|
only: master-AIO
|
||||||
- rome-hasura-migrate:
|
- rome-hasura-migrate:
|
||||||
secret: ${HASURA_PROD_SECRET}
|
secret: ${HASURA_ROME_PROD_SECRET}
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: master-AIO
|
only: master-AIO
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,9 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||||||
|
<meta http-equiv="Pragma" content="no-cache">
|
||||||
|
<meta http-equiv="Expires" content="0">
|
||||||
<% if (env.VITE_APP_INSTANCE === 'IMEX') { %>
|
<% if (env.VITE_APP_INSTANCE === 'IMEX') { %>
|
||||||
<link rel="icon" href="/favicon.png"/>
|
<link rel="icon" href="/favicon.png"/>
|
||||||
<% } %> <% if (env.VITE_APP_INSTANCE === 'ROME') { %>
|
<% } %> <% if (env.VITE_APP_INSTANCE === 'ROME') { %>
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
import { AlertOutlined } from "@ant-design/icons";
|
import { AlertOutlined } from "@ant-design/icons";
|
||||||
import { Alert, Button, Col, Row, Space } from "antd";
|
import { Alert, Button, Col, notification, Row, Space } from "antd";
|
||||||
import i18n from "i18next";
|
import i18n from "i18next";
|
||||||
import React, { useEffect } from "react";
|
import React, { useCallback, useEffect } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import { selectUpdateAvailable } from "../../redux/application/application.selectors";
|
import { selectUpdateAvailable } from "../../redux/application/application.selectors";
|
||||||
import { useRegisterSW } from "virtual:pwa-register/react";
|
import { useRegisterSW } from "virtual:pwa-register/react";
|
||||||
import InstanceRenderManager from "../../utils/instanceRenderMgr";
|
import InstanceRenderManager from "../../utils/instanceRenderMgr";
|
||||||
|
import useCountDown from "../../utils/countdownHook";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
updateAvailable: selectUpdateAvailable
|
updateAvailable: selectUpdateAvailable
|
||||||
@@ -19,6 +20,13 @@ const mapDispatchToProps = (dispatch) => ({
|
|||||||
|
|
||||||
export function UpdateAlert({ updateAvailable }) {
|
export function UpdateAlert({ updateAvailable }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const [
|
||||||
|
timeLeft,
|
||||||
|
{
|
||||||
|
start //pause, resume, reset
|
||||||
|
}
|
||||||
|
] = useCountDown(180000, 1000);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
offlineReady: [offlineReady],
|
offlineReady: [offlineReady],
|
||||||
needRefresh: [needRefresh],
|
needRefresh: [needRefresh],
|
||||||
@@ -40,11 +48,41 @@ export function UpdateAlert({ updateAvailable }) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const ReloadNewVersion = useCallback(() => {
|
||||||
|
updateServiceWorker(true);
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload(true);
|
||||||
|
}, 2000);
|
||||||
|
}, [updateServiceWorker]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (import.meta.env.DEV) {
|
if (needRefresh) {
|
||||||
console.log(`SW Status => Refresh? ${needRefresh} - offlineReady? ${offlineReady}`);
|
start();
|
||||||
}
|
}
|
||||||
}, [needRefresh, offlineReady]);
|
}, [start, needRefresh, offlineReady]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (needRefresh && timeLeft < 60000) {
|
||||||
|
notification.open({
|
||||||
|
type: "warning",
|
||||||
|
closable: false,
|
||||||
|
duration: 65000,
|
||||||
|
key: "autoupdate",
|
||||||
|
message: t("general.actions.autoupdate", {
|
||||||
|
time: (timeLeft / 1000).toFixed(0),
|
||||||
|
app: InstanceRenderManager({
|
||||||
|
imex: "$t(titles.imexonline)",
|
||||||
|
rome: "$t(titles.romeonline)",
|
||||||
|
promanager: "$t(titles.promanager)"
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
placement: "bottomRight"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (needRefresh && timeLeft <= 0) {
|
||||||
|
ReloadNewVersion();
|
||||||
|
}
|
||||||
|
}, [timeLeft, t, needRefresh, ReloadNewVersion]);
|
||||||
|
|
||||||
if (!needRefresh) return null;
|
if (!needRefresh) return null;
|
||||||
|
|
||||||
@@ -75,9 +113,10 @@ export function UpdateAlert({ updateAvailable }) {
|
|||||||
<Button onClick={() => window.open("https://imex-online.noticeable.news/", "_blank")}>
|
<Button onClick={() => window.open("https://imex-online.noticeable.news/", "_blank")}>
|
||||||
{i18n.t("general.actions.viewreleasenotes")}
|
{i18n.t("general.actions.viewreleasenotes")}
|
||||||
</Button>
|
</Button>
|
||||||
<Button type="primary" onClick={() => updateServiceWorker(true)}>
|
<Button type="primary" onClick={() => ReloadNewVersion()}>
|
||||||
{i18n.t("general.actions.refresh")}
|
{i18n.t("general.actions.refresh")} {`(${(timeLeft / 1000).toFixed(0)} s)`}
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button onClick={() => start(300000)}>{i18n.t("general.actions.delay")}</Button>
|
||||||
</Space>
|
</Space>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|||||||
@@ -230,7 +230,7 @@
|
|||||||
"markexported": "Mark Exported",
|
"markexported": "Mark Exported",
|
||||||
"markforreexport": "Mark for Re-export",
|
"markforreexport": "Mark for Re-export",
|
||||||
"new": "New Bill",
|
"new": "New Bill",
|
||||||
"nobilllines": "This part has not yet been recieved.",
|
"nobilllines": "",
|
||||||
"noneselected": "No bill selected.",
|
"noneselected": "No bill selected.",
|
||||||
"onlycmforinvoiced": "Only credit memos can be entered for any Job that has been invoiced, exported, or voided.",
|
"onlycmforinvoiced": "Only credit memos can be entered for any Job that has been invoiced, exported, or voided.",
|
||||||
"printlabels": "Print Labels",
|
"printlabels": "Print Labels",
|
||||||
@@ -270,9 +270,9 @@
|
|||||||
"testrender": "Test Render"
|
"testrender": "Test Render"
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
|
"creatingdefaultview": "Error creating default view.",
|
||||||
"loading": "Unable to load shop details. Please call technical support.",
|
"loading": "Unable to load shop details. Please call technical support.",
|
||||||
"saving": "Error encountered while saving. {{message}}",
|
"saving": "Error encountered while saving. {{message}}"
|
||||||
"creatingdefaultview": "Error creating default view."
|
|
||||||
},
|
},
|
||||||
"fields": {
|
"fields": {
|
||||||
"ReceivableCustomField": "QBO Receivable Custom Field {{number}}",
|
"ReceivableCustomField": "QBO Receivable Custom Field {{number}}",
|
||||||
@@ -296,8 +296,8 @@
|
|||||||
"dailypainttarget": "Scoreboard - Daily Paint Target",
|
"dailypainttarget": "Scoreboard - Daily Paint Target",
|
||||||
"default_adjustment_rate": "Default Labor Deduction Adjustment Rate",
|
"default_adjustment_rate": "Default Labor Deduction Adjustment Rate",
|
||||||
"deliver": {
|
"deliver": {
|
||||||
"templates": "Delivery Templates",
|
"require_actual_delivery_date": "Require Actual Delivery",
|
||||||
"require_actual_delivery_date": "Require Actual Delivery"
|
"templates": "Delivery Templates"
|
||||||
},
|
},
|
||||||
"dms": {
|
"dms": {
|
||||||
"apcontrol": "AP Control Number",
|
"apcontrol": "AP Control Number",
|
||||||
@@ -700,10 +700,10 @@
|
|||||||
"workingdays": "Working Days"
|
"workingdays": "Working Days"
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"save": "Shop configuration saved successfully. ",
|
|
||||||
"unsavedchanges": "Unsaved changes will be lost. Are you sure you want to continue?",
|
|
||||||
"areyousure": "Are you sure you want to continue?",
|
"areyousure": "Are you sure you want to continue?",
|
||||||
"defaultviewcreated": "Default view created successfully."
|
"defaultviewcreated": "Default view created successfully.",
|
||||||
|
"save": "Shop configuration saved successfully. ",
|
||||||
|
"unsavedchanges": "Unsaved changes will be lost. Are you sure you want to continue?"
|
||||||
},
|
},
|
||||||
"validation": {
|
"validation": {
|
||||||
"centermustexist": "The chosen responsibility center does not exist.",
|
"centermustexist": "The chosen responsibility center does not exist.",
|
||||||
@@ -1133,8 +1133,8 @@
|
|||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"defaults": "Defaults",
|
|
||||||
"add": "Add",
|
"add": "Add",
|
||||||
|
"autoupdate": "{{app}} will automatically update in {{time}} seconds. Please save all changes.",
|
||||||
"calculate": "Calculate",
|
"calculate": "Calculate",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"clear": "Clear",
|
"clear": "Clear",
|
||||||
@@ -1142,6 +1142,8 @@
|
|||||||
"copied": "Copied!",
|
"copied": "Copied!",
|
||||||
"copylink": "Copy Link",
|
"copylink": "Copy Link",
|
||||||
"create": "Create",
|
"create": "Create",
|
||||||
|
"defaults": "Defaults",
|
||||||
|
"delay": "Delay Update (5 mins)",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"deleteall": "Delete All",
|
"deleteall": "Delete All",
|
||||||
"deselectall": "Deselect All",
|
"deselectall": "Deselect All",
|
||||||
@@ -1153,10 +1155,12 @@
|
|||||||
"print": "Print",
|
"print": "Print",
|
||||||
"refresh": "Refresh",
|
"refresh": "Refresh",
|
||||||
"remove": "Remove",
|
"remove": "Remove",
|
||||||
|
"remove_alert": "Are you sure you want to dismiss the alert?",
|
||||||
"reset": "Reset your changes.",
|
"reset": "Reset your changes.",
|
||||||
"resetpassword": "Reset Password",
|
"resetpassword": "Reset Password",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"saveandnew": "Save and New",
|
"saveandnew": "Save and New",
|
||||||
|
"saveas": "Save As",
|
||||||
"selectall": "Select All",
|
"selectall": "Select All",
|
||||||
"send": "Send",
|
"send": "Send",
|
||||||
"sendbysms": "Send by SMS",
|
"sendbysms": "Send by SMS",
|
||||||
@@ -1164,9 +1168,7 @@
|
|||||||
"submit": "Submit",
|
"submit": "Submit",
|
||||||
"tryagain": "Try Again",
|
"tryagain": "Try Again",
|
||||||
"view": "View",
|
"view": "View",
|
||||||
"viewreleasenotes": "See What's Changed",
|
"viewreleasenotes": "See What's Changed"
|
||||||
"remove_alert": "Are you sure you want to dismiss the alert?",
|
|
||||||
"saveas": "Save As"
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"fcm": "You must allow notification permissions to have real time messaging. Click to try again.",
|
"fcm": "You must allow notification permissions to have real time messaging. Click to try again.",
|
||||||
@@ -1181,7 +1183,6 @@
|
|||||||
"vehicle": "Vehicle"
|
"vehicle": "Vehicle"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"unsavedchanges": "Unsaved changes.",
|
|
||||||
"actions": "Actions",
|
"actions": "Actions",
|
||||||
"areyousure": "Are you sure?",
|
"areyousure": "Are you sure?",
|
||||||
"barcode": "Barcode",
|
"barcode": "Barcode",
|
||||||
@@ -1250,6 +1251,7 @@
|
|||||||
"tuesday": "Tuesday",
|
"tuesday": "Tuesday",
|
||||||
"tvmode": "TV Mode",
|
"tvmode": "TV Mode",
|
||||||
"unknown": "Unknown",
|
"unknown": "Unknown",
|
||||||
|
"unsavedchanges": "Unsaved changes.",
|
||||||
"username": "Username",
|
"username": "Username",
|
||||||
"view": "View",
|
"view": "View",
|
||||||
"wednesday": "Wednesday",
|
"wednesday": "Wednesday",
|
||||||
@@ -2739,41 +2741,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"production": {
|
"production": {
|
||||||
"constants": {
|
|
||||||
"main_profile": "Default"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"small": "Small",
|
|
||||||
"medium": "Medium",
|
|
||||||
"large": "Large",
|
|
||||||
"vertical": "Vertical",
|
|
||||||
"horizontal": "Horizontal"
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"layout": "Layout",
|
|
||||||
"information": "Information",
|
|
||||||
"statistics_title": "Statistics",
|
|
||||||
"board_settings": "Board Settings",
|
|
||||||
"filters_title": "Filters",
|
|
||||||
"filters": {
|
|
||||||
"md_ins_cos": "Insurance Companies",
|
|
||||||
"md_estimators": "Estimators"
|
|
||||||
},
|
|
||||||
"statistics": {
|
|
||||||
"total_hours_in_production": "Hours in Production",
|
|
||||||
"total_lab_in_production": "Body Hours in Production",
|
|
||||||
"total_lar_in_production": "Refinish Hours in Production",
|
|
||||||
"total_amount_in_production": "Dollars in Production",
|
|
||||||
"jobs_in_production": "Jobs in Production",
|
|
||||||
"total_hours_on_board": "Hours on Board",
|
|
||||||
"total_lab_on_board": "Body Hours on Board",
|
|
||||||
"total_lar_on_board": "Refinish Hours on Board",
|
|
||||||
"total_amount_on_board": "Dollars on Board",
|
|
||||||
"total_jobs_on_board": "Jobs on Board",
|
|
||||||
"tasks_in_production": "Tasks in Production",
|
|
||||||
"tasks_on_board": "Tasks on Board"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"actions": {
|
"actions": {
|
||||||
"addcolumns": "Add Columns",
|
"addcolumns": "Add Columns",
|
||||||
"bodypriority-clear": "Clear Body Priority",
|
"bodypriority-clear": "Clear Body Priority",
|
||||||
@@ -2788,29 +2755,23 @@
|
|||||||
"suspend": "Suspend",
|
"suspend": "Suspend",
|
||||||
"unsuspend": "Unsuspend"
|
"unsuspend": "Unsuspend"
|
||||||
},
|
},
|
||||||
|
"constants": {
|
||||||
|
"main_profile": "Default"
|
||||||
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"boardupdate": "Error encountered updating Job. {{message}}",
|
"boardupdate": "Error encountered updating Job. {{message}}",
|
||||||
"removing": "Error removing from production board. {{error}}",
|
|
||||||
"settings": "Error saving board settings: {{error}}",
|
|
||||||
"name_exists": "A Profile with this name already exists. Please choose a different name.",
|
"name_exists": "A Profile with this name already exists. Please choose a different name.",
|
||||||
"name_required": "Profile name is required."
|
"name_required": "Profile name is required.",
|
||||||
|
"removing": "Error removing from production board. {{error}}",
|
||||||
|
"settings": "Error saving board settings: {{error}}"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"kiosk_mode": "Kiosk Mode",
|
|
||||||
"on": "On",
|
|
||||||
"off": "Off",
|
|
||||||
"wide": "Wide",
|
|
||||||
"tall": "Tall",
|
|
||||||
"vertical": "Vertical",
|
|
||||||
"horizontal": "Horizontal",
|
|
||||||
"orientation": "Board Orientation",
|
|
||||||
"card_size": "Card Size",
|
|
||||||
"model_info": "Vehicle Info",
|
|
||||||
"actual_in": "Actual In",
|
"actual_in": "Actual In",
|
||||||
|
"addnewprofile": "Add New Profile",
|
||||||
"alert": "Alert",
|
"alert": "Alert",
|
||||||
"tasks": "Tasks",
|
|
||||||
"alertoff": "Remove alert from Job",
|
"alertoff": "Remove alert from Job",
|
||||||
"alerton": "Add alert to Job",
|
"alerton": "Add alert to Job",
|
||||||
|
"alerts": "Alerts",
|
||||||
"ats": "Alternative Transportation",
|
"ats": "Alternative Transportation",
|
||||||
"bodyhours": "B",
|
"bodyhours": "B",
|
||||||
"bodypriority": "B/P",
|
"bodypriority": "B/P",
|
||||||
@@ -2820,6 +2781,7 @@
|
|||||||
"qbo_usa": "QBO USA"
|
"qbo_usa": "QBO USA"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"card_size": "Card Size",
|
||||||
"cardcolor": "Colored Cards",
|
"cardcolor": "Colored Cards",
|
||||||
"cardsettings": "Card Settings",
|
"cardsettings": "Card Settings",
|
||||||
"clm_no": "Claim Number",
|
"clm_no": "Claim Number",
|
||||||
@@ -2828,48 +2790,88 @@
|
|||||||
"detailpriority": "D/P",
|
"detailpriority": "D/P",
|
||||||
"employeeassignments": "Employee Assignments",
|
"employeeassignments": "Employee Assignments",
|
||||||
"employeesearch": "Employee Search",
|
"employeesearch": "Employee Search",
|
||||||
|
"estimator": "Estimator",
|
||||||
|
"horizontal": "Horizontal",
|
||||||
"ins_co_nm": "Insurance Company Name",
|
"ins_co_nm": "Insurance Company Name",
|
||||||
"jobdetail": "Job Details",
|
"jobdetail": "Job Details",
|
||||||
|
"kiosk_mode": "Kiosk Mode",
|
||||||
"laborhrs": "Labor Hours",
|
"laborhrs": "Labor Hours",
|
||||||
"legend": "Legend:",
|
"legend": "Legend:",
|
||||||
|
"model_info": "Vehicle Info",
|
||||||
"note": "Production Note",
|
"note": "Production Note",
|
||||||
|
"off": "Off",
|
||||||
|
"on": "On",
|
||||||
|
"orientation": "Board Orientation",
|
||||||
"ownr_nm": "Customer Name",
|
"ownr_nm": "Customer Name",
|
||||||
"paintpriority": "P/P",
|
"paintpriority": "P/P",
|
||||||
"partsstatus": "Parts Status",
|
"partsstatus": "Parts Status",
|
||||||
"estimator": "Estimator",
|
|
||||||
"subtotal": "Subtotal",
|
|
||||||
"production_note": "Production Note",
|
"production_note": "Production Note",
|
||||||
"refinishhours": "R",
|
"refinishhours": "R",
|
||||||
"scheduled_completion": "Scheduled Completion",
|
"scheduled_completion": "Scheduled Completion",
|
||||||
"selectview": "Select a View",
|
"selectview": "Select a View",
|
||||||
"stickyheader": "Sticky Header (BETA)",
|
"stickyheader": "Sticky Header (BETA)",
|
||||||
"sublets": "Sublets",
|
"sublets": "Sublets",
|
||||||
|
"subtotal": "Subtotal",
|
||||||
|
"tall": "Tall",
|
||||||
|
"tasks": "Tasks",
|
||||||
"totalhours": "Total Hrs ",
|
"totalhours": "Total Hrs ",
|
||||||
"touchtime": "T/T",
|
"touchtime": "T/T",
|
||||||
|
"vertical": "Vertical",
|
||||||
"viewname": "View Name",
|
"viewname": "View Name",
|
||||||
"alerts": "Alerts",
|
"wide": "Wide"
|
||||||
"addnewprofile": "Add New Profile"
|
},
|
||||||
|
"options": {
|
||||||
|
"horizontal": "Horizontal",
|
||||||
|
"large": "Large",
|
||||||
|
"medium": "Medium",
|
||||||
|
"small": "Small",
|
||||||
|
"vertical": "Vertical"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"board_settings": "Board Settings",
|
||||||
|
"filters": {
|
||||||
|
"md_estimators": "Estimators",
|
||||||
|
"md_ins_cos": "Insurance Companies"
|
||||||
|
},
|
||||||
|
"filters_title": "Filters",
|
||||||
|
"information": "Information",
|
||||||
|
"layout": "Layout",
|
||||||
|
"statistics": {
|
||||||
|
"jobs_in_production": "Jobs in Production",
|
||||||
|
"tasks_in_production": "Tasks in Production",
|
||||||
|
"tasks_on_board": "Tasks on Board",
|
||||||
|
"total_amount_in_production": "Dollars in Production",
|
||||||
|
"total_amount_on_board": "Dollars on Board",
|
||||||
|
"total_hours_in_production": "Hours in Production",
|
||||||
|
"total_hours_on_board": "Hours on Board",
|
||||||
|
"total_jobs_on_board": "Jobs on Board",
|
||||||
|
"total_lab_in_production": "Body Hours in Production",
|
||||||
|
"total_lab_on_board": "Body Hours on Board",
|
||||||
|
"total_lar_in_production": "Refinish Hours in Production",
|
||||||
|
"total_lar_on_board": "Refinish Hours on Board"
|
||||||
|
},
|
||||||
|
"statistics_title": "Statistics"
|
||||||
|
},
|
||||||
|
"statistics": {
|
||||||
|
"currency_symbol": "$",
|
||||||
|
"hours": "Hours",
|
||||||
|
"jobs": "Jobs",
|
||||||
|
"jobs_in_production": "Jobs in Production",
|
||||||
|
"tasks": "Tasks",
|
||||||
|
"tasks_in_production": "Tasks in Production",
|
||||||
|
"tasks_on_board": "Tasks on Board",
|
||||||
|
"total_amount_in_production": "Dollars in Production",
|
||||||
|
"total_amount_on_board": "Dollars on Board",
|
||||||
|
"total_hours_in_production": "Hours in Production",
|
||||||
|
"total_hours_on_board": "Hours on Board",
|
||||||
|
"total_jobs_on_board": "Jobs on Board",
|
||||||
|
"total_lab_in_production": "Body Hours in Production",
|
||||||
|
"total_lab_on_board": "Body Hours on Board",
|
||||||
|
"total_lar_in_production": "Refinish Hours in Production",
|
||||||
|
"total_lar_on_board": "Refinish Hours on Board"
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"removed": "Job removed from production."
|
"removed": "Job removed from production."
|
||||||
},
|
|
||||||
"statistics": {
|
|
||||||
"total_hours_in_production": "Hours in Production",
|
|
||||||
"total_lab_in_production": "Body Hours in Production",
|
|
||||||
"total_lar_in_production": "Refinish Hours in Production",
|
|
||||||
"total_amount_in_production": "Dollars in Production",
|
|
||||||
"jobs_in_production": "Jobs in Production",
|
|
||||||
"total_hours_on_board": "Hours on Board",
|
|
||||||
"total_lab_on_board": "Body Hours on Board",
|
|
||||||
"total_lar_on_board": "Refinish Hours on Board",
|
|
||||||
"total_amount_on_board": "Dollars on Board",
|
|
||||||
"total_jobs_on_board": "Jobs on Board",
|
|
||||||
"tasks_in_production": "Tasks in Production",
|
|
||||||
"tasks_on_board": "Tasks on Board",
|
|
||||||
"tasks": "Tasks",
|
|
||||||
"hours": "Hours",
|
|
||||||
"currency_symbol": "$",
|
|
||||||
"jobs": "Jobs"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
@@ -3420,6 +3422,18 @@
|
|||||||
"vehicledetail": "Vehicle Details {{vehicle}} | {{app}}",
|
"vehicledetail": "Vehicle Details {{vehicle}} | {{app}}",
|
||||||
"vehicles": "All Vehicles | {{app}}"
|
"vehicles": "All Vehicles | {{app}}"
|
||||||
},
|
},
|
||||||
|
"trello": {
|
||||||
|
"labels": {
|
||||||
|
"add_card": "Add Card",
|
||||||
|
"add_lane": "Add Lane",
|
||||||
|
"cancel": "Cancel",
|
||||||
|
"delete_lane": "Delete Lane",
|
||||||
|
"description": "Description",
|
||||||
|
"label": "Label",
|
||||||
|
"lane_actions": "Lane Actions",
|
||||||
|
"title": "Title"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tt_approvals": {
|
"tt_approvals": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"approveselected": "Approve Selected"
|
"approveselected": "Approve Selected"
|
||||||
@@ -3558,18 +3572,6 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"unique_vendor_name": "You must enter a unique vendor name."
|
"unique_vendor_name": "You must enter a unique vendor name."
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"trello": {
|
|
||||||
"labels": {
|
|
||||||
"add_card": "Add Card",
|
|
||||||
"add_lane": "Add Lane",
|
|
||||||
"delete_lane": "Delete Lane",
|
|
||||||
"lane_actions": "Lane Actions",
|
|
||||||
"title": "Title",
|
|
||||||
"description": "Description",
|
|
||||||
"label": "Label",
|
|
||||||
"cancel": "Cancel"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -270,9 +270,9 @@
|
|||||||
"testrender": ""
|
"testrender": ""
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
|
"creatingdefaultview": "",
|
||||||
"loading": "No se pueden cargar los detalles de la tienda. Por favor llame al soporte técnico.",
|
"loading": "No se pueden cargar los detalles de la tienda. Por favor llame al soporte técnico.",
|
||||||
"saving": "",
|
"saving": ""
|
||||||
"creatingdefaultview": ""
|
|
||||||
},
|
},
|
||||||
"fields": {
|
"fields": {
|
||||||
"ReceivableCustomField": "",
|
"ReceivableCustomField": "",
|
||||||
@@ -296,8 +296,8 @@
|
|||||||
"dailypainttarget": "",
|
"dailypainttarget": "",
|
||||||
"default_adjustment_rate": "",
|
"default_adjustment_rate": "",
|
||||||
"deliver": {
|
"deliver": {
|
||||||
"templates": "",
|
"require_actual_delivery_date": "",
|
||||||
"require_actual_delivery_date": ""
|
"templates": ""
|
||||||
},
|
},
|
||||||
"dms": {
|
"dms": {
|
||||||
"apcontrol": "",
|
"apcontrol": "",
|
||||||
@@ -700,10 +700,10 @@
|
|||||||
"workingdays": ""
|
"workingdays": ""
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"save": "",
|
|
||||||
"unsavedchanges": "",
|
|
||||||
"areyousure": "",
|
"areyousure": "",
|
||||||
"defaultviewcreated": ""
|
"defaultviewcreated": "",
|
||||||
|
"save": "",
|
||||||
|
"unsavedchanges": ""
|
||||||
},
|
},
|
||||||
"validation": {
|
"validation": {
|
||||||
"centermustexist": "",
|
"centermustexist": "",
|
||||||
@@ -1133,8 +1133,8 @@
|
|||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"defaults": "defaults",
|
|
||||||
"add": "",
|
"add": "",
|
||||||
|
"autoupdate": "",
|
||||||
"calculate": "",
|
"calculate": "",
|
||||||
"cancel": "",
|
"cancel": "",
|
||||||
"clear": "",
|
"clear": "",
|
||||||
@@ -1142,6 +1142,8 @@
|
|||||||
"copied": "",
|
"copied": "",
|
||||||
"copylink": "",
|
"copylink": "",
|
||||||
"create": "",
|
"create": "",
|
||||||
|
"defaults": "defaults",
|
||||||
|
"delay": "",
|
||||||
"delete": "Borrar",
|
"delete": "Borrar",
|
||||||
"deleteall": "",
|
"deleteall": "",
|
||||||
"deselectall": "",
|
"deselectall": "",
|
||||||
@@ -1153,10 +1155,12 @@
|
|||||||
"print": "",
|
"print": "",
|
||||||
"refresh": "",
|
"refresh": "",
|
||||||
"remove": "",
|
"remove": "",
|
||||||
|
"remove_alert": "",
|
||||||
"reset": " Restablecer a original.",
|
"reset": " Restablecer a original.",
|
||||||
"resetpassword": "",
|
"resetpassword": "",
|
||||||
"save": "Salvar",
|
"save": "Salvar",
|
||||||
"saveandnew": "",
|
"saveandnew": "",
|
||||||
|
"saveas": "",
|
||||||
"selectall": "",
|
"selectall": "",
|
||||||
"send": "",
|
"send": "",
|
||||||
"sendbysms": "",
|
"sendbysms": "",
|
||||||
@@ -1164,9 +1168,7 @@
|
|||||||
"submit": "",
|
"submit": "",
|
||||||
"tryagain": "",
|
"tryagain": "",
|
||||||
"view": "",
|
"view": "",
|
||||||
"viewreleasenotes": "",
|
"viewreleasenotes": ""
|
||||||
"remove_alert": "",
|
|
||||||
"saveas": ""
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"fcm": "",
|
"fcm": "",
|
||||||
@@ -1181,7 +1183,6 @@
|
|||||||
"vehicle": ""
|
"vehicle": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"unsavedchanges": "",
|
|
||||||
"actions": "Comportamiento",
|
"actions": "Comportamiento",
|
||||||
"areyousure": "",
|
"areyousure": "",
|
||||||
"barcode": "código de barras",
|
"barcode": "código de barras",
|
||||||
@@ -1250,6 +1251,7 @@
|
|||||||
"tuesday": "",
|
"tuesday": "",
|
||||||
"tvmode": "",
|
"tvmode": "",
|
||||||
"unknown": "Desconocido",
|
"unknown": "Desconocido",
|
||||||
|
"unsavedchanges": "",
|
||||||
"username": "",
|
"username": "",
|
||||||
"view": "",
|
"view": "",
|
||||||
"wednesday": "",
|
"wednesday": "",
|
||||||
@@ -2739,41 +2741,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"production": {
|
"production": {
|
||||||
"constants": {
|
|
||||||
"main_profile": ""
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"small": "",
|
|
||||||
"medium": "",
|
|
||||||
"large": "",
|
|
||||||
"vertical": "",
|
|
||||||
"horizontal": ""
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"layout": "",
|
|
||||||
"information": "",
|
|
||||||
"statistics_title": "",
|
|
||||||
"board_settings": "",
|
|
||||||
"filters_title": "",
|
|
||||||
"filters": {
|
|
||||||
"md_ins_cos": "",
|
|
||||||
"md_estimators": ""
|
|
||||||
},
|
|
||||||
"statistics": {
|
|
||||||
"total_hours_in_production": "",
|
|
||||||
"total_lab_in_production": "",
|
|
||||||
"total_lar_in_production": "",
|
|
||||||
"total_amount_in_production": "",
|
|
||||||
"jobs_in_production": "",
|
|
||||||
"total_hours_on_board": "",
|
|
||||||
"total_lab_on_board": "",
|
|
||||||
"total_lar_on_board": "",
|
|
||||||
"total_amount_on_board": "",
|
|
||||||
"total_jobs_on_board": "",
|
|
||||||
"tasks_in_production": "",
|
|
||||||
"tasks_on_board": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"actions": {
|
"actions": {
|
||||||
"addcolumns": "",
|
"addcolumns": "",
|
||||||
"bodypriority-clear": "",
|
"bodypriority-clear": "",
|
||||||
@@ -2788,29 +2755,23 @@
|
|||||||
"suspend": "",
|
"suspend": "",
|
||||||
"unsuspend": ""
|
"unsuspend": ""
|
||||||
},
|
},
|
||||||
|
"constants": {
|
||||||
|
"main_profile": ""
|
||||||
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"boardupdate": "",
|
"boardupdate": "",
|
||||||
"removing": "",
|
|
||||||
"settings": "",
|
|
||||||
"name_exists": "",
|
"name_exists": "",
|
||||||
"name_required": ""
|
"name_required": "",
|
||||||
|
"removing": "",
|
||||||
|
"settings": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"kiosk_mode": "",
|
|
||||||
"on": "",
|
|
||||||
"off": "",
|
|
||||||
"wide": "",
|
|
||||||
"tall": "",
|
|
||||||
"vertical": "",
|
|
||||||
"horizontal": "",
|
|
||||||
"orientation": "",
|
|
||||||
"card_size": "",
|
|
||||||
"model_info": "",
|
|
||||||
"actual_in": "",
|
"actual_in": "",
|
||||||
|
"addnewprofile": "",
|
||||||
"alert": "",
|
"alert": "",
|
||||||
"tasks": "",
|
|
||||||
"alertoff": "",
|
"alertoff": "",
|
||||||
"alerton": "",
|
"alerton": "",
|
||||||
|
"alerts": "",
|
||||||
"ats": "",
|
"ats": "",
|
||||||
"bodyhours": "",
|
"bodyhours": "",
|
||||||
"bodypriority": "",
|
"bodypriority": "",
|
||||||
@@ -2820,6 +2781,7 @@
|
|||||||
"qbo_usa": ""
|
"qbo_usa": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"card_size": "",
|
||||||
"cardcolor": "",
|
"cardcolor": "",
|
||||||
"cardsettings": "",
|
"cardsettings": "",
|
||||||
"clm_no": "",
|
"clm_no": "",
|
||||||
@@ -2828,48 +2790,88 @@
|
|||||||
"detailpriority": "",
|
"detailpriority": "",
|
||||||
"employeeassignments": "",
|
"employeeassignments": "",
|
||||||
"employeesearch": "",
|
"employeesearch": "",
|
||||||
|
"estimator": "",
|
||||||
|
"horizontal": "",
|
||||||
"ins_co_nm": "",
|
"ins_co_nm": "",
|
||||||
"jobdetail": "",
|
"jobdetail": "",
|
||||||
|
"kiosk_mode": "",
|
||||||
"laborhrs": "",
|
"laborhrs": "",
|
||||||
"legend": "",
|
"legend": "",
|
||||||
|
"model_info": "",
|
||||||
"note": "",
|
"note": "",
|
||||||
|
"off": "",
|
||||||
|
"on": "",
|
||||||
|
"orientation": "",
|
||||||
"ownr_nm": "",
|
"ownr_nm": "",
|
||||||
"paintpriority": "",
|
"paintpriority": "",
|
||||||
"partsstatus": "",
|
"partsstatus": "",
|
||||||
"estimator": "",
|
|
||||||
"subtotal": "",
|
|
||||||
"production_note": "",
|
"production_note": "",
|
||||||
"refinishhours": "",
|
"refinishhours": "",
|
||||||
"scheduled_completion": "",
|
"scheduled_completion": "",
|
||||||
"selectview": "",
|
"selectview": "",
|
||||||
"stickyheader": "",
|
"stickyheader": "",
|
||||||
"sublets": "",
|
"sublets": "",
|
||||||
|
"subtotal": "",
|
||||||
|
"tall": "",
|
||||||
|
"tasks": "",
|
||||||
"totalhours": "",
|
"totalhours": "",
|
||||||
"touchtime": "",
|
"touchtime": "",
|
||||||
|
"vertical": "",
|
||||||
"viewname": "",
|
"viewname": "",
|
||||||
"alerts": "",
|
"wide": ""
|
||||||
"addnewprofile": ""
|
},
|
||||||
|
"options": {
|
||||||
|
"horizontal": "",
|
||||||
|
"large": "",
|
||||||
|
"medium": "",
|
||||||
|
"small": "",
|
||||||
|
"vertical": ""
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"board_settings": "",
|
||||||
|
"filters": {
|
||||||
|
"md_estimators": "",
|
||||||
|
"md_ins_cos": ""
|
||||||
|
},
|
||||||
|
"filters_title": "",
|
||||||
|
"information": "",
|
||||||
|
"layout": "",
|
||||||
|
"statistics": {
|
||||||
|
"jobs_in_production": "",
|
||||||
|
"tasks_in_production": "",
|
||||||
|
"tasks_on_board": "",
|
||||||
|
"total_amount_in_production": "",
|
||||||
|
"total_amount_on_board": "",
|
||||||
|
"total_hours_in_production": "",
|
||||||
|
"total_hours_on_board": "",
|
||||||
|
"total_jobs_on_board": "",
|
||||||
|
"total_lab_in_production": "",
|
||||||
|
"total_lab_on_board": "",
|
||||||
|
"total_lar_in_production": "",
|
||||||
|
"total_lar_on_board": ""
|
||||||
|
},
|
||||||
|
"statistics_title": ""
|
||||||
|
},
|
||||||
|
"statistics": {
|
||||||
|
"currency_symbol": "",
|
||||||
|
"hours": "",
|
||||||
|
"jobs": "",
|
||||||
|
"jobs_in_production": "",
|
||||||
|
"tasks": "",
|
||||||
|
"tasks_in_production": "",
|
||||||
|
"tasks_on_board": "",
|
||||||
|
"total_amount_in_production": "",
|
||||||
|
"total_amount_on_board": "",
|
||||||
|
"total_hours_in_production": "",
|
||||||
|
"total_hours_on_board": "",
|
||||||
|
"total_jobs_on_board": "",
|
||||||
|
"total_lab_in_production": "",
|
||||||
|
"total_lab_on_board": "",
|
||||||
|
"total_lar_in_production": "",
|
||||||
|
"total_lar_on_board": ""
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"removed": ""
|
"removed": ""
|
||||||
},
|
|
||||||
"statistics": {
|
|
||||||
"total_hours_in_production": "",
|
|
||||||
"total_lab_in_production": "",
|
|
||||||
"total_lar_in_production": "",
|
|
||||||
"total_amount_in_production": "",
|
|
||||||
"jobs_in_production": "",
|
|
||||||
"total_hours_on_board": "",
|
|
||||||
"total_lab_on_board": "",
|
|
||||||
"total_lar_on_board": "",
|
|
||||||
"total_amount_on_board": "",
|
|
||||||
"total_jobs_on_board": "",
|
|
||||||
"tasks_in_production": "",
|
|
||||||
"tasks_on_board": "",
|
|
||||||
"tasks": "",
|
|
||||||
"hours": "",
|
|
||||||
"currency_symbol": "",
|
|
||||||
"jobs": ""
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
@@ -3420,6 +3422,18 @@
|
|||||||
"vehicledetail": "Detalles del vehículo {{vehicle}} | {{app}}",
|
"vehicledetail": "Detalles del vehículo {{vehicle}} | {{app}}",
|
||||||
"vehicles": "Todos los vehiculos | {{app}}"
|
"vehicles": "Todos los vehiculos | {{app}}"
|
||||||
},
|
},
|
||||||
|
"trello": {
|
||||||
|
"labels": {
|
||||||
|
"add_card": "",
|
||||||
|
"add_lane": "",
|
||||||
|
"cancel": "",
|
||||||
|
"delete_lane": "",
|
||||||
|
"description": "",
|
||||||
|
"label": "",
|
||||||
|
"lane_actions": "",
|
||||||
|
"title": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"tt_approvals": {
|
"tt_approvals": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"approveselected": ""
|
"approveselected": ""
|
||||||
@@ -3558,18 +3572,6 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"unique_vendor_name": ""
|
"unique_vendor_name": ""
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"trello": {
|
|
||||||
"labels": {
|
|
||||||
"add_card": "",
|
|
||||||
"add_lane": "",
|
|
||||||
"delete_lane": "",
|
|
||||||
"lane_actions": "",
|
|
||||||
"title": "",
|
|
||||||
"description": "",
|
|
||||||
"label": "",
|
|
||||||
"cancel": ""
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -270,9 +270,9 @@
|
|||||||
"testrender": ""
|
"testrender": ""
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
|
"creatingdefaultview": "",
|
||||||
"loading": "Impossible de charger les détails de la boutique. Veuillez appeler le support technique.",
|
"loading": "Impossible de charger les détails de la boutique. Veuillez appeler le support technique.",
|
||||||
"saving": "",
|
"saving": ""
|
||||||
"creatingdefaultview": ""
|
|
||||||
},
|
},
|
||||||
"fields": {
|
"fields": {
|
||||||
"ReceivableCustomField": "",
|
"ReceivableCustomField": "",
|
||||||
@@ -296,8 +296,8 @@
|
|||||||
"dailypainttarget": "",
|
"dailypainttarget": "",
|
||||||
"default_adjustment_rate": "",
|
"default_adjustment_rate": "",
|
||||||
"deliver": {
|
"deliver": {
|
||||||
"templates": "",
|
"require_actual_delivery_date": "",
|
||||||
"require_actual_delivery_date": ""
|
"templates": ""
|
||||||
},
|
},
|
||||||
"dms": {
|
"dms": {
|
||||||
"apcontrol": "",
|
"apcontrol": "",
|
||||||
@@ -700,10 +700,10 @@
|
|||||||
"workingdays": ""
|
"workingdays": ""
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"save": "",
|
|
||||||
"unsavedchanges": "",
|
|
||||||
"areyousure": "",
|
"areyousure": "",
|
||||||
"defaultviewcreated": ""
|
"defaultviewcreated": "",
|
||||||
|
"save": "",
|
||||||
|
"unsavedchanges": ""
|
||||||
},
|
},
|
||||||
"validation": {
|
"validation": {
|
||||||
"centermustexist": "",
|
"centermustexist": "",
|
||||||
@@ -1133,8 +1133,8 @@
|
|||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"defaults": "",
|
|
||||||
"add": "",
|
"add": "",
|
||||||
|
"autoupdate": "",
|
||||||
"calculate": "",
|
"calculate": "",
|
||||||
"cancel": "",
|
"cancel": "",
|
||||||
"clear": "",
|
"clear": "",
|
||||||
@@ -1142,6 +1142,8 @@
|
|||||||
"copied": "",
|
"copied": "",
|
||||||
"copylink": "",
|
"copylink": "",
|
||||||
"create": "",
|
"create": "",
|
||||||
|
"defaults": "",
|
||||||
|
"delay": "",
|
||||||
"delete": "Effacer",
|
"delete": "Effacer",
|
||||||
"deleteall": "",
|
"deleteall": "",
|
||||||
"deselectall": "",
|
"deselectall": "",
|
||||||
@@ -1153,10 +1155,12 @@
|
|||||||
"print": "",
|
"print": "",
|
||||||
"refresh": "",
|
"refresh": "",
|
||||||
"remove": "",
|
"remove": "",
|
||||||
|
"remove_alert": "",
|
||||||
"reset": " Rétablir l'original.",
|
"reset": " Rétablir l'original.",
|
||||||
"resetpassword": "",
|
"resetpassword": "",
|
||||||
"save": "sauvegarder",
|
"save": "sauvegarder",
|
||||||
"saveandnew": "",
|
"saveandnew": "",
|
||||||
|
"saveas": "",
|
||||||
"selectall": "",
|
"selectall": "",
|
||||||
"send": "",
|
"send": "",
|
||||||
"sendbysms": "",
|
"sendbysms": "",
|
||||||
@@ -1164,9 +1168,7 @@
|
|||||||
"submit": "",
|
"submit": "",
|
||||||
"tryagain": "",
|
"tryagain": "",
|
||||||
"view": "",
|
"view": "",
|
||||||
"viewreleasenotes": "",
|
"viewreleasenotes": ""
|
||||||
"remove_alert": "",
|
|
||||||
"saveas": ""
|
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"fcm": "",
|
"fcm": "",
|
||||||
@@ -1181,7 +1183,6 @@
|
|||||||
"vehicle": ""
|
"vehicle": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"unsavedchanges": "",
|
|
||||||
"actions": "actes",
|
"actions": "actes",
|
||||||
"areyousure": "",
|
"areyousure": "",
|
||||||
"barcode": "code à barre",
|
"barcode": "code à barre",
|
||||||
@@ -1250,6 +1251,7 @@
|
|||||||
"tuesday": "",
|
"tuesday": "",
|
||||||
"tvmode": "",
|
"tvmode": "",
|
||||||
"unknown": "Inconnu",
|
"unknown": "Inconnu",
|
||||||
|
"unsavedchanges": "",
|
||||||
"username": "",
|
"username": "",
|
||||||
"view": "",
|
"view": "",
|
||||||
"wednesday": "",
|
"wednesday": "",
|
||||||
@@ -2739,41 +2741,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"production": {
|
"production": {
|
||||||
"constants": {
|
|
||||||
"main_profile": ""
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"small": "",
|
|
||||||
"medium": "",
|
|
||||||
"large": "",
|
|
||||||
"vertical": "",
|
|
||||||
"horizontal": ""
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"layout": "",
|
|
||||||
"information": "",
|
|
||||||
"statistics_title": "",
|
|
||||||
"board_settings": "",
|
|
||||||
"filters_title": "",
|
|
||||||
"filters": {
|
|
||||||
"md_ins_cos": "",
|
|
||||||
"md_estimators": ""
|
|
||||||
},
|
|
||||||
"statistics": {
|
|
||||||
"total_hours_in_production": "",
|
|
||||||
"total_lab_in_production": "",
|
|
||||||
"total_lar_in_production": "",
|
|
||||||
"total_amount_in_production": "",
|
|
||||||
"jobs_in_production": "",
|
|
||||||
"total_hours_on_board": "",
|
|
||||||
"total_lab_on_board": "",
|
|
||||||
"total_lar_on_board": "",
|
|
||||||
"total_amount_on_board": "",
|
|
||||||
"total_jobs_on_board": "",
|
|
||||||
"tasks_in_production": "",
|
|
||||||
"tasks_on_board": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"actions": {
|
"actions": {
|
||||||
"addcolumns": "",
|
"addcolumns": "",
|
||||||
"bodypriority-clear": "",
|
"bodypriority-clear": "",
|
||||||
@@ -2788,29 +2755,23 @@
|
|||||||
"suspend": "",
|
"suspend": "",
|
||||||
"unsuspend": ""
|
"unsuspend": ""
|
||||||
},
|
},
|
||||||
|
"constants": {
|
||||||
|
"main_profile": ""
|
||||||
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"boardupdate": "",
|
"boardupdate": "",
|
||||||
"removing": "",
|
|
||||||
"settings": "",
|
|
||||||
"name_exists": "",
|
"name_exists": "",
|
||||||
"name_required": ""
|
"name_required": "",
|
||||||
|
"removing": "",
|
||||||
|
"settings": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"kiosk_mode": "",
|
|
||||||
"on": "",
|
|
||||||
"off": "",
|
|
||||||
"wide": "",
|
|
||||||
"tall": "",
|
|
||||||
"vertical": "",
|
|
||||||
"horizontal": "",
|
|
||||||
"orientation": "",
|
|
||||||
"card_size": "",
|
|
||||||
"model_info": "",
|
|
||||||
"actual_in": "",
|
"actual_in": "",
|
||||||
|
"addnewprofile": "",
|
||||||
"alert": "",
|
"alert": "",
|
||||||
"tasks": "",
|
|
||||||
"alertoff": "",
|
"alertoff": "",
|
||||||
"alerton": "",
|
"alerton": "",
|
||||||
|
"alerts": "",
|
||||||
"ats": "",
|
"ats": "",
|
||||||
"bodyhours": "",
|
"bodyhours": "",
|
||||||
"bodypriority": "",
|
"bodypriority": "",
|
||||||
@@ -2820,6 +2781,7 @@
|
|||||||
"qbo_usa": ""
|
"qbo_usa": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"card_size": "",
|
||||||
"cardcolor": "",
|
"cardcolor": "",
|
||||||
"cardsettings": "",
|
"cardsettings": "",
|
||||||
"clm_no": "",
|
"clm_no": "",
|
||||||
@@ -2828,48 +2790,88 @@
|
|||||||
"detailpriority": "",
|
"detailpriority": "",
|
||||||
"employeeassignments": "",
|
"employeeassignments": "",
|
||||||
"employeesearch": "",
|
"employeesearch": "",
|
||||||
|
"estimator": "",
|
||||||
|
"horizontal": "",
|
||||||
"ins_co_nm": "",
|
"ins_co_nm": "",
|
||||||
"jobdetail": "",
|
"jobdetail": "",
|
||||||
|
"kiosk_mode": "",
|
||||||
"laborhrs": "",
|
"laborhrs": "",
|
||||||
"legend": "",
|
"legend": "",
|
||||||
|
"model_info": "",
|
||||||
"note": "",
|
"note": "",
|
||||||
|
"off": "",
|
||||||
|
"on": "",
|
||||||
|
"orientation": "",
|
||||||
"ownr_nm": "",
|
"ownr_nm": "",
|
||||||
"paintpriority": "",
|
"paintpriority": "",
|
||||||
"partsstatus": "",
|
"partsstatus": "",
|
||||||
"estimator": "",
|
|
||||||
"subtotal": "",
|
|
||||||
"production_note": "",
|
"production_note": "",
|
||||||
"refinishhours": "",
|
"refinishhours": "",
|
||||||
"scheduled_completion": "",
|
"scheduled_completion": "",
|
||||||
"selectview": "",
|
"selectview": "",
|
||||||
"stickyheader": "",
|
"stickyheader": "",
|
||||||
"sublets": "",
|
"sublets": "",
|
||||||
|
"subtotal": "",
|
||||||
|
"tall": "",
|
||||||
|
"tasks": "",
|
||||||
"totalhours": "",
|
"totalhours": "",
|
||||||
"touchtime": "",
|
"touchtime": "",
|
||||||
|
"vertical": "",
|
||||||
"viewname": "",
|
"viewname": "",
|
||||||
"alerts": "",
|
"wide": ""
|
||||||
"addnewprofile": ""
|
},
|
||||||
|
"options": {
|
||||||
|
"horizontal": "",
|
||||||
|
"large": "",
|
||||||
|
"medium": "",
|
||||||
|
"small": "",
|
||||||
|
"vertical": ""
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"board_settings": "",
|
||||||
|
"filters": {
|
||||||
|
"md_estimators": "",
|
||||||
|
"md_ins_cos": ""
|
||||||
|
},
|
||||||
|
"filters_title": "",
|
||||||
|
"information": "",
|
||||||
|
"layout": "",
|
||||||
|
"statistics": {
|
||||||
|
"jobs_in_production": "",
|
||||||
|
"tasks_in_production": "",
|
||||||
|
"tasks_on_board": "",
|
||||||
|
"total_amount_in_production": "",
|
||||||
|
"total_amount_on_board": "",
|
||||||
|
"total_hours_in_production": "",
|
||||||
|
"total_hours_on_board": "",
|
||||||
|
"total_jobs_on_board": "",
|
||||||
|
"total_lab_in_production": "",
|
||||||
|
"total_lab_on_board": "",
|
||||||
|
"total_lar_in_production": "",
|
||||||
|
"total_lar_on_board": ""
|
||||||
|
},
|
||||||
|
"statistics_title": ""
|
||||||
|
},
|
||||||
|
"statistics": {
|
||||||
|
"currency_symbol": "",
|
||||||
|
"hours": "",
|
||||||
|
"jobs": "",
|
||||||
|
"jobs_in_production": "",
|
||||||
|
"tasks": "",
|
||||||
|
"tasks_in_production": "",
|
||||||
|
"tasks_on_board": "",
|
||||||
|
"total_amount_in_production": "",
|
||||||
|
"total_amount_on_board": "",
|
||||||
|
"total_hours_in_production": "",
|
||||||
|
"total_hours_on_board": "",
|
||||||
|
"total_jobs_on_board": "",
|
||||||
|
"total_lab_in_production": "",
|
||||||
|
"total_lab_on_board": "",
|
||||||
|
"total_lar_in_production": "",
|
||||||
|
"total_lar_on_board": ""
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"removed": ""
|
"removed": ""
|
||||||
},
|
|
||||||
"statistics": {
|
|
||||||
"total_hours_in_production": "",
|
|
||||||
"total_lab_in_production": "",
|
|
||||||
"total_lar_in_production": "",
|
|
||||||
"total_amount_in_production": "",
|
|
||||||
"jobs_in_production": "",
|
|
||||||
"total_hours_on_board": "",
|
|
||||||
"total_lab_on_board": "",
|
|
||||||
"total_lar_on_board": "",
|
|
||||||
"total_amount_on_board": "",
|
|
||||||
"total_jobs_on_board": "",
|
|
||||||
"tasks_in_production": "",
|
|
||||||
"tasks_on_board": "",
|
|
||||||
"tasks": "",
|
|
||||||
"hours": "",
|
|
||||||
"currency_symbol": "",
|
|
||||||
"jobs": ""
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
@@ -3420,6 +3422,18 @@
|
|||||||
"vehicledetail": "Détails du véhicule {{vehicle} | {{app}}",
|
"vehicledetail": "Détails du véhicule {{vehicle} | {{app}}",
|
||||||
"vehicles": "Tous les véhicules | {{app}}"
|
"vehicles": "Tous les véhicules | {{app}}"
|
||||||
},
|
},
|
||||||
|
"trello": {
|
||||||
|
"labels": {
|
||||||
|
"add_card": "",
|
||||||
|
"add_lane": "",
|
||||||
|
"cancel": "",
|
||||||
|
"delete_lane": "",
|
||||||
|
"description": "",
|
||||||
|
"label": "",
|
||||||
|
"lane_actions": "",
|
||||||
|
"title": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"tt_approvals": {
|
"tt_approvals": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"approveselected": ""
|
"approveselected": ""
|
||||||
@@ -3558,18 +3572,6 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"unique_vendor_name": ""
|
"unique_vendor_name": ""
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"trello": {
|
|
||||||
"labels": {
|
|
||||||
"add_card": "",
|
|
||||||
"add_lane": "",
|
|
||||||
"delete_lane": "",
|
|
||||||
"lane_actions": "",
|
|
||||||
"title": "",
|
|
||||||
"description": "",
|
|
||||||
"label": "",
|
|
||||||
"cancel": ""
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
84
client/src/utils/countdownHook.js
Normal file
84
client/src/utils/countdownHook.js
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
const useCountDown = (timeToCount = 60 * 1000, interval = 1000) => {
|
||||||
|
const [timeLeft, setTimeLeft] = React.useState(0);
|
||||||
|
const timer = React.useRef({});
|
||||||
|
|
||||||
|
const run = (ts) => {
|
||||||
|
if (!timer.current.started) {
|
||||||
|
timer.current.started = ts;
|
||||||
|
timer.current.lastInterval = ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
const localInterval = Math.min(interval, timer.current.timeLeft || Infinity);
|
||||||
|
if (ts - timer.current.lastInterval >= localInterval) {
|
||||||
|
timer.current.lastInterval += localInterval;
|
||||||
|
setTimeLeft((timeLeft) => {
|
||||||
|
timer.current.timeLeft = timeLeft - localInterval;
|
||||||
|
return timer.current.timeLeft;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ts - timer.current.started < timer.current.timeToCount) {
|
||||||
|
timer.current.requestId = window.requestAnimationFrame(run);
|
||||||
|
} else {
|
||||||
|
timer.current = {};
|
||||||
|
setTimeLeft(0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const start = React.useCallback(
|
||||||
|
(ttc) => {
|
||||||
|
window.cancelAnimationFrame(timer.current.requestId);
|
||||||
|
|
||||||
|
const newTimeToCount = ttc !== undefined ? ttc : timeToCount;
|
||||||
|
timer.current.started = null;
|
||||||
|
timer.current.lastInterval = null;
|
||||||
|
timer.current.timeToCount = newTimeToCount;
|
||||||
|
timer.current.requestId = window.requestAnimationFrame(run);
|
||||||
|
|
||||||
|
setTimeLeft(newTimeToCount);
|
||||||
|
},
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
|
const pause = React.useCallback(() => {
|
||||||
|
window.cancelAnimationFrame(timer.current.requestId);
|
||||||
|
timer.current.started = null;
|
||||||
|
timer.current.lastInterval = null;
|
||||||
|
timer.current.timeToCount = timer.current.timeLeft;
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const resume = React.useCallback(
|
||||||
|
() => {
|
||||||
|
if (!timer.current.started && timer.current.timeLeft > 0) {
|
||||||
|
window.cancelAnimationFrame(timer.current.requestId);
|
||||||
|
timer.current.requestId = window.requestAnimationFrame(run);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
|
const reset = React.useCallback(() => {
|
||||||
|
if (timer.current.timeLeft) {
|
||||||
|
window.cancelAnimationFrame(timer.current.requestId);
|
||||||
|
timer.current = {};
|
||||||
|
setTimeLeft(0);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const actions = React.useMemo(
|
||||||
|
() => ({ start, pause, resume, reset }), // eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
return () => window.cancelAnimationFrame(timer.current.requestId);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return [timeLeft, actions];
|
||||||
|
};
|
||||||
|
|
||||||
|
export default useCountDown;
|
||||||
Reference in New Issue
Block a user