Added missing pages for selected header BOD-164
This commit is contained in:
@@ -310,7 +310,7 @@ function Header({
|
|||||||
<Menu.Item key="shiftclock">
|
<Menu.Item key="shiftclock">
|
||||||
<Link to="/manage/shiftclock">{t("menus.header.shiftclock")}</Link>
|
<Link to="/manage/shiftclock">{t("menus.header.shiftclock")}</Link>
|
||||||
</Menu.Item>
|
</Menu.Item>
|
||||||
<Menu.Item>
|
<Menu.Item key="profile">
|
||||||
<Link to="/manage/profile">{t("menus.currentuser.profile")}</Link>
|
<Link to="/manage/profile">{t("menus.currentuser.profile")}</Link>
|
||||||
</Menu.Item>
|
</Menu.Item>
|
||||||
<Menu.SubMenu
|
<Menu.SubMenu
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ export default function ProductionRemoveButton({ jobId }) {
|
|||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const search = queryString.parse(useLocation().search);
|
const search = queryString.parse(useLocation().search);
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
const { selected } = search;
|
|
||||||
|
|
||||||
const handleRemoveFromProd = async () => {
|
const handleRemoveFromProd = async () => {
|
||||||
logImEXEvent("production_remove_job");
|
logImEXEvent("production_remove_job");
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { QUERY_OWNER_BY_ID } from "../../graphql/owners.queries";
|
|||||||
import {
|
import {
|
||||||
addRecentItem,
|
addRecentItem,
|
||||||
setBreadcrumbs,
|
setBreadcrumbs,
|
||||||
|
setSelectedHeader,
|
||||||
} from "../../redux/application/application.actions";
|
} from "../../redux/application/application.actions";
|
||||||
import { CreateRecentItem } from "../../utils/create-recent-item";
|
import { CreateRecentItem } from "../../utils/create-recent-item";
|
||||||
import OwnersDetailComponent from "./owners-detail.page.component";
|
import OwnersDetailComponent from "./owners-detail.page.component";
|
||||||
@@ -17,12 +18,14 @@ import NotFound from "../../components/not-found/not-found.component";
|
|||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
addRecentItem: (item) => dispatch(addRecentItem(item)),
|
addRecentItem: (item) => dispatch(addRecentItem(item)),
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function OwnersDetailContainer({
|
export function OwnersDetailContainer({
|
||||||
match,
|
match,
|
||||||
setBreadcrumbs,
|
setBreadcrumbs,
|
||||||
addRecentItem,
|
addRecentItem,
|
||||||
|
setSelectedHeader,
|
||||||
}) {
|
}) {
|
||||||
const { ownerId } = match.params;
|
const { ownerId } = match.params;
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
@@ -40,7 +43,7 @@ export function OwnersDetailContainer({
|
|||||||
} ${(data.owners_by_pk && data.owners_by_pk.ownr_co_nm) || ""}`
|
} ${(data.owners_by_pk && data.owners_by_pk.ownr_co_nm) || ""}`
|
||||||
: "",
|
: "",
|
||||||
});
|
});
|
||||||
|
setSelectedHeader("owners");
|
||||||
setBreadcrumbs([
|
setBreadcrumbs([
|
||||||
{ link: "/manage/owners", label: t("titles.bc.owners") },
|
{ link: "/manage/owners", label: t("titles.bc.owners") },
|
||||||
{
|
{
|
||||||
@@ -66,7 +69,7 @@ export function OwnersDetailContainer({
|
|||||||
`/manage/owners/${ownerId}`
|
`/manage/owners/${ownerId}`
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}, [setBreadcrumbs, t, data, ownerId, addRecentItem]);
|
}, [setBreadcrumbs, t, data, ownerId, addRecentItem, setSelectedHeader]);
|
||||||
|
|
||||||
if (loading) return <LoadingSpinner />;
|
if (loading) return <LoadingSpinner />;
|
||||||
if (error) return <AlertComponent message={error.message} type="error" />;
|
if (error) return <AlertComponent message={error.message} type="error" />;
|
||||||
|
|||||||
@@ -9,7 +9,10 @@ import AlertComponent from "../../components/alert/alert.component";
|
|||||||
import PaymentsListPaginated from "../../components/payments-list-paginated/payment-list-paginated.component";
|
import PaymentsListPaginated from "../../components/payments-list-paginated/payment-list-paginated.component";
|
||||||
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
||||||
import { QUERY_ALL_PAYMENTS_PAGINATED } from "../../graphql/payments.queries";
|
import { QUERY_ALL_PAYMENTS_PAGINATED } from "../../graphql/payments.queries";
|
||||||
import { setBreadcrumbs } 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";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
@@ -18,9 +21,10 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function AllJobs({ bodyshop, setBreadcrumbs }) {
|
export function AllJobs({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
|
||||||
const searchParams = queryString.parse(useLocation().search);
|
const searchParams = queryString.parse(useLocation().search);
|
||||||
const { page, sortcolumn, sortorder, search } = searchParams;
|
const { page, sortcolumn, sortorder, search } = searchParams;
|
||||||
|
|
||||||
@@ -47,10 +51,11 @@ export function AllJobs({ bodyshop, setBreadcrumbs }) {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t("titles.payments-all");
|
document.title = t("titles.payments-all");
|
||||||
|
setSelectedHeader("allpayments");
|
||||||
setBreadcrumbs([
|
setBreadcrumbs([
|
||||||
{ link: "/manage/payments", label: t("titles.bc.payments-all") },
|
{ link: "/manage/payments", label: t("titles.bc.payments-all") },
|
||||||
]);
|
]);
|
||||||
}, [t, setBreadcrumbs]);
|
}, [t, setBreadcrumbs, setSelectedHeader]);
|
||||||
|
|
||||||
if (error) return <AlertComponent message={error.message} type="error" />;
|
if (error) return <AlertComponent message={error.message} type="error" />;
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -3,7 +3,10 @@ import { useTranslation } from "react-i18next";
|
|||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
||||||
import { setBreadcrumbs } 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 ProductionBoardComponent from "./production-board.component";
|
import ProductionBoardComponent from "./production-board.component";
|
||||||
|
|
||||||
@@ -13,20 +16,26 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function ProductionBoardContainer({ setBreadcrumbs, bodyshop }) {
|
export function ProductionBoardContainer({
|
||||||
|
setBreadcrumbs,
|
||||||
|
bodyshop,
|
||||||
|
setSelectedHeader,
|
||||||
|
}) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t("titles.productionboard");
|
document.title = t("titles.productionboard");
|
||||||
|
setSelectedHeader("productionboard");
|
||||||
setBreadcrumbs([
|
setBreadcrumbs([
|
||||||
{
|
{
|
||||||
link: "/manage/production/board",
|
link: "/manage/production/board",
|
||||||
label: t("titles.bc.productionboard"),
|
label: t("titles.bc.productionboard"),
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
}, [t, setBreadcrumbs]);
|
}, [t, setBreadcrumbs, setSelectedHeader]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RbacWrapper action="production:board">
|
<RbacWrapper action="production:board">
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ import React, { 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 { setBreadcrumbs } 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 ProductionListComponent from "./production-list.component";
|
import ProductionListComponent from "./production-list.component";
|
||||||
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
||||||
@@ -13,17 +16,23 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function ProductionListContainer({ setBreadcrumbs, bodyshop }) {
|
export function ProductionListContainer({
|
||||||
|
setBreadcrumbs,
|
||||||
|
bodyshop,
|
||||||
|
setSelectedHeader,
|
||||||
|
}) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t("titles.productionlist");
|
document.title = t("titles.productionlist");
|
||||||
|
setSelectedHeader("productionlist");
|
||||||
setBreadcrumbs([
|
setBreadcrumbs([
|
||||||
{ link: "/manage/production/list", label: t("titles.bc.productionlist") },
|
{ link: "/manage/production/list", label: t("titles.bc.productionlist") },
|
||||||
]);
|
]);
|
||||||
}, [t, setBreadcrumbs]);
|
}, [t, setBreadcrumbs, setSelectedHeader]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RbacWrapper action="production:list">
|
<RbacWrapper action="production:list">
|
||||||
|
|||||||
@@ -1,21 +1,26 @@
|
|||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { setBreadcrumbs } from "../../redux/application/application.actions";
|
import {
|
||||||
|
setBreadcrumbs,
|
||||||
|
setSelectedHeader,
|
||||||
|
} from "../../redux/application/application.actions";
|
||||||
import ProfilePage from "./profile.page";
|
import ProfilePage from "./profile.page";
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function ProfileContainerPage({ setBreadcrumbs }) {
|
export function ProfileContainerPage({ setBreadcrumbs, setSelectedHeader }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
setSelectedHeader("profile");
|
||||||
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");
|
||||||
}, [t, setBreadcrumbs]);
|
}, [t, setBreadcrumbs, setSelectedHeader]);
|
||||||
|
|
||||||
return <ProfilePage />;
|
return <ProfilePage />;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,22 +2,27 @@ import React, { useEffect } from "react";
|
|||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
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 { setBreadcrumbs } 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";
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function SchedulePageContainer({ setBreadcrumbs }) {
|
export function SchedulePageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t("titles.schedule");
|
document.title = t("titles.schedule");
|
||||||
|
setSelectedHeader("schedule");
|
||||||
setBreadcrumbs([
|
setBreadcrumbs([
|
||||||
{ link: "/manage/schedule", label: t("titles.bc.schedule") },
|
{ link: "/manage/schedule", label: t("titles.bc.schedule") },
|
||||||
]);
|
]);
|
||||||
}, [t, setBreadcrumbs]);
|
}, [t, setBreadcrumbs, setSelectedHeader]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RbacWrapper action="schedule:view">
|
<RbacWrapper action="schedule:view">
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ import React, { 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 { setBreadcrumbs } 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 ScoreboardPageComponent from "./scoreboard.page.component";
|
import ScoreboardPageComponent from "./scoreboard.page.component";
|
||||||
import { useSubscription } from "@apollo/react-hooks";
|
import { useSubscription } from "@apollo/react-hooks";
|
||||||
@@ -16,9 +19,10 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function ScoreboardContainer({ setBreadcrumbs }) {
|
export function ScoreboardContainer({ setBreadcrumbs, setSelectedHeader }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
const scoreboardSubscription = useSubscription(SUBSCRIPTION_SCOREBOARD, {
|
const scoreboardSubscription = useSubscription(SUBSCRIPTION_SCOREBOARD, {
|
||||||
@@ -30,13 +34,14 @@ export function ScoreboardContainer({ setBreadcrumbs }) {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t("titles.scoreboard");
|
document.title = t("titles.scoreboard");
|
||||||
|
setSelectedHeader("scoreboard");
|
||||||
setBreadcrumbs([
|
setBreadcrumbs([
|
||||||
{
|
{
|
||||||
link: "/manage/scoreboard",
|
link: "/manage/scoreboard",
|
||||||
label: t("titles.bc.scoreboard"),
|
label: t("titles.bc.scoreboard"),
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
}, [t, setBreadcrumbs]);
|
}, [t, setBreadcrumbs, setSelectedHeader]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RbacWrapper action="scoreboard:view">
|
<RbacWrapper action="scoreboard:view">
|
||||||
|
|||||||
@@ -5,11 +5,33 @@ 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";
|
||||||
|
|
||||||
export default function ShopPage() {
|
import { connect } from "react-redux";
|
||||||
|
import { createStructuredSelector } from "reselect";
|
||||||
|
import {
|
||||||
|
setSelectedHeader,
|
||||||
|
setBreadcrumbs,
|
||||||
|
} from "../../redux/application/application.actions";
|
||||||
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
|
const mapStateToProps = createStructuredSelector({
|
||||||
|
bodyshop: selectBodyshop,
|
||||||
|
});
|
||||||
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
|
setSelectedHeader: (key) => dispatch(setSelectedHeader(key)),
|
||||||
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
});
|
||||||
|
|
||||||
|
export function ShopPage({ bodyshop, setSelectedHeader, setBreadcrumbs }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t("titles.shop");
|
document.title = t("titles.shop");
|
||||||
}, [t]);
|
setSelectedHeader("shop");
|
||||||
|
setBreadcrumbs([
|
||||||
|
{
|
||||||
|
link: "/manage/shop",
|
||||||
|
label: t("titles.bc.shop", { shopname: bodyshop.shopname }),
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
}, [t, setSelectedHeader, setBreadcrumbs, bodyshop.shopname]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tabs>
|
<Tabs>
|
||||||
@@ -28,3 +50,4 @@ export default function ShopPage() {
|
|||||||
</Tabs>
|
</Tabs>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(ShopPage);
|
||||||
|
|||||||
Reference in New Issue
Block a user