# Conflicts: # src/translations/en.jsonmaster
@@ -32,7 +32,7 @@ const DnDetailCard = ({ data }) => { | |||||
fileId: dnData.fileId, | fileId: dnData.fileId, | ||||
skey: dnData.skey, | skey: dnData.skey, | ||||
filename: dnData.filename, | filename: dnData.filename, | ||||
onResponse: function(){ | |||||
onResponse: function () { | |||||
notifyDownloadSuccess(); | notifyDownloadSuccess(); | ||||
} | } | ||||
}); | }); | ||||
@@ -89,7 +89,7 @@ const DnDetailCard = ({ data }) => { | |||||
{getDisplayField("Issue Date", dnData.issueDate)} | {getDisplayField("Issue Date", dnData.issueDate)} | ||||
{getDisplayField("DN Sent", dnData?.sentDate ? dnData.sentDate + " - " + dnData.sentBy : "")} | |||||
{getDisplayField("DN Sent", dnData?.sentDate ? dnData.sentDate + " - " + dnData.sentBy : "--")} | |||||
</Grid> | </Grid> | ||||
<Grid container direction="row" justifyContent="space-between" alignItems="center"> | <Grid container direction="row" justifyContent="space-between" alignItems="center"> | ||||
@@ -103,16 +103,19 @@ const DnDetailCard = ({ data }) => { | |||||
<Typography variant="h5">{dnData.filename} </Typography> | <Typography variant="h5">{dnData.filename} </Typography> | ||||
</Grid> | </Grid> | ||||
<Grid item md={4} lg={4}> | <Grid item md={4} lg={4}> | ||||
<Button | |||||
size="small" | |||||
variant="contained" | |||||
onClick={onDownloadClick()} | |||||
sx={{ | |||||
textTransform: 'capitalize', | |||||
alignItems: 'end', | |||||
}}> | |||||
<DownloadIcon /> | |||||
</Button> | |||||
{dnData.filename ? | |||||
<Button | |||||
size="small" | |||||
variant="contained" | |||||
onClick={onDownloadClick()} | |||||
sx={{ | |||||
textTransform: 'capitalize', | |||||
alignItems: 'end', | |||||
}}> | |||||
<DownloadIcon /> | |||||
</Button> | |||||
: <></> | |||||
} | |||||
</Grid> | </Grid> | ||||
</Grid> | </Grid> | ||||
</Grid> | </Grid> | ||||
@@ -50,7 +50,7 @@ const DemandNote_index = () => { | |||||
onSuccess: (response) => { | onSuccess: (response) => { | ||||
response["issueDate"] = DateUtils.dateStr(response["issueDate"]); | response["issueDate"] = DateUtils.dateStr(response["issueDate"]); | ||||
response["sentDate"] = DateUtils.datetimeStr(response["sentDate"]); | |||||
response["sentDate"] = response["sentDate"]?DateUtils.datetimeStr(response["sentDate"]):""; | |||||
response["gazetteIssueDate"] = DateUtils.datetimeStr(response["gazetteIssueDate"]); | response["gazetteIssueDate"] = DateUtils.datetimeStr(response["gazetteIssueDate"]); | ||||
response["contactFaxNo"] =JSON.parse(response["contactFaxNo"]); | response["contactFaxNo"] =JSON.parse(response["contactFaxNo"]); | ||||
response["contactTelNo"] =JSON.parse(response["contactTelNo"]); | response["contactTelNo"] =JSON.parse(response["contactTelNo"]); | ||||
@@ -64,9 +64,20 @@ export default function SearchDemandNote({ recordList, reloadFun, exportXmlFun } | |||||
} | } | ||||
const doUploadFile = (event) => { | const doUploadFile = (event) => { | ||||
let dnMap = {}; | |||||
const datas = rows?.filter((row) => | |||||
selectedRowItems.includes(row.id) | |||||
); | |||||
for (var i = 0; i < datas?.length; i++) { | |||||
let dnNo = datas[i].dnNo.replaceAll("-",""); | |||||
dnMap[dnNo] = datas[i].id | |||||
} | |||||
let file = event.target.files[0]; | let file = event.target.files[0]; | ||||
HttpUtils.postWithFiles({ | HttpUtils.postWithFiles({ | ||||
url:UrlUtils.DEMAND_NOTE_ATTACH, | url:UrlUtils.DEMAND_NOTE_ATTACH, | ||||
params:{ | |||||
dnMap:dnMap | |||||
}, | |||||
files:[file], | files:[file], | ||||
onSuccess() { | onSuccess() { | ||||
if (reloadFun) reloadFun(); | if (reloadFun) reloadFun(); | ||||
@@ -180,7 +180,7 @@ const SearchDemandNoteForm = ({ applySearch, searchCriteria, issueComboData | |||||
<Autocomplete | <Autocomplete | ||||
{...register("status")} | {...register("status")} | ||||
id="status" | id="status" | ||||
options={ComboData.denmandNoteStatus} | |||||
options={ComboData.denmandNoteStatus_Public} | |||||
getOptionLabel={(option) => option.labelCht} | getOptionLabel={(option) => option.labelCht} | ||||
inputValue={selectedStatus?.labelCht ? selectedStatus?.labelCht : ""} | inputValue={selectedStatus?.labelCht ? selectedStatus?.labelCht : ""} | ||||
value={selectedStatus} | value={selectedStatus} | ||||
@@ -38,7 +38,7 @@ 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 }}>iAmSmart 成功登入</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>iAM Smart 成功登入</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -49,7 +49,7 @@ const Index = () => { | |||||
<Grid item xs={12} md={12} > | <Grid item xs={12} md={12} > | ||||
<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | <Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | ||||
iAmSmart 成功登入 | |||||
iAM Smart 成功登入 | |||||
</Typography> | </Typography> | ||||
</Grid> | </Grid> | ||||
@@ -12,6 +12,7 @@ const RegisterForm = Loadable(lazy(() => import('pages/authentication/Register') | |||||
const BusRegisterForm = Loadable(lazy(() => import('pages/authentication/BusRegister'))); | const BusRegisterForm = Loadable(lazy(() => import('pages/authentication/BusRegister'))); | ||||
const IAmSmartRegister = Loadable(lazy(() => import('pages/authentication/IAmSmartRegister'))); | const IAmSmartRegister = Loadable(lazy(() => import('pages/authentication/IAmSmartRegister'))); | ||||
const ErrorPage = Loadable(lazy(() => import('pages/extra-pages/ErrorPage'))); | const ErrorPage = Loadable(lazy(() => import('pages/extra-pages/ErrorPage'))); | ||||
const IAmSmart_FallCallback = Loadable(lazy(() => import('pages/iAmSmart/FallCallback'))); | |||||
const IAmSmart_FailCallback = Loadable(lazy(() => import('pages/iAmSmart/FailCallback'))); | const IAmSmart_FailCallback = Loadable(lazy(() => import('pages/iAmSmart/FailCallback'))); | ||||
const IAmSmart_SuccessCallback = Loadable(lazy(() => import('pages/iAmSmart/SuccessCallback'))); | const IAmSmart_SuccessCallback = Loadable(lazy(() => import('pages/iAmSmart/SuccessCallback'))); | ||||
const IAmSmart_AuthCallback = Loadable(lazy(() => import('pages/iAmSmart/AuthCallback'))); | const IAmSmart_AuthCallback = Loadable(lazy(() => import('pages/iAmSmart/AuthCallback'))); | ||||
@@ -57,6 +58,10 @@ const LoginRoutes = { | |||||
path: 'error', | path: 'error', | ||||
element: <ErrorPage/> | element: <ErrorPage/> | ||||
}, | }, | ||||
{ | |||||
path: 'iamsmart/loginfallback', | |||||
element: <IAmSmart_FallCallback/> | |||||
}, | |||||
{ | { | ||||
path: 'iamsmart/authcallback', | path: 'iamsmart/authcallback', | ||||
element: <IAmSmart_AuthCallback/> | element: <IAmSmart_AuthCallback/> | ||||
@@ -21,7 +21,7 @@ | |||||
"companyOrUserRecord": "Company/Institutional User Records", | "companyOrUserRecord": "Company/Institutional User Records", | ||||
"login": "Login", | "login": "Login", | ||||
"iAmSmartLogin": "iAmSmart login", | |||||
"iAmSmartLogin": "iAM Smart Login", | |||||
"continueWithIAmSmart": "Continue with iAmSmart", | "continueWithIAmSmart": "Continue with iAmSmart", | ||||
"authorizeIAmSmartForInfo": "Authorize iAmSmart to provide personal information", | "authorizeIAmSmartForInfo": "Authorize iAmSmart to provide personal information", | ||||
"iAmSmartSubTitle": "In order to complete the account opening and establish a connection with \"iAmStart\", please authorize \"iAmSmart\" to provide the following personal information:", | "iAmSmartSubTitle": "In order to complete the account opening and establish a connection with \"iAmStart\", please authorize \"iAmSmart\" to provide the following personal information:", | ||||
@@ -85,19 +85,6 @@ | |||||
"pleaseEnterOrgOrCompName": "Please enter the English/Chinese name of the organisation/company", | "pleaseEnterOrgOrCompName": "Please enter the English/Chinese name of the organisation/company", | ||||
"sameAsBusinessRegistrationCert": "Same as Business Registration Certificate", | "sameAsBusinessRegistrationCert": "Same as Business Registration Certificate", | ||||
"businessRegCertNumber": "Business Reg Cert Number", | "businessRegCertNumber": "Business Reg Cert Number", | ||||
"businessRegCertAndDoc":"Business Registration Certificate and other documents", | |||||
"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", | |||||
"fileName": "File name", | |||||
"fileSize": "File size", | |||||
"fileSizeWarning": "Upload file size should be <10MB", | |||||
"noFile": "No file uploaded", | |||||
"termsAndCondition": "Terms and Conditions", | |||||
"acceptTerms": "I accept", | |||||
"rejectTerms": "I do not accept", | |||||
"verify": "Verify", | |||||
"validVerify": "Please enter valid verification", | |||||
"autoLogout": "Login verification has expired, please login again.", | |||||
"pleaseFillInBusinessRegCertNumber": "Please fill in Business Registration Certificate Number", | "pleaseFillInBusinessRegCertNumber": "Please fill in Business Registration Certificate Number", | ||||
"pleaseFillInValidBusinessRegCertNumber": "Please fill in valid Business Registration Certificate Number", | "pleaseFillInValidBusinessRegCertNumber": "Please fill in valid Business Registration Certificate Number", | ||||
"businessRegCertValidityDate": "Business Reg Cert validity date", | "businessRegCertValidityDate": "Business Reg Cert validity date", | ||||
@@ -106,23 +93,6 @@ | |||||
"addressLine1": "First line", | "addressLine1": "First line", | ||||
"addressLine2": "Second line", | "addressLine2": "Second line", | ||||
"addressLine3": "Third line", | "addressLine3": "Third line", | ||||
"validateAddressLine1": "Please enter the first line of address", | |||||
"validateAddressLine2": "Please enter the second line of address", | |||||
"validateAddressLine3": "Please enter the third line of address", | |||||
"validateEngOrChiName": "Please enter the English or Chinese name", | |||||
"notContainSpecialChar": "Does not contain special characters $/^/*/(/)", | |||||
"samePassword": "Please enter the same password", | |||||
"atLeast8CharPassword": "Please enter a password of at least 8 digits", | |||||
"atLeast1SpecialChar": "Please include at least 1 special character", | |||||
"atLeast1Number": "Please include at least 1 number", | |||||
"atLeastOneCapLetter": "Please include at least 1 capital letter", | |||||
"atLeastOneSmallLetter": "Please include at least 1 lowercase letter", | |||||
"noSpacePassword": "Password does not contain spaces", | |||||
"noSpaceAccount": "User name does not contain spaces", | |||||
"noSpecialCharAccount": "User name does not contain special characters", | |||||
"atLeast6CharAccount": "User name must be at least 6 characters", | |||||
"requireUsername": "Please enter user name", | |||||
"requirePassword": "Please enter password", | |||||
"region": "Region (only applicable to Hong Kong)", | "region": "Region (only applicable to Hong Kong)", | ||||
"regionOrCountry": "Country/Region", | "regionOrCountry": "Country/Region", | ||||
"hongKong": "Hong Kong", | "hongKong": "Hong Kong", | ||||
@@ -89,6 +89,12 @@ export const denmandNoteStatus = [ | |||||
{ key: 1, labelCht: '待辦', label:'Pending', type: 'pending' }, | { key: 1, labelCht: '待辦', label:'Pending', type: 'pending' }, | ||||
{ key: 2, labelCht: '待支付', label:'To be Paid', type: 'to be paid' }, | { key: 2, labelCht: '待支付', label:'To be Paid', type: 'to be paid' }, | ||||
{ key: 3, labelCht: '已付費', label:'Paid', type: 'paid' }, | { key: 3, labelCht: '已付費', label:'Paid', type: 'paid' }, | ||||
]; | |||||
export const denmandNoteStatus_Public = [ | |||||
{ key: 0, labelCht: '全部', label: 'All', type: 'all' }, | |||||
{ key: 2, labelCht: '待支付', label:'To be Paid', type: 'to be paid' }, | |||||
{ key: 3, labelCht: '已付費', label:'Paid', type: 'paid' }, | |||||
]; | ]; | ||||