Skip to content

Commit

Permalink
closes #824 closes #812 closes #647
Browse files Browse the repository at this point in the history
  • Loading branch information
thomasstjerne committed Mar 18, 2021
1 parent b8f1ba6 commit c2fcfe1
Show file tree
Hide file tree
Showing 9 changed files with 905 additions and 359 deletions.
62 changes: 46 additions & 16 deletions src/components/LayoutNew/BasicMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -645,22 +645,22 @@ class BasicMenu extends Component {
</NavLink>
</Menu.Item>
)}
{selectedDataset && (
<Menu.Item key="imports">
<NavLink
to={{
pathname: `/dataset/${_.get(
selectedDataset,
"key"
)}/imports`,
}}
>
{selectedDataset.origin === "external"
? "Imports"
: "Metrics"}
</NavLink>
</Menu.Item>
)}
{selectedDataset &&
_.get(selectedDataset, "origin") !== "released" &&
_.get(selectedDataset, "origin") !== "managed" && (
<Menu.Item key="imports">
<NavLink
to={{
pathname: `/dataset/${_.get(
selectedDataset,
"key"
)}/imports`,
}}
>
Imports
</NavLink>
</Menu.Item>
)}
{selectedDataset &&
_.get(selectedDataset, "origin") !== "released" &&
hasData && (
Expand All @@ -677,6 +677,36 @@ class BasicMenu extends Component {
</NavLink>
</Menu.Item>
)}
{selectedDataset &&
_.get(selectedDataset, "origin") === "released" &&
hasData && (
<Menu.Item key="sourcemetrics">
<NavLink
to={{
pathname: `/dataset/${_.get(
selectedDataset,
"key"
)}/sourcemetrics`,
}}
>
Source metrics
</NavLink>
</Menu.Item>
)}
{selectedDataset &&
_.get(selectedDataset, "origin") === "managed" &&
hasData && (
<Menu.Item>
<NavLink
to={{
pathname: "/dataset",
search: `?releasedFrom=${selectedDataset.key}&sortBy=created`,
}}
>
Releases
</NavLink>
</Menu.Item>
)}
{selectedDataset && hasData && (
<Menu.Item key="references">
<NavLink
Expand Down
2 changes: 1 addition & 1 deletion src/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ if (
) {
env = environments.prod;
} else if (domain.endsWith("localhost")) {
env = environments.dev;
env = environments.prod;
} else {
env = environments.dev;
}
Expand Down
97 changes: 97 additions & 0 deletions src/pages/DatasetKey/datasetPageTabs/DatasetSourceMetrics.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import React from "react";
import { withRouter } from "react-router-dom";
import withContext from "../../../components/hoc/withContext";
import PageContent from "../../../components/PageContent";
import config from "../../../config";
import _ from "lodash";

import { Row, Alert, notification } from "antd";

import axios from "axios";
import ErrorMsg from "../../../components/ErrorMsg";
import SourceMetrics from "../../catalogue/CatalogueSourceMetrics/SourceMetrics";

class DatasetSourceMetrics extends React.Component {
constructor(props) {
super(props);

this.state = {
error: null,
data: null,
editMode: false,
};
}

componentDidMount() {
this.getData();
}

componentDidUpdate = (prevProps) => {
if (_.get(this.props, "datasetKey") !== _.get(prevProps, "datasetKey")) {
this.getData();
}
};

getData = () => {
const { datasetKey } = this.props;

this.setState({ loading: true });
axios(`${config.dataApi}dataset/${datasetKey}/settings`)
.then((res) => {
this.setState({ loading: false, data: res.data, err: null });
})
.catch((err) => {
this.setState({ loading: false, error: err, data: null });
});
};

reindexDataset = () => {
const { datasetKey } = this.props;
axios
.post(`${config.dataApi}admin/reindex`, { datasetKey })
.then((res) => {
this.setState({ error: null }, () => {
notification.open({
message: "Process started",
description: `Dataset ${datasetKey} is being reindexed`,
});
});
})
.catch((err) => this.setState({ error: err }));
};

setEditMode = (checked) => {
this.setState({ editMode: checked });
};

render() {
const { error } = this.state;

const { dataset } = this.props;
return (
<PageContent>
{error && (
<Row>
<Alert
closable
onClose={() => this.setState({ error: null })}
message={<ErrorMsg error={error} />}
type="error"
/>
</Row>
)}
<SourceMetrics
catalogueKey={dataset.sourceKey}
datasetKey={dataset.key}
namesPath={`/dataset/${dataset.key}/names`}
omitList={[dataset.key]}
/>
</PageContent>
);
}
}

const mapContextToProps = ({ dataset }) => ({
dataset,
});
export default withContext(mapContextToProps)(withRouter(DatasetSourceMetrics));
4 changes: 4 additions & 0 deletions src/pages/DatasetKey/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import Layout from "../../components/LayoutNew";
import DatasetIssues from "./datasetPageTabs/DatasetIssues";
import DatasetTasks from "./datasetPageTabs/DatasetTasks";
import DatasetOptions from "./datasetPageTabs/DatasetOptions";
import DatasetSourceMetrics from "./datasetPageTabs/DatasetSourceMetrics";
import NameSearch from "../NameSearch";
import WorkBench from "../WorkBench";

Expand Down Expand Up @@ -223,6 +224,9 @@ class DatasetPage extends React.Component {
/>
)}
{sect === "options" && <DatasetOptions datasetKey={datasetKey} />}
{sect === "sourcemetrics" && (
<DatasetSourceMetrics datasetKey={datasetKey} />
)}
</Layout>
);
}
Expand Down
33 changes: 30 additions & 3 deletions src/pages/DatasetList/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,23 @@ class DatasetList extends React.Component {
this.getData
);
}

