diff --git a/client/src/components/chat-media-selector/chat-media-selector.component.jsx b/client/src/components/chat-media-selector/chat-media-selector.component.jsx index 60156294a..35ea6fe1d 100644 --- a/client/src/components/chat-media-selector/chat-media-selector.component.jsx +++ b/client/src/components/chat-media-selector/chat-media-selector.component.jsx @@ -6,12 +6,13 @@ import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { GET_DOCUMENTS_BY_JOB } from "../../graphql/documents.queries"; +import { selectBodyshop } from "../../redux/user/user.selectors"; import AlertComponent from "../alert/alert.component"; import JobDocumentsGalleryExternal from "../jobs-documents-gallery/jobs-documents-gallery.external.component"; import LoadingSpinner from "../loading-spinner/loading-spinner.component"; const mapStateToProps = createStructuredSelector({ - //currentUser: selectCurrentUser + bodyshop: selectBodyshop, }); const mapDispatchToProps = (dispatch) => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) @@ -19,6 +20,7 @@ const mapDispatchToProps = (dispatch) => ({ export default connect(mapStateToProps, mapDispatchToProps)(ChatMediaSelector); export function ChatMediaSelector({ + bodyshop, selectedMedia, setSelectedMedia, conversation, @@ -27,7 +29,6 @@ export function ChatMediaSelector({ const [visible, setVisible] = useState(false); const { loading, error, data } = useQuery(GET_DOCUMENTS_BY_JOB, { - fetchPolicy: "network-only", nextFetchPolicy: "network-only", variables: { @@ -66,6 +67,8 @@ export function ChatMediaSelector({ ); + if (bodyshop.uselocalmediaserver) return null; + return ( {bodyshop.md_messaging_presets.map((i, idx) => ( - setMessage(i.text)} onItemHover key={idx}> + setMessage(i.text)} key={idx}> {i.label} ))} diff --git a/client/src/components/documents-local-upload/documents-local-upload.component.jsx b/client/src/components/documents-local-upload/documents-local-upload.component.jsx index c0051372f..630b1a368 100644 --- a/client/src/components/documents-local-upload/documents-local-upload.component.jsx +++ b/client/src/components/documents-local-upload/documents-local-upload.component.jsx @@ -1,7 +1,7 @@ import { UploadOutlined } from "@ant-design/icons"; -import { Result, Upload } from "antd"; -import React, { useEffect, useMemo, useState } from "react"; -import { useTranslation } from "react-i18next"; +import { Upload } from "antd"; +import React, { useState } from "react"; + import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { @@ -24,7 +24,6 @@ export function DocumentsLocalUploadComponent({ invoice_number, callbackAfterUpload, }) { - const { t } = useTranslation(); const [fileList, setFileList] = useState([]); const handleDone = (uid) => { diff --git a/client/src/components/email-overlay/email-overlay.component.jsx b/client/src/components/email-overlay/email-overlay.component.jsx index 0c7fefc78..ef9ab2772 100644 --- a/client/src/components/email-overlay/email-overlay.component.jsx +++ b/client/src/components/email-overlay/email-overlay.component.jsx @@ -9,6 +9,7 @@ import { Space, Menu, Dropdown, + Button, } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; @@ -20,10 +21,13 @@ import { selectBodyshop, selectCurrentUser, } from "../../redux/user/user.selectors"; +import { CreateExplorerLinkForJob } from "../../utils/localmedia"; +import { selectEmailConfig } from "../../redux/email/email.selectors"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, currentUser: selectCurrentUser, + emailConfig: selectEmailConfig, }); const mapDispatchToProps = (dispatch) => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) @@ -34,6 +38,7 @@ export default connect( )(EmailOverlayComponent); export function EmailOverlayComponent({ + emailConfig, form, selectedMediaState, bodyshop, @@ -153,10 +158,17 @@ export function EmailOverlayComponent({ - - - + {!bodyshop.uselocalmediaserver && ( + + + + )} + {bodyshop.uselocalmediaserver && emailConfig.jobid && ( + + + + )} ({ setPrintCenterContext: (context) => dispatch(setModalContext({ context: context, modal: "printCenter" })), @@ -31,7 +37,7 @@ const span = { lg: { span: 8 }, }; -export function JobDetailCards({ setPrintCenterContext }) { +export function JobDetailCards({ bodyshop, setPrintCenterContext }) { const selectedBreakpoint = Object.entries(Grid.useBreakpoint()) .filter((screen) => !!screen[1]) .slice(-1)[0]; @@ -143,12 +149,14 @@ export function JobDetailCards({ setPrintCenterContext }) { data={data ? data.jobs_by_pk : null} /> - - - + {!bodyshop.uselocalmediaserver && ( + + + + )} ); } -export default connect(null, mapDispatchToProps)(JobDetailCards); +export default connect(mapStateToProps, mapDispatchToProps)(JobDetailCards); diff --git a/client/src/components/job-lines-preset-button/job-lines-preset-button.component.jsx b/client/src/components/job-lines-preset-button/job-lines-preset-button.component.jsx index 8e0aa2cb9..71b7ac920 100644 --- a/client/src/components/job-lines-preset-button/job-lines-preset-button.component.jsx +++ b/client/src/components/job-lines-preset-button/job-lines-preset-button.component.jsx @@ -24,7 +24,7 @@ export function JoblinePresetButton({ bodyshop, form }) { const menu = ( {bodyshop.md_jobline_presets.map((i, idx) => ( - handleSelect(i)} onItemHover key={idx}> + handleSelect(i)} key={idx}> {i.label} ))} diff --git a/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.container.jsx b/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.container.jsx index a23a988ec..cc7cbe31f 100644 --- a/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.container.jsx +++ b/client/src/components/jobs-documents-local-gallery/jobs-documents-local-gallery.container.jsx @@ -12,6 +12,7 @@ import { } from "../../redux/media/media.actions"; import { selectAllMedia } from "../../redux/media/media.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; +import { CreateExplorerLinkForJob } from "../../utils/localmedia"; import DocumentsLocalUploadComponent from "../documents-local-upload/documents-local-upload.component"; import JobsDocumentsLocalGalleryReassign from "./jobs-documents-local-gallery.reassign.component"; @@ -23,7 +24,6 @@ const mapStateToProps = createStructuredSelector({ const mapDispatchToProps = (dispatch) => ({ getJobMedia: (id) => dispatch(getJobMedia(id)), getBillMedia: ({ jobid, invoice_number }) => { - console.log(jobid); dispatch(getBillMedia({ jobid, invoice_number })); }, toggleMediaSelected: ({ jobid, filename }) => @@ -59,8 +59,6 @@ export function JobsDocumentsLocalGallery({ return (
- {JSON.stringify({ jobid: job.id, invoice_number, vendorid }, null, 4) || - "NO JOB ID"} - + diff --git a/client/src/components/notes-preset-button/notes-preset-button.component.jsx b/client/src/components/notes-preset-button/notes-preset-button.component.jsx index 87412ec8c..e330b15f6 100644 --- a/client/src/components/notes-preset-button/notes-preset-button.component.jsx +++ b/client/src/components/notes-preset-button/notes-preset-button.component.jsx @@ -24,7 +24,7 @@ export function NotesPresetButton({ bodyshop, form }) { const menu = ( {bodyshop.md_notes_presets.map((i, idx) => ( - handleSelect(i)} onItemHover key={idx}> + handleSelect(i)} key={idx}> {i.label} ))} diff --git a/client/src/components/production-list-detail/production-list-detail.component.jsx b/client/src/components/production-list-detail/production-list-detail.component.jsx index e5495b181..ac5b4146c 100644 --- a/client/src/components/production-list-detail/production-list-detail.component.jsx +++ b/client/src/components/production-list-detail/production-list-detail.component.jsx @@ -22,9 +22,10 @@ import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { setModalContext } from "../../redux/modals/modals.actions"; import ScoreboardAddButton from "../job-scoreboard-add-button/job-scoreboard-add-button.component"; +import { selectBodyshop } from "../../redux/user/user.selectors"; const mapStateToProps = createStructuredSelector({ - //currentUser: selectCurrentUser + bodyshop: selectBodyshop, }); const mapDispatchToProps = (dispatch) => ({ setPrintCenterContext: (context) => @@ -35,7 +36,11 @@ export default connect( mapDispatchToProps )(ProductionListDetail); -export function ProductionListDetail({ jobs, setPrintCenterContext }) { +export function ProductionListDetail({ + bodyshop, + jobs, + setPrintCenterContext, +}) { const search = queryString.parse(useLocation().search); const history = useHistory(); const { selected } = search; @@ -144,11 +149,12 @@ export function ProductionListDetail({ jobs, setPrintCenterContext }) { loading={loading} data={data ? data.jobs_by_pk : null} /> - - + {!bodyshop.uselocalmediaserver && ( + + )}
)} diff --git a/client/src/utils/RenderTemplate.js b/client/src/utils/RenderTemplate.js index 5584b3aa4..2caa4556e 100644 --- a/client/src/utils/RenderTemplate.js +++ b/client/src/utils/RenderTemplate.js @@ -25,7 +25,7 @@ export default async function RenderTemplate( let { contextData, useShopSpecificTemplate } = await fetchContextData( templateObject ); - console.log(templateObject.name); + const { ignoreCustomMargins } = Templates[templateObject.name]; let reportRequest = { diff --git a/client/src/utils/localmedia.js b/client/src/utils/localmedia.js new file mode 100644 index 000000000..e12950981 --- /dev/null +++ b/client/src/utils/localmedia.js @@ -0,0 +1,6 @@ +import { store } from "../redux/store"; + +export function CreateExplorerLinkForJob({ jobid }) { + const bodyshop = store.getState().user.bodyshop; + return `imexmedia://${bodyshop.localmediaservernetwork}/Jobs/${jobid}`; +}