| @@ -4,6 +4,7 @@ import { useState } from 'react'; | |||
| // material-ui | |||
| import { useTheme } from '@mui/material/styles'; | |||
| import { List, ListItemButton, ListItemIcon, ListItemText } from '@mui/material'; | |||
| import {useNavigate} from "react-router-dom"; | |||
| // assets | |||
| import { EditOutlined, ProfileOutlined, LogoutOutlined, UserOutlined, WalletOutlined } from '@ant-design/icons'; | |||
| @@ -13,9 +14,14 @@ import { EditOutlined, ProfileOutlined, LogoutOutlined, UserOutlined, WalletOutl | |||
| const ProfileTab = ({ handleLogout }) => { | |||
| const theme = useTheme(); | |||
| const navigate = useNavigate() | |||
| const [selectedIndex, setSelectedIndex] = useState(0); | |||
| const handleListItemClick = (event, index) => { | |||
| setSelectedIndex(index); | |||
| if(index==999){ | |||
| navigate('/test/sendMail'); | |||
| } | |||
| }; | |||
| return ( | |||
| @@ -45,6 +51,18 @@ const ProfileTab = ({ handleLogout }) => { | |||
| </ListItemIcon> | |||
| <ListItemText primary="Billing" /> | |||
| </ListItemButton> | |||
| { | |||
| JSON.parse(localStorage.getItem('userData')).fullenName=="2fi"? | |||
| <ListItemButton selected={selectedIndex === 4} onClick={(event) => handleListItemClick(event, 999)}> | |||
| <ListItemIcon> | |||
| <WalletOutlined /> | |||
| </ListItemIcon> | |||
| <ListItemText primary="TestMail" /> | |||
| </ListItemButton> | |||
| :<></> | |||
| } | |||
| <ListItemButton selected={selectedIndex === 2} onClick={handleLogout}> | |||
| <ListItemIcon> | |||
| <LogoutOutlined /> | |||
| @@ -55,7 +55,7 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||
| contact = "Phone No.: " + phone?.countryCode + " " + phone?.phoneNumber | |||
| } | |||
| if (faxNo) { | |||
| if (faxNo && faxNo?.faxNumber) { | |||
| if (contact != "") | |||
| contact = contact + ", " | |||
| contact = contact + "Fax No.:" + faxNo?.countryCode + " " + faxNo?.faxNumber | |||
| @@ -126,7 +126,7 @@ const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria }) = | |||
| fullWidth | |||
| {...register("contact")} | |||
| id="contact" | |||
| label="Conact Person" | |||
| label="Contact Person" | |||
| defaultValue={searchCriteria.contact} | |||
| InputLabelProps={{ | |||
| shrink: true | |||
| @@ -0,0 +1,84 @@ | |||
| // material-ui | |||
| import { | |||
| Grid, | |||
| Typography, | |||
| Button, | |||
| Stack, | |||
| TextField | |||
| } from '@mui/material'; | |||
| import { useFormik } from 'formik'; | |||
| import * as React from "react"; | |||
| import * as yup from 'yup'; | |||
| import * as HttpUtils from "utils/HttpUtils"; | |||
| import {apiPath} from "auth/utils"; | |||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | |||
| const Mail = () => { | |||
| const formik = useFormik({ | |||
| enableReinitialize:true, | |||
| initialValues:{}, | |||
| validationSchema:yup.object().shape({ | |||
| email: yup.string().max(255).required('請輸入e-Mail') | |||
| }), | |||
| onSubmit:values=>{ | |||
| HttpUtils.post({ | |||
| url: apiPath+"/test/send-mail", | |||
| params: { | |||
| email: values.email, | |||
| }, | |||
| onSuccess: function(){ | |||
| } | |||
| }); | |||
| } | |||
| }); | |||
| return ( | |||
| !JSON.parse(localStorage.getItem('userData')).fullenName=="2fi" ? | |||
| <Grid container > | |||
| <Typography variant="h1">Ooops! Seem go wrong page...</Typography> | |||
| </Grid> | |||
| : | |||
| <Grid container spacing={1}> | |||
| <Grid item xs={12}> | |||
| <Typography variant="h3" style={{ padding: 8}}>Test Send e-Mail</Typography> | |||
| </Grid> | |||
| {/*col 2*/} | |||
| <form onSubmit={formik.handleSubmit} style={{width:'100%', padding: 64}}> | |||
| <Grid item xs={12} mt={1} > | |||
| <Stack direction="row" justifyContent="flex-end" alignItems="center"> | |||
| <TextField | |||
| fullWidth | |||
| id="email" | |||
| name="email" | |||
| type="email" | |||
| placeholder="email" | |||
| label="eMail" | |||
| /> | |||
| </Stack> | |||
| </Grid> | |||
| <Button | |||
| variant="contained" | |||
| type="submit" | |||
| sx={{ | |||
| textTransform: 'capitalize', | |||
| alignItems: 'end', | |||
| width: 200 | |||
| }}> | |||
| Test Send e-Mail | |||
| </Button> | |||
| </form> | |||
| </Grid> | |||
| ); | |||
| }; | |||
| export default Mail; | |||
| @@ -235,10 +235,6 @@ const UserInformationCard_Individual = ({formData, loadDataFun}) => { | |||
| dataList: ComboData.idDocType, | |||
| filterOptions:(options) => options, | |||
| getOptionLabel:(item) => item?typeof item==='string'?item:(item["type"]?item["type"]+"-"+item["label"]:""):"", | |||
| // getOptionSelected: (option, value) => option.label === value.label, | |||
| // isOptionEqualToValue:(option, newValue) => { | |||
| // return option.type === newValue; | |||
| // }, | |||
| onInputChange:(event, newValue, setInputValue)=>{ | |||
| if(newValue == null){ | |||
| setInputValue(""); | |||
| @@ -0,0 +1,21 @@ | |||
| import { lazy } from 'react'; | |||
| import Loadable from 'components/Loadable'; | |||
| const MainLayout = Loadable(lazy(() => import('layout/MainLayout'))); | |||
| // render - dashboard | |||
| const TestMail = Loadable(lazy(() => import('pages/_Test/Mail'))); | |||
| // ==============================|| MAIN ROUTING ||============================== // | |||
| const TestRoutes = { | |||
| path: '/', | |||
| element: <MainLayout />, | |||
| children: [ | |||
| { | |||
| path: 'test/sendMail', | |||
| element: <TestMail/> | |||
| }, | |||
| ] | |||
| }; | |||
| export default TestRoutes; | |||
| @@ -3,6 +3,7 @@ import LoginRoutes from './LoginRoutes' | |||
| import MainRoutes from './MainRoutes' | |||
| import PublicUserRoutes from './PublicUserRoutes' | |||
| import GLDUserRoutes from './GLDUserRoutes' | |||
| import TestRoutes from './_TestRoutes' | |||
| import {useRoutes} from 'react-router-dom' | |||
| import {isUserLoggedIn, | |||
| // isAdminLoggedIn, | |||
| @@ -54,5 +55,7 @@ console.log(); | |||
| path: '*', | |||
| element: <Navigate to="/dashboard"/> | |||
| }, | |||
| isUserLoggedIn()&&isGLDLoggedIn()&&JSON.parse(localStorage.getItem('userData')).fullenName=="2fi" ?TestRoutes:{}, | |||
| ]); | |||
| } | |||