componentDidUpdate = (prevProps) => {
const prevParams = qs.parse(_.get(prevProps, "location.search"));
const params = qs.parse(_.get(this.props, "location.search"));
if (params.releasedFrom !== prevParams.releasedFrom) {
let params = qs.parse(_.get(this.props, "location.search"));
this.setState(
{
params,
pagination: {
pageSize: params.limit || PAGE_SIZE,
current: 0 / Number(params.limit || PAGE_SIZE) + 1,
},
},
this.getData
);
}
};
getData = () => {
const {
params,
Expand Down Expand Up @@ -287,10 +303,21 @@ class DatasetList extends React.Component {
);
};
onSelectReleasedFrom = (dataset) => {
this.updateSearch({ releasedFrom: dataset.key });
let params = qs.parse(_.get(this.props, "location.search"));
history.push({
pathname: "/dataset",
search: `?${qs.stringify({ ...params, releasedFrom: dataset.key })}`,
});

// this.updateSearch({ releasedFrom: dataset.key });
};
onResetReleasedFrom = () => {
this.updateSearch({ releasedFrom: null });
let params = qs.parse(_.get(this.props, "location.search"));
history.push({
pathname: "/dataset",
search: `?${qs.stringify(_.omit(params, "releasedFrom"))}`,
});
// this.updateSearch({ releasedFrom: null });
};

handleTableChange = (pagination, filters, sorter) => {
Expand Down
13 changes: 8 additions & 5 deletions src/pages/catalogue/CatalogueSourceMetrics/ReleaseSelect.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class RealeaseSelect extends React.Component {
};
render = () => {
const { releases, selectedRelease, loading } = this.state;
const omitList = this.props.omitList || [];
return (
<Select
showSearch
Expand All @@ -71,11 +72,13 @@ class RealeaseSelect extends React.Component {
option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
>
{releases.map((c) => (
<Option value={c.key} key={c.key}>{`${c.alias ? c.alias + " " : ""}[${
c.key
}]`}</Option>
))}
{releases
.filter((c) => !omitList.includes(c.key))
.map((c) => (
<Option value={c.key} key={c.key}>{`${
c.alias ? c.alias + " " : ""
}[${c.key}]`}</Option>
))}
</Select>
);
};
Expand Down
Loading

0 comments on commit c2fcfe1

Please sign in to comment.