Jason Chuang 3 gün önce
ebeveyn
işleme
7455f11b8c
8 değiştirilmiş dosya ile 530 ekleme ve 77 silme
  1. +98
    -64
      src/components/I18nProvider.js
  2. +4
    -1
      src/layout/MainLayout/Header/HeaderContent/LocaleSelector.js
  3. +24
    -3
      src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js
  4. +2
    -2
      src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js
  5. +178
    -0
      src/pages/extra-pages/UserMenu1/index.js
  6. +2
    -2
      src/pages/extra-pages/UserMenuPub/index.js
  7. +207
    -0
      src/pages/extra-pages/UserMenuPub1/index.js
  8. +15
    -5
      src/routes/LoginRoutes.js

+ 98
- 64
src/components/I18nProvider.js Dosyayı Görüntüle

@@ -1,8 +1,8 @@
import { useState, useEffect, createContext } from 'react';
import { useState, useEffect, createContext, useMemo } from 'react';
import { IntlProvider } from 'react-intl';
import enMessages from '../translations/en.json';
import cnMessages from '../translations/zh-CN.json';
import hkMessages from '../translations/zh-HK.json';
import enBase from '../translations/en.json';
import cnBase from '../translations/zh-CN.json';
import hkBase from '../translations/zh-HK.json';

import { GET_COMBO, GET_CONTENT } from "utils/ApiPathConst";
import { get } from "utils/HttpUtils";
@@ -10,72 +10,106 @@ import { get } from "utils/HttpUtils";
const LocaleContext = createContext();

export const I18nProvider = ({ children }) => {
const systemMessages = {
"en": enMessages,
"zh": hkMessages,
"zh-HK": hkMessages,
"zh-CN": cnMessages
};
const [locale, setLocale] = useState('en');

// keep base messages immutable
const [systemMessages, setSystemMessages] = useState({
en: { ...enBase },
zh: { ...hkBase },
'zh-HK': { ...hkBase },
'zh-CN': { ...cnBase }
});

const [loaded, setLoaded] = useState(false);

useEffect(() => {
const saved = localStorage.getItem('locale');
if (!saved) localStorage.setItem('locale', 'en');
else setLocale(saved);
}, []);

const [locale, setLocale] = useState('en'); // Default locale, you can change this as per your requirement
const [messages, setMessages] = useState(systemMessages[locale]);
useEffect(() => {
let alive = true;

const loadTermsAndConditions = () => {
// load both endpoints then merge into state
const p1 = new Promise((resolve) => {
get({
url: GET_CONTENT,
onSuccess: (responseData) => {
for (const key in responseData) {
const value = responseData[key];
enMessages[key] = value.en??"";
cnMessages[key] = value.cn??"";
hkMessages[key] = value.zh??"";
}
}
url: GET_CONTENT,
onSuccess: (resp) => resolve(resp || {}),
onError: () => resolve({})
});
});

const p2 = new Promise((resolve) => {
get({
url: GET_COMBO,
onSuccess: (responseData) => {
for (let i = 0; i < responseData.length; i++) {
let item = responseData[i];
enMessages[item.key] = item.en;
cnMessages[item.key] = item.cn;
hkMessages[item.key] = item.zh;
}

}
url: GET_COMBO,
onSuccess: (resp) => resolve(resp || []),
onError: () => resolve([])
});
});

Promise.all([p1, p2]).then(([contentMap, comboList]) => {
if (!alive) return;

setSystemMessages((prev) => {
// clone prev first (immutably)
const next = {
...prev,
en: { ...prev.en },
'zh-CN': { ...prev['zh-CN'] },
'zh-HK': { ...prev['zh-HK'] },
zh: { ...prev.zh }
};

// merge GET_CONTENT (object)
for (const key in contentMap) {
const v = contentMap[key] || {};
next.en[key] = v.en ?? "";
next['zh-CN'][key] = v.cn ?? "";
next['zh-HK'][key] = v.zh ?? "";
next.zh[key] = v.zh ?? "";
}

// merge GET_COMBO (array)
for (const item of comboList) {
if (!item?.key) continue;
next.en[item.key] = item.en ?? "";
next['zh-CN'][item.key] = item.cn ?? "";
next['zh-HK'][item.key] = item.zh ?? "";
next.zh[item.key] = item.zh ?? "";
}

return next;
});
}

useEffect(() => {
loadTermsAndConditions();
if (localStorage.getItem('locale') === null) {
//no locale case
localStorage.setItem('locale', 'en');
}
else {
setLocale(localStorage.getItem('locale'));
}
}, []);

useEffect(() => {
// Load the messages for the selected locale
const fetchMessages = async () => {
setMessages(systemMessages[locale]);
};

fetchMessages();
}, [locale]);

return (
<LocaleContext.Provider value={{ locale, setLocale }} >
<IntlProvider locale={locale} messages={messages}>
{children}
</IntlProvider>
</LocaleContext.Provider>
);
}

export default LocaleContext;

setLoaded(true);
});
};

loadTermsAndConditions();

return () => {
alive = false;
};
}, []);

