From 7ce990258d0d589ba1b30f2912faafd38f05151d Mon Sep 17 00:00:00 2001 From: Zoltan Runyo <zoltan.runyo@ess.eu> Date: Wed, 16 Feb 2022 12:09:34 +0100 Subject: [PATCH] ICSHWI-8665: My IOCs to Explore IOCs view (as a switch) --- src/views/IOC/IOCListView.js | 32 ++++++++++++++++++++++++++------ src/views/home/HomeView.js | 11 +++-------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/views/IOC/IOCListView.js b/src/views/IOC/IOCListView.js index dc39e318..5f0c45f3 100644 --- a/src/views/IOC/IOCListView.js +++ b/src/views/IOC/IOCListView.js @@ -1,10 +1,10 @@ -import { Container, Grid, Hidden, Paper } from "@material-ui/core"; +import { Container, Grid, Hidden, Paper, FormControlLabel, Switch, Typography, Box } from "@material-ui/core"; import { RootContainer } from "../../components/common/Container/RootContainer"; -import React, { useState, useEffect } from "react" +import React, { useState, useEffect, useContext } from "react" import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { IOCList } from "../../components/IOC/IOCList"; import { IOCTable } from "../../components/IOC/IOCTable"; -import { useIOCSearch } from "../../api/SwaggerApi"; +import { useIOCSearch, userContext } from "../../api/SwaggerApi"; import { makeStyles } from '@material-ui/core/styles'; import { initRequestParams } from "../../components/common/Helper"; import { SearchBar } from "../../components/common/SearchBar/SearchBar"; @@ -18,6 +18,8 @@ const useStyles = makeStyles((theme) => ({ export function IOCListView({user = null}) { const [iocs, getIocs, /*reset*/, loading] = useIOCSearch(); const [query, setQuery] = useState(""); + const [ownOnly, setOwnOnly] = useState(false); + const {user} = useContext(userContext); const classes = useStyles(); const [lazyParams, setLazyParams] = useState({ @@ -31,12 +33,23 @@ export function IOCListView({user = null}) { sortOrder: null }); + const handleChangeOwn = (event) => { + const own = event.target.checked; + setOwnOnly(own); + }; + const rowsPerPage = [5, 10, 20, 50, 100]; + + console.log("rendering Explore IOCs") useEffect(() => { let requestParams = initRequestParams(lazyParams, query, columnSort); requestParams.owner = user?.loginName; + + if(ownOnly) { + requestParams.owner = user?.loginName; + } if(columnSort.sortField === "owner") { requestParams.orderBy = "OWNER"; @@ -51,8 +64,7 @@ export function IOCListView({user = null}) { } getIocs(requestParams); - - }, [getIocs, user, lazyParams, columnSort, query]) + }, [getIocs, lazyParams, columnSort, query, user, ownOnly]) const title = "Explore IOCs"; useGlobalAppBar(title); @@ -75,7 +87,15 @@ export function IOCListView({user = null}) { <Container> <Paper className={classes.root}> <Grid container spacing={1}> - <Grid item xs={12}> + <Grid item xs={12} md={12}> + <Box display="flex" justifyContent="end" p={2} m={1}> + <FormControlLabel className={classes.formControl} + control={<Switch checked={ownOnly} onChange={handleChangeOwn} />} + label={<Typography variant="h5">My IOCs</Typography>} + /> + </Box> + </Grid> + <Grid item xs={12} md={12}> {content} </Grid> </Grid> diff --git a/src/views/home/HomeView.js b/src/views/home/HomeView.js index 1fc5a8ed..d3e2c2d2 100644 --- a/src/views/home/HomeView.js +++ b/src/views/home/HomeView.js @@ -1,11 +1,10 @@ import { Container, Grid, Paper, Button, Box, Typography } from "@material-ui/core"; -import React, { useContext, useState } from "react"; +import React, { useState} from "react"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { CreateIOC } from "../../components/IOC/CreateIOC"; import { SimpleModal } from "../../components/common/SimpleModal/SimpleModal"; -import { useCreateIOC, userContext } from "../../api/SwaggerApi"; +import { useCreateIOC } from "../../api/SwaggerApi"; import { makeStyles } from '@material-ui/core/styles'; -import { IOCListView } from "../IOC/IOCListView"; const useStyles = makeStyles((theme) => ({ root: { @@ -15,7 +14,6 @@ const useStyles = makeStyles((theme) => ({ export function HomeView() { const [iocFormOpen, setIOCFormOpen] = useState(false); - const {user} = useContext(userContext); const classes = useStyles(); console.log("rendering Own IOCs") @@ -33,7 +31,7 @@ export function HomeView() { <Grid item xs={10}> <Box display="flex" flexDirection="row" p={2} m={1}> <Typography variant="h2"> - My IOCs + Home </Typography> </Box> </Grid> @@ -42,9 +40,6 @@ export function HomeView() { <Button variant="contained" color="secondary" onClick={() => { setIOCFormOpen(true) }}>New IOC</Button> </Box> </Grid> - <Grid item xs={12}> - <IOCListView user={user} /> - </Grid> <SimpleModal open={iocFormOpen} setOpen={setIOCFormOpen}> <CreateIOC open={iocFormOpen} setOpen={setIOCFormOpen} isUpdateIoc={false} submitCallback={closeModal} hook={useCreateIOC} title="Create new IOC" buttonText="Create"/> </SimpleModal> -- GitLab