@@ -18,6 +18,9 @@ const MainCard = Loadable(React.lazy(() => import('components/MainCard'))); | |||||
import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils"; | import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils"; | ||||
import FileList from "components/FileList" | import FileList from "components/FileList" | ||||
import { FormattedMessage, useIntl } from "react-intl"; | import { FormattedMessage, useIntl } from "react-intl"; | ||||
import { | |||||
isORGLoggedIn, | |||||
} from "utils/Utils"; | |||||
// ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
const ApplicationDetailCard = ({ formData, }) => { | const ApplicationDetailCard = ({ formData, }) => { | ||||
@@ -175,6 +178,32 @@ const ApplicationDetailCard = ({ formData, }) => { | |||||
</Grid> | </Grid> | ||||
</Grid> | </Grid> | ||||
</Grid> | </Grid> | ||||
{isORGLoggedIn() ? | |||||
<> | |||||
<Grid container direction="row" justifyContent="space-between" | |||||
alignItems="center"> | |||||
<Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}> | |||||
<Grid container alignItems="left"> | |||||
<Grid item xs={12} md={3} lg={3} | |||||
sx={{ display: 'flex', alignItems: 'center' }}> | |||||
<FormLabel><Typography variant="pnspsFormParagraph"> | |||||
<FormattedMessage id="careOf" />: | |||||
</Typography></FormLabel> | |||||
</Grid> | |||||
<Grid item xs={12} md={9} lg={9}> | |||||
<Stack direction="row"> | |||||
<DisplayField name="careOf" /> | |||||
</Stack> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</> | |||||
: | |||||
null | |||||
} | |||||
<Grid container direction="row" justifyContent="space-between" | <Grid container direction="row" justifyContent="space-between" | ||||
alignItems="center"> | alignItems="center"> | ||||
<Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}> | <Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}> | ||||
@@ -8,17 +8,18 @@ import { | |||||
import MainCard from "../../../components/MainCard"; | import MainCard from "../../../components/MainCard"; | ||||
import {useForm} from "react-hook-form"; | import {useForm} from "react-hook-form"; | ||||
import { useState} from "react"; | |||||
import { useState, useEffect} from "react"; | |||||
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; | import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; | ||||
import {ThemeProvider} from "@emotion/react"; | import {ThemeProvider} from "@emotion/react"; | ||||
// ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
const UserSearchForm_Organization = ({applySearch, onGridReady}) => { | |||||
const UserSearchForm_Organization = ({applySearch, orgComboData, onGridReady}) => { | |||||
const [type, setType] = useState([]); | const [type, setType] = useState([]); | ||||
const [accountFilter, setAccountFilter] = useState("All"); | const [accountFilter, setAccountFilter] = useState("All"); | ||||
const [orgCombo, setOrgCombo] = useState(); | |||||
const [orgSelected, setOrgSelected] = useState({}); | |||||
const { reset, register, handleSubmit } = useForm() | const { reset, register, handleSubmit } = useForm() | ||||
const onSubmit = (data) => { | const onSubmit = (data) => { | ||||
@@ -36,15 +37,22 @@ const UserSearchForm_Organization = ({applySearch, onGridReady}) => { | |||||
contactTel: data.phone, | contactTel: data.phone, | ||||
contactPerson: data.contactPerson, | contactPerson: data.contactPerson, | ||||
brNoStr: data.brNoStr, | brNoStr: data.brNoStr, | ||||
orgName: data.orgName, | |||||
orgName: orgSelected?.name ? orgSelected?.name : "", | |||||
accountFilter: accountFilter=="All"?null:accountFilter, | accountFilter: accountFilter=="All"?null:accountFilter, | ||||
}; | }; | ||||
applySearch(temp); | applySearch(temp); | ||||
}; | }; | ||||
useEffect(() => { | |||||
if (orgComboData && orgComboData.length > 0) { | |||||
setOrgCombo(orgComboData); | |||||
} | |||||
}, [orgComboData]); | |||||
function resetForm(){ | function resetForm(){ | ||||
setType([]); | setType([]); | ||||
setAccountFilter("All"); | setAccountFilter("All"); | ||||
setOrgSelected({}); | |||||
reset(); | reset(); | ||||
} | } | ||||
@@ -64,17 +72,46 @@ const UserSearchForm_Organization = ({applySearch, onGridReady}) => { | |||||
{/*row 2*/} | {/*row 2*/} | ||||
<Grid container display="flex" alignItems={"center"}> | <Grid container display="flex" alignItems={"center"}> | ||||
<Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}> | |||||
<TextField | |||||
fullWidth | |||||
{...register("orgName")} | |||||
id="orgName" | |||||
label="Organisation" | |||||
InputLabelProps={{ | |||||
shrink: true | |||||
}} | |||||
/> | |||||
</Grid> | |||||
{ | |||||
orgCombo ? | |||||
<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}> | |||||
<Autocomplete | |||||
{...register("orgId")} | |||||
disablePortal | |||||
id="orgId" | |||||
options={orgCombo} | |||||
groupBy={(option) => option.groupType} | |||||
size="small" | |||||
value={orgSelected} | |||||
getOptionLabel={(option) => option.name? option.name : ""} | |||||
inputValue={orgSelected ? orgSelected.name : ""} | |||||
onChange={(event, newValue) => { | |||||
if (newValue !== null) { | |||||
setOrgSelected(newValue); | |||||
}else{ | |||||
setOrgSelected({}); | |||||
} | |||||
}} | |||||
renderInput={(params) => ( | |||||
<TextField {...params} | |||||
label="Organisation" | |||||
InputLabelProps={{ | |||||
shrink: true | |||||
}} | |||||
/> | |||||
)} | |||||
renderGroup={(params) => ( | |||||
<Grid item key={params.key}> | |||||
<Typography fontSize={20} fontStyle="italic" p={1}> | |||||
{params.group} | |||||
</Typography> | |||||
{params.children} | |||||
</Grid> | |||||
)} | |||||
/> | |||||
</Grid> | |||||
: <></> | |||||
} | |||||
<Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}> | <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}> | ||||
<TextField | <TextField | ||||
@@ -5,6 +5,9 @@ import { | |||||
import MainCard from "components/MainCard"; | import MainCard from "components/MainCard"; | ||||
import { useEffect, useState, lazy } from "react"; | import { useEffect, useState, lazy } from "react"; | ||||
import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
import * as HttpUtils from "utils/HttpUtils"; | |||||
import {GET_ORG_COMBO} from "utils/ApiPathConst"; | |||||
const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); | const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); | ||||
const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Organization'))); | const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Organization'))); | ||||
const EventTable = Loadable(lazy(() => import('./UserTable_Organization'))); | const EventTable = Loadable(lazy(() => import('./UserTable_Organization'))); | ||||
@@ -23,11 +26,25 @@ const BackgroundHead = { | |||||
// ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
const UserSearchPage_Organization = () => { | const UserSearchPage_Organization = () => { | ||||
const [orgCombo, setOrgCombo] = useState([]); | |||||
const [searchCriteria, setSearchCriteria] = useState({}); | const [searchCriteria, setSearchCriteria] = useState({}); | ||||
const [onReady, setOnReady] = useState(false); | const [onReady, setOnReady] = useState(false); | ||||
const [onGridReady, setGridOnReady] = useState(false); | const [onGridReady, setGridOnReady] = useState(false); | ||||
useEffect(() => { | |||||
getOrgCombo(); | |||||
// getIssueCombo(); | |||||
}, []); | |||||
function getOrgCombo() { | |||||
HttpUtils.get({ | |||||
url: GET_ORG_COMBO, | |||||
onSuccess: function (responseData) { | |||||
let combo = responseData; | |||||
setOrgCombo(combo); | |||||
} | |||||
}); | |||||
} | |||||
useEffect(() => { | useEffect(() => { | ||||
setOnReady(true); | setOnReady(true); | ||||
@@ -62,6 +79,7 @@ const UserSearchPage_Organization = () => { | |||||
<Grid item xs={12} md={12} lg={12} sx={{mb:-1}}> | <Grid item xs={12} md={12} lg={12} sx={{mb:-1}}> | ||||
<SearchForm | <SearchForm | ||||
applySearch={applySearch} | applySearch={applySearch} | ||||
orgComboData={orgCombo} | |||||
onGridReady={onGridReady} | onGridReady={onGridReady} | ||||
/> | /> | ||||
</Grid> | </Grid> | ||||