diff --git a/src/assets/images/icons/fps.svg b/src/assets/images/icons/fps.svg
new file mode 100644
index 0000000..c54595e
--- /dev/null
+++ b/src/assets/images/icons/fps.svg
@@ -0,0 +1,718 @@
+
+
+
diff --git a/src/pages/Payment/Card/index.js b/src/pages/Payment/Card/index.js
new file mode 100644
index 0000000..e69de29
diff --git a/src/pages/Payment/FPS/FPS.js b/src/pages/Payment/FPS/FPS.js
new file mode 100644
index 0000000..49855bd
--- /dev/null
+++ b/src/pages/Payment/FPS/FPS.js
@@ -0,0 +1,205 @@
+// material-ui
+import {
+ Grid,
+ Typography,
+ Stack,
+ Button,
+} from '@mui/material';
+import * as React from "react";
+import * as HttpUtils from "utils/HttpUtils";
+import { useNavigate } from "react-router-dom";
+import FpsIcon from "assets/images/icons/fps.svg";
+
+import Loadable from 'components/Loadable';
+const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent')));
+
+import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
+const BackgroundHead = {
+ backgroundImage: `url(${titleBackgroundImg})`,
+ width: '100%',
+ height: '100%',
+ backgroundSize: 'contain',
+ backgroundRepeat: 'no-repeat',
+ backgroundColor: '#0C489E',
+ backgroundPosition: 'right'
+}
+
+// ==============================|| DASHBOARD - DEFAULT ||============================== //
+
+const Index = () => {
+ const navigate = useNavigate()
+
+ const [fpsqrcodeimgUrl, setFpsqrcodeimgUrl] = React.useState();
+ const [onReady, setOnReady] = React.useState(false);
+
+ const loadPaymentUrl = "/api/payment/wallet/fps";
+ const cancelPaymentUrl = "/api/payment/cancelpayment";
+ // const payloadUrl = "/api/payment/wallet/fps/enquiryfpspayload/";
+ // const receiverUrl = "/noti-api/payment/payment-notification";
+
+ React.useEffect(() => {
+ loadForm();
+ }, []);
+
+ React.useEffect(() => {
+ setOnReady(true);
+ }, [fpsqrcodeimgUrl]);
+
+
+ const loadForm = () => {
+
+ HttpUtils.post({
+ url: loadPaymentUrl,
+ params:{
+ "transactionid": "",
+ "webtoken": "",
+ "paymentmethod": "",
+ "order": {
+ "totalamount":"",
+ "currency":"",
+ "orderdetail":
+ [
+ {
+ "itemid": "",
+ "qty":"",
+ "unitprice":"",
+ "amount":""
+ },
+ {
+ "itemid": "",
+ "qty":"",
+ "unitprice":"",
+ "amount":""
+ },
+ ]
+ },
+ "locale":"",
+ "eserviceid":""
+ },
+ onSuccess: function(responseData){
+ /*
+ {
+ "paymentid": "",
+ "paymentstatus": "",
+ "fpsmerchanttimeoutdatetime": ,
+ "fpsqrcodeimgbase64": "",
+ "fpsqrcodeurl": ""
+ }
+ */
+
+ setFpsqrcodeimgUrl(responseData.fpsqrcodeurl);
+ }
+ });
+ }
+
+ const cancelPayment = ()=>{
+ HttpUtils.post({
+ url: cancelPaymentUrl,
+ params:{
+ "transactionid": "",
+ "webtoken": "",
+ "paymentid": ""
+ },
+ onSuccess: function(){
+ /*
+ {
+ "resultcode": "",
+ "reason": ""
+ }
+ */
+ navigate("/dashboard");
+ }
+ });
+ }
+
+ // const getPayload = ()=>{
+ // HttpUtils.get({
+ // url: payloadUrl+"",
+ // onSuccess: function(responseData){
+ // /*
+ // {
+ // "payload": ""
+ // }
+
+ // */
+ // }
+ // });
+ // }
+
+ // const getReceiver = ()=>{
+ // HttpUtils.get({
+ // url: receiverUrl+"",
+ // onSuccess: function(responseData){
+ // /*
+ // {
+ // "payload": ""
+ // }
+
+ // */
+ // }
+ // });
+ // }
+
+
+ return (
+ !onReady ?
+
+ :
+ (
+
+
+
+
+ 公共啟事:FPS付款
+
+
+
+ {/*row 1*/}
+
+
+
+
+
+
+
+
+ 支付金額
+
+ $
+
+
+
+ 請掃描以下二維碼
+
+
+
+ 二維碼有效期限10分鐘
+
+ 請在規定時間內完成付款流程
+
+
+
+
+
+
+
+
+
+ {/*row 2*/}
+
+ )
+
+
+ );
+};
+
+export default Index;
diff --git a/src/pages/Payment/FPS/fpsqrcode.js b/src/pages/Payment/FPS/fpsqrcode.js
new file mode 100644
index 0000000..cb17e11
--- /dev/null
+++ b/src/pages/Payment/FPS/fpsqrcode.js
@@ -0,0 +1,134 @@
+
+$(function () {
+ ini();
+});
+
+
+export const getQRCode = (date) =>{
+ return dateFormat(date,"DD-MM-YYYY HH:mm:ss")
+};
+
+
+function ini(){
+
+ const locale = sessionStorage.getItem('locale');
+ if(locale){
+ payment.init({
+ locale : locale
+ });
+ }
+ $('#btnBackLable').text(payment.texts.btnBack);
+
+ //mobilepayment
+ const walletSession = sessionStorage.getItem('walletPayment');
+ const walletPayment = $.parseJSON(walletSession);
+ const transactionid = walletPayment.transactionid;
+ const webtoken = walletPayment.webtoken;
+ const totalamount = walletPayment.totalamount;
+ payment.showLog('transactionid:' + transactionid + ', webtoken:' + webtoken + ', totalamount:' + totalamount);
+
+ const walletRspSession = sessionStorage.getItem('walletRsp');
+ const walletRsp = $.parseJSON(walletRspSession);
+ const fpsQRCodeImgBase64 = walletRsp.fpsqrcodeimgbase64;
+ const fpsMerchantTimeoutDateTime = walletRsp.fpsmerchanttimeoutdatetime;
+ const openPASGUrl = payment.config.pasgPath + '?pay_req_obj=' + encodeURIComponent(walletRsp.fpsqrcodeurl) + '&callback='
+ + encodeURIComponent(payment.config.domain + payment.config.fpscallbackPagePath);
+
+ $('#totalAmt').text(totalamount);
+ $('#fps').text(payment.texts.fps);
+ $('#continueToPay').text(payment.texts.continueToPay);
+ $('#paymentDetailsTitle').text(payment.texts.paymentDetailsTitle);
+ $('#paymentAmount').text(payment.texts.paymentAmount);
+ $('#scanQRCode').text(payment.texts.scanQRCode);
+
+ let obj = $('#qrCodeValidTime').text(payment.texts.qrCodeValidTime);
+ obj.html(obj.html().replace(/\n/g,'
'));
+
+ const paymentStatusApi = async () => {
+ const paymentStatusResp = await payment.paymentEnquiry(transactionid, webtoken);
+ return paymentStatusResp;
+ }
+ const validatePaymentStatus = paymentStatusResp => {
+ if (paymentStatusResp.paymentdetail.result.paymentstatuscode !== 'INPR') {
+ return true;
+ }
+ return false;
+ }
+
+ renderFpsQRCodeTemplate(fpsQRCodeImgBase64, $('#fpsQRCodeTemplate').html());
+ payment.showLog('fpsQRCodeImgBase64:' + fpsQRCodeImgBase64);
+ payment.showLog('fpsPollInterval:' + payment.config.fpsPollInterval);
+ payment.showLog('fpsMerchantTimeoutDateTime:' + fpsMerchantTimeoutDateTime);
+
+ if (/Android|webOS|iPhone|iPad|iPod|Opera Mini/i.test(navigator.userAgent)) {
+ payment.showLog('Mobile web browser');
+ renderOpenFPSPaymentAppTemplate(openPASGUrl, $('#openFPSPaymentAppTemplate').html());
+ } else {
+ payment.showLog('Desktop web browser');
+ }
+
+ poll({
+ fn: paymentStatusApi,
+ validate: validatePaymentStatus,
+ interval: payment.config.fpsPollInterval,
+ timeout: fpsMerchantTimeoutDateTime
+ }).then(resp => {
+ sessionStorage.setItem('walletRsp', JSON.stringify(resp));
+
+ const paymentstatuscode = resp.paymentdetail.result.paymentstatuscode;
+ payment.showLog('pollForPaymentStatus:' + paymentstatuscode);
+
+ if (paymentstatuscode === 'APPR') {
+ const timestamp = '?t=' + Date.now();
+ window.top.location.href = payment.config.domain + payment.config.ackPagePath + timestamp;
+ } else if (paymentstatuscode === 'CANC') {
+ window.top.location.href = payment.config.domain + payment.config.indexPagePath;
+ } else {
+ window.top.location.href = payment.config.domain + payment.config.errPagePath;
+ }
+ }).catch(err => {
+ payment.showLog('pollForPaymentStatus error: ' + err);
+ cancelFPSPayment();
+ window.top.location.href = payment.config.domain + payment.config.errPagePath;
+ });
+
+}
+
+function renderFpsQRCodeTemplate(fpsQRCodeImgBase64, template) {
+ // payment.showLog('template:' + template);
+ Mustache.parse(template);
+ const rendered = Mustache.render(template, {fpsQRCodeImgBase64: fpsQRCodeImgBase64});
+ $('#fpsQRCodePanel').html(rendered);
+ // $('#fpsQRCodePanel').removeClass('hidden');
+}
+
+function renderOpenFPSPaymentAppTemplate(openPASGUrl, template) {
+ payment.showLog('renderOpenFPSPaymentAppTemplate template:' + template);
+ payment.showLog('renderOpenFPSPaymentAppTemplate openPASGUrl:' + openPASGUrl);
+ Mustache.parse(template);
+ const rendered = Mustache.render(template, {openPASGUrl: openPASGUrl});
+ payment.showLog('renderOpenFPSPaymentAppTemplate rendered:' + rendered);
+ $('#openFPSPaymentAppContent').html(rendered);
+ // $('#openFPSPaymentApp').removeClass('hidden');
+}
+
+function cancelFPSPayment() {
+ const walletSession = sessionStorage.getItem('walletPayment');
+ const walletPayment = $.parseJSON(walletSession);
+ const walletRspSession = sessionStorage.getItem('walletRsp');
+ const walletRsp = $.parseJSON(walletRspSession);
+ const reqJson = {
+ 'transactionid':walletPayment.transactionid,
+ 'webtoken':walletPayment.webtoken,
+ 'paymentid': walletRsp.paymentid,
+ }
+ payment.cancelPayment(reqJson);
+}
+
+function cancelBtnOnClick(event) {
+ event.onclick=null;
+ $('#cancelBtnIcon').remove();
+ $('#cancelBtn').removeClass("btn-danger").addClass("btn-secondary disabled");
+ $('#cancelBtnText').html('Cancelling ... ');
+
+}
diff --git a/src/pages/Payment/FPS/index.js b/src/pages/Payment/FPS/index.js
new file mode 100644
index 0000000..11c9f24
--- /dev/null
+++ b/src/pages/Payment/FPS/index.js
@@ -0,0 +1,12 @@
+import * as React from "react";
+import Loadable from 'components/Loadable';
+const FPS = Loadable(React.lazy(() => import('./FPS')));
+
+
+const Index = () => {
+ return (
+
+ );
+}
+
+export default Index;
\ No newline at end of file
diff --git a/src/pages/Payment/index.js b/src/pages/Payment/index.js
new file mode 100644
index 0000000..1a08143
--- /dev/null
+++ b/src/pages/Payment/index.js
@@ -0,0 +1,91 @@
+import * as React from "react";
+import * as HttpUtils from "utils/HttpUtils";
+import Loadable from 'components/Loadable';
+const FPS = Loadable(React.lazy(() => import('./FPS')));
+
+const Index = ({amount}) => {
+ const getAvailablePaymentUrl = "/api/payment/availability";
+ const getTransactionIdUrl = "/api/payment/transaction";
+
+ React.useEffect({
+
+ }, []);
+
+ const local = {en:"en-us", zh:"zh-hk", cn:"zh-cn"};
+ const preferpaymentmethods = ['visa','mastercard','pps','creditcard','fps'];
+
+ const getAvailablePayment = () => {
+ HttpUtils.post({
+ url: getAvailablePaymentUrl,
+ params: {
+ "locale": local.zh,
+ "amount": amount,
+ // "eserviceids": [
+ // "", ""
+ // ],
+ "preferpaymentmethods": preferpaymentmethods
+ },
+ onSuccess: (responseData)=>{
+
+ let availableMethods = responseData.availablepaymentmethods;
+
+ availableMethods.forEach((method)=>{
+ if("CreditCard" === method.subtype){
+
+ }
+ });
+
+
+ /*
+
+'pps' for PPS, ‘creditcard’ for Visa / MasterCard /
+JCB / UnionPay (FI code = BCMP), and for backward
+compatibility - 'visa' for Visa (FI code = BOCI),
+'mastercard' for MasterCard (FI code = BOCI)
+
+
+ {
+ "availablepaymentmethods": [
+ {
+ "code": "", // e.g. "02,BCMP,ApplePay" = "PAYMENT_MTD_CODE, FI_CODE, subtype"
+ "subtype": "", //ApplePay, AndroidPay, Visa, MasterCard, CreditCard, PPS, eChq
+ "active":"",//Y/N
+ "pointstonote":[
+ {
+ "type":"",
+ "content":"",
+ "order":
+ } , ...
+ ]
+ "supportedcard"
+ :[
+ "",... //Visa, MasterCard
+ ]
+ },...
+ ]
+ }
+ */
+ }
+ });
+ }
+
+ const getTransactionId = () => {
+ HttpUtils.get({
+ url: getTransactionIdUrl,
+ onSuccess: (responseData)=>{
+ /*
+ {
+ "transactionid":""
+ }
+ */
+ }
+ });
+ }
+
+ return (
+
+ );
+}
+
+export default Index;
\ No newline at end of file
diff --git a/src/pages/ProofCreate_FromApp/ApplicationDetails.js b/src/pages/Proof/Create_FromApp/ApplicationDetails.js
similarity index 100%
rename from src/pages/ProofCreate_FromApp/ApplicationDetails.js
rename to src/pages/Proof/Create_FromApp/ApplicationDetails.js
diff --git a/src/pages/ProofCreate_FromApp/GazetteDetails.js b/src/pages/Proof/Create_FromApp/GazetteDetails.js
similarity index 100%
rename from src/pages/ProofCreate_FromApp/GazetteDetails.js
rename to src/pages/Proof/Create_FromApp/GazetteDetails.js
diff --git a/src/pages/ProofCreate_FromApp/ProofForm.js b/src/pages/Proof/Create_FromApp/ProofForm.js
similarity index 100%
rename from src/pages/ProofCreate_FromApp/ProofForm.js
rename to src/pages/Proof/Create_FromApp/ProofForm.js
diff --git a/src/pages/ProofCreate_FromApp/UploadFileTable.js b/src/pages/Proof/Create_FromApp/UploadFileTable.js
similarity index 100%
rename from src/pages/ProofCreate_FromApp/UploadFileTable.js
rename to src/pages/Proof/Create_FromApp/UploadFileTable.js
diff --git a/src/pages/ProofCreate_FromApp/index.js b/src/pages/Proof/Create_FromApp/index.js
similarity index 100%
rename from src/pages/ProofCreate_FromApp/index.js
rename to src/pages/Proof/Create_FromApp/index.js
diff --git a/src/pages/ProofPayment/Pay.js b/src/pages/Proof/Payment/Pay.js
similarity index 100%
rename from src/pages/ProofPayment/Pay.js
rename to src/pages/Proof/Payment/Pay.js
diff --git a/src/pages/ProofPayment/Pay_Creditor.js b/src/pages/Proof/Payment/Pay_Creditor.js
similarity index 100%
rename from src/pages/ProofPayment/Pay_Creditor.js
rename to src/pages/Proof/Payment/Pay_Creditor.js
diff --git a/src/pages/ProofPayment/index.js b/src/pages/Proof/Payment/index.js
similarity index 100%
rename from src/pages/ProofPayment/index.js
rename to src/pages/Proof/Payment/index.js
diff --git a/src/pages/ProofReply_GLD/ApplicationDetails.js b/src/pages/Proof/Reply_GLD/ApplicationDetails.js
similarity index 100%
rename from src/pages/ProofReply_GLD/ApplicationDetails.js
rename to src/pages/Proof/Reply_GLD/ApplicationDetails.js
diff --git a/src/pages/ProofReply_GLD/ProofForm.js b/src/pages/Proof/Reply_GLD/ProofForm.js
similarity index 100%
rename from src/pages/ProofReply_GLD/ProofForm.js
rename to src/pages/Proof/Reply_GLD/ProofForm.js
diff --git a/src/pages/ProofReply_GLD/UploadFileTable.js b/src/pages/Proof/Reply_GLD/UploadFileTable.js
similarity index 100%
rename from src/pages/ProofReply_GLD/UploadFileTable.js
rename to src/pages/Proof/Reply_GLD/UploadFileTable.js
diff --git a/src/pages/ProofReply_GLD/index.js b/src/pages/Proof/Reply_GLD/index.js
similarity index 100%
rename from src/pages/ProofReply_GLD/index.js
rename to src/pages/Proof/Reply_GLD/index.js
diff --git a/src/pages/ProofReply_Public/ApplicationDetails.js b/src/pages/Proof/Reply_Public/ApplicationDetails.js
similarity index 100%
rename from src/pages/ProofReply_Public/ApplicationDetails.js
rename to src/pages/Proof/Reply_Public/ApplicationDetails.js
diff --git a/src/pages/ProofReply_Public/ProofForm.js b/src/pages/Proof/Reply_Public/ProofForm.js
similarity index 100%
rename from src/pages/ProofReply_Public/ProofForm.js
rename to src/pages/Proof/Reply_Public/ProofForm.js
diff --git a/src/pages/ProofReply_Public/UploadFileTable.js b/src/pages/Proof/Reply_Public/UploadFileTable.js
similarity index 100%
rename from src/pages/ProofReply_Public/UploadFileTable.js
rename to src/pages/Proof/Reply_Public/UploadFileTable.js
diff --git a/src/pages/ProofReply_Public/index.js b/src/pages/Proof/Reply_Public/index.js
similarity index 100%
rename from src/pages/ProofReply_Public/index.js
rename to src/pages/Proof/Reply_Public/index.js
diff --git a/src/pages/ProofSearch/DataGrid.js b/src/pages/Proof/Search_GLD/DataGrid.js
similarity index 100%
rename from src/pages/ProofSearch/DataGrid.js
rename to src/pages/Proof/Search_GLD/DataGrid.js
diff --git a/src/pages/ProofSearch/SearchForm.js b/src/pages/Proof/Search_GLD/SearchForm.js
similarity index 100%
rename from src/pages/ProofSearch/SearchForm.js
rename to src/pages/Proof/Search_GLD/SearchForm.js
diff --git a/src/pages/ProofSearch/index.js b/src/pages/Proof/Search_GLD/index.js
similarity index 100%
rename from src/pages/ProofSearch/index.js
rename to src/pages/Proof/Search_GLD/index.js
diff --git a/src/pages/ProofSearch_Public/DataGrid.js b/src/pages/Proof/Search_Public/DataGrid.js
similarity index 100%
rename from src/pages/ProofSearch_Public/DataGrid.js
rename to src/pages/Proof/Search_Public/DataGrid.js
diff --git a/src/pages/ProofSearch_Public/SearchForm.js b/src/pages/Proof/Search_Public/SearchForm.js
similarity index 100%
rename from src/pages/ProofSearch_Public/SearchForm.js
rename to src/pages/Proof/Search_Public/SearchForm.js
diff --git a/src/pages/ProofSearch_Public/index.js b/src/pages/Proof/Search_Public/index.js
similarity index 100%
rename from src/pages/ProofSearch_Public/index.js
rename to src/pages/Proof/Search_Public/index.js
diff --git a/src/pages/PublicNoticeDetail_GLD/ApplicationDetailCard.js b/src/pages/PublicNotice/Details_GLD/ApplicationDetailCard.js
similarity index 99%
rename from src/pages/PublicNoticeDetail_GLD/ApplicationDetailCard.js
rename to src/pages/PublicNotice/Details_GLD/ApplicationDetailCard.js
index 9ee6f8e..bce6272 100644
--- a/src/pages/PublicNoticeDetail_GLD/ApplicationDetailCard.js
+++ b/src/pages/PublicNotice/Details_GLD/ApplicationDetailCard.js
@@ -18,7 +18,7 @@ import {
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
import * as HttpUtils from "utils/HttpUtils"
import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils";
diff --git a/src/pages/PublicNoticeDetail_GLD/ClientDetailCard.js b/src/pages/PublicNotice/Details_GLD/ClientDetailCard.js
similarity index 99%
rename from src/pages/PublicNoticeDetail_GLD/ClientDetailCard.js
rename to src/pages/PublicNotice/Details_GLD/ClientDetailCard.js
index 518fa94..8eebce5 100644
--- a/src/pages/PublicNoticeDetail_GLD/ClientDetailCard.js
+++ b/src/pages/PublicNotice/Details_GLD/ClientDetailCard.js
@@ -8,7 +8,7 @@ import {
OutlinedInput,
Stack
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import * as React from "react";
import {useForm} from "react-hook-form";
import {
@@ -18,7 +18,7 @@ import {
// import Checkbox from "@mui/material/Checkbox";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
//import {useParams} from "react-router-dom";
import ContentPasteSearchIcon from '@mui/icons-material/ContentPasteSearch';
import CheckCircleOutline from '@mui/icons-material/CheckCircleOutline';
diff --git a/src/pages/PublicNoticeDetail_GLD/GazetteDetailCard.js b/src/pages/PublicNotice/Details_GLD/GazetteDetailCard.js
similarity index 98%
rename from src/pages/PublicNoticeDetail_GLD/GazetteDetailCard.js
rename to src/pages/PublicNotice/Details_GLD/GazetteDetailCard.js
index 5a7c067..7392c0c 100644
--- a/src/pages/PublicNoticeDetail_GLD/GazetteDetailCard.js
+++ b/src/pages/PublicNotice/Details_GLD/GazetteDetailCard.js
@@ -8,7 +8,7 @@ import {
OutlinedInput,
Dialog, DialogTitle, DialogContent, DialogActions,
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import * as React from "react";
import {useForm} from "react-hook-form";
import {
@@ -18,7 +18,7 @@ import {
// import Checkbox from "@mui/material/Checkbox";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
//import {useParams} from "react-router-dom";
import * as DateUtils from "utils/DateUtils";
import EditNoteIcon from '@mui/icons-material/EditNote';
diff --git a/src/pages/PublicNoticeDetail_GLD/StatusChangeDialog.js b/src/pages/PublicNotice/Details_GLD/StatusChangeDialog.js
similarity index 98%
rename from src/pages/PublicNoticeDetail_GLD/StatusChangeDialog.js
rename to src/pages/PublicNotice/Details_GLD/StatusChangeDialog.js
index ae222db..b15d666 100644
--- a/src/pages/PublicNoticeDetail_GLD/StatusChangeDialog.js
+++ b/src/pages/PublicNotice/Details_GLD/StatusChangeDialog.js
@@ -18,7 +18,7 @@ import {
Autocomplete,
TextField
} from '@mui/material';
-import { Grid } from "../../../node_modules/@mui/material/index";
+import { Grid } from "../../../../node_modules/@mui/material/index";
import * as ComboData from "utils/ComboData";
import { useFormik, FormikProvider } from 'formik';
import * as yup from 'yup';
diff --git a/src/pages/PublicNoticeDetail_GLD/index.js b/src/pages/PublicNotice/Details_GLD/index.js
similarity index 99%
rename from src/pages/PublicNoticeDetail_GLD/index.js
rename to src/pages/PublicNotice/Details_GLD/index.js
index 5158c5e..eb94dda 100644
--- a/src/pages/PublicNoticeDetail_GLD/index.js
+++ b/src/pages/PublicNotice/Details_GLD/index.js
@@ -46,7 +46,7 @@ const PublicNoticeDetail_GLD = () => {
const [proofList, setProofList] = useState([]);
// const [refApplicationDetailData, setRefApplicationDetailData] = React.useState({});
const [isLoading, setLoading] = useState(false);
- const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+ const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
const [getUploadStatus, setUploadStatus] = useState(false);
//pageTitle
diff --git a/src/pages/PublicNoticeDetail_GLD/tabTableDetail/BaseGrid.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/BaseGrid.js
similarity index 100%
rename from src/pages/PublicNoticeDetail_GLD/tabTableDetail/BaseGrid.js
rename to src/pages/PublicNotice/Details_GLD/tabTableDetail/BaseGrid.js
diff --git a/src/pages/PublicNoticeDetail_GLD/tabTableDetail/PendingPaymentTab.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/PendingPaymentTab.js
similarity index 100%
rename from src/pages/PublicNoticeDetail_GLD/tabTableDetail/PendingPaymentTab.js
rename to src/pages/PublicNotice/Details_GLD/tabTableDetail/PendingPaymentTab.js
diff --git a/src/pages/PublicNoticeDetail_GLD/tabTableDetail/ProofTab.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js
similarity index 100%
rename from src/pages/PublicNoticeDetail_GLD/tabTableDetail/ProofTab.js
rename to src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js
diff --git a/src/pages/PublicNoticeDetail_GLD/tabTableDetail/StatusHistoryTab.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/StatusHistoryTab.js
similarity index 100%
rename from src/pages/PublicNoticeDetail_GLD/tabTableDetail/StatusHistoryTab.js
rename to src/pages/PublicNotice/Details_GLD/tabTableDetail/StatusHistoryTab.js
diff --git a/src/pages/PublicNoticeDetail_GLD/tabTableDetail/TabTable.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js
similarity index 97%
rename from src/pages/PublicNoticeDetail_GLD/tabTableDetail/TabTable.js
rename to src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js
index f05f539..3f0eab0 100644
--- a/src/pages/PublicNoticeDetail_GLD/tabTableDetail/TabTable.js
+++ b/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js
@@ -15,7 +15,7 @@ import Loadable from 'components/Loadable';
import { lazy } from 'react';
const BaseGrid = Loadable(lazy(() => import('./BaseGrid')));
const StatusHistoryTab = Loadable(lazy(() => import('./StatusHistoryTab')));
-const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../../extra-pages/LoadingComponent')));
const ProofTab = Loadable(lazy(() => import('./ProofTab')));
diff --git a/src/pages/PublicNoticeDetail/ApplicationDetailCard.js b/src/pages/PublicNotice/Details_Public/ApplicationDetailCard.js
similarity index 99%
rename from src/pages/PublicNoticeDetail/ApplicationDetailCard.js
rename to src/pages/PublicNotice/Details_Public/ApplicationDetailCard.js
index 86d3775..e01bd00 100644
--- a/src/pages/PublicNoticeDetail/ApplicationDetailCard.js
+++ b/src/pages/PublicNotice/Details_Public/ApplicationDetailCard.js
@@ -19,7 +19,7 @@ import {
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
// import {useParams} from "react-router-dom";
import * as HttpUtils from "utils/HttpUtils"
import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils";
diff --git a/src/pages/PublicNoticeDetail/StatusChangeDialog.js b/src/pages/PublicNotice/Details_Public/StatusChangeDialog.js
similarity index 97%
rename from src/pages/PublicNoticeDetail/StatusChangeDialog.js
rename to src/pages/PublicNotice/Details_Public/StatusChangeDialog.js
index 9646c37..63194e4 100644
--- a/src/pages/PublicNoticeDetail/StatusChangeDialog.js
+++ b/src/pages/PublicNotice/Details_Public/StatusChangeDialog.js
@@ -16,7 +16,7 @@ import {
DialogTitle,
FormLabel,
} from '@mui/material';
-import { Grid } from "../../../node_modules/@mui/material/index";
+import { Grid } from "../../../../node_modules/@mui/material/index";
import { useFormik,FormikProvider } from 'formik';
import * as yup from 'yup';
diff --git a/src/pages/PublicNoticeDetail/index.js b/src/pages/PublicNotice/Details_Public/index.js
similarity index 100%
rename from src/pages/PublicNoticeDetail/index.js
rename to src/pages/PublicNotice/Details_Public/index.js
diff --git a/src/pages/PublicNoticeDetail/tabTableDetail/BaseGrid.js b/src/pages/PublicNotice/Details_Public/tabTableDetail/BaseGrid.js
similarity index 100%
rename from src/pages/PublicNoticeDetail/tabTableDetail/BaseGrid.js
rename to src/pages/PublicNotice/Details_Public/tabTableDetail/BaseGrid.js
diff --git a/src/pages/PublicNoticeDetail/tabTableDetail/PendingPaymentTab.js b/src/pages/PublicNotice/Details_Public/tabTableDetail/PendingPaymentTab.js
similarity index 100%
rename from src/pages/PublicNoticeDetail/tabTableDetail/PendingPaymentTab.js
rename to src/pages/PublicNotice/Details_Public/tabTableDetail/PendingPaymentTab.js
diff --git a/src/pages/PublicNoticeDetail/tabTableDetail/ProofTab.js b/src/pages/PublicNotice/Details_Public/tabTableDetail/ProofTab.js
similarity index 100%
rename from src/pages/PublicNoticeDetail/tabTableDetail/ProofTab.js
rename to src/pages/PublicNotice/Details_Public/tabTableDetail/ProofTab.js
diff --git a/src/pages/PublicNoticeDetail/tabTableDetail/StatusHistoryTab.js b/src/pages/PublicNotice/Details_Public/tabTableDetail/StatusHistoryTab.js
similarity index 100%
rename from src/pages/PublicNoticeDetail/tabTableDetail/StatusHistoryTab.js
rename to src/pages/PublicNotice/Details_Public/tabTableDetail/StatusHistoryTab.js
diff --git a/src/pages/PublicNoticeDetail/tabTableDetail/TabTable.js b/src/pages/PublicNotice/Details_Public/tabTableDetail/TabTable.js
similarity index 100%
rename from src/pages/PublicNoticeDetail/tabTableDetail/TabTable.js
rename to src/pages/PublicNotice/Details_Public/tabTableDetail/TabTable.js
diff --git a/src/pages/PublicNoticeSearch_GLD/DataGrid.js b/src/pages/PublicNotice/Search_GLD/DataGrid.js
similarity index 100%
rename from src/pages/PublicNoticeSearch_GLD/DataGrid.js
rename to src/pages/PublicNotice/Search_GLD/DataGrid.js
diff --git a/src/pages/PublicNoticeSearch_GLD/SearchForm.js b/src/pages/PublicNotice/Search_GLD/SearchForm.js
similarity index 100%
rename from src/pages/PublicNoticeSearch_GLD/SearchForm.js
rename to src/pages/PublicNotice/Search_GLD/SearchForm.js
diff --git a/src/pages/PublicNoticeSearch_GLD/index.js b/src/pages/PublicNotice/Search_GLD/index.js
similarity index 100%
rename from src/pages/PublicNoticeSearch_GLD/index.js
rename to src/pages/PublicNotice/Search_GLD/index.js
diff --git a/src/pages/pnspsUserDetailPage/UserAuthTable.js b/src/pages/User/DetailPage/UserAuthTable.js
similarity index 92%
rename from src/pages/pnspsUserDetailPage/UserAuthTable.js
rename to src/pages/User/DetailPage/UserAuthTable.js
index af03ded..ed5c6ce 100644
--- a/src/pages/pnspsUserDetailPage/UserAuthTable.js
+++ b/src/pages/User/DetailPage/UserAuthTable.js
@@ -4,14 +4,14 @@ import {
} from "@mui/x-data-grid";
import {useEffect, useState} from "react";
import axios from "axios";
-import {apiPath} from "../../auth/utils";
+import {apiPath} from "../../../auth/utils";
//import LoadingComponent from "../extra-pages/LoadingComponent";
import * as React from "react";
-import {GET_AUTH_LIST} from "../../utils/ApiPathConst";
+import {GET_AUTH_LIST} from "../../../utils/ApiPathConst";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
// ==============================|| EVENT TABLE ||============================== //
diff --git a/src/pages/pnspsUserDetailPage/UserAuthorityCard.js b/src/pages/User/DetailPage/UserAuthorityCard.js
similarity index 93%
rename from src/pages/pnspsUserDetailPage/UserAuthorityCard.js
rename to src/pages/User/DetailPage/UserAuthorityCard.js
index 8949ef3..360d720 100644
--- a/src/pages/pnspsUserDetailPage/UserAuthorityCard.js
+++ b/src/pages/User/DetailPage/UserAuthorityCard.js
@@ -2,14 +2,14 @@
import {
Typography
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import * as React from "react";
import {useEffect, useState} from "react";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
const UserAuthTable = Loadable(lazy(() => import('./UserAuthTable')));
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
// import LoadingComponent from "../extra-pages/LoadingComponent";
// import UserAuthTable from "./UserAuthTable";
diff --git a/src/pages/pnspsUserDetailPage/UserGroupCard.js b/src/pages/User/DetailPage/UserGroupCard.js
similarity index 92%
rename from src/pages/pnspsUserDetailPage/UserGroupCard.js
rename to src/pages/User/DetailPage/UserGroupCard.js
index 00f2a0e..0949b9a 100644
--- a/src/pages/pnspsUserDetailPage/UserGroupCard.js
+++ b/src/pages/User/DetailPage/UserGroupCard.js
@@ -2,7 +2,7 @@
import {
Typography
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import * as React from "react";
import {useEffect, useState} from "react";
//import LoadingComponent from "../extra-pages/LoadingComponent";
@@ -10,7 +10,7 @@ import UserGroupTable from "./UserGroupTable";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
// ==============================|| DASHBOARD - DEFAULT ||============================== //
diff --git a/src/pages/pnspsUserDetailPage/UserGroupTable.js b/src/pages/User/DetailPage/UserGroupTable.js
similarity index 91%
rename from src/pages/pnspsUserDetailPage/UserGroupTable.js
rename to src/pages/User/DetailPage/UserGroupTable.js
index 871ff2e..5e777d5 100644
--- a/src/pages/pnspsUserDetailPage/UserGroupTable.js
+++ b/src/pages/User/DetailPage/UserGroupTable.js
@@ -4,12 +4,12 @@ import {
} from "@mui/x-data-grid";
import {useEffect, useState} from "react";
import axios from "axios";
-import {apiPath} from "../../auth/utils";
+import {apiPath} from "../../../auth/utils";
import * as React from "react";
-import {GET_GROUP_COMBO_PATH} from "../../utils/ApiPathConst";
+import {GET_GROUP_COMBO_PATH} from "../../../utils/ApiPathConst";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
// ==============================|| EVENT TABLE ||============================== //
diff --git a/src/pages/pnspsUserDetailPage/UserInformationCard.js b/src/pages/User/DetailPage/UserInformationCard.js
similarity index 98%
rename from src/pages/pnspsUserDetailPage/UserInformationCard.js
rename to src/pages/User/DetailPage/UserInformationCard.js
index 72e0dc0..5346bab 100644
--- a/src/pages/pnspsUserDetailPage/UserInformationCard.js
+++ b/src/pages/User/DetailPage/UserInformationCard.js
@@ -7,14 +7,14 @@ import {
Typography, FormLabel,
OutlinedInput,
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import * as React from "react";
import {useForm} from "react-hook-form";
import {useEffect, useState} from "react";
import Checkbox from "@mui/material/Checkbox";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
//import {useParams} from "react-router-dom";
import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
diff --git a/src/pages/pnspsUserDetailPage/index.js b/src/pages/User/DetailPage/index.js
similarity index 98%
rename from src/pages/pnspsUserDetailPage/index.js
rename to src/pages/User/DetailPage/index.js
index 359214a..6e132f8 100644
--- a/src/pages/pnspsUserDetailPage/index.js
+++ b/src/pages/User/DetailPage/index.js
@@ -9,18 +9,18 @@ import {useEffect, useState} from "react";
import * as React from "react";
import axios from "axios";
import {useNavigate,useParams} from "react-router-dom";
-import {GLD_USER_PATH,DELETE_USER,POST_ADMIN_USER_REGISTER} from "../../utils/ApiPathConst";
+import {GLD_USER_PATH,DELETE_USER,POST_ADMIN_USER_REGISTER} from "../../../utils/ApiPathConst";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
const UserInformationCard = Loadable(lazy(() => import('./UserInformationCard')));
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
const UserGroupCard = Loadable(lazy(() => import('./UserGroupCard')));
const UserAuthorityCard = Loadable(lazy(() => import('./UserAuthorityCard')));
import {
GeneralConfirmWindow,
getDeletedRecordWithRefList,
-} from "../../utils/CommonFunction";
+} from "../../../utils/CommonFunction";
// ==============================|| DASHBOARD - DEFAULT ||============================== //
diff --git a/src/pages/pnspsUserDetailPage_Individual/UserInformationCard_Individual.js b/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js
similarity index 98%
rename from src/pages/pnspsUserDetailPage_Individual/UserInformationCard_Individual.js
rename to src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js
index dc58335..31f7496 100644
--- a/src/pages/pnspsUserDetailPage_Individual/UserInformationCard_Individual.js
+++ b/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js
@@ -2,17 +2,17 @@
import {
Grid, Button
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import * as React from "react";
import { useEffect, useState } from "react";
import * as yup from 'yup';
import { useFormik } from 'formik';
-import * as FieldUtils from "../../utils/FieldUtils";
-import * as HttpUtils from '../../utils/HttpUtils';
-import * as UrlUtils from "../../utils/ApiPathConst";
-import * as ComboData from "../../utils/ComboData";
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+import * as FieldUtils from "../../../utils/FieldUtils";
+import * as HttpUtils from '../../../utils/HttpUtils';
+import * as UrlUtils from "../../../utils/ApiPathConst";
+import * as ComboData from "../../../utils/ComboData";
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
import Loadable from 'components/Loadable';
import { lazy } from 'react';
// ==============================|| DASHBOARD - DEFAULT ||============================== //
diff --git a/src/pages/pnspsUserDetailPage_Individual/index.js b/src/pages/User/DetailsPage_Individual/index.js
similarity index 91%
rename from src/pages/pnspsUserDetailPage_Individual/index.js
rename to src/pages/User/DetailsPage_Individual/index.js
index 441771a..f95a025 100644
--- a/src/pages/pnspsUserDetailPage_Individual/index.js
+++ b/src/pages/User/DetailsPage_Individual/index.js
@@ -2,15 +2,15 @@
import * as React from "react";
import {Grid, Typography} from '@mui/material';
-import FileList from "../../components/FileList"
-import MainCard from "../../components/MainCard";
-import * as HttpUtils from "../../utils/HttpUtils";
+import FileList from "../../../components/FileList"
+import MainCard from "../../../components/MainCard";
+import * as HttpUtils from "../../../utils/HttpUtils";
import {useParams} from "react-router-dom";
-import * as UrlUtils from "../../utils/ApiPathConst";
-import * as DateUtils from '../../utils/DateUtils';
+import * as UrlUtils from "../../../utils/ApiPathConst";
+import * as DateUtils from '../../../utils/DateUtils';
import Loadable from 'components/Loadable';
-const LoadingComponent = Loadable(React.lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(React.lazy(() => import('../../extra-pages/LoadingComponent')));
const UserInformationCard = Loadable(React.lazy(() => import('./UserInformationCard_Individual')));
diff --git a/src/pages/pnspsUserDetailPage_Organization/UserInformationCard_Organization.js b/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js
similarity index 98%
rename from src/pages/pnspsUserDetailPage_Organization/UserInformationCard_Organization.js
rename to src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js
index 3c9803e..cf308b8 100644
--- a/src/pages/pnspsUserDetailPage_Organization/UserInformationCard_Organization.js
+++ b/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js
@@ -3,17 +3,17 @@ import {
Grid, Typography, Button,
Dialog, DialogTitle, DialogContent, DialogActions
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import * as React from "react";
-import * as FieldUtils from "../../utils/FieldUtils";
-import * as HttpUtils from '../../utils/HttpUtils';
-import * as UrlUtils from "../../utils/ApiPathConst";
-import * as ComboData from "../../utils/ComboData";
+import * as FieldUtils from "../../../utils/FieldUtils";
+import * as HttpUtils from '../../../utils/HttpUtils';
+import * as UrlUtils from "../../../utils/ApiPathConst";
+import * as ComboData from "../../../utils/ComboData";
import { useFormik } from 'formik';
import * as yup from 'yup';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
import Loadable from 'components/Loadable';
import { lazy } from 'react';
// ==============================|| DASHBOARD - DEFAULT ||============================== //
diff --git a/src/pages/pnspsUserDetailPage_Organization/index.js b/src/pages/User/DetailsPage_Organization/index.js
similarity index 93%
rename from src/pages/pnspsUserDetailPage_Organization/index.js
rename to src/pages/User/DetailsPage_Organization/index.js
index 0adfcf7..8ebb483 100644
--- a/src/pages/pnspsUserDetailPage_Organization/index.js
+++ b/src/pages/User/DetailsPage_Organization/index.js
@@ -3,16 +3,16 @@ import {Grid, Typography} from '@mui/material';
import {useEffect, useState} from "react";
import * as React from "react";
//import axios from "axios";
-import * as HttpUtils from "../../utils/HttpUtils";
+import * as HttpUtils from "../../../utils/HttpUtils";
import {useParams} from "react-router-dom";
-import FileList from "../../components/FileList"
-import MainCard from "../../components/MainCard";
-import * as UrlUtils from "../../utils/ApiPathConst";
-import * as DateUtils from '../../utils/DateUtils';
+import FileList from "../../../components/FileList"
+import MainCard from "../../../components/MainCard";
+import * as UrlUtils from "../../../utils/ApiPathConst";
+import * as DateUtils from '../../../utils/DateUtils';
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
const UserInformationCard = Loadable(lazy(() => import('./UserInformationCard_Organization')));
diff --git a/src/pages/ManageOrgUserPage/index.js b/src/pages/User/ManagePage_OrgPublic/index.js
similarity index 96%
rename from src/pages/ManageOrgUserPage/index.js
rename to src/pages/User/ManagePage_OrgPublic/index.js
index 698ddfb..6367222 100644
--- a/src/pages/ManageOrgUserPage/index.js
+++ b/src/pages/User/ManagePage_OrgPublic/index.js
@@ -8,12 +8,12 @@ import {
import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
import Checkbox from '@mui/material/Checkbox';
-import MainCard from "../../components/MainCard";
+import MainCard from "components/MainCard";
import * as React from "react";
-import * as HttpUtils from "../../utils/HttpUtils";
-import * as UrlUtils from "../../utils/ApiPathConst";
-import * as DateUtils from "../../utils/DateUtils";
+import * as HttpUtils from "utils/HttpUtils";
+import * as UrlUtils from "utils/ApiPathConst";
+import * as DateUtils from "utils/DateUtils";
const BackgroundHead = {
backgroundImage: `url(${titleBackgroundImg})`,
diff --git a/src/pages/pnspsUserSearchPage/UserSearchForm.js b/src/pages/User/SearchPage/UserSearchForm.js
similarity index 99%
rename from src/pages/pnspsUserSearchPage/UserSearchForm.js
rename to src/pages/User/SearchPage/UserSearchForm.js
index 47dc8ca..aef1307 100644
--- a/src/pages/pnspsUserSearchPage/UserSearchForm.js
+++ b/src/pages/User/SearchPage/UserSearchForm.js
@@ -5,7 +5,7 @@ import {
Grid, TextField,
Typography
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import {useForm} from "react-hook-form";
import {
diff --git a/src/pages/pnspsUserSearchPage/UserTable.js b/src/pages/User/SearchPage/UserTable.js
similarity index 96%
rename from src/pages/pnspsUserSearchPage/UserTable.js
rename to src/pages/User/SearchPage/UserTable.js
index 69af80a..5653b41 100644
--- a/src/pages/pnspsUserSearchPage/UserTable.js
+++ b/src/pages/User/SearchPage/UserTable.js
@@ -7,8 +7,8 @@ import {useEffect} from "react";
import {useNavigate} from "react-router-dom";
import { useTheme } from '@mui/material/styles';
import Checkbox from '@mui/material/Checkbox';
-import * as UrlUtils from "../../utils/ApiPathConst";
-import * as HttpUtils from '../../utils/HttpUtils';
+import * as UrlUtils from "../../../utils/ApiPathConst";
+import * as HttpUtils from '../../../utils/HttpUtils';
// ==============================|| EVENT TABLE ||============================== //
diff --git a/src/pages/pnspsUserSearchPage/index.js b/src/pages/User/SearchPage/index.js
similarity index 93%
rename from src/pages/pnspsUserSearchPage/index.js
rename to src/pages/User/SearchPage/index.js
index 78d50f4..d5d081d 100644
--- a/src/pages/pnspsUserSearchPage/index.js
+++ b/src/pages/User/SearchPage/index.js
@@ -5,15 +5,15 @@ import {
Stack,
// Button
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import {useEffect, useState} from "react";
import axios from "axios";
-import {GLD_USER_PATH} from "../../utils/ApiPathConst";
+import {GLD_USER_PATH} from "../../../utils/ApiPathConst";
import * as React from "react";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
const SearchForm = Loadable(lazy(() => import('./UserSearchForm')));
const EventTable = Loadable(lazy(() => import('./UserTable')));
diff --git a/src/pages/pnspsUserSearchPage_Individual/UserSearchForm_Individual.js b/src/pages/User/SearchPage_Individual/UserSearchForm_Individual.js
similarity index 99%
rename from src/pages/pnspsUserSearchPage_Individual/UserSearchForm_Individual.js
rename to src/pages/User/SearchPage_Individual/UserSearchForm_Individual.js
index 2a7ab02..13cab4b 100644
--- a/src/pages/pnspsUserSearchPage_Individual/UserSearchForm_Individual.js
+++ b/src/pages/User/SearchPage_Individual/UserSearchForm_Individual.js
@@ -5,7 +5,7 @@ import {
Grid, TextField,
Autocomplete
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import {useForm} from "react-hook-form";
import { useState} from "react";
import * as React from "react";
diff --git a/src/pages/pnspsUserSearchPage_Individual/UserTable_Individual.js b/src/pages/User/SearchPage_Individual/UserTable_Individual.js
similarity index 98%
rename from src/pages/pnspsUserSearchPage_Individual/UserTable_Individual.js
rename to src/pages/User/SearchPage_Individual/UserTable_Individual.js
index ffd58d9..689b620 100644
--- a/src/pages/pnspsUserSearchPage_Individual/UserTable_Individual.js
+++ b/src/pages/User/SearchPage_Individual/UserTable_Individual.js
@@ -7,7 +7,7 @@ import HighlightOff from '@mui/icons-material/HighlightOff';
import CheckCircleOutline from '@mui/icons-material/CheckCircleOutline';
import { useEffect } from "react";
import { useNavigate } from "react-router-dom";
-import * as DateUtils from "../../utils/DateUtils";
+import * as DateUtils from "../../../utils/DateUtils";
// ==============================|| EVENT TABLE ||============================== //
export default function UserTable_Individual({ recordList }) {
diff --git a/src/pages/pnspsUserSearchPage_Individual/index.js b/src/pages/User/SearchPage_Individual/index.js
similarity index 89%
rename from src/pages/pnspsUserSearchPage_Individual/index.js
rename to src/pages/User/SearchPage_Individual/index.js
index d37cc77..63f1a62 100644
--- a/src/pages/pnspsUserSearchPage_Individual/index.js
+++ b/src/pages/User/SearchPage_Individual/index.js
@@ -2,20 +2,20 @@
import {
Grid, Typography
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import {useEffect, useState} from "react";
//import axios from "axios";
//import {apiPath} from "../../auth/utils";
-import {GET_IND_USER_PATH} from "../../utils/ApiPathConst";
+import {GET_IND_USER_PATH} from "../../../utils/ApiPathConst";
import * as React from "react";
-import * as HttpUtils from "../../utils/HttpUtils";
+import * as HttpUtils from "../../../utils/HttpUtils";
//import LoadingComponent from "../extra-pages/LoadingComponent";
//import SearchForm from "./UserSearchForm_Individual";
//import EventTable from "./UserTable_Individual";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Individual')));
const EventTable = Loadable(lazy(() => import('./UserTable_Individual')));
diff --git a/src/pages/pnspsUserSearchPage_Organization/UserSearchForm_Organization.js b/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js
similarity index 99%
rename from src/pages/pnspsUserSearchPage_Organization/UserSearchForm_Organization.js
rename to src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js
index af76c84..8030db5 100644
--- a/src/pages/pnspsUserSearchPage_Organization/UserSearchForm_Organization.js
+++ b/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js
@@ -4,7 +4,7 @@ import {
CardContent, Autocomplete,
Grid, TextField
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import {useForm} from "react-hook-form";
import { useState} from "react";
diff --git a/src/pages/pnspsUserSearchPage_Organization/UserTable_Organization.js b/src/pages/User/SearchPage_Organization/UserTable_Organization.js
similarity index 98%
rename from src/pages/pnspsUserSearchPage_Organization/UserTable_Organization.js
rename to src/pages/User/SearchPage_Organization/UserTable_Organization.js
index 6602dc8..2c239ed 100644
--- a/src/pages/pnspsUserSearchPage_Organization/UserTable_Organization.js
+++ b/src/pages/User/SearchPage_Organization/UserTable_Organization.js
@@ -10,7 +10,7 @@ import {useEffect} from "react";
import {useNavigate} from "react-router-dom";
import HighlightOff from '@mui/icons-material/HighlightOff';
import CheckCircleOutline from '@mui/icons-material/CheckCircleOutline';
-import * as DateUtils from '../../utils/DateUtils';
+import * as DateUtils from '../../../utils/DateUtils';
// ==============================|| EVENT TABLE ||============================== //
diff --git a/src/pages/pnspsUserSearchPage_Organization/index.js b/src/pages/User/SearchPage_Organization/index.js
similarity index 90%
rename from src/pages/pnspsUserSearchPage_Organization/index.js
rename to src/pages/User/SearchPage_Organization/index.js
index d70fc19..111b15b 100644
--- a/src/pages/pnspsUserSearchPage_Organization/index.js
+++ b/src/pages/User/SearchPage_Organization/index.js
@@ -2,20 +2,20 @@
import {
Grid, Typography
} from '@mui/material';
-import MainCard from "../../components/MainCard";
+import MainCard from "../../../components/MainCard";
import {useEffect, useState} from "react";
//import axios from "axios";
//import {apiPath} from "../../auth/utils";
-import * as UrlUtils from "../../utils/ApiPathConst";
+import * as UrlUtils from "../../../utils/ApiPathConst";
import * as React from "react";
-import * as HttpUtils from "../../utils/HttpUtils";
+import * as HttpUtils from "../../../utils/HttpUtils";
//import LoadingComponent from "../extra-pages/LoadingComponent";
//import SearchForm from "./UserSearchForm_Organization";
//import EventTable from "./UserTable_Organization";
import Loadable from 'components/Loadable';
import { lazy } from 'react';
-const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Organization')));
const EventTable = Loadable(lazy(() => import('./UserTable_Organization')));
diff --git a/src/pages/gldDashboard/index.js b/src/pages/dashboard/GLD/index.js
similarity index 100%
rename from src/pages/gldDashboard/index.js
rename to src/pages/dashboard/GLD/index.js
diff --git a/src/pages/publicDashboard/index.js b/src/pages/dashboard/Public/index.js
similarity index 100%
rename from src/pages/publicDashboard/index.js
rename to src/pages/dashboard/Public/index.js
diff --git a/src/pages/dashboard/IncomeAreaChart.js b/src/pages/dashboard/Sample/IncomeAreaChart.js
similarity index 100%
rename from src/pages/dashboard/IncomeAreaChart.js
rename to src/pages/dashboard/Sample/IncomeAreaChart.js
diff --git a/src/pages/dashboard/MonthlyBarChart.js b/src/pages/dashboard/Sample/MonthlyBarChart.js
similarity index 100%
rename from src/pages/dashboard/MonthlyBarChart.js
rename to src/pages/dashboard/Sample/MonthlyBarChart.js
diff --git a/src/pages/dashboard/OrdersTable.js b/src/pages/dashboard/Sample/OrdersTable.js
similarity index 100%
rename from src/pages/dashboard/OrdersTable.js
rename to src/pages/dashboard/Sample/OrdersTable.js
diff --git a/src/pages/dashboard/ReportAreaChart.js b/src/pages/dashboard/Sample/ReportAreaChart.js
similarity index 100%
rename from src/pages/dashboard/ReportAreaChart.js
rename to src/pages/dashboard/Sample/ReportAreaChart.js
diff --git a/src/pages/dashboard/SalesColumnChart.js b/src/pages/dashboard/Sample/SalesColumnChart.js
similarity index 100%
rename from src/pages/dashboard/SalesColumnChart.js
rename to src/pages/dashboard/Sample/SalesColumnChart.js
diff --git a/src/pages/dashboard/index.js b/src/pages/dashboard/Sample/index.js
similarity index 100%
rename from src/pages/dashboard/index.js
rename to src/pages/dashboard/Sample/index.js
diff --git a/src/routes/GLDUserRoutes.js b/src/routes/GLDUserRoutes.js
index 44d748c..8aef188 100644
--- a/src/routes/GLDUserRoutes.js
+++ b/src/routes/GLDUserRoutes.js
@@ -6,12 +6,12 @@ import Loadable from 'components/Loadable';
const MainLayout = Loadable(lazy(() => import('layout/MainLayout')));
// render - dashboard
-const DashboardDefault = Loadable(lazy(() => import('pages/gldDashboard')));
-const ApplicationDetail = Loadable(lazy(() => import('pages/PublicNoticeDetail_GLD')));
-const ApplicationSearch = Loadable(lazy(() => import('pages/PublicNoticeSearch_GLD')));
-const ProofSearch = Loadable(lazy(() => import('pages/ProofSearch')));
-const ProofCreate_FromApp = Loadable(lazy(() => import('pages/ProofCreate_FromApp')));
-const ProofReply_GLD = Loadable(lazy(() => import('pages/ProofReply_GLD')));
+const DashboardDefault = Loadable(lazy(() => import('pages/Dashboard/GLD')));
+const ApplicationDetail = Loadable(lazy(() => import('pages/PublicNotice/Details_GLD')));
+const ApplicationSearch = Loadable(lazy(() => import('pages/PublicNotice/Search_GLD')));
+const ProofSearch = Loadable(lazy(() => import('pages/Proof/Search_GLD')));
+const ProofCreate_FromApp = Loadable(lazy(() => import('pages/Proof/Create_FromApp')));
+const ProofReply_GLD = Loadable(lazy(() => import('pages/Proof/Reply_GLD')));
// ==============================|| MAIN ROUTING ||============================== //
const GLDUserRoutes = {
diff --git a/src/routes/PublicUserRoutes.js b/src/routes/PublicUserRoutes.js
index 2cddd80..d296ef9 100644
--- a/src/routes/PublicUserRoutes.js
+++ b/src/routes/PublicUserRoutes.js
@@ -6,14 +6,15 @@ import Loadable from 'components/Loadable';
const MainLayout = Loadable(lazy(() => import('layout/MainLayout')));
// render - dashboard
-const DashboardDefault = Loadable(lazy(() => import('pages/publicDashboard')));
-const ManageOrgUser = Loadable(lazy(() => import('pages/ManageOrgUserPage')));
+const DashboardDefault = Loadable(lazy(() => import('pages/Dashboard/Public')));
+const ManageOrgUser = Loadable(lazy(() => import('pages/User/ManagePage_OrgPublic')));
const PublicNotice = Loadable(lazy(() => import('pages/PublicNotice/ListPanel')));
const PublicNoticeApplyForm = Loadable(lazy(() => import('pages/PublicNotice/ApplyForm')));
-const PublicNoticeDetail = Loadable(lazy(() => import('pages/PublicNoticeDetail')));
-const ProofReply = Loadable(lazy(() => import('pages/ProofReply_Public')));
-const ProofSearch = Loadable(lazy(() => import('pages/ProofSearch_Public')));
-const ProofPayment = Loadable(lazy(() => import('pages/ProofPayment')));
+const PublicNoticeDetail = Loadable(lazy(() => import('pages/PublicNotice/Details_Public')));
+const ProofReply = Loadable(lazy(() => import('pages/Proof/Reply_Public')));
+const ProofSearch = Loadable(lazy(() => import('pages/Proof/Search_Public')));
+const ProofPayment = Loadable(lazy(() => import('pages/Proof/Payment')));
+const Payment_FPS = Loadable(lazy(() => import('pages/Payment/FPS')));
// ==============================|| MAIN ROUTING ||============================== //
@@ -60,6 +61,10 @@ const PublicDashboard = {
path: 'proof/pay/:id',
element:
},
+ {
+ path: 'payment/fps',
+ element:
+ },
]
},
]
diff --git a/src/routes/SettingRoutes.js b/src/routes/SettingRoutes.js
index 03e1a73..048040e 100644
--- a/src/routes/SettingRoutes.js
+++ b/src/routes/SettingRoutes.js
@@ -9,12 +9,12 @@ const MainLayout = Loadable(lazy(() => import('layout/MainLayout')));
// render - login
const SettingPage = Loadable(lazy(() => import('pages/pnspsSettingPage')));
const PasswordPolicyPage = Loadable(lazy(()=> import('pages/pnspsPasswordPolicyPage')))
-const UserSearchPage = Loadable(lazy(()=>import ('pages/pnspsUserSearchPage')));
-const UserMaintainPage = Loadable(lazy(() => import('pages/pnspsUserDetailPage')));
-const UserSearchPage_Individual= Loadable(lazy(()=>import ('pages/pnspsUserSearchPage_Individual')));
-const UserMaintainPage_Individual = Loadable(lazy(() => import('pages/pnspsUserDetailPage_Individual')));
-const UserSearchPage_Organization= Loadable(lazy(()=>import ('pages/pnspsUserSearchPage_Organization')));
-const UserMaintainPage_Organization = Loadable(lazy(() => import('pages/pnspsUserDetailPage_Organization')));
+const UserSearchPage = Loadable(lazy(()=>import ('pages/User/SearchPage')));
+const UserMaintainPage = Loadable(lazy(() => import('pages/User/DetailPage')));
+const UserSearchPage_Individual= Loadable(lazy(()=>import ('pages/User/SearchPage_Individual')));
+const UserMaintainPage_Individual = Loadable(lazy(() => import('pages/User/DetailsPage_Individual')));
+const UserSearchPage_Organization= Loadable(lazy(()=>import ('pages/User/SearchPage_Organization')));
+const UserMaintainPage_Organization = Loadable(lazy(() => import('pages/User/DetailsPage_Organization')));
const UserGroupSearchPage = Loadable(lazy(() => import('pages/pnspsUserGroupSearchPage')));
const UserGroupDetailPage = Loadable(lazy(() => import('pages/pnspsUserGroupDetailPage')));
const OrganizationSearchPage = Loadable(lazy(() => import('pages/OrganizationSearchPage')));
diff --git a/src/utils/statusUtils/ProofStatus.js b/src/utils/statusUtils/ProofStatus.js
new file mode 100644
index 0000000..d3ce445
--- /dev/null
+++ b/src/utils/statusUtils/ProofStatus.js
@@ -0,0 +1,36 @@
+import {getStatusTag} from "utils/statusUtils/Base";
+
+const confirm = {color:"#22a13f", eng:"Confirm", cht:"可以付印"}
+const unable = {color:"#d9372b", eng:"Unable to print", cht:"未能付印"}
+const timeOut = {color:"#8a8784", eng:"Timed out", cht:"回覆逾時"}
+const noReply = {color:"#f5a83d", eng:"No reply yet", cht:"未回覆"}
+
+export function getStatus_Cht(params) {
+ let status = getStatus(params);
+ return getStatusTag({color: status.color, text:status.cht })
+}
+
+export function getStatus_Eng(params) {
+ let status = getStatus(params);
+ return getStatusTag({color: status.color, text:status.eng })
+}
+
+function getStatus(params) {
+ let replyDate = params.row?params.row.replyDate:params.replyDate;
+ let action = params.row?params.row.action:params.action;
+ let returnBeforeDate = params.row?params.row.returnBeforeDate:params.returnBeforeDate;
+
+ if(replyDate){
+ return action?confirm:unable;
+ }else{
+ return isOverTime(returnBeforeDate)? timeOut: noReply;
+ }
+}
+
+const isOverTime = (returnBeforeDate) => {
+ if (!returnBeforeDate) return true;
+ returnBeforeDate = returnBeforeDate.setHours(14, 0, 0, 0);
+ let current = new Date();
+ return current.getTime() > returnBeforeDate;
+}
+