From 1180561bd65486016c4404e8c3cfb96967ca498e Mon Sep 17 00:00:00 2001 From: Michael Stauffer Date: Fri, 25 Jun 2021 17:48:22 -0400 Subject: [PATCH 1/2] Add dataset prediction type as filter and column on Experiments page --- .../Experiments/components/ExperimentFilters/index.jsx | 9 +++++++++ .../components/ExperimentsTableBody/index.jsx | 5 +++++ .../components/ExperimentsTableHeader/index.jsx | 7 +++++++ lab/webapp/src/data/experiments/index.js | 7 +++++-- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx b/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx index cf0899476..beb3f083c 100644 --- a/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx +++ b/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx @@ -56,6 +56,15 @@ function ExperimentFilters({ onChange={(e, data) => updateQuery('dataset', data.value)} className="filter" /> + updateQuery('prediction', data.value)} + className="filter" + /> + + + {formatDataset(experiment.prediction_type)} + + {shouldDisplayErrorMessage && diff --git a/lab/webapp/src/components/Experiments/components/ExperimentsTable/components/ExperimentsTableHeader/index.jsx b/lab/webapp/src/components/Experiments/components/ExperimentsTable/components/ExperimentsTableHeader/index.jsx index 42f79ea29..4d6b96c68 100644 --- a/lab/webapp/src/components/Experiments/components/ExperimentsTable/components/ExperimentsTableHeader/index.jsx +++ b/lab/webapp/src/components/Experiments/components/ExperimentsTable/components/ExperimentsTableHeader/index.jsx @@ -90,6 +90,13 @@ function ExperimentsTableHeader({ > {'Dataset'} + onSort('dataset_prediction')} + > + {'Prediction Type'} + {shouldDisplayErrorMessage && { switch(action.type) { @@ -93,6 +94,7 @@ export const getFilters = createSelector( const filterKeys = [ //{ key: 'status', textPath: ['status'], valuePath: ['status'] }, { key: 'dataset', textPath: ['dataset_name'], valuePath: ['dataset_id'] }, + { key: 'prediction', textPath: ['prediction_type'], valuePath: ['prediction_type'] }, { key: 'algorithm', textPath: ['algorithm'], valuePath: ['algorithm'] } // ['algorithm', '_id'] ]; @@ -176,13 +178,14 @@ export const getVisibleExperiments = createSelector( ); const filterBy = (filters) => (experiment) => { - const { status, dataset, algorithm } = filters; + const { status, dataset, algorithm, prediction } = filters; // status category 'completed' includes 'success', 'cancelled', and 'fail' return ( (status.selected === 'all' || status.selected === experiment.status || status.selected === 'completed' && ['success', 'cancelled', 'fail'].includes(experiment.status)) && (dataset.selected === 'all' || dataset.selected === experiment.dataset_id) && - (algorithm.selected === 'all' || algorithm.selected === experiment.algorithm) + (algorithm.selected === 'all' || algorithm.selected === experiment.algorithm) && + (prediction.selected === 'all' || prediction.selected === experiment.prediction_type) ); }; From 3e97b418de41a046ecd0d05cb29871736daa9c1e Mon Sep 17 00:00:00 2001 From: Michael Stauffer Date: Fri, 9 Jul 2021 19:23:13 -0400 Subject: [PATCH 2/2] Fix experiments page prediction filter It now will hide and set itself to 'all' when a particular dataset is chosen in the dataset filter --- .../components/ExperimentFilters/index.jsx | 21 +++++++++++-------- .../src/components/Experiments/index.jsx | 7 +++++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx b/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx index beb3f083c..58284f259 100644 --- a/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx +++ b/lab/webapp/src/components/Experiments/components/ExperimentFilters/index.jsx @@ -56,15 +56,18 @@ function ExperimentFilters({ onChange={(e, data) => updateQuery('dataset', data.value)} className="filter" /> - updateQuery('prediction', data.value)} - className="filter" - /> + { + filters.dataset.selected.toLowerCase() === 'all' && + updateQuery('prediction', data.value)} + className="filter" + /> + }