Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

181 rinda
6.8 KiB

  1. // material-uisubDivision
  2. import {
  3. Button,
  4. // FormControlLabel,
  5. Grid,
  6. TextField,
  7. Typography
  8. } from '@mui/material';
  9. import MainCard from "components/MainCard";
  10. import { useForm } from "react-hook-form";
  11. import {
  12. // useEffect,
  13. // useState
  14. } from "react";
  15. import * as React from "react";
  16. // import { useNavigate } from "react-router";
  17. import {PNSPS_BUTTON_THEME} from "themes/buttonConst";
  18. import {ThemeProvider} from "@emotion/react";
  19. import * as DateUtils from "utils/DateUtils";
  20. import * as UrlUtils from "utils/ApiPathConst";
  21. import * as HttpUtils from "utils/HttpUtils";
  22. import Loadable from 'components/Loadable';
  23. const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent')));
  24. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  25. const AuditLogSearchForm = ({ applySearch, searchCriteria}) => {
  26. // const navigate = useNavigate();
  27. const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom);
  28. const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo);
  29. const [onDownload, setOnDownload] = React.useState(false);
  30. const { reset, register, handleSubmit } = useForm()
  31. const onSubmit = (data) => {
  32. const temp = {
  33. username: data.userName,
  34. modifiedTo: data.modifiedTo,
  35. modifiedFrom: data.modifiedFrom,
  36. };
  37. applySearch(temp);
  38. };
  39. function resetForm() {
  40. reset();
  41. }
  42. function exportExcel() {
  43. setOnDownload(true)
  44. HttpUtils.fileDownload({
  45. url: UrlUtils.AUDIT_LOG_EXPORT,
  46. onResponse:()=>{
  47. setOnDownload(false)
  48. },
  49. onError:()=>{
  50. setOnDownload(false)
  51. }
  52. });
  53. }
  54. return (
  55. <MainCard xs={12} md={12} lg={12}
  56. border={false}
  57. content={false}>
  58. <form onSubmit={handleSubmit(onSubmit)}>
  59. <Grid container sx={{ backgroundColor: '#ffffff', ml: 2, mt: 1}} width="98%">
  60. {/*row 1*/}
  61. <Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:2.5}}>
  62. <Typography variant="pnspsFormHeader" >
  63. Search
  64. </Typography>
  65. </Grid>
  66. {/*row 2*/}
  67. <Grid container display="flex" alignItems={"center"}>
  68. <Grid item xs={9} md={5} lg={5} sx={{ ml: 3, mr: 3, mb: 3 }}>
  69. <TextField
  70. fullWidth
  71. {...register("userName")}
  72. id='userName'
  73. label="Username"
  74. InputLabelProps={{
  75. shrink: true
  76. }}
  77. />
  78. </Grid>
  79. <Grid item xs={9} md={5} lg={5} sx={{ ml: 3, mr: 3, mb: 3 }}></Grid>
  80. <Grid item xs={9} s={6} md={5} lg={5} sx={{ ml: 3, mr: 3, mb: 3 }}>
  81. <TextField
  82. fullWidth
  83. {...register("modifiedFrom")}
  84. id="modifiedFrom"
  85. type="date"
  86. label="Modified From"
  87. defaultValue={searchCriteria.modifiedFrom}
  88. InputProps={{ inputProps: { max: maxDate } }}
  89. onChange={(newValue) => {
  90. setMinDate(DateUtils.dateStr(newValue));
  91. }}
  92. InputLabelProps={{
  93. shrink: true
  94. }}
  95. />
  96. </Grid>
  97. <Grid item xs={9} s={6} md={5} lg={5} sx={{ ml: 3, mr: 3, mb: 3 }}>
  98. <TextField
  99. fullWidth
  100. InputLabelProps={{
  101. shrink: true
  102. }}
  103. {...register("modifiedTo")}
  104. InputProps={{ inputProps: { min: minDate } }}
  105. onChange={(newValue) => {
  106. console.log(newValue)
  107. setMaxDate(DateUtils.dateStr(newValue));
  108. }}
  109. id="modifiedTo"
  110. type="date"
  111. label="Modified To"
  112. defaultValue={searchCriteria.modifiedTo}
  113. />
  114. </Grid>
  115. </Grid>
  116. {/*last row*/}
  117. <Grid container direction="row"
  118. justifyContent="space-between"
  119. alignItems="center">
  120. <ThemeProvider theme={PNSPS_BUTTON_THEME}>
  121. <Grid item xs={12} md={12}>
  122. <Grid container maxWidth justifyContent="flex-end">
  123. <Grid item sx={{ ml: 3, mr: 3, mb: 3,}}>
  124. {onDownload?
  125. <LoadingComponent disableText={true} alignItems="flex-start"/>
  126. :
  127. <Button
  128. variant="contained"
  129. onClick={exportExcel}
  130. >
  131. Export
  132. </Button>
  133. }
  134. </Grid>
  135. <Grid item sx={{ ml: 3, mr: 3, mb: 3,}}>
  136. <Button
  137. variant="contained"
  138. onClick={resetForm}
  139. >
  140. Clear
  141. </Button>
  142. </Grid>
  143. <Grid item sx={{ ml: 3, mb: 3 }}>
  144. <Button
  145. variant="contained"
  146. type="submit"
  147. >
  148. Search
  149. </Button>
  150. </Grid>
  151. </Grid>
  152. </Grid>
  153. </ThemeProvider>
  154. </Grid>
  155. </Grid>
  156. </form>
  157. </MainCard>
  158. );
  159. };
  160. export default AuditLogSearchForm;