| Autore | SHA1 | Messaggio | Data |
|---|---|---|---|
|
|
1f16b40fe9 | aria-label for careOf | 2 settimane fa |
|
|
b648db4023 | added back missing i18n | 2 settimane fa |
|
|
20accadbe1 | add back aria-label with i18n | 2 settimane fa |
|
|
23918f7cf1 | update all aria-label | 2 settimane fa |
|
|
572762b31c | add i18n | 2 settimane fa |
| @@ -1,5 +1,6 @@ | |||||
| // material-ui | // material-ui | ||||
| import {useState, useEffect} from 'react'; | import {useState, useEffect} from 'react'; | ||||
| import { useIntl } from 'react-intl'; | |||||
| import iAmSmartICon from 'assets/images/icons/icon_iAmSmart.png'; | import iAmSmartICon from 'assets/images/icons/icon_iAmSmart.png'; | ||||
| import { | import { | ||||
| Button, | Button, | ||||
| @@ -9,7 +10,7 @@ import { | |||||
| // ==============================|| EVENT TABLE ||============================== // | // ==============================|| EVENT TABLE ||============================== // | ||||
| export function IAmSmartButton({ label, onClickFun, fullWidth }) { | export function IAmSmartButton({ label, onClickFun, fullWidth }) { | ||||
| const intl = useIntl(); | |||||
| const [_label, set_label] = useState(""); | const [_label, set_label] = useState(""); | ||||
| useEffect(()=>{ | useEffect(()=>{ | ||||
| @@ -23,7 +24,7 @@ export function IAmSmartButton({ label, onClickFun, fullWidth }) { | |||||
| } | } | ||||
| return ( | return ( | ||||
| <Button onClick={()=>doOnClick()} sx={{textTransform: 'none'}} color="iAmSmart" fullWidth={fullWidth} size="large" variant="outlined" startIcon={<img src={iAmSmartICon} alt="iAM Smart" width="30" />}> | |||||
| <Button onClick={()=>doOnClick()} sx={{textTransform: 'none'}} color="iAmSmart" fullWidth={fullWidth} size="large" variant="outlined" startIcon={<img src={iAmSmartICon} alt={intl.formatMessage({ id: 'iAmSmartAlt' })} width="30" />}> | |||||
| <Typography variant="h5"> | <Typography variant="h5"> | ||||
| {_label} | {_label} | ||||
| </Typography> | </Typography> | ||||
| @@ -4,6 +4,7 @@ import { useMemo } from 'react'; | |||||
| // material-ui | // material-ui | ||||
| import { useTheme } from '@mui/material/styles'; | import { useTheme } from '@mui/material/styles'; | ||||
| import { Box, Drawer, useMediaQuery } from '@mui/material'; | import { Box, Drawer, useMediaQuery } from '@mui/material'; | ||||
| import { useIntl } from 'react-intl'; | |||||
| // project import | // project import | ||||
| import DrawerHeader from './DrawerHeader'; | import DrawerHeader from './DrawerHeader'; | ||||
| @@ -15,6 +16,7 @@ import { drawerWidth } from 'config'; | |||||
| const MainDrawer = ({ open, handleDrawerToggle, window }) => { | const MainDrawer = ({ open, handleDrawerToggle, window }) => { | ||||
| const theme = useTheme(); | const theme = useTheme(); | ||||
| const intl = useIntl(); | |||||
| const matchDownMD = useMediaQuery(theme.breakpoints.down('lg')); | const matchDownMD = useMediaQuery(theme.breakpoints.down('lg')); | ||||
| // responsive drawer container | // responsive drawer container | ||||
| @@ -25,7 +27,7 @@ const MainDrawer = ({ open, handleDrawerToggle, window }) => { | |||||
| const drawerHeader = useMemo(() => <DrawerHeader open={open} />, [open]); | const drawerHeader = useMemo(() => <DrawerHeader open={open} />, [open]); | ||||
| return ( | return ( | ||||
| <Box component="nav" sx={{ flexShrink: { md: 0 }, zIndex: 1300 }} aria-label="mailbox folders"> | |||||
| <Box component="nav" sx={{ flexShrink: { md: 0 }, zIndex: 1300 }} aria-label={intl.formatMessage({ id: 'ariaMailboxFolders' })}> | |||||
| {!matchDownMD ? ( | {!matchDownMD ? ( | ||||
| <MiniDrawerStyled variant="permanent" open={open}> | <MiniDrawerStyled variant="permanent" open={open}> | ||||
| {drawerHeader} | {drawerHeader} | ||||
| @@ -33,6 +33,7 @@ import { LogoutOutlined, | |||||
| import { handleLogoutFunction } from 'auth/index'; | import { handleLogoutFunction } from 'auth/index'; | ||||
| import {useNavigate} from "react-router-dom"; | import {useNavigate} from "react-router-dom"; | ||||
| import {useDispatch} from "react-redux"; | import {useDispatch} from "react-redux"; | ||||
| import { useIntl } from 'react-intl'; | |||||
| import AccountCircleIcon from '@mui/icons-material/AccountCircle'; | import AccountCircleIcon from '@mui/icons-material/AccountCircle'; | ||||
| // tab panel wrapper | // tab panel wrapper | ||||
| @@ -61,6 +62,7 @@ TabPanel.propTypes = { | |||||
| const Profile = () => { | const Profile = () => { | ||||
| const theme = useTheme(); | const theme = useTheme(); | ||||
| const intl = useIntl(); | |||||
| const navigate = useNavigate() | const navigate = useNavigate() | ||||
| const dispatch = useDispatch() | const dispatch = useDispatch() | ||||
| @@ -170,7 +172,7 @@ const Profile = () => { | |||||
| {/* {open && ( | {/* {open && ( | ||||
| <> | <> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | ||||
| <Tabs variant="fullWidth" value={value} onChange={handleChange} aria-label="profile tabs"> | |||||
| <Tabs variant="fullWidth" value={value} onChange={handleChange} aria-label={intl.formatMessage({ id: 'ariaProfileTabs' })}> | |||||
| <Tab | <Tab | ||||
| sx={{ | sx={{ | ||||
| display: 'flex', | display: 'flex', | ||||
| @@ -31,10 +31,12 @@ import { ThemeProvider } from "@emotion/react"; | |||||
| import { dateStr_Year } from "utils/DateUtils"; | import { dateStr_Year } from "utils/DateUtils"; | ||||
| import { notifySaveSuccess } from 'utils/CommonFunction'; | import { notifySaveSuccess } from 'utils/CommonFunction'; | ||||
| import { isGrantedAny } from "auth/utils"; | import { isGrantedAny } from "auth/utils"; | ||||
| import { useIntl } from 'react-intl'; | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const Index = () => { | const Index = () => { | ||||
| const intl = useIntl(); | |||||
| const [comboData, setComboData] = React.useState([]); | const [comboData, setComboData] = React.useState([]); | ||||
| const [holidayComboData, setHolidayComboData] = React.useState([]); | const [holidayComboData, setHolidayComboData] = React.useState([]); | ||||
| const [onReady, setOnReady] = React.useState(false); | const [onReady, setOnReady] = React.useState(false); | ||||
| @@ -198,7 +200,7 @@ const Index = () => { | |||||
| hidden | hidden | ||||
| disabled={waitImport} | disabled={waitImport} | ||||
| onChange={readFile} | onChange={readFile} | ||||
| aria-label="Upload Excel file (.xlsx)" | |||||
| aria-label={intl.formatMessage({ id: 'ariaUploadExcelFile' })} | |||||
| /> | /> | ||||
| </Button> | </Button> | ||||
| </ThemeProvider> | </ThemeProvider> | ||||
| @@ -31,11 +31,12 @@ import { ThemeProvider } from "@emotion/react"; | |||||
| import { dateStr_Year } from "utils/DateUtils"; | import { dateStr_Year } from "utils/DateUtils"; | ||||
| import { notifySaveSuccess } from 'utils/CommonFunction'; | import { notifySaveSuccess } from 'utils/CommonFunction'; | ||||
| import { isGrantedAny } from "auth/utils"; | import { isGrantedAny } from "auth/utils"; | ||||
| import { useIntl } from 'react-intl'; | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const Index = () => { | const Index = () => { | ||||
| const intl = useIntl(); | |||||
| const [record, setRecord] = React.useState([]); | const [record, setRecord] = React.useState([]); | ||||
| const [comboData, setComboData] = React.useState([]); | const [comboData, setComboData] = React.useState([]); | ||||
| const [onReady, setOnReady] = React.useState(false); | const [onReady, setOnReady] = React.useState(false); | ||||
| @@ -172,7 +173,7 @@ const Index = () => { | |||||
| size="large" | size="large" | ||||
| disabled={waitDownload} | disabled={waitDownload} | ||||
| onClick={doExport} | onClick={doExport} | ||||
| aria-label="Export holiday template" | |||||
| aria-label={intl.formatMessage({ id: 'ariaExportHolidayTemplate' })} | |||||
| > | > | ||||
| <Typography variant="h5">Export</Typography> | <Typography variant="h5">Export</Typography> | ||||
| </Button> | </Button> | ||||
| @@ -194,7 +195,7 @@ const Index = () => { | |||||
| hidden | hidden | ||||
| disabled={waitImport} | disabled={waitImport} | ||||
| onChange={readFile} | onChange={readFile} | ||||
| aria-label="Upload Excel file (.xlsx)" | |||||
| aria-label={intl.formatMessage({ id: 'ariaUploadExcelFile' })} | |||||
| /> | /> | ||||
| </Button> | </Button> | ||||
| </ThemeProvider> | </ThemeProvider> | ||||
| @@ -19,12 +19,13 @@ import * as ComboData from "utils/ComboData"; | |||||
| import * as React from "react"; | import * as React from "react"; | ||||
| import { useFormik } from 'formik'; | import { useFormik } from 'formik'; | ||||
| import { useNavigate } from "react-router-dom"; | import { useNavigate } from "react-router-dom"; | ||||
| import { useIntl } from 'react-intl'; | |||||
| import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
| import { notifySaveSuccess } from 'utils/CommonFunction'; | import { notifySaveSuccess } from 'utils/CommonFunction'; | ||||
| const UploadFileTable = Loadable(React.lazy(() => import('./UploadFileTable'))); | const UploadFileTable = Loadable(React.lazy(() => import('./UploadFileTable'))); | ||||
| const FormPanel = ({ formData }) => { | const FormPanel = ({ formData }) => { | ||||
| const intl = useIntl(); | |||||
| const [data, setData] = React.useState({}); | const [data, setData] = React.useState({}); | ||||
| const [columnPrice, setColumnPrice] = React.useState(ComboData.proofPrice[0]); | const [columnPrice, setColumnPrice] = React.useState(ComboData.proofPrice[0]); | ||||
| const [attachments, setAttachments] = React.useState([]); | const [attachments, setAttachments] = React.useState([]); | ||||
| @@ -289,7 +290,7 @@ const FormPanel = ({ formData }) => { | |||||
| hidden | hidden | ||||
| disabled={attachments.length >= (formik.values.groupType == "Private Bill" ? 2 : 1)} | disabled={attachments.length >= (formik.values.groupType == "Private Bill" ? 2 : 1)} | ||||
| onChange={readFile} | onChange={readFile} | ||||
| aria-label="Upload PDF file" | |||||
| aria-label={intl.formatMessage({ id: 'ariaUploadPdfFile' })} | |||||
| /> | /> | ||||
| </Button> | </Button> | ||||
| </Grid> | </Grid> | ||||
| @@ -20,12 +20,14 @@ const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingCo | |||||
| import * as DateUtils from "utils/DateUtils"; | import * as DateUtils from "utils/DateUtils"; | ||||
| import EditNoteIcon from '@mui/icons-material/EditNote'; | import EditNoteIcon from '@mui/icons-material/EditNote'; | ||||
| import { isGrantedAny } from "auth/utils"; | import { isGrantedAny } from "auth/utils"; | ||||
| import { useIntl } from "react-intl"; | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const GazetteDetailCard = ( | const GazetteDetailCard = ( | ||||
| { applicationDetailData, | { applicationDetailData, | ||||
| setStatus | setStatus | ||||
| } | } | ||||
| ) => { | ) => { | ||||
| const intl = useIntl(); | |||||
| const [onReady, setOnReady] = useState(false); | const [onReady, setOnReady] = useState(false); | ||||
| const [issueNum, setIssueNum] = useState(""); | const [issueNum, setIssueNum] = useState(""); | ||||
| const [issueDate, setIssueDate] = useState(""); | const [issueDate, setIssueDate] = useState(""); | ||||
| @@ -275,6 +277,7 @@ const GazetteDetailCard = ( | |||||
| })} | })} | ||||
| value={careOf} | value={careOf} | ||||
| id='careOf' | id='careOf' | ||||
| inputProps={{ 'aria-label': intl.formatMessage({ id: 'careOf' }) }} | |||||
| sx={{ | sx={{ | ||||
| "& .MuiInputBase-input.Mui-disabled": { | "& .MuiInputBase-input.Mui-disabled": { | ||||
| WebkitTextFillColor: "#000000", | WebkitTextFillColor: "#000000", | ||||
| @@ -9,6 +9,7 @@ import { | |||||
| import { TabPanel, TabContext, TabList } from '@mui/lab'; | import { TabPanel, TabContext, TabList } from '@mui/lab'; | ||||
| import {useState, useEffect, lazy} from "react"; | import {useState, useEffect, lazy} from "react"; | ||||
| import { useIntl } from 'react-intl'; | |||||
| import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
| const LoadingComponent = Loadable(lazy(() => import('../../../extra-pages/LoadingComponent'))); | const LoadingComponent = Loadable(lazy(() => import('../../../extra-pages/LoadingComponent'))); | ||||
| @@ -20,7 +21,7 @@ const StatusHistoryTab = Loadable(lazy(() => import('./StatusHistoryTab'))); | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const PublicNotice = ({ appId, proofCount, paymentCount, statusHistoryCount, setProofCount, setPaymentCount, setStatusHistoryCount }) => { | const PublicNotice = ({ appId, proofCount, paymentCount, statusHistoryCount, setProofCount, setPaymentCount, setStatusHistoryCount }) => { | ||||
| const intl = useIntl(); | |||||
| const [onReady, setOnReady] = useState(false); | const [onReady, setOnReady] = useState(false); | ||||
| const [selectedTab, setSelectedTab] = useState("1"); | const [selectedTab, setSelectedTab] = useState("1"); | ||||
| @@ -41,7 +42,7 @@ const PublicNotice = ({ appId, proofCount, paymentCount, statusHistoryCount, set | |||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider', overflowX: 'auto' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider', overflowX: 'auto' }}> | ||||
| <TabList onChange={handleChange} aria-label="lab API tabs example"> | |||||
| <TabList onChange={handleChange} aria-label={intl.formatMessage({ id: 'ariaRelatedRecords' })}> | |||||
| <Tab renderActiveOnly={false} label={"Proof (" + proofCount + ") "} value="1" /> | <Tab renderActiveOnly={false} label={"Proof (" + proofCount + ") "} value="1" /> | ||||
| <Tab renderActiveOnly={false} label={"Online Payment (" + paymentCount + ") "} value="2" /> | <Tab renderActiveOnly={false} label={"Online Payment (" + paymentCount + ") "} value="2" /> | ||||
| <Tab renderActiveOnly={false} label={"Status History (" + statusHistoryCount + ") "} value="3" /> | <Tab renderActiveOnly={false} label={"Status History (" + statusHistoryCount + ") "} value="3" /> | ||||
| @@ -698,7 +698,9 @@ const ApplicationDetailCard = ( | |||||
| <FormControl variant="outlined" sx={{ width: '100%' }} disabled> | <FormControl variant="outlined" sx={{ width: '100%' }} disabled> | ||||
| <OutlinedInput | <OutlinedInput | ||||
| size="small" | size="small" | ||||
| id="careOf" | |||||
| value={currentApplicationDetailData.careOf} | value={currentApplicationDetailData.careOf} | ||||
| inputProps={{ 'aria-label': intl.formatMessage({ id: 'careOf' }) }} | |||||
| sx={{ | sx={{ | ||||
| "& .MuiInputBase-input.Mui-disabled": { | "& .MuiInputBase-input.Mui-disabled": { | ||||
| WebkitTextFillColor: "#000000", | WebkitTextFillColor: "#000000", | ||||
| @@ -43,7 +43,7 @@ const PublicNotice = ({ appId, proofCount, paymentCount, setProofCount, setPayme | |||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <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={intl.formatMessage({ id: 'ariaRelatedRecords' })}> | |||||
| <Tab | <Tab | ||||
| aria-label={intl.formatMessage({ id: 'proofRecord' })} | aria-label={intl.formatMessage({ id: 'proofRecord' })} | ||||
| label={ | label={ | ||||
| @@ -411,7 +411,7 @@ export default function SubmittedTab({ setCount, url }) { | |||||
| '& .MuiAutocomplete-endAdornment': { top: '50%', transform: 'translateY(-50%)' }, | '& .MuiAutocomplete-endAdornment': { top: '50%', transform: 'translateY(-50%)' }, | ||||
| '& .MuiOutlinedInput-root': { height: 40 } | '& .MuiOutlinedInput-root': { height: 40 } | ||||
| }} | }} | ||||
| renderInput={(params) => <TextField {...params} />} | |||||
| renderInput={(params) => <TextField {...params} inputProps={{ ...params.inputProps, 'aria-label': intl.formatMessage({ id: 'careOf' }) }} />} | |||||
| clearText={intl.formatMessage({ id: "muiClear" })} | clearText={intl.formatMessage({ id: "muiClear" })} | ||||
| closeText={intl.formatMessage({ id: "muiClose" })} | closeText={intl.formatMessage({ id: "muiClose" })} | ||||
| openText={intl.formatMessage({ id: "muiOpen" })} | openText={intl.formatMessage({ id: "muiOpen" })} | ||||
| @@ -142,7 +142,7 @@ const PublicNotice = () => { | |||||
| <Grid item xs={12} sm={12} md={12} lg={12} sx={{ height: '100%', maxWidth: '100%', width: "-webkit-fill-available", backgroundColor: "#fff", mt: 3, mr: { xs: 1, md: 3 }, ml: { xs: 1, md: 3 }, mb: 3, ..._sx }}> | <Grid item xs={12} sm={12} md={12} lg={12} sx={{ height: '100%', maxWidth: '100%', width: "-webkit-fill-available", backgroundColor: "#fff", mt: 3, mr: { xs: 1, md: 3 }, ml: { xs: 1, md: 3 }, mb: 3, ..._sx }}> | ||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider', overflowX: 'auto', overflowY: 'auto' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider', overflowX: 'auto', overflowY: 'auto' }}> | ||||
| <TabList variant="scrollable" onChange={handleChange} aria-label="lab API tabs example" sx={{ display: 'flex', flexDirection: 'row' }}> | |||||
| <TabList variant="scrollable" onChange={handleChange} aria-label={intl.formatMessage({ id: 'ariaRelatedRecords' })} sx={{ display: 'flex', flexDirection: 'row' }}> | |||||
| <Tab aria-label={intl.formatMessage({ id: 'processing' })} label={intl.formatMessage({ id: 'processing' }) + " (" + submittedCount + ")"} value="1" /> | <Tab aria-label={intl.formatMessage({ id: 'processing' })} label={intl.formatMessage({ id: 'processing' }) + " (" + submittedCount + ")"} value="1" /> | ||||
| <Tab aria-label={intl.formatMessage({ id: 'pendingPublish' })} label={intl.formatMessage({ id: 'pendingPublish' }) + " (" + pendingPublishCount + ")"} value="3" /> | <Tab aria-label={intl.formatMessage({ id: 'pendingPublish' })} label={intl.formatMessage({ id: 'pendingPublish' }) + " (" + pendingPublishCount + ")"} value="3" /> | ||||
| <Tab aria-label={intl.formatMessage({ id: 'pendingPayment' })} label={intl.formatMessage({ id: 'pendingPayment' }) + " (" + pendingPaymentCount + ")"} value="4" /> | <Tab aria-label={intl.formatMessage({ id: 'pendingPayment' })} label={intl.formatMessage({ id: 'pendingPayment' }) + " (" + pendingPaymentCount + ")"} value="4" /> | ||||
| @@ -176,7 +176,7 @@ const PublicNotice = () => { | |||||
| <Grid item xs={12} sx={{ minHeight: '80vh', height: "100%", maxHeight: '300vh', maxWidth: '95%', width: "-webkit-fill-available", backgroundColor: "#fff", mt: 3, mr: { xs: 1, md: 3 }, ml: { xs: 1, md: 3 }, mb: 3, ..._sx }}> | <Grid item xs={12} sx={{ minHeight: '80vh', height: "100%", maxHeight: '300vh', maxWidth: '95%', width: "-webkit-fill-available", backgroundColor: "#fff", mt: 3, mr: { xs: 1, md: 3 }, ml: { xs: 1, md: 3 }, mb: 3, ..._sx }}> | ||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | ||||
| <TabList variant="scrollable" onChange={handleChange} aria-label="lab API tabs example"> | |||||
| <TabList variant="scrollable" onChange={handleChange} aria-label={intl.formatMessage({ id: 'ariaApplicationGroup' })}> | |||||
| <Tab aria-label={intl.formatMessage({ id: 'processing' })} label={intl.formatMessage({ id: 'processing' }) + " (" + submittedCount + ")"} value="1" /> | <Tab aria-label={intl.formatMessage({ id: 'processing' })} label={intl.formatMessage({ id: 'processing' }) + " (" + submittedCount + ")"} value="1" /> | ||||
| <Tab aria-label={intl.formatMessage({ id: 'pendingPayment' })} label={intl.formatMessage({ id: 'pendingPayment' }) + " (" + pendingPaymentCount + ")"} value="3" /> | <Tab aria-label={intl.formatMessage({ id: 'pendingPayment' })} label={intl.formatMessage({ id: 'pendingPayment' }) + " (" + pendingPaymentCount + ")"} value="3" /> | ||||
| <Tab aria-label={intl.formatMessage({ id: 'pendingPublish' })} label={intl.formatMessage({ id: 'pendingPublish' }) + " (" + pendingPublishCount + ")"} value="4" /> | <Tab aria-label={intl.formatMessage({ id: 'pendingPublish' })} label={intl.formatMessage({ id: 'pendingPublish' }) + " (" + pendingPublishCount + ")"} value="4" /> | ||||
| @@ -299,7 +299,7 @@ const Index = () => { | |||||
| endAdornment:( | endAdornment:( | ||||
| <InputAdornment position="end"> | <InputAdornment position="end"> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle new password visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleNewPasswordVisibility' })} | |||||
| onClick={handleClickShowNewPassword} | onClick={handleClickShowNewPassword} | ||||
| onMouseDown={handleMouseDownNewPassword} | onMouseDown={handleMouseDownNewPassword} | ||||
| edge="end" | edge="end" | ||||
| @@ -402,7 +402,7 @@ const UserMaintainPage = () => { | |||||
| <MainCard elevation={0} border={false} content={false} sx={{maxWidth: '100%', mr:2, width: "-webkit-fill-available"}}> | <MainCard elevation={0} border={false} content={false} sx={{maxWidth: '100%', mr:2, width: "-webkit-fill-available"}}> | ||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | ||||
| <TabList variant="scrollable" onChange={handleChange} aria-label="lab API tabs example"> | |||||
| <TabList variant="scrollable" onChange={handleChange} aria-label={intl.formatMessage({ id: 'ariaRelatedRecords' })}> | |||||
| <Tab label="Login Log" value="1" /> | <Tab label="Login Log" value="1" /> | ||||
| </TabList> | </TabList> | ||||
| </Box> | </Box> | ||||
| @@ -508,7 +508,7 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => { | |||||
| {showId ? formik.values.identification?.slice(4) : "****"}{showId ? formik.values.checkDigit?'(' +formik.values.checkDigit+ ')': "()" : ""} | {showId ? formik.values.identification?.slice(4) : "****"}{showId ? formik.values.checkDigit?'(' +formik.values.checkDigit+ ')': "()" : ""} | ||||
| </Typography> | </Typography> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle id visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleIdVisibility' })} | |||||
| onClick={handleClickShowId} | onClick={handleClickShowId} | ||||
| onMouseDown={handleMouseDownId} | onMouseDown={handleMouseDownId} | ||||
| edge="end" | edge="end" | ||||
| @@ -537,7 +537,7 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => { | |||||
| {showId ? formik.values.identification?.slice(4) : "****"} | {showId ? formik.values.identification?.slice(4) : "****"} | ||||
| </Typography> | </Typography> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle id visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleIdVisibility' })} | |||||
| onClick={handleClickShowId} | onClick={handleClickShowId} | ||||
| onMouseDown={handleMouseDownId} | onMouseDown={handleMouseDownId} | ||||
| edge="end" | edge="end" | ||||
| @@ -276,7 +276,7 @@ const UserInformationCard_Individual_Pub = ({ formData, loadDataFun }) => { | |||||
| {showId ? formik.values.identification?.slice(4) : "****"}{showId ? formik.values.checkDigit?'(' +formik.values.checkDigit+ ')': "()" : ""} | {showId ? formik.values.identification?.slice(4) : "****"}{showId ? formik.values.checkDigit?'(' +formik.values.checkDigit+ ')': "()" : ""} | ||||
| </Typography> | </Typography> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle id visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleIdVisibility' })} | |||||
| onClick={handleClickShowId} | onClick={handleClickShowId} | ||||
| onMouseDown={handleMouseDownId} | onMouseDown={handleMouseDownId} | ||||
| edge="end" | edge="end" | ||||
| @@ -301,7 +301,7 @@ const UserInformationCard_Individual_Pub = ({ formData, loadDataFun }) => { | |||||
| {showId ?formik.values.identification?.slice(4):"****"} | {showId ?formik.values.identification?.slice(4):"****"} | ||||
| </Typography> | </Typography> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle id visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleIdVisibility' })} | |||||
| onClick={handleClickShowId} | onClick={handleClickShowId} | ||||
| onMouseDown={handleMouseDownId} | onMouseDown={handleMouseDownId} | ||||
| edge="end" | edge="end" | ||||
| @@ -184,7 +184,7 @@ const UserMaintainPage_Individual = () => { | |||||
| <MainCard elevation={0} border={false} content={false} sx={{maxWidth: '100%', mr:2, width: "-webkit-fill-available"}}> | <MainCard elevation={0} border={false} content={false} sx={{maxWidth: '100%', mr:2, width: "-webkit-fill-available"}}> | ||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | ||||
| <TabList variant="scrollable" onChange={handleChange} aria-label="lab API tabs example"> | |||||
| <TabList variant="scrollable" onChange={handleChange} aria-label={intl.formatMessage({ id: 'ariaRelatedRecords' })}> | |||||
| <Tab label="Attachments" value="1" /> | <Tab label="Attachments" value="1" /> | ||||
| <Tab label="Login Log" value="2" /> | <Tab label="Login Log" value="2" /> | ||||
| </TabList> | </TabList> | ||||
| @@ -281,7 +281,7 @@ const UserMaintainPage_Organization = () => { | |||||
| <MainCard elevation={0} border={false} content={false} sx={{maxWidth: '100%', mr:2, width: "-webkit-fill-available"}}> | <MainCard elevation={0} border={false} content={false} sx={{maxWidth: '100%', mr:2, width: "-webkit-fill-available"}}> | ||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | ||||
| <TabList variant="scrollable" onChange={handleChange} aria-label="lab API tabs example"> | |||||
| <TabList variant="scrollable" onChange={handleChange} aria-label={intl.formatMessage({ id: 'ariaRelatedRecords' })}> | |||||
| <Tab label="Attachments" value="1" /> | <Tab label="Attachments" value="1" /> | ||||
| <Tab label="Login Log" value="2" /> | <Tab label="Login Log" value="2" /> | ||||
| </TabList> | </TabList> | ||||
| @@ -103,7 +103,7 @@ const AuthWrapper = ({ children }) => { | |||||
| > | > | ||||
| <Box sx={{ position: 'relative' }}> | <Box sx={{ position: 'relative' }}> | ||||
| <IconButton | <IconButton | ||||
| aria-label="Close" | |||||
| aria-label={intl.formatMessage({ id: 'close' })} | |||||
| onClick={handleCloseImagePopup} | onClick={handleCloseImagePopup} | ||||
| sx={{ | sx={{ | ||||
| position: 'absolute', | position: 'absolute', | ||||
| @@ -148,7 +148,7 @@ const AuthWrapper = ({ children }) => { | |||||
| }} | }} | ||||
| > | > | ||||
| <IconButton | <IconButton | ||||
| aria-label="Close" | |||||
| aria-label={intl.formatMessage({ id: 'close' })} | |||||
| onClick={handleCloseNoticePopup} | onClick={handleCloseNoticePopup} | ||||
| sx={{ | sx={{ | ||||
| position: 'absolute', | position: 'absolute', | ||||
| @@ -1579,7 +1579,7 @@ const BusCustomFormWizard = (props) => { | |||||
| <img src={captchaImg} alt="" /> | <img src={captchaImg} alt="" /> | ||||
| </Grid> | </Grid> | ||||
| <Grid item xs={1} lg={1} style={{ "border": "0px solid black" }}> | <Grid item xs={1} lg={1} style={{ "border": "0px solid black" }}> | ||||
| <IconButton aria-label="refrashCaptcha" size="large" onClick={() => { onCaptchaChange() }}> | |||||
| <IconButton aria-label={intl.formatMessage({ id: 'ariaRefreshCaptcha' })} size="large" onClick={() => { onCaptchaChange() }}> | |||||
| <LoopIcon fontSize="inherit" /> | <LoopIcon fontSize="inherit" /> | ||||
| </IconButton> | </IconButton> | ||||
| </Grid> | </Grid> | ||||
| @@ -1615,7 +1615,7 @@ const BusCustomFormWizard = (props) => { | |||||
| <Button | <Button | ||||
| variant="contained" | variant="contained" | ||||
| onClick={playCaptchaAudio} | onClick={playCaptchaAudio} | ||||
| aria-label={intl.formatMessage({ id: "captchaPlayAudioAria" })} | |||||
| aria-label={intl.formatMessage({ id: "captchaPlayAudio" })} | |||||
| sx={{ | sx={{ | ||||
| backgroundColor: '#0C489E', | backgroundColor: '#0C489E', | ||||
| color: '#FFFFFF', | color: '#FFFFFF', | ||||
| @@ -1916,7 +1916,7 @@ const CustomFormWizard = (props) => { | |||||
| <img src={captchaImg} alt="" /> | <img src={captchaImg} alt="" /> | ||||
| </Grid> | </Grid> | ||||
| <Grid item xs={1} lg={1} style={{ "border": "0px solid black" }}> | <Grid item xs={1} lg={1} style={{ "border": "0px solid black" }}> | ||||
| <IconButton aria-label="refrashCaptcha" size="large" onClick={() => { onCaptchaChange() }}> | |||||
| <IconButton aria-label={intl.formatMessage({ id: 'ariaRefreshCaptcha' })} size="large" onClick={() => { onCaptchaChange() }}> | |||||
| <LoopIcon fontSize="inherit" /> | <LoopIcon fontSize="inherit" /> | ||||
| </IconButton> | </IconButton> | ||||
| </Grid> | </Grid> | ||||
| @@ -1952,7 +1952,7 @@ const CustomFormWizard = (props) => { | |||||
| <Button | <Button | ||||
| variant="contained" | variant="contained" | ||||
| onClick={playCaptchaAudio} | onClick={playCaptchaAudio} | ||||
| aria-label={intl.formatMessage({ id: "captchaPlayAudioAria" })} | |||||
| aria-label={intl.formatMessage({ id: "captchaPlayAudio" })} | |||||
| sx={{ | sx={{ | ||||
| backgroundColor: '#0C489E', | backgroundColor: '#0C489E', | ||||
| color: '#FFFFFF', | color: '#FFFFFF', | ||||
| @@ -2044,7 +2044,7 @@ const CustomFormWizard = (props) => { | |||||
| </Typography> | </Typography> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle id visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleIdVisibility' })} | |||||
| onClick={handleClickShowId} | onClick={handleClickShowId} | ||||
| onMouseDown={handleMouseDownId} | onMouseDown={handleMouseDownId} | ||||
| edge="end" | edge="end" | ||||
| @@ -529,7 +529,7 @@ const CustomFormWizard = (props) => { | |||||
| {iAmSmartData?.idNo?.slice(0, 4)}{showId ? iAmSmartData?.idNo?.slice(4) : "****"}{showId ? '(' + iAmSmartData.checkDigit + ')' : null} | {iAmSmartData?.idNo?.slice(0, 4)}{showId ? iAmSmartData?.idNo?.slice(4) : "****"}{showId ? '(' + iAmSmartData.checkDigit + ')' : null} | ||||
| </Typography> | </Typography> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle id visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleIdVisibility' })} | |||||
| onClick={handleClickShowId} | onClick={handleClickShowId} | ||||
| onMouseDown={handleMouseDownId} | onMouseDown={handleMouseDownId} | ||||
| edge="end" | edge="end" | ||||
| @@ -1034,7 +1034,7 @@ const CustomFormWizard = (props) => { | |||||
| <img src={captchaImg} alt="" /> | <img src={captchaImg} alt="" /> | ||||
| </Grid> | </Grid> | ||||
| <Grid item xs={1} lg={1} style={{ "border": "0px solid black" }}> | <Grid item xs={1} lg={1} style={{ "border": "0px solid black" }}> | ||||
| <IconButton aria-label="refrashCaptcha" size="large" onClick={() => { onCaptchaChange() }}> | |||||
| <IconButton aria-label={intl.formatMessage({ id: 'ariaRefreshCaptcha' })} size="large" onClick={() => { onCaptchaChange() }}> | |||||
| <LoopIcon fontSize="inherit" /> | <LoopIcon fontSize="inherit" /> | ||||
| </IconButton> | </IconButton> | ||||
| </Grid> | </Grid> | ||||
| @@ -1066,7 +1066,7 @@ const CustomFormWizard = (props) => { | |||||
| <Button | <Button | ||||
| variant="contained" | variant="contained" | ||||
| onClick={playCaptchaAudio} | onClick={playCaptchaAudio} | ||||
| aria-label={intl.formatMessage({ id: "captchaPlayAudioAria" })} | |||||
| aria-label={intl.formatMessage({ id: "captchaPlayAudio" })} | |||||
| sx={{ | sx={{ | ||||
| backgroundColor: '#0C489E', | backgroundColor: '#0C489E', | ||||
| color: '#FFFFFF', | color: '#FFFFFF', | ||||
| @@ -1120,7 +1120,7 @@ const CustomFormWizard = (props) => { | |||||
| {/* {formik.values.idNo + "(" + formik.values.checkDigit + ")"} */} | {/* {formik.values.idNo + "(" + formik.values.checkDigit + ")"} */} | ||||
| </Typography> | </Typography> | ||||
| <IconButton | <IconButton | ||||
| aria-label="toggle id visibility" | |||||
| aria-label={intl.formatMessage({ id: 'ariaToggleIdVisibility' })} | |||||
| onClick={handleClickShowComId} | onClick={handleClickShowComId} | ||||
| onMouseDown={handleMouseDownComId} | onMouseDown={handleMouseDownComId} | ||||
| edge="end" | edge="end" | ||||
| @@ -2,11 +2,13 @@ import { | |||||
| ButtonBase | ButtonBase | ||||
| } from '@mui/material' | } from '@mui/material' | ||||
| import { useNavigate } from "react-router-dom"; | import { useNavigate } from "react-router-dom"; | ||||
| import { useIntl } from 'react-intl'; | |||||
| import MainCard from 'components/MainCard'; | import MainCard from 'components/MainCard'; | ||||
| //import errorImg from '@src/assets/images/pages/error.svg' | //import errorImg from '@src/assets/images/pages/error.svg' | ||||
| const ErrorPage = () => { | const ErrorPage = () => { | ||||
| const intl = useIntl(); | |||||
| let navigate = useNavigate(); | let navigate = useNavigate(); | ||||
| const handleToHomePage = () =>{ | const handleToHomePage = () =>{ | ||||
| let path = `/`; | let path = `/`; | ||||
| @@ -30,8 +32,7 @@ const ErrorPage = () => { | |||||
| borderRadius: 30, | borderRadius: 30, | ||||
| '&:hover': { bgcolor: 'secondary.lighter' } | '&:hover': { bgcolor: 'secondary.lighter' } | ||||
| }} | }} | ||||
| aria-label="Back to home" | |||||
| aria-controls={open ? 'profile-grow' : undefined} | |||||
| aria-label={intl.formatMessage({ id: 'ariaBackToHome' })} | |||||
| aria-haspopup="true" | aria-haspopup="true" | ||||
| onClick={handleToHomePage}> | onClick={handleToHomePage}> | ||||
| Back to home | Back to home | ||||
| @@ -13,6 +13,7 @@ | |||||
| "openLanguage": "Language Menu", | "openLanguage": "Language Menu", | ||||
| "bhkLogoAlt": "Brand Hong Kong logo", | "bhkLogoAlt": "Brand Hong Kong logo", | ||||
| "iAmSmartAlt": "iAM Smart", | |||||
| "wcagAaAlt": "Level AA conformance, W3C WAI Web Content Accessibility Guidelines 2.0", | "wcagAaAlt": "Level AA conformance, W3C WAI Web Content Accessibility Guidelines 2.0", | ||||
| "downloadPdfAria": "Download PDF: {guide} ({userType})", | "downloadPdfAria": "Download PDF: {guide} ({userType})", | ||||
| "captchaPlayAudio": "Play audio CAPTCHA", | "captchaPlayAudio": "Play audio CAPTCHA", | ||||
| @@ -250,6 +251,8 @@ | |||||
| "requireDialingCode": "Please enter the international dialing code", | "requireDialingCode": "Please enter the international dialing code", | ||||
| "requireVerify": "Please enter verification", | "requireVerify": "Please enter verification", | ||||
| "dialingCode": "Global Code", | "dialingCode": "Global Code", | ||||
| "phoneCountryCode": "Phone dialing code", | |||||
| "faxCountryCode": "Fax dialing code", | |||||
| "userFaxNumber": "Fax Number", | "userFaxNumber": "Fax Number", | ||||
| "userIdDoc": "Identification document", | "userIdDoc": "Identification document", | ||||
| "userIDNo": "ID Card Number", | "userIDNo": "ID Card Number", | ||||
| @@ -276,6 +279,7 @@ | |||||
| "businessRegCert": "Business Registration Certificate", | "businessRegCert": "Business Registration Certificate", | ||||
| "businessRegCertNumber": "Hong Kong Business Reg Cert Number", | "businessRegCertNumber": "Hong Kong Business Reg Cert Number", | ||||
| "businessRegCertAndDoc":"Business Registration Certificate and other documents", | "businessRegCertAndDoc":"Business Registration Certificate and other documents", | ||||
| "businessRegCertExpiryDate": "Business registration certificate expiry date", | |||||
| "pleaseUploadDoc": "Please upload a digital file of your valid business registration certificate and other documents to verify your identity.", | "pleaseUploadDoc": "Please upload a digital file of your valid business registration certificate and other documents to verify your identity.", | ||||
| "uploadFile": "Upload business registration certificate and other documents", | "uploadFile": "Upload business registration certificate and other documents", | ||||
| "pleaseUploadIdDoc": "Please upload a digital file of your valid identity document to verify your identity.", | "pleaseUploadIdDoc": "Please upload a digital file of your valid identity document to verify your identity.", | ||||
| @@ -544,6 +548,7 @@ | |||||
| "MSG.setPrimay": "Are you sure to mark user “{username}” as primary user?", | "MSG.setPrimay": "Are you sure to mark user “{username}” as primary user?", | ||||
| "MSG.revokePrimay": "Are you sure to revoke the primary user from user “{username}”?", | "MSG.revokePrimay": "Are you sure to revoke the primary user from user “{username}”?", | ||||
| "MSG.App": "Application", | |||||
| "submitApplication": "Submit Public Notice application", | "submitApplication": "Submit Public Notice application", | ||||
| "applicationSubheading": "Provide your Public Notice for formatting, proofreading and pricing.", | "applicationSubheading": "Provide your Public Notice for formatting, proofreading and pricing.", | ||||
| "announcement": "Announcements", | "announcement": "Announcements", | ||||
| @@ -628,5 +633,17 @@ | |||||
| "paginationPrev": "Go to previous page", | "paginationPrev": "Go to previous page", | ||||
| "paginationNext": "Go to next page", | "paginationNext": "Go to next page", | ||||
| "sort": "Sort" | |||||
| "sort": "Sort", | |||||
| "ariaToggleNewPasswordVisibility": "Toggle new password visibility", | |||||
| "ariaToggleIdVisibility": "Toggle ID visibility", | |||||
| "ariaRefreshCaptcha": "Refresh CAPTCHA", | |||||
| "ariaRelatedRecords": "Related Records", | |||||
| "ariaApplicationGroup": "Application Group", | |||||
| "ariaProfileTabs": "Profile tabs", | |||||
| "ariaUploadPdfFile": "Upload PDF file", | |||||
| "ariaExportHolidayTemplate": "Export holiday template", | |||||
| "ariaUploadExcelFile": "Upload Excel file (.xlsx)", | |||||
| "ariaBackToHome": "Back to home", | |||||
| "ariaMailboxFolders": "Mailbox folders" | |||||
| } | } | ||||
| @@ -13,6 +13,7 @@ | |||||
| "openLanguage": "语言选单", | "openLanguage": "语言选单", | ||||
| "bhkLogoAlt": "香港品牌标志", | "bhkLogoAlt": "香港品牌标志", | ||||
| "iAmSmartAlt": "智方便", | |||||
| "wcagAaAlt": "符合 WCAG 2.0 AA 级别(W3C WAI 网页内容无障碍指引)", | "wcagAaAlt": "符合 WCAG 2.0 AA 级别(W3C WAI 网页内容无障碍指引)", | ||||
| "downloadPdfAria": "下载 PDF:{guide}({userType})", | "downloadPdfAria": "下载 PDF:{guide}({userType})", | ||||
| "captchaPlayAudio": "播放语音验证码", | "captchaPlayAudio": "播放语音验证码", | ||||
| @@ -287,6 +288,8 @@ | |||||
| "passwordExpired": "你的密码已过期,请立即更改密码以继续使用系统。", | "passwordExpired": "你的密码已过期,请立即更改密码以继续使用系统。", | ||||
| "verifyFail": "十分抱歉,验证失败,请在办公时间与我们联络,联络方式可在『关于我们』页面找到(https://pnsps.gld.gov.hk/aboutUs)。", | "verifyFail": "十分抱歉,验证失败,请在办公时间与我们联络,联络方式可在『关于我们』页面找到(https://pnsps.gld.gov.hk/aboutUs)。", | ||||
| "dialingCode": "国际区号", | "dialingCode": "国际区号", | ||||
| "phoneCountryCode": "电话区号", | |||||
| "faxCountryCode": "传真区号", | |||||
| "userFaxNumber": "传真号码", | "userFaxNumber": "传真号码", | ||||
| "userIdDoc": "身份证明文件", | "userIdDoc": "身份证明文件", | ||||
| "userIDNo": "身份证号码", | "userIDNo": "身份证号码", | ||||
| @@ -312,6 +315,7 @@ | |||||
| "businessRegCert": "商业登记证", | "businessRegCert": "商业登记证", | ||||
| "businessRegCertNumber": "香港商业登记证号码", | "businessRegCertNumber": "香港商业登记证号码", | ||||
| "businessRegCertAndDoc":"商业登记证及其他文件", | "businessRegCertAndDoc":"商业登记证及其他文件", | ||||
| "businessRegCertExpiryDate": "商业登记证有效期届满日期", | |||||
| "pleaseUploadDoc": "请上传你的 有效商业登记证及其他文件 的数码档案,以验证你的身份。", | "pleaseUploadDoc": "请上传你的 有效商业登记证及其他文件 的数码档案,以验证你的身份。", | ||||
| "uploadFile": "上传商业登记证及其他文件", | "uploadFile": "上传商业登记证及其他文件", | ||||
| "pleaseUploadIdDoc": "请上传你的 有效身份证明文件 的数码档案,以验证你的身份。", | "pleaseUploadIdDoc": "请上传你的 有效身份证明文件 的数码档案,以验证你的身份。", | ||||
| @@ -540,6 +544,7 @@ | |||||
| "MSG.setPrimay": "是否确定设定 “{username}” 为主要账户吗?", | "MSG.setPrimay": "是否确定设定 “{username}” 为主要账户吗?", | ||||
| "MSG.revokePrimay": "是否确定要撤销 “{username}” 为主要用户吗?", | "MSG.revokePrimay": "是否确定要撤销 “{username}” 为主要用户吗?", | ||||
| "MSG.App": "申请", | |||||
| "submitApplication": "提交公共启事申请", | "submitApplication": "提交公共启事申请", | ||||
| "applicationSubheading": "提供你的启事内容作排版,校对及计算所需费用。", | "applicationSubheading": "提供你的启事内容作排版,校对及计算所需费用。", | ||||
| "announcement": "通告", | "announcement": "通告", | ||||
| @@ -624,5 +629,17 @@ | |||||
| "paginationPrev": "上一页", | "paginationPrev": "上一页", | ||||
| "paginationNext": "下一页", | "paginationNext": "下一页", | ||||
| "sort": "排序" | |||||
| "sort": "排序", | |||||
| "ariaToggleNewPasswordVisibility": "切换新密码可见性", | |||||
| "ariaToggleIdVisibility": "切换身份证明文件可见性", | |||||
| "ariaRefreshCaptcha": "刷新验证码", | |||||
| "ariaRelatedRecords": "相关记录", | |||||
| "ariaApplicationGroup": "申请组别", | |||||
| "ariaProfileTabs": "个人资料选项卡", | |||||
| "ariaUploadPdfFile": "上传 PDF 文件", | |||||
| "ariaExportHolidayTemplate": "导出假期模板", | |||||
| "ariaUploadExcelFile": "上传 Excel 文件 (.xlsx)", | |||||
| "ariaBackToHome": "返回主页", | |||||
| "ariaMailboxFolders": "邮箱文件夹" | |||||
| } | } | ||||
| @@ -13,6 +13,7 @@ | |||||
| "openLanguage": "語言選單", | "openLanguage": "語言選單", | ||||
| "bhkLogoAlt": "香港品牌標誌", | "bhkLogoAlt": "香港品牌標誌", | ||||
| "iAmSmartAlt": "智方便", | |||||
| "wcagAaAlt": "符合 WCAG 2.0 AA 級別(W3C WAI 網頁內容無障礙指引)", | "wcagAaAlt": "符合 WCAG 2.0 AA 級別(W3C WAI 網頁內容無障礙指引)", | ||||
| "downloadPdfAria": "下載 PDF:{guide}({userType})", | "downloadPdfAria": "下載 PDF:{guide}({userType})", | ||||
| "captchaPlayAudio": "播放語音驗證碼", | "captchaPlayAudio": "播放語音驗證碼", | ||||
| @@ -285,6 +286,8 @@ | |||||
| "requireDialingCode": "請輸入國際區號", | "requireDialingCode": "請輸入國際區號", | ||||
| "requireVerify": "請輸入驗證", | "requireVerify": "請輸入驗證", | ||||
| "dialingCode": "國際區號", | "dialingCode": "國際區號", | ||||
| "phoneCountryCode": "電話區號", | |||||
| "faxCountryCode": "傳真區號", | |||||
| "userFaxNumber": "傳真號碼", | "userFaxNumber": "傳真號碼", | ||||
| "userIdDoc": "身份證明文件", | "userIdDoc": "身份證明文件", | ||||
| "userIDNo": "身份證號碼", | "userIDNo": "身份證號碼", | ||||
| @@ -310,6 +313,7 @@ | |||||
| "businessRegCert": "商業登記證", | "businessRegCert": "商業登記證", | ||||
| "businessRegCertNumber": "香港商業登記證號碼", | "businessRegCertNumber": "香港商業登記證號碼", | ||||
| "businessRegCertAndDoc":"商業登記證及其他文件", | "businessRegCertAndDoc":"商業登記證及其他文件", | ||||
| "businessRegCertExpiryDate": "商業登記證有效期屆滿日期", | |||||
| "pleaseUploadDoc": "請上傳你的 有效商業登記證及其他文件 的數碼檔案,以驗證你的身份。", | "pleaseUploadDoc": "請上傳你的 有效商業登記證及其他文件 的數碼檔案,以驗證你的身份。", | ||||
| "pleaseUploadIdDoc": "請上傳你的 有效身份證明文件 的數碼檔案,以驗證你的身份。", | "pleaseUploadIdDoc": "請上傳你的 有效身份證明文件 的數碼檔案,以驗證你的身份。", | ||||
| "pleaseUploadIdDocSubTitle": "如: 香港身份證; 護照; 中國內地身份證; 專業執業証書等", | "pleaseUploadIdDocSubTitle": "如: 香港身份證; 護照; 中國內地身份證; 專業執業証書等", | ||||
| @@ -541,6 +545,7 @@ | |||||
| "MSG.setPrimay": "是否確定設定 “{username}” 為主要帳戶嗎?", | "MSG.setPrimay": "是否確定設定 “{username}” 為主要帳戶嗎?", | ||||
| "MSG.revokePrimay": "是否確定要撤銷 “{username}” 為主要使用者嗎?", | "MSG.revokePrimay": "是否確定要撤銷 “{username}” 為主要使用者嗎?", | ||||
| "MSG.App": "申請", | |||||
| "submitApplication": "提交公共啟事申請", | "submitApplication": "提交公共啟事申請", | ||||
| "applicationSubheading": "提供你的公共啟事內容作排版,校對及計算所需費用。", | "applicationSubheading": "提供你的公共啟事內容作排版,校對及計算所需費用。", | ||||
| "announcement": "通告", | "announcement": "通告", | ||||
| @@ -625,5 +630,17 @@ | |||||
| "paginationPrev": "上一頁", | "paginationPrev": "上一頁", | ||||
| "paginationNext": "下一頁", | "paginationNext": "下一頁", | ||||
| "sort": "排序" | |||||
| "sort": "排序", | |||||
| "ariaToggleNewPasswordVisibility": "切換新密碼可見性", | |||||
| "ariaToggleIdVisibility": "切換身份證明文件可見性", | |||||
| "ariaRefreshCaptcha": "重新載入驗證碼", | |||||
| "ariaRelatedRecords": "相關記錄", | |||||
| "ariaApplicationGroup": "申請組別", | |||||
| "ariaProfileTabs": "個人檔案分頁", | |||||
| "ariaUploadPdfFile": "上載 PDF 檔案", | |||||
| "ariaExportHolidayTemplate": "匯出假期範本", | |||||
| "ariaUploadExcelFile": "上載 Excel 檔案 (.xlsx)", | |||||
| "ariaBackToHome": "返回主頁", | |||||
| "ariaMailboxFolders": "郵箱資料夾" | |||||
| } | } | ||||
| @@ -48,7 +48,7 @@ export const getTextField = ({ label, valueName, form, disabled, autoFocus }) => | |||||
| </Grid>; | </Grid>; | ||||
| } | } | ||||
| export const getCarOfField = ({ label, valueName, form, disabled }) => { | |||||
| export const getCarOfField = ({ label, valueName, form, disabled, inputProps }) => { | |||||
| return <Grid container alignItems={"center"} > | return <Grid container alignItems={"center"} > | ||||
| <Grid item xs={12} sm={12} md={12} lg={12}> | <Grid item xs={12} sm={12} md={12} lg={12}> | ||||
| <Grid container spacing={1}> | <Grid container spacing={1}> | ||||
| @@ -61,7 +61,8 @@ export const getCarOfField = ({ label, valueName, form, disabled }) => { | |||||
| type: "text", | type: "text", | ||||
| valueName: valueName, | valueName: valueName, | ||||
| form: form, | form: form, | ||||
| disabled: disabled | |||||
| disabled: disabled, | |||||
| inputProps: inputProps | |||||
| })} | })} | ||||
| </Grid> | </Grid> | ||||
| </Grid> | </Grid> | ||||