const messages = useMemo(() => {
return systemMessages[locale] || systemMessages.en;
}, [systemMessages, locale]);

return (
<LocaleContext.Provider value={{ locale, setLocale }}>
<IntlProvider
key={locale}
locale={locale}
messages={messages}
defaultLocale="en"
>
{loaded ? children : <div />}
</IntlProvider>
</LocaleContext.Provider>
);
};

export default LocaleContext;

+ 4
- 1
src/layout/MainLayout/Header/HeaderContent/LocaleSelector.js Dosyayı Görüntüle

@@ -98,6 +98,7 @@ const LocaleSelector = () => {
onClick={() => {
setLocale("en")
localStorage.setItem('locale','en');
setOpen(false);
}}
>
<ListItemText
@@ -108,8 +109,9 @@ const LocaleSelector = () => {
<ListItem disablePadding>
<ListItemButton
onClick={() => {
setLocale("zh-HK")
setLocale("zh-HK");
localStorage.setItem('locale','zh-HK');
setOpen(false);
}}
>
<ListItemText
@@ -122,6 +124,7 @@ const LocaleSelector = () => {
onClick={() => {
setLocale("zh-CN")
localStorage.setItem('locale','zh-CN');
setOpen(false);
}}
>
<ListItemText


+ 24
- 3
src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js Dosyayı Görüntüle

@@ -33,6 +33,7 @@ import { FormattedMessage, useIntl } from "react-intl";
import Loadable from 'components/Loadable';
import { useState, useEffect, lazy } from 'react';
const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
import { checkPaymentSuspension } from "utils/Utils";

// ==============================|| DASHBOARD - DEFAULT ||============================== //

@@ -372,8 +373,28 @@ const PublicNoticeApplyForm = ({ loadedData, _selections, gazetteIssueList }) =>
<th style={tabelStyle} width="300" align="left"><FormattedMessage id="PaymentCoonpletDealine" /></th>
</tr>
<tr>
<td style={tabelStyle}>
<td style={{ ...tabelStyle, verticalAlign: 'top'}}>
<FormattedMessage id="payOnline" />
{checkPaymentSuspension() && (
<Typography
variant="body2"
sx={{
color: 'error.main',
fontWeight: 600,
mt: 0.5,
ml:2
}}
>
<span
dangerouslySetInnerHTML={{
__html: intl.formatMessage({
id: "suspensionMessageText",
defaultMessage: ""
})
}}
/>
</Typography>
)}
<br /><a href="#payOnlineDetails" color='#fff' onClick={() => {
setWarningTitle(intl.formatMessage({ id: "paymentMeans" }) + ": " + intl.formatMessage({ id: "payOnline" }))
setWarningText(
@@ -388,8 +409,8 @@ const PublicNoticeApplyForm = ({ loadedData, _selections, gazetteIssueList }) =>
setIsWarningPopUp(true);
}}><u><FormattedMessage id="viewDetail" /></u></a>
</td>
<td style={tabelStyle}>{DateUtils.dateFormat(closeDate, dft)} {locale==='en'?"2:00 p.m.":"下午2時"}</td>
<td style={tabelStyle}>
<td style={{ ...tabelStyle, verticalAlign: 'top'}}>{DateUtils.dateFormat(closeDate, dft)} {locale==='en'?"2:00 p.m.":"下午2時"}</td>
<td style={{ ...tabelStyle, verticalAlign: 'top'}}>
<FormattedMessage id="payOnlineRemark" values={{
date: DateUtils.dateFormat(closeDate, dft)
}} />


+ 2
- 2
src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js Dosyayı Görüntüle

@@ -85,11 +85,11 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) =>
countryCode: values.fax_countryCode,
faxNumber: values.faxNumber
},
identification: values.identification,
// identification: values.identification,
emailBus: values.emailBus,
contactPerson: values.contactPerson,
orgId: values.orgId?.id,
preferLocale: values.preferLocale.type
preferLocale: values.preferLocale?.type
},
onSuccess: function () {
notifySaveSuccess()


+ 178
- 0
src/pages/extra-pages/UserMenu1/index.js Dosyayı Görüntüle

@@ -0,0 +1,178 @@
import { Grid, Typography, Stack, } from '@mui/material';
import { useState, useEffect, lazy } from "react";

import Loadable from 'components/Loadable';
import { useIntl, FormattedMessage } from "react-intl";

import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
const BackgroundHead = {
backgroundImage: `url(${titleBackgroundImg})`,
width: 'auto',
height: 'auto',
backgroundSize: 'contain',
backgroundRepeat: 'no-repeat',
backgroundColor: '#0C489E',
backgroundPosition: 'right'
}

const LoadingComponent = Loadable(lazy(() => import('pages/extra-pages/LoadingComponent')));

import DownloadIcon from '@mui/icons-material/Download';

const UserMenu1 = () => {
const intl = useIntl();
const { locale } = intl;
const [onReady, setOnReady] = useState(false);

const pnspsurl = "https://"+window.location.hostname;

useEffect(() => {
setOnReady(true);
}, [locale]);

const tableStyle = {
fontFamily: "arial, sans-serif",
borderCollapse: "collapse",
width: "100%",
}

const cellStyle = {
border: "1px solid #dddddd",
textAlign: "left",
padding: "8px"
};

const getRow = ({ title, en, zh, cn }) => {
return <>
<tr>
<td style={cellStyle}>{title}</td>
<td style={cellStyle}><a href={en} target='_brank'><DownloadIcon /></a></td>
<td style={cellStyle}><a href={zh} target='_brank'><DownloadIcon /></a></td>
<td style={cellStyle}><a href={cn} target='_brank'><DownloadIcon /></a></td>
</tr>
</>
;
}


return (
!onReady ?
<Grid container sx={{ minHeight: '87vh', mb: 3 }} direction="column" justifyContent="center" alignItems="center">
<Grid item>
<LoadingComponent />
</Grid>
</Grid>
:
(
<Grid container sx={{ minHeight: '87vh', mb: 3}} direction="column" alignItems="center" >
<Grid item xs={12} md={12} width="100%">
<div style={BackgroundHead}>
<Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center">
<Typography ml={15} color='#FFF' variant="h4" sx={{ display: { xs: 'none', sm: 'none', md: 'block', pt: 2 } }}>
<FormattedMessage id="userGuide" />
</Typography>
</Stack>
</div>
</Grid>
<Grid container justifyContent="center" alignItems="center" >
<Grid item xs={10} md={8} lg={6}>
<div style={{
textAlign: "justify",
textJustify: "interWord",
fontStyle: "normal"
}}>

<p>
<FormattedMessage id="userGuideDes" />
<table style={tableStyle}>
<tr>
<th style={cellStyle} width="70%"></th>
<th style={cellStyle} width="10%">English</th>
<th style={cellStyle} width="10%">繁體中文</th>
<th style={cellStyle} width="10%">简体中文</th>
</tr>

{getRow({
title: <FormattedMessage id="userGuide1" />,
en: pnspsurl + "/user-guide/eng/01 - Create account - 1.pdf",
zh: pnspsurl + "/user-guide/cht/01c - Create account - 1.pdf",
cn: pnspsurl + "/user-guide/chs/01sc - Create account - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide2" />,
en: pnspsurl + "/user-guide/eng/02 - Login - 1.pdf",
zh: pnspsurl + "/user-guide/cht/02c - Login - 1.pdf",
cn: pnspsurl + "/user-guide/chs/02sc - Login - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide3" />,
en: pnspsurl + "/user-guide/eng/03 - Application for publishing a Public Notice in the Gazette - 1.pdf",
zh: pnspsurl + "/user-guide/cht/03c - Application for publishing a Public Notice in the Gazette - 1.pdf",
cn: pnspsurl + "/user-guide/chs/03sc - Application for publishing a Public Notice in the Gazette - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide4" />,
en: pnspsurl + "/user-guide/eng/04 - Proofreading reply (with correction) - 1.pdf",
zh: pnspsurl + "/user-guide/cht/04c - Proofreading reply (with correction) - 1.pdf",
cn: pnspsurl + "/user-guide/chs/04sc - Proofreading reply (with correction) - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide5" />,
en: pnspsurl + "/user-guide/eng/05 - Proofreading reply (pass for printing) - 1.pdf",
zh: pnspsurl + "/user-guide/cht/05c - Proofreading reply (pass for printing) - 1.pdf",
cn: pnspsurl + "/user-guide/chs/05sc - Proofreading reply (pass for printing) - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide6" />,
en: pnspsurl + "/user-guide/eng/06 - Cancellation of application for publishing a Public Notice in the Gazette - 1.pdf",
zh: pnspsurl + "/user-guide/cht/06c - Cancellation of application for publishing a Public Notice in the Gazette - 1.pdf",
cn: pnspsurl + "/user-guide/chs/06sc - Cancellation of application for publishing a Public Notice in the Gazette - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide7" />,
en: pnspsurl + "/user-guide/eng/07 - Forgot password - 1.pdf",
zh: pnspsurl + "/user-guide/cht/07c - Forgot password - 1.pdf",
cn: pnspsurl + "/user-guide/chs/07sc - Forgot password - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide8" />,
en: pnspsurl + "/user-guide/eng/08 - Change password - 1.pdf",
zh: pnspsurl + "/user-guide/cht/08c - Change password - 1.pdf",
cn: pnspsurl + "/user-guide/chs/08sc - Change password - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide9" />,
en: pnspsurl + "/user-guide/eng/09 - Language of email notification - 1.pdf",
zh: pnspsurl + "/user-guide/cht/09c - Language of email notification - 1.pdf",
cn: pnspsurl + "/user-guide/chs/09sc - Language of email notification - 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide10" />,
en: pnspsurl + "/user-guide/eng/10 - Download General Demand Note for making payment(s) - 1.pdf",
zh: pnspsurl + "/user-guide/cht/10c - Download General Demand Note for making payment(s) - 1.pdf",
cn: pnspsurl + "/user-guide/chs/10sc - Download General Demand Note for making payment(s) - 1.pdf"
})}


</table>
</p>
</div>
</Grid>
</Grid>
</Grid>
)
);

}

export default UserMenu1;

+ 2
- 2
src/pages/extra-pages/UserMenuPub/index.js Dosyayı Görüntüle

@@ -19,7 +19,7 @@ const LoadingComponent = Loadable(lazy(() => import('pages/extra-pages/LoadingCo

import DownloadIcon from '@mui/icons-material/Download';

const UserMenu = () => {
const UserMenuPub = () => {
const intl = useIntl();
const { locale } = intl;
const [onReady, setOnReady] = useState(false);
@@ -204,4 +204,4 @@ const UserMenu = () => {

}

export default UserMenu;
export default UserMenuPub;

+ 207
- 0
src/pages/extra-pages/UserMenuPub1/index.js Dosyayı Görüntüle

@@ -0,0 +1,207 @@
import { Grid, Typography, Stack, } from '@mui/material';
import { useState, useEffect, lazy } from "react";

import Loadable from 'components/Loadable';
import { useIntl, FormattedMessage } from "react-intl";

import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
const BackgroundHead = {
backgroundImage: `url(${titleBackgroundImg})`,
width: 'auto',
height: 'auto',
backgroundSize: 'contain',
backgroundRepeat: 'no-repeat',
backgroundColor: '#0C489E',
backgroundPosition: 'right'
}

const LoadingComponent = Loadable(lazy(() => import('pages/extra-pages/LoadingComponent')));

import DownloadIcon from '@mui/icons-material/Download';

const UserMenuPub1 = () => {
const intl = useIntl();
const { locale } = intl;
const [onReady, setOnReady] = useState(false);

useEffect(() => {
setOnReady(true);
}, [locale]);

const tableStyle = {
fontFamily: "arial, sans-serif",
borderCollapse: "collapse",
width: "100%",
}

const cellStyle = {
border: "1px solid #dddddd",
textAlign: "left",
padding: "8px"
};

const getRow = ({ title, orgEn, orgZh, orgCn, indEn, indZh, indCn }) => {

return <>
<tr>
<td style={cellStyle}>{title}</td>
<td style={cellStyle}><a href={locale=="zh-HK"?orgZh: locale=="en"?orgEn:orgCn} target='_brank'><DownloadIcon /></a></td>
<td style={cellStyle}><a href={locale=="zh-HK"?indZh: locale=="en"?indEn:indCn} target='_brank'><DownloadIcon /></a></td>
</tr>
</>
;
}

const pnspsurl = "https://"+window.location.hostname;


return (
!onReady ?
<Grid container sx={{ minHeight: '87vh', mb: 3 }} direction="column" justifyContent="center" alignItems="center">
<Grid item>
<LoadingComponent />
</Grid>
</Grid>
:
(
<Grid container sx={{ minHeight: '87vh', mb: 3}} direction="column" alignItems="center" >
<Grid item xs={12} md={12} width="100%">
<div style={BackgroundHead}>
<Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center">
<Typography ml={15} color='#FFF' variant="h4" sx={{ display: { xs: 'none', sm: 'none', md: 'block'} }}>
<FormattedMessage id="userGuide" />
</Typography>
</Stack>
</div>
</Grid>
<Grid container justifyContent="center" alignItems="center" >
<Grid item xs={10} md={8} lg={6}>
<div style={{
textAlign: "justify",
textJustify: "interWord",
fontStyle: "normal"
}}>

<p>
<table style={tableStyle}>
<tr>
<th style={cellStyle} width="70%"></th>
<th style={cellStyle} width="15%"> <FormattedMessage id="forOrgUser" /></th>
<th style={cellStyle} width="15%"> <FormattedMessage id="forIndUser" /></th>
</tr>

{getRow({
title: <FormattedMessage id="userGuide1" />,
orgEn: pnspsurl + "/user-guide-pub/eng/01 - Create account - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/01c - Create account - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/01sc - Create account - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/01 - Create account - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/01c - Create account - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/01sc - Create account - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide2" />,
orgEn: pnspsurl + "/user-guide-pub/eng/02 - Login - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/02c - Login - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/02sc - Login - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/02 - Login - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/02c - Login - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/02sc - Login - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide3" />,
orgEn: pnspsurl + "/user-guide-pub/eng/03 - Application for publishing a Public Notice in the Gazette - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/03c - Application for publishing a Public Notice in the Gazette - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/03sc - Application for publishing a Public Notice in the Gazette - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/03 - Application for publishing a Public Notice in the Gazette - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/03c - Application for publishing a Public Notice in the Gazette - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/03sc - Application for publishing a Public Notice in the Gazette - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide4" />,
orgEn: pnspsurl + "/user-guide-pub/eng/04 - Proofreading reply (with correction) - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/04c - Proofreading reply (with correction) - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/04sc - Proofreading reply (with correction) - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/04 - Proofreading reply (with correction) - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/04c - Proofreading reply (with correction) - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/04sc - Proofreading reply (with correction) - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide5" />,
orgEn: pnspsurl + "/user-guide-pub/eng/05 - Proofreading reply (pass for printing) - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/05c - Proofreading reply (pass for printing) - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/05sc - Proofreading reply (pass for printing) - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/05 - Proofreading reply (pass for printing) - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/05c - Proofreading reply (pass for printing) - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/05sc - Proofreading reply (pass for printing) - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide6" />,
orgEn: pnspsurl + "/user-guide-pub/eng/06 - Cancellation of application for publishing a Public Notice in the Gazette - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/06c - Cancellation of application for publishing a Public Notice in the Gazette - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/06sc - Cancellation of application for publishing a Public Notice in the Gazette - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/06 - Cancellation of application for publishing a Public Notice in the Gazette - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/06c - Cancellation of application for publishing a Public Notice in the Gazette - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/06sc - Cancellation of application for publishing a Public Notice in the Gazette - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide7" />,
orgEn: pnspsurl + "/user-guide-pub/eng/07 - Forgot password - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/07c - Forgot password - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/07sc - Forgot password - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/07 - Forgot password - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/07c - Forgot password - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/07sc - Forgot password - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide8" />,
orgEn: pnspsurl + "/user-guide-pub/eng/08 - Change password - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/08c - Change password - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/08sc - Change password - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/08 - Change password - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/08c - Change password - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/08sc - Change password - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuide9" />,
orgEn: pnspsurl + "/user-guide-pub/eng/09 - Language of email notification - c 1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/09c - Language of email notification - c 1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/09sc - Language of email notification - c 1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/09 - Language of email notification - p 1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/09c - Language of email notification - p 1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/09sc - Language of email notification - p 1.pdf"
})}

{getRow({
title: <FormattedMessage id="userGuidePub10" />,
orgEn: pnspsurl + "/user-guide-pub/eng/10-Payment-c1.pdf",
orgZh: pnspsurl + "/user-guide-pub/cht/10c-Payment-c1.pdf",
orgCn: pnspsurl + "/user-guide-pub/chs/10sc-Payment-c1.pdf",
indEn: pnspsurl + "/user-guide-pub/eng/10-Payment-p1.pdf",
indZh: pnspsurl + "/user-guide-pub/cht/10c-Payment-p1.pdf",
indCn: pnspsurl + "/user-guide-pub/chs/10sc-Payment-p1.pdf"
})}

</table>
<FormattedMessage id="userGuidePubNote" />
</p>
</div>
</Grid>
</Grid>
</Grid>
)
);

}

export default UserMenuPub1;

+ 15
- 5
src/routes/LoginRoutes.js Dosyayı Görüntüle

@@ -16,7 +16,9 @@ const PrivacyPolicyPage = Loadable(lazy(() => import('pages/extra-pages/PrivacyP
const ImportantNoticePage = Loadable(lazy(() => import('pages/extra-pages/ImportantNoticePage')));
const AboutUsPage = Loadable(lazy(() => import('pages/extra-pages/AboutUs')));
const UserMenuPage = Loadable(lazy(() => import('pages/extra-pages/UserMenu')));
// const UserMenuPubPage = Loadable(lazy(() => import('pages/extra-pages/UserMenuPub')));
const UserMenuPubPage = Loadable(lazy(() => import('pages/extra-pages/UserMenuPub')));
const UserMenu1Page = Loadable(lazy(() => import('pages/extra-pages/UserMenu1')));
const UserMenuPub1Page = Loadable(lazy(() => import('pages/extra-pages/UserMenuPub1')));
const DatabaseHealthCheckPage = Loadable(lazy(() => import('pages/extra-pages/DatabaseHealthCheck')));


@@ -88,10 +90,18 @@ const LoginRoutes = {
path: 'userGuide',
element: <UserMenuPage/>
},
// {
// path: 'userGuidePub',
// element: <UserMenuPubPage/>
// },
{
path: 'userGuidePub',
element: <UserMenuPubPage/>
},
{
path: 'userGuide1',
element: <UserMenu1Page/>
},
{
path: 'userGuidePub1',
element: <UserMenuPub1Page/>
},
{
path: 'databaseHealthCheck',
element: <DatabaseHealthCheckPage/>


Yükleniyor…
İptal
Kaydet