| @@ -141,10 +141,14 @@ function Header(props) { | |||||
| </Typography></Link> | </Typography></Link> | ||||
| </li> | </li> | ||||
| <li> | <li> | ||||
| <Link className="myDocumet" to='/publicNotice'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>我的公共啟事</Typography></Link> | |||||
| <Link className="myDocumet" to='/publicNotice'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> | |||||
| <FormattedMessage id="myPublicNotice"/> | |||||
| </Typography></Link> | |||||
| </li> | </li> | ||||
| <li> | <li> | ||||
| <Link className="documentRecord" to='/proof/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>校對記錄</Typography></Link> | |||||
| <Link className="documentRecord" to='/proof/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> | |||||
| <FormattedMessage id="proofRecord"/> | |||||
| </Typography></Link> | |||||
| </li> | </li> | ||||
| <li> | <li> | ||||
| {isPrimaryLoggedIn() ? | {isPrimaryLoggedIn() ? | ||||
| @@ -152,7 +156,9 @@ function Header(props) { | |||||
| <Link className="paymentRecord"><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>付款記錄</Typography></Link> | <Link className="paymentRecord"><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>付款記錄</Typography></Link> | ||||
| <ul className='dropdown'> | <ul className='dropdown'> | ||||
| <li> | <li> | ||||
| <Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>網上付款記錄</Typography></Link> | |||||
| <Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> | |||||
| <FormattedMessage id="onlinePaymentHistory"/> | |||||
| </Typography></Link> | |||||
| </li> | </li> | ||||
| <li> | <li> | ||||
| <Link className="manageOrgUser" to='/paymentPage/demandNote'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>繳款通知記錄</Typography></Link> | <Link className="manageOrgUser" to='/paymentPage/demandNote'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>繳款通知記錄</Typography></Link> | ||||
| @@ -160,13 +166,15 @@ function Header(props) { | |||||
| </ul> | </ul> | ||||
| </> | </> | ||||
| : | : | ||||
| <Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>網上付款記錄</Typography></Link> | |||||
| <Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> | |||||
| <FormattedMessage id="onlinePaymentHistory"/> | |||||
| </Typography></Link> | |||||
| } | } | ||||
| </li> | </li> | ||||
| <li> | <li> | ||||
| <Link className="userSetting" > | <Link className="userSetting" > | ||||
| <Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }} onClick={(event) => console.log(event)}> | <Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }} onClick={(event) => console.log(event)}> | ||||
| 設定 | |||||
| <FormattedMessage id="setting"/> | |||||
| </Typography> | </Typography> | ||||
| <KeyboardArrowDownIcon sx={{fontSize: '1.0rem'}}/> | <KeyboardArrowDownIcon sx={{fontSize: '1.0rem'}}/> | ||||
| </Link> | </Link> | ||||
| @@ -174,7 +182,11 @@ function Header(props) { | |||||
| <ul className='dropdown'> | <ul className='dropdown'> | ||||
| <li> | <li> | ||||
| <Link className="manageOrgUser" to='setting/manageUser'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>公司/機構用戶記錄</Typography></Link> | |||||
| <Link className="manageOrgUser" to='setting/manageUser'> | |||||
| <Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}> | |||||
| <FormattedMessage id="companyOrUserRecord"/> | |||||
| </Typography> | |||||
| </Link> | |||||
| </li> | </li> | ||||
| </ul> | </ul> | ||||
| : | : | ||||
| @@ -190,10 +202,18 @@ function Header(props) { | |||||
| const logoutContent = ( | const logoutContent = ( | ||||
| <div> | <div> | ||||
| <li> | <li> | ||||
| <Link className="login" to='/login'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>登入</Typography></Link> | |||||
| <Link className="login" to='/login'> | |||||
| <Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}> | |||||
| <FormattedMessage id="login"/> | |||||
| </Typography> | |||||
| </Link> | |||||
| </li> | </li> | ||||
| <li> | <li> | ||||
| <Link className="register" to='/register'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>申請</Typography></Link> | |||||
| <Link className="register" to='/register'> | |||||
| <Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}> | |||||
| <FormattedMessage id="register"/> | |||||
| </Typography> | |||||
| </Link> | |||||
| </li> | </li> | ||||
| </div> | </div> | ||||
| ); | ); | ||||
| @@ -34,6 +34,7 @@ import { | |||||
| } from "react"; | } from "react"; | ||||
| import {PNSPS_BUTTON_THEME, PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | import {PNSPS_BUTTON_THEME, PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | ||||
| import {ThemeProvider} from "@emotion/react"; | import {ThemeProvider} from "@emotion/react"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const Index = () => { | const Index = () => { | ||||
| @@ -83,7 +84,9 @@ const Index = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>校對記錄</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="proofRecord"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -15,6 +15,7 @@ import Loadable from 'components/Loadable'; | |||||
| const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | ||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const BackgroundHead = { | const BackgroundHead = { | ||||
| backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
| width: '100%', | width: '100%', | ||||
| @@ -66,7 +67,9 @@ const Index = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>校對記錄</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="proofRecord"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -20,6 +20,7 @@ const ApplicationDetails = Loadable(React.lazy(() => import('./ApplicationDetail | |||||
| const ProofForm = Loadable(React.lazy(() => import('./ProofForm'))); | const ProofForm = Loadable(React.lazy(() => import('./ProofForm'))); | ||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
| import MainCard from "../../../components/MainCard"; | import MainCard from "../../../components/MainCard"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const BackgroundHead = { | const BackgroundHead = { | ||||
| backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
| width: '100%', | width: '100%', | ||||
| @@ -86,7 +87,9 @@ const Index = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>校對記錄</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="proofRecord"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -15,6 +15,7 @@ const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/Loa | |||||
| const SearchForm = Loadable(React.lazy(() => import('./SearchForm'))); | const SearchForm = Loadable(React.lazy(() => import('./SearchForm'))); | ||||
| const EventTable = Loadable(React.lazy(() => import('./DataGrid'))); | const EventTable = Loadable(React.lazy(() => import('./DataGrid'))); | ||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const BackgroundHead = { | const BackgroundHead = { | ||||
| backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
| @@ -83,7 +84,9 @@ const UserSearchPage_Individual = () => { | |||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <div style={BackgroundHead}> | <div style={BackgroundHead}> | ||||
| <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | ||||
| <Typography ml={15} color='#FFF' variant="h4">校對記錄</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4"> | |||||
| <FormattedMessage id="proofRecord"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -1,4 +1,4 @@ | |||||
| import { | |||||
| import React, { | |||||
| useEffect, | useEffect, | ||||
| useState | useState | ||||
| } from "react"; | } from "react"; | ||||
| @@ -31,6 +31,7 @@ import { useNavigate } from "react-router-dom"; | |||||
| import ForwardIcon from '@mui/icons-material/Forward'; | import ForwardIcon from '@mui/icons-material/Forward'; | ||||
| import { notifyActionSuccess } from "utils/CommonFunction"; | import { notifyActionSuccess } from "utils/CommonFunction"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| // ==============================|| Body - DEFAULT ||============================== // | // ==============================|| Body - DEFAULT ||============================== // | ||||
| @@ -153,7 +154,9 @@ const DashboardDefault = () => { | |||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <div style={BackgroundHead}> | <div style={BackgroundHead}> | ||||
| <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | ||||
| <Typography ml={15} color='#FFF' variant="h4">我的公共啟事</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4"> | |||||
| <FormattedMessage id="myPublicNotice"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -13,6 +13,7 @@ import * as React from "react"; | |||||
| import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
| import { lazy } from 'react'; | import { lazy } from 'react'; | ||||
| import {useIntl} from "react-intl"; | |||||
| const LoadingComponent = Loadable(lazy(() => import('pages/extra-pages/LoadingComponent'))); | const LoadingComponent = Loadable(lazy(() => import('pages/extra-pages/LoadingComponent'))); | ||||
| const ProofTab = Loadable(lazy(() => import('./ProofTab'))); | const ProofTab = Loadable(lazy(() => import('./ProofTab'))); | ||||
| const PaymentTab = Loadable(lazy(() => import('./PaymentTab'))); | const PaymentTab = Loadable(lazy(() => import('./PaymentTab'))); | ||||
| @@ -25,7 +26,7 @@ const PublicNotice = ({ proofList, paymentList }) => { | |||||
| const [_paymentList, setPaymentList] = React.useState([]); | const [_paymentList, setPaymentList] = React.useState([]); | ||||
| const [onReady, setOnReady] = React.useState(false); | const [onReady, setOnReady] = React.useState(false); | ||||
| const [selectedTab, setSelectedTab] = React.useState("1"); | const [selectedTab, setSelectedTab] = React.useState("1"); | ||||
| const intl = useIntl(); | |||||
| const reloadPage = () => { | const reloadPage = () => { | ||||
| window.location.reload(false); | window.location.reload(false); | ||||
| @@ -55,7 +56,9 @@ const PublicNotice = ({ proofList, paymentList }) => { | |||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | ||||
| <TabList onChange={handleChange} aria-label="lab API tabs example"> | <TabList onChange={handleChange} aria-label="lab API tabs example"> | ||||
| <Tab label={"校對記錄(" + _proofList.length + ") "} value="1" /> | |||||
| <Tab label={ | |||||
| intl.formatMessage({id: 'proofRecord'}) + "(" + _proofList.length + ") "} value="1" | |||||
| /> | |||||
| <Tab label={"付款記錄(" + _paymentList.length + ") "} value="2" /> | <Tab label={"付款記錄(" + _paymentList.length + ") "} value="2" /> | ||||
| </TabList> | </TabList> | ||||
| @@ -25,6 +25,7 @@ const SearchTab = Loadable(lazy(() => import('./SearchPublicNoticeTab'))); | |||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
| import {PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | import {PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | ||||
| import {ThemeProvider} from "@emotion/react"; | import {ThemeProvider} from "@emotion/react"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| @@ -106,7 +107,9 @@ const PublicNotice = () => { | |||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <div style={BackgroundHead}> | <div style={BackgroundHead}> | ||||
| <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | ||||
| <Typography ml={15} color='#FFF' variant="h4">我的公共啟事</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4"> | |||||
| <FormattedMessage id="myPublicNotice"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -12,6 +12,7 @@ import * as React from "react"; | |||||
| import * as HttpUtils from "utils/HttpUtils"; | import * as HttpUtils from "utils/HttpUtils"; | ||||
| import * as UrlUtils from "utils/ApiPathConst"; | import * as UrlUtils from "utils/ApiPathConst"; | ||||
| import * as DateUtils from "utils/DateUtils"; | import * as DateUtils from "utils/DateUtils"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const BackgroundHead = { | const BackgroundHead = { | ||||
| backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
| @@ -193,7 +194,9 @@ const ManageOrgUserPage = () => { | |||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <div style={BackgroundHead}> | <div style={BackgroundHead}> | ||||
| <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | ||||
| <Typography ml={15} color='#FFF' variant="h4">公司/機構用戶記錄</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4"> | |||||
| <FormattedMessage id="companyOrUserRecord"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -5,7 +5,8 @@ import { Grid, Stack, Typography } from '@mui/material'; | |||||
| // project import | // project import | ||||
| import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
| import { lazy } from 'react'; | |||||
| import React, { lazy } from 'react'; | |||||
| import {FormattedMessage} from "react-intl"; | |||||
| const AuthLogin = Loadable(lazy(() => import('./auth-forms/AuthLoginCustom'))); | const AuthLogin = Loadable(lazy(() => import('./auth-forms/AuthLoginCustom'))); | ||||
| const AuthWrapper = Loadable(lazy(() => import('./AuthWrapper'))); | const AuthWrapper = Loadable(lazy(() => import('./AuthWrapper'))); | ||||
| // import AuthLogin from './auth-forms/AuthLoginCustom'; | // import AuthLogin from './auth-forms/AuthLoginCustom'; | ||||
| @@ -17,7 +18,9 @@ const Login = () => ( | |||||
| <Grid container spacing={3}> | <Grid container spacing={3}> | ||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <Stack direction="row" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> | <Stack direction="row" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> | ||||
| <Typography variant="h3">登入</Typography> | |||||
| <Typography variant="h3"> | |||||
| <FormattedMessage id="login"/> | |||||
| </Typography> | |||||
| {/* <Typography component={Link} to="/register" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> | {/* <Typography component={Link} to="/register" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> | ||||
| Don't have an account? | Don't have an account? | ||||
| </Typography> */} | </Typography> */} | ||||
| @@ -35,6 +35,7 @@ import axios from "axios"; | |||||
| import {useDispatch} from "react-redux"; | import {useDispatch} from "react-redux"; | ||||
| import {handleLogin} from "auth/index"; | import {handleLogin} from "auth/index"; | ||||
| import { notifyActionSuccess } from 'utils/CommonFunction'; | import { notifyActionSuccess } from 'utils/CommonFunction'; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| // ============================|| FIREBASE - LOGIN ||============================ // | // ============================|| FIREBASE - LOGIN ||============================ // | ||||
| const AuthLogin = () => { | const AuthLogin = () => { | ||||
| @@ -207,7 +208,7 @@ const AuthLogin = () => { | |||||
| <AnimateButton> | <AnimateButton> | ||||
| <Button disableElevation onClick={tryLogin} | <Button disableElevation onClick={tryLogin} | ||||
| disabled={isSubmitting} fullWidth size="large" type="submit" variant="contained" color="primary"> | disabled={isSubmitting} fullWidth size="large" type="submit" variant="contained" color="primary"> | ||||
| 登入 | |||||
| <FormattedMessage id="login"/> | |||||
| </Button> | </Button> | ||||
| </AnimateButton> | </AnimateButton> | ||||
| </Grid> | </Grid> | ||||
| @@ -247,7 +247,9 @@ const AuthLoginCustom = () => { | |||||
| </Grid> | </Grid> | ||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <Stack spacing={1}> | <Stack spacing={1}> | ||||
| <InputLabel htmlFor="password-login"><Typography variant="h5">密碼</Typography></InputLabel> | |||||
| <InputLabel htmlFor="password-login"><Typography variant="h5"> | |||||
| <FormattedMessage id="userPassword"/> | |||||
| </Typography></InputLabel> | |||||
| <OutlinedInput | <OutlinedInput | ||||
| fullWidth | fullWidth | ||||
| id="password-login" | id="password-login" | ||||
| @@ -292,7 +294,9 @@ const AuthLoginCustom = () => { | |||||
| borderColor: "#e7e7e7" | borderColor: "#e7e7e7" | ||||
| } | } | ||||
| }}> | }}> | ||||
| <Typography variant="h5">登錄</Typography> | |||||
| <Typography variant="h5"> | |||||
| <FormattedMessage id="login"/> | |||||
| </Typography> | |||||
| </Button> | </Button> | ||||
| </AnimateButton> | </AnimateButton> | ||||
| </Grid> | </Grid> | ||||
| @@ -53,12 +53,12 @@ import LoopIcon from '@mui/icons-material/Loop'; | |||||
| import { useTheme } from '@mui/material/styles'; | import { useTheme } from '@mui/material/styles'; | ||||
| import {PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | import {PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | ||||
| import {ThemeProvider} from "@emotion/react"; | import {ThemeProvider} from "@emotion/react"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| import {FormattedMessage, useIntl} from "react-intl"; | |||||
| //import { Invaild } from 'utils/IconUtils'; | //import { Invaild } from 'utils/IconUtils'; | ||||
| // ============================|| FIREBASE - REGISTER ||============================ // | // ============================|| FIREBASE - REGISTER ||============================ // | ||||
| const BusCustomFormWizard = (props) => { | const BusCustomFormWizard = (props) => { | ||||
| const intl = useIntl(); | |||||
| const theme = useTheme() | const theme = useTheme() | ||||
| const [level, setLevel] = useState(); | const [level, setLevel] = useState(); | ||||
| const [showPassword, setShowPassword] = useState(false); | const [showPassword, setShowPassword] = useState(false); | ||||
| @@ -602,7 +602,7 @@ const BusCustomFormWizard = (props) => { | |||||
| props.setUsername(e.target.value) | props.setUsername(e.target.value) | ||||
| formik.handleChange(e) | formik.handleChange(e) | ||||
| }} | }} | ||||
| placeholder="用戶登入名稱" | |||||
| placeholder={intl.formatMessage({id: 'userLoginName'})} | |||||
| fullWidth | fullWidth | ||||
| error={Boolean((formik.touched.username && formik.errors.username) || checkUsername)} | error={Boolean((formik.touched.username && formik.errors.username) || checkUsername)} | ||||
| onBlur={formik.handleBlur} | onBlur={formik.handleBlur} | ||||
| @@ -633,7 +633,7 @@ const BusCustomFormWizard = (props) => { | |||||
| <Stack direction="row" justifyContent="space-between"> | <Stack direction="row" justifyContent="space-between"> | ||||
| <InputLabel htmlFor="password-signup"> | <InputLabel htmlFor="password-signup"> | ||||
| <Typography variant="pnspsFormHeader"> | <Typography variant="pnspsFormHeader"> | ||||
| 密碼 | |||||
| <FormattedMessage id="userPassword"/> | |||||
| <span style={{ color: '#f10000' }}>*</span> | <span style={{ color: '#f10000' }}>*</span> | ||||
| </Typography> | </Typography> | ||||
| </InputLabel> | </InputLabel> | ||||
| @@ -662,7 +662,7 @@ const BusCustomFormWizard = (props) => { | |||||
| </IconButton> | </IconButton> | ||||
| </InputAdornment> | </InputAdornment> | ||||
| } | } | ||||
| placeholder="密碼" | |||||
| placeholder={intl.formatMessage({id: 'userPassword'})} | |||||
| onBlur={formik.handleBlur} | onBlur={formik.handleBlur} | ||||
| inputProps={{ | inputProps={{ | ||||
| onKeyDown: (e) => { | onKeyDown: (e) => { | ||||
| @@ -1421,7 +1421,7 @@ const BusCustomFormWizard = (props) => { | |||||
| <Grid item xs={12} > | <Grid item xs={12} > | ||||
| <Stack spacing={1} direction="row"> | <Stack spacing={1} direction="row"> | ||||
| <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> | <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> | ||||
| 用戶登入名稱: | |||||
| {intl.formatMessage({id: 'userLoginName'})}: | |||||
| </Typography> | </Typography> | ||||
| <Typography variant="pnspsFormHeader" id="preview-username-login"> | <Typography variant="pnspsFormHeader" id="preview-username-login"> | ||||
| {formik.values.username} | {formik.values.username} | ||||
| @@ -52,11 +52,12 @@ import LoopIcon from '@mui/icons-material/Loop'; | |||||
| import { useTheme } from '@mui/material/styles'; | import { useTheme } from '@mui/material/styles'; | ||||
| import {PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | import {PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; | ||||
| import {ThemeProvider} from "@emotion/react"; | import {ThemeProvider} from "@emotion/react"; | ||||
| import {FormattedMessage, useIntl} from "react-intl"; | |||||
| // ============================|| FIREBASE - REGISTER ||============================ // | // ============================|| FIREBASE - REGISTER ||============================ // | ||||
| const CustomFormWizard = (props) => { | const CustomFormWizard = (props) => { | ||||
| const intl = useIntl(); | |||||
| const theme = useTheme() | const theme = useTheme() | ||||
| const [level, setLevel] = useState(); | const [level, setLevel] = useState(); | ||||
| const [showPassword, setShowPassword] = useState(false); | const [showPassword, setShowPassword] = useState(false); | ||||
| @@ -675,7 +676,7 @@ const CustomFormWizard = (props) => { | |||||
| <Stack spacing={1}> | <Stack spacing={1}> | ||||
| <InputLabel htmlFor="username-signup"> | <InputLabel htmlFor="username-signup"> | ||||
| <Typography variant="pnspsFormHeader"> | <Typography variant="pnspsFormHeader"> | ||||
| 用戶登入名稱 | |||||
| <FormattedMessage id="userLoginName"/> | |||||
| <span style={{ color: '#f10000' }}>*</span> | <span style={{ color: '#f10000' }}>*</span> | ||||
| {/*<Button*/} | {/*<Button*/} | ||||
| {/* variant="contained"*/} | {/* variant="contained"*/} | ||||
| @@ -695,7 +696,7 @@ const CustomFormWizard = (props) => { | |||||
| props.setUsername(e.target.value) | props.setUsername(e.target.value) | ||||
| formik.handleChange(e) | formik.handleChange(e) | ||||
| }} | }} | ||||
| placeholder="用戶登入名稱" | |||||
| placeholder={intl.formatMessage({id: 'userLoginName'})} | |||||
| fullWidth | fullWidth | ||||
| error={Boolean((formik.touched.username && formik.errors.username) || checkUsername)} | error={Boolean((formik.touched.username && formik.errors.username) || checkUsername)} | ||||
| onBlur={formik.handleBlur} | onBlur={formik.handleBlur} | ||||
| @@ -726,7 +727,7 @@ const CustomFormWizard = (props) => { | |||||
| <Stack direction="row" justifyContent="space-between"> | <Stack direction="row" justifyContent="space-between"> | ||||
| <InputLabel htmlFor="password-signup"> | <InputLabel htmlFor="password-signup"> | ||||
| <Typography variant="pnspsFormHeader"> | <Typography variant="pnspsFormHeader"> | ||||
| 密碼 | |||||
| <FormattedMessage id="userPassword"/> | |||||
| <span style={{ color: '#f10000' }}>*</span> | <span style={{ color: '#f10000' }}>*</span> | ||||
| </Typography> | </Typography> | ||||
| </InputLabel> | </InputLabel> | ||||
| @@ -755,7 +756,7 @@ const CustomFormWizard = (props) => { | |||||
| </IconButton> | </IconButton> | ||||
| </InputAdornment> | </InputAdornment> | ||||
| } | } | ||||
| placeholder="密碼" | |||||
| placeholder={intl.formatMessage({id: 'userPassword'})} | |||||
| onBlur={formik.handleBlur} | onBlur={formik.handleBlur} | ||||
| inputProps={{ | inputProps={{ | ||||
| onKeyDown: (e) => { | onKeyDown: (e) => { | ||||
| @@ -1590,7 +1591,7 @@ const CustomFormWizard = (props) => { | |||||
| <Grid item xs={12} > | <Grid item xs={12} > | ||||
| <Stack spacing={2} direction="row"> | <Stack spacing={2} direction="row"> | ||||
| <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> | <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> | ||||
| 用戶登入名稱: | |||||
| <FormattedMessage id="userLoginName"/>: | |||||
| </Typography> | </Typography> | ||||
| <Typography variant="pnspsFormHeader" id="preview-username-login"> | <Typography variant="pnspsFormHeader" id="preview-username-login"> | ||||
| {formik.values.username} | {formik.values.username} | ||||
| @@ -3,8 +3,18 @@ | |||||
| "zh-HK": "繁體中文", | "zh-HK": "繁體中文", | ||||
| "zh-CN": "简体中文", | "zh-CN": "简体中文", | ||||
| "userLoginName": "User login name", | |||||
| "mainPage": "Main Page", | "mainPage": "Main Page", | ||||
| "myPublicNotice": "My Public Notice", | |||||
| "proofRecord": "Proof Record", | |||||
| "onlinePaymentHistory": "Online Payment History", | |||||
| "setting": "Setting", | |||||
| "companyOrUserRecord": "Company/Institutional User Records", | |||||
| "login": "Login", | |||||
| "register": "Register", | |||||
| "userLoginName": "Username", | |||||
| "userPassword": "Password", | |||||
| "Dashboard": "Dashboard", | "Dashboard": "Dashboard", | ||||
| "event": "Event" | "event": "Event" | ||||
| @@ -3,8 +3,17 @@ | |||||
| "zh-HK": "繁體中文", | "zh-HK": "繁體中文", | ||||
| "zh-CN": "简体中文", | "zh-CN": "简体中文", | ||||
| "userLoginName": "用戶登入名稱", | |||||
| "mainPage": "主页", | "mainPage": "主页", | ||||
| "myPublicNotice": "我的公共启事", | |||||
| "proofRecord": "校对记录", | |||||
| "onlinePaymentHistory": "网上付款记录", | |||||
| "setting": "设置", | |||||
| "companyOrUserRecord": "公司/机构用户记录", | |||||
| "login": "登录", | |||||
| "register": "申请", | |||||
| "userLoginName": "用户登入名称", | |||||
| "userPassword": "密码", | |||||
| "Dashboard": "仪表板", | "Dashboard": "仪表板", | ||||
| "event": "活动" | "event": "活动" | ||||
| @@ -3,8 +3,17 @@ | |||||
| "zh-HK": "繁體中文", | "zh-HK": "繁體中文", | ||||
| "zh-CN": "简体中文", | "zh-CN": "简体中文", | ||||
| "userLoginName": "用戶登入名稱", | |||||
| "mainPage": "主頁", | "mainPage": "主頁", | ||||
| "myPublicNotice": "我的公共啟事", | |||||
| "proofRecord": "校對記錄", | |||||
| "onlinePaymentHistory": "網上付款記錄", | |||||
| "setting": "設定", | |||||
| "companyOrUserRecord": "公司/機構用戶記錄", | |||||
| "login": "登入", | |||||
| "register": "申請", | |||||
| "userLoginName": "用戶登入名稱", | |||||
| "userPassword": "密碼", | |||||
| "Dashboard": "儀表板", | "Dashboard": "儀表板", | ||||
| "event": "活動" | "event": "活動" | ||||