Skip to content
Snippets Groups Projects
Commit 1a2e6964 authored by Zoltan Runyo's avatar Zoltan Runyo
Browse files

Merge branch 'cf-record-improvements-ICSHWI-11407' into 'develop'

CF record improvements ICSHWI-11407

See merge request !260
parents 33ae3687 09356801
No related branches found
No related tags found
2 merge requests!270Merging develop branch to master in order to create RC,!260CF record improvements ICSHWI-11407
Pipeline #136617 passed
import React, { useEffect, useCallback } from "react"; import React, { useEffect, useCallback, useState } from "react";
import { useRecordSearch } from "../../api/SwaggerApi"; import { useRecordSearch } from "../../api/SwaggerApi";
import { initRequestParams } from "../common/Helper"; import { initRequestParams } from "../common/Helper";
import { RecordTable } from "./RecordTable"; import { RecordTable } from "./RecordTable";
import { SearchBar } from "../common/SearchBar/SearchBar"; import { SearchBar } from "../common/SearchBar/SearchBar";
import useUrlState from "@ahooksjs/use-url-state"; import useUrlState from "@ahooksjs/use-url-state";
import { serialize, deserialize } from "../common/URLState/URLState"; import { serialize, deserialize } from "../common/URLState/URLState";
import { Grid, Tabs, Tab, Typography } from "@material-ui/core";
export function RecordSearch({ iocName, rowType }) { export function RecordSearch({ iocName, rowType }) {
const [records, getRecords /* reset*/, , loading] = useRecordSearch(); const [records, getRecords /* reset*/, , loading] = useRecordSearch();
const [state, setState] = useUrlState({ rows: "20", page: "0", query: "" }); const [state, setState] = useUrlState({
record_tab: "0",
rows: "20",
page: "0",
query: ""
});
const [recordFilter, setRecordFilter] = useState();
const handleTabChange = useCallback(
(event, tab) => {
setState((s) =>
serialize(s.record_tab) === serialize(tab)
? { record_tab: serialize(tab) }
: { record_tab: serialize(tab), page: "0" }
);
changeTab(tab);
},
[setState]
);
useEffect(() => {
state.record_tab && changeTab(deserialize(state.record_tab));
}, [state]);
const changeTab = (tab) => {
if (tab === 0) {
setRecordFilter(null);
} else if (tab === 1) {
setRecordFilter("ACTIVE");
} else if (tab === 2) {
setRecordFilter("INACTIVE");
}
};
const lazyParams = useCallback(() => { const lazyParams = useCallback(() => {
return { return {
...@@ -41,8 +75,10 @@ export function RecordSearch({ iocName, rowType }) { ...@@ -41,8 +75,10 @@ export function RecordSearch({ iocName, rowType }) {
ioc_name: iocName ioc_name: iocName
}; };
} }
requestParams.pv_status = recordFilter;
getRecords(requestParams); getRecords(requestParams);
}, [getRecords, lazyParams, iocName, state]); }, [getRecords, lazyParams, iocName, state, recordFilter]);
const setSearch = useCallback( const setSearch = useCallback(
(query) => { (query) => {
...@@ -52,20 +88,39 @@ export function RecordSearch({ iocName, rowType }) { ...@@ -52,20 +88,39 @@ export function RecordSearch({ iocName, rowType }) {
); );
return ( return (
<SearchBar <Grid
search={setSearch} container
query={deserialize(state.query)} spacing={1}
loading={loading}
placeholder="Search in Record"
> >
<RecordTable <Grid item>
records={records} <Tabs
rowType={rowType} value={deserialize(state.record_tab)}
loading={loading} onChange={handleTabChange}
lazyParams={lazyParams()} indicatorColor="primary"
setLazyParams={setLazyParams} textColor="primary"
rowsPerPage={rowsPerPage} >
/> <Tab label={<Typography variant="h5">All</Typography>} />
</SearchBar> <Tab label={<Typography variant="h5">Only active</Typography>} />
<Tab label={<Typography variant="h5">Only inactive</Typography>} />
</Tabs>
</Grid>
<Grid item>
<SearchBar
search={setSearch}
query={deserialize(state.query)}
loading={loading}
placeholder="Search in Record"
>
<RecordTable
records={records}
rowType={rowType}
loading={loading}
lazyParams={lazyParams()}
setLazyParams={setLazyParams}
rowsPerPage={rowsPerPage}
/>
</SearchBar>
</Grid>
</Grid>
); );
} }
...@@ -14,7 +14,7 @@ const recordsColumns = [ ...@@ -14,7 +14,7 @@ const recordsColumns = [
const iocDetailsColumns = [ const iocDetailsColumns = [
{ id: "bulb", label: "Status", width: "5ch", textAlign: "center" }, { id: "bulb", label: "Status", width: "5ch", textAlign: "center" },
{ id: "name", label: "Record", width: "15ch" }, { id: "name", label: "Record", width: "15ch" },
{ id: "iocVersion", label: "IOC version", width: "15ch" } { id: "iocVersion", label: "Version", width: "15ch" }
]; ];
export function createRecordsRow(record) { export function createRecordsRow(record) {
......
...@@ -51,7 +51,7 @@ export function RecordDetailsView() { ...@@ -51,7 +51,7 @@ export function RecordDetailsView() {
) : ( ) : (
record?.iocName record?.iocName
), ),
"IOC version": record?.iocVersion, Version: record?.iocVersion,
Host: record.hostCSentryId ? ( Host: record.hostCSentryId ? (
<Typography> <Typography>
<MuiLink <MuiLink
...@@ -68,9 +68,9 @@ export function RecordDetailsView() { ...@@ -68,9 +68,9 @@ export function RecordDetailsView() {
for (const [key, value] of Object.entries(record.properties)) { for (const [key, value] of Object.entries(record.properties)) {
if (key.toLowerCase().includes("time")) { if (key.toLowerCase().includes("time")) {
subset[key] = formatDate(value); subset["Last updated"] = formatDate(value);
} else { } else if (key.toLowerCase() !== "iocid") {
subset[key] = value; subset[key.replaceAll("_", " ")] = value;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment