diff --git a/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js b/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js index 8b732ba..076979c 100644 --- a/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js +++ b/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js @@ -6,8 +6,7 @@ import { IconButton } from '@mui/material'; import MainCard from "components/MainCard"; -import * as React from "react"; -import { useEffect, useState } from "react"; +import { useEffect, useState, lazy } from "react"; import * as yup from 'yup'; import { useFormik } from 'formik'; @@ -17,7 +16,6 @@ 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'; import { notifyActiveSuccess, notifyLockSuccess, notifySaveSuccess, notifyVerifySuccess } from 'utils/CommonFunction'; import { useIntl } from "react-intl"; import { PNSPS_BUTTON_THEME } from "themes/buttonConst"; @@ -335,7 +333,7 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => { Verified: { - currentUserData.verifiedBy || editMode ? + !isGrantedAny("MAINTAIN_USER") || currentUserData.verifiedBy || editMode ? {FieldUtils.initField({ valueName: "verifiedStatus", @@ -504,7 +502,7 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => { { - editMode ? + !isGrantedAny("MAINTAIN_USER") || editMode ? {FieldUtils.initField({ valueName: "status", @@ -522,32 +520,30 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => { })} { - isGrantedAny("MAINTAIN_USER") ? ( - locked ? - - - - - - : - - - - - - ) : <> + locked ? + + + + + + : + + + + + } } diff --git a/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js b/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js index a0c98d3..b578345 100644 --- a/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js +++ b/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js @@ -4,37 +4,36 @@ import { Dialog, DialogTitle, DialogContent, DialogActions, } from '@mui/material'; import MainCard from "components/MainCard"; -import * as React from "react"; - +import { useState, useEffect, lazy } from 'react'; import * as FieldUtils from "utils/FieldUtils"; import * as HttpUtils from 'utils/HttpUtils'; -import * as UrlUtils from "utils/ApiPathConst"; +import { POST_ORG_USER, GET_IND_USER_VERIFY, GET_USER_LOCK, GET_USER_UNLOCK } 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('pages/extra-pages/LoadingComponent'))); import Loadable from 'components/Loadable'; -import { lazy } from 'react'; import { notifyActiveSuccess, notifyLockSuccess, notifySaveSuccess, notifyVerifySuccess } from 'utils/CommonFunction'; -import {useIntl} from "react-intl"; -import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; -import {ThemeProvider} from "@emotion/react"; +import { useIntl } from "react-intl"; +import { PNSPS_BUTTON_THEME } from "themes/buttonConst"; +import { ThemeProvider } from "@emotion/react"; +import { isGrantedAny } from "auth/utils"; // ==============================|| DASHBOARD - DEFAULT ||============================== // const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => { - const [currentUserData, setCurrentUserData] = React.useState(userData); - const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); - const [warningText, setWarningText] = React.useState(""); - const [isConfirmPopUp, setIsConfirmPopUp] = React.useState(false); - const [confirmText, setConfirmText] = React.useState(""); - const [confirmAction, setConfirmAction] = React.useState(); - const [editMode, setEditMode] = React.useState(false); - const [onReady, setOnReady] = React.useState(false); + const [currentUserData, setCurrentUserData] = useState(userData); + const [isWarningPopUp, setIsWarningPopUp] = useState(false); + const [warningText, setWarningText] = useState(""); + const [isConfirmPopUp, setIsConfirmPopUp] = useState(false); + const [confirmText, setConfirmText] = useState(""); + const [confirmAction, setConfirmAction] = useState(); + const [editMode, setEditMode] = useState(false); + const [onReady, setOnReady] = useState(false); const intl = useIntl(); - React.useEffect(() => { + useEffect(() => { //if state data are ready and assign to different field // console.log(currentApplicationDetailData) if (Object.keys(currentUserData).length > 0) { @@ -50,57 +49,42 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => enableReinitialize: true, initialValues: currentUserData, validationSchema: yup.object().shape({ - contactPerson: yup.string().max(255).required(displayErrorMsg(intl.formatMessage({id: 'userRequireName'}))), - enCompanyName: yup.string().max(255).required(displayErrorMsg(intl.formatMessage({id: 'userRequireEnglishName'}))), + contactPerson: yup.string().max(255).required(displayErrorMsg(intl.formatMessage({ id: 'userRequireName' }))), + enCompanyName: yup.string().max(255).required(displayErrorMsg(intl.formatMessage({ id: 'userRequireEnglishName' }))), chCompanyName: yup.string().max(255).nullable(), - addressLine1: yup.string().max(40).required(displayErrorMsg(intl.formatMessage({id: 'validateAddressLine1'}))), + addressLine1: yup.string().max(40).required(displayErrorMsg(intl.formatMessage({ id: 'validateAddressLine1' }))), addressLine2: yup.string().max(40).nullable(), addressLine3: yup.string().max(40).nullable(), - emailBus: yup.string().max(255).required(displayErrorMsg(intl.formatMessage({id: 'requireEmail'}))), - tel_countryCode: yup.string().min(3, displayErrorMsg(intl.formatMessage({id: 'require3Number'}))).required(displayErrorMsg(intl.formatMessage({id: 'requireDialingCode'}))), - fax_countryCode: yup.string().min(3, displayErrorMsg(intl.formatMessage({id: 'require3Number'}))).nullable(), - phoneNumber: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'require8Number'}))).required(displayErrorMsg(intl.formatMessage({id: 'requireContactNumber'}))), - faxNumber: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'require8Number'}))).nullable(), - brExpiryDate: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'}))), - brNo: yup.string().max(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertNumber'}))) - .test('checkBrNoFormat', displayErrorMsg(`${intl.formatMessage({id: 'pleaseFillInValidBusinessRegCertNumber'})} (e.g. 12341234)`), function (value) { - var brNo_pattern = /[0-9]{8}/ - if (value !== undefined) { - if (value.match(brNo_pattern)) { - return true - } else { - return false + emailBus: yup.string().max(255).required(displayErrorMsg(intl.formatMessage({ id: 'requireEmail' }))), + tel_countryCode: yup.string().min(3, displayErrorMsg(intl.formatMessage({ id: 'require3Number' }))).required(displayErrorMsg(intl.formatMessage({ id: 'requireDialingCode' }))), + fax_countryCode: yup.string().min(3, displayErrorMsg(intl.formatMessage({ id: 'require3Number' }))).nullable(), + phoneNumber: yup.string().min(8, displayErrorMsg(intl.formatMessage({ id: 'require8Number' }))).required(displayErrorMsg(intl.formatMessage({ id: 'requireContactNumber' }))), + faxNumber: yup.string().min(8, displayErrorMsg(intl.formatMessage({ id: 'require8Number' }))).nullable(), + brExpiryDate: yup.string().min(8, displayErrorMsg(intl.formatMessage({ id: 'pleaseFillInBusinessRegCertValidityDate' }))), + brNo: yup.string().max(8).required(displayErrorMsg(intl.formatMessage({ id: 'pleaseFillInBusinessRegCertNumber' }))) + .test('checkBrNoFormat', displayErrorMsg(`${intl.formatMessage({ id: 'pleaseFillInValidBusinessRegCertNumber' })} (e.g. 12341234)`), function (value) { + var brNo_pattern = /[0-9]{8}/ + if (value !== undefined) { + if (value.match(brNo_pattern)) { + return true + } else { + return false + } } - } - }), + }), }), onSubmit: (values) => { HttpUtils.post({ - url: UrlUtils.POST_ORG_USER + "/" + userData.id, + url: POST_ORG_USER + "/" + userData.id, params: { contactTel: { countryCode: values.tel_countryCode, phoneNumber: values.phoneNumber }, - // faxNo: { - // countryCode: values.fax_countryCode, - // faxNumber: values.faxNumber - // }, - // addressBus: { - // country: values.country, - // district: values.district, - // addressLine1: values.addressLine1, - // addressLine2: values.addressLine2, - // addressLine3: values.addressLine3, - // }, identification: values.identification, emailBus: values.emailBus, contactPerson: values.contactPerson, - // enCompanyName: values.enCompanyName, - // chCompanyName: values.chCompanyName, orgId: values.orgId?.id, - // brNo: values.brNo, - // brExpiryDate: values.brExpiryDate, preferLocale: values.preferLocale.type }, onSuccess: function () { @@ -113,7 +97,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => }); - React.useEffect(() => { + useEffect(() => { if (Object.keys(userData).length > 0) { setCurrentUserData(userData); } @@ -136,7 +120,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => const onVerifiedClick = () => { if (formik?.values?.orgId) { HttpUtils.get({ - url: UrlUtils.GET_IND_USER_VERIFY + "/" + userData.id, + url: GET_IND_USER_VERIFY + "/" + userData.id, onSuccess: function () { notifyVerifySuccess() loadDataFun(); @@ -154,7 +138,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => setConfirmAction({ function: function () { HttpUtils.get({ - url: UrlUtils.GET_USER_LOCK + "/" + userData.id, + url: GET_USER_LOCK + "/" + userData.id, onSuccess: function () { notifyLockSuccess() loadDataFun(); @@ -171,7 +155,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => setConfirmAction({ function: function () { HttpUtils.get({ - url: UrlUtils.GET_USER_UNLOCK + "/" + userData.id, + url: GET_USER_UNLOCK + "/" + userData.id, onSuccess: function () { notifyActiveSuccess() loadDataFun(); @@ -194,50 +178,57 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) =>
{/*top button*/} - - - {editMode ? - <> - - - - - - - - - - : - <> - + {isGrantedAny("MAINTAIN_USER") ? + + + {editMode ? + <> - + + + + + + - - - } + + : + <> + + + + + + + + } + - + : <> + } + + + {/*end top button*/}
@@ -305,9 +296,9 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => {FieldUtils.getComboField({ label: "Organisation:", valueName: "orgId", - getOptionLabel: (option) => option.enCompanyName?option.enCompanyName:option.chCompanyName? option.chCompanyName : "", + getOptionLabel: (option) => option.enCompanyName ? option.enCompanyName : option.chCompanyName ? option.chCompanyName : "", dataList: orgData, - disabled: (!editMode), + disabled: (!editMode), form: formik })} {/* {FieldUtils.getComboField({ @@ -361,7 +352,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => { - currentUserData.verifiedBy || editMode ? + !isGrantedAny("MAINTAIN_USER") || currentUserData.verifiedBy || editMode ? {FieldUtils.initField({ valueName: "verifiedStatus", @@ -380,12 +371,12 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => - + @@ -404,10 +395,10 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => {FieldUtils.getComboField({ - label: intl.formatMessage({id: 'language'}) + ":", + label: intl.formatMessage({ id: 'language' }) + ":", valueName: "preferLocale", dataList: ComboData.Locale, - getOptionLabel: (option) => option.label? option.label: "", + getOptionLabel: (option) => option.label ? option.label : "", disabled: (!editMode), form: formik })} @@ -420,7 +411,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => Status: { - editMode ? + !isGrantedAny("MAINTAIN_USER") || editMode ? {FieldUtils.initField({ valueName: "status", @@ -442,25 +433,25 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => {formik.values.locked ? - + : - + } @@ -478,11 +469,11 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => {currentUserData.orgId == null ? - + : null @@ -525,7 +516,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => {FieldUtils.getComboField({ label: "Country:", valueName: "country", - getOptionLabel: (option) => option.type? intl.formatMessage({ id: option.type }) : "", + getOptionLabel: (option) => option.type ? intl.formatMessage({ id: option.type }) : "", dataList: ComboData.country, disabled: true, form: formik @@ -558,7 +549,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => label: "District:", valueName: "district", dataList: ComboData.district, - getOptionLabel: (option) => option.type? intl.formatMessage({ id: option.type }) : "", + getOptionLabel: (option) => option.type ? intl.formatMessage({ id: option.type }) : "", disabled: true, form: formik })} @@ -595,9 +586,9 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => - + @@ -620,12 +611,12 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => - - + + diff --git a/src/pages/User/SearchPage/UserSearchForm.js b/src/pages/User/SearchPage/UserSearchForm.js index 7cf1dd6..17d7cfd 100644 --- a/src/pages/User/SearchPage/UserSearchForm.js +++ b/src/pages/User/SearchPage/UserSearchForm.js @@ -5,19 +5,15 @@ import { Grid, TextField, Typography } from '@mui/material'; -import MainCard from "../../../components/MainCard"; +import MainCard from "components/MainCard"; import { useForm } from "react-hook-form"; - -import { - useState -} from "react"; - +import {useState} from "react"; import Checkbox from "@mui/material/Checkbox"; import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; import { useNavigate } from "react-router"; import axios from "axios"; import { GET_EMAIL_LIST } from 'utils/ApiPathConst'; -import { PNSPS_BUTTON_THEME } from "../../../themes/buttonConst"; +import { PNSPS_BUTTON_THEME } from "themes/buttonConst"; import { ThemeProvider } from "@emotion/react"; import { isGrantedAny } from "auth/utils"; diff --git a/src/pages/User/SearchPage/UserTable.js b/src/pages/User/SearchPage/UserTable.js index 47df44f..17d1e83 100644 --- a/src/pages/User/SearchPage/UserTable.js +++ b/src/pages/User/SearchPage/UserTable.js @@ -1,7 +1,6 @@ // material-ui -import * as React from 'react'; import {FiDataGrid} from "components/FiDataGrid"; -import {useEffect} from "react"; +import {useState, useEffect} from "react"; import {useNavigate} from "react-router-dom"; import { useTheme } from '@mui/material/styles'; import Checkbox from '@mui/material/Checkbox'; @@ -13,8 +12,8 @@ import { isGrantedAny } from "auth/utils"; // ==============================|| EVENT TABLE ||============================== // export default function UserTable({searchCriteria}) { - const [_searchCriteria, set_searchCriteria] = React.useState(searchCriteria); - const [reloadTime, setReloadTime] = React.useState(new Date()); + const [_searchCriteria, set_searchCriteria] = useState(searchCriteria); + const [reloadTime, setReloadTime] = useState(new Date()); const theme = useTheme(); const navigate = useNavigate() diff --git a/src/pages/User/SearchPage/index.js b/src/pages/User/SearchPage/index.js index b987fe2..81461b0 100644 --- a/src/pages/User/SearchPage/index.js +++ b/src/pages/User/SearchPage/index.js @@ -6,11 +6,9 @@ import { // Button } from '@mui/material'; import MainCard from "../../../components/MainCard"; -import { useEffect, useState } from "react"; -import * as React from "react"; +import { useEffect, useState, lazy } from "react"; import Loadable from 'components/Loadable'; -import { lazy } from 'react'; const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); const SearchForm = Loadable(lazy(() => import('./UserSearchForm'))); const EventTable = Loadable(lazy(() => import('./UserTable'))); @@ -31,9 +29,9 @@ const UserSettingPage = () => { // const [record, setRecord] = useState([]); const [searchCriteria, setSearchCriteria] = useState({}); const [onReady, setOnReady] = useState(false); - //const [changelocked, setChangeLocked] = React.useState(false); + //const [changelocked, setChangeLocked] = useState(false); - // React.useLayoutEffect(() => { + // useLayoutEffect(() => { // getUserList(); // }, [changelocked]); @@ -41,7 +39,7 @@ const UserSettingPage = () => { setOnReady(true); }, [searchCriteria]); - // React.useLayoutEffect(() => { + // useLayoutEffect(() => { // getUserList(); // }, [searchCriteria]); diff --git a/src/pages/User/SearchPage_Individual/UserSearchForm_Individual.js b/src/pages/User/SearchPage_Individual/UserSearchForm_Individual.js index 8c3b16c..dc3f668 100644 --- a/src/pages/User/SearchPage_Individual/UserSearchForm_Individual.js +++ b/src/pages/User/SearchPage_Individual/UserSearchForm_Individual.js @@ -5,11 +5,10 @@ import { Autocomplete, Typography } 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"; -import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; +import {PNSPS_BUTTON_THEME} from "themes/buttonConst"; import {ThemeProvider} from "@emotion/react"; // ==============================|| DASHBOARD - DEFAULT ||============================== // diff --git a/src/pages/User/SearchPage_Individual/UserTable_Individual.js b/src/pages/User/SearchPage_Individual/UserTable_Individual.js index 063d822..2097fe9 100644 --- a/src/pages/User/SearchPage_Individual/UserTable_Individual.js +++ b/src/pages/User/SearchPage_Individual/UserTable_Individual.js @@ -1,11 +1,10 @@ // material-ui -import * as React from 'react'; import { GridActionsCellItem } from "@mui/x-data-grid"; import { FiDataGrid } from "components/FiDataGrid"; //import VisibilityIcon from '@mui/icons-material/Visibility'; import HighlightOff from '@mui/icons-material/HighlightOff'; import CheckCircleOutline from '@mui/icons-material/CheckCircleOutline'; -import { useEffect } from "react"; +import {useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import * as DateUtils from "utils/DateUtils"; import { GET_IND_USER_PATH } from "utils/ApiPathConst"; @@ -13,7 +12,7 @@ import { clickableLink} from 'utils/CommonFunction'; // ==============================|| EVENT TABLE ||============================== // export default function UserTable_Individual({ searchCriteria }) { - const [_searchCriteria, set_searchCriteria] = React.useState(searchCriteria); + const [_searchCriteria, set_searchCriteria] = useState(searchCriteria); const navigate = useNavigate() diff --git a/src/pages/User/SearchPage_Individual/index.js b/src/pages/User/SearchPage_Individual/index.js index a43a912..24fd1d6 100644 --- a/src/pages/User/SearchPage_Individual/index.js +++ b/src/pages/User/SearchPage_Individual/index.js @@ -3,10 +3,8 @@ import { Grid, Typography, Stack } from '@mui/material'; import MainCard from "components/MainCard"; -import { useEffect, useState } from "react"; -import * as React from "react"; +import { useEffect, useState, lazy } from "react"; import Loadable from 'components/Loadable'; -import { lazy } from 'react'; const LoadingComponent = Loadable(lazy(() => import('pages/extra-pages/LoadingComponent'))); const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Individual'))); const EventTable = Loadable(lazy(() => import('./UserTable_Individual'))); diff --git a/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js b/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js index 4f58fea..e417d5e 100644 --- a/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js +++ b/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js @@ -9,7 +9,6 @@ import MainCard from "../../../components/MainCard"; import {useForm} from "react-hook-form"; import { useState} from "react"; -import * as React from "react"; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {ThemeProvider} from "@emotion/react"; // ==============================|| DASHBOARD - DEFAULT ||============================== // diff --git a/src/pages/User/SearchPage_Organization/UserTable_Organization.js b/src/pages/User/SearchPage_Organization/UserTable_Organization.js index 361adb6..1e00db0 100644 --- a/src/pages/User/SearchPage_Organization/UserTable_Organization.js +++ b/src/pages/User/SearchPage_Organization/UserTable_Organization.js @@ -1,22 +1,22 @@ -// material-ui -import * as React from 'react'; + import { GridActionsCellItem, } from "@mui/x-data-grid"; import {FiDataGrid} from "components/FiDataGrid"; -import VisibilityIcon from '@mui/icons-material/Visibility'; -import {useEffect} from "react"; +//import VisibilityIcon from '@mui/icons-material/Visibility'; +import {useState, 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 { GET_ORG_USER_PATH } from "utils/ApiPathConst"; +import { clickableLink} from 'utils/CommonFunction'; // ==============================|| EVENT TABLE ||============================== // export default function UserTable_Organization({searchCriteria}) { - const [_searchCriteria, set_searchCriteria] = React.useState(searchCriteria); + const [_searchCriteria, set_searchCriteria] = useState(searchCriteria); const navigate = useNavigate() @@ -24,35 +24,38 @@ export default function UserTable_Organization({searchCriteria}) { set_searchCriteria(searchCriteria); }, [searchCriteria]); - const handleActionClick = (id) => () => { - navigate('/orgUser/'+ id); - }; + // const handleActionClick = (id) => () => { + // navigate('/orgUser/'+ id); + // }; const columns = [ - { - field: 'actions', - type: 'actions', - headerName: 'Actions', - width: 100, - cellClassName: 'actions', - getActions: ({id}) => { - return [ - } - label="View" - className="textPrimary" - onClick={handleActionClick(id)} - color="primary" - />] - }, - }, + // { + // field: 'actions', + // type: 'actions', + // headerName: 'Actions', + // width: 100, + // cellClassName: 'actions', + // getActions: ({id}) => { + // return [ + // } + // label="View" + // className="textPrimary" + // onClick={handleActionClick(id)} + // color="primary" + // />] + // }, + // }, { id: 'username', field: 'username', headerName: 'Username', flex: 1, minWidth: 150, + renderCell: (params) => { + return clickableLink('/orgUser/'+ params.row.id, params.row.username); + }, }, { id: 'contactPerson', @@ -142,7 +145,7 @@ export default function UserTable_Organization({searchCriteria}) {
import('../../extra-pages/LoadingComponent'))); const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Organization'))); const EventTable = Loadable(lazy(() => import('./UserTable_Organization')));