Skip to content
This repository has been archived by the owner on Feb 6, 2023. It is now read-only.

Commit

Permalink
Merge pull request #335 from makky3939/feature/update_list_of_result_…
Browse files Browse the repository at this point in the history
…status

Feature/update list of result status
  • Loading branch information
ofk committed Dec 5, 2019
2 parents 9bd629b + 2629480 commit 24cee58
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 63 deletions.
18 changes: 1 addition & 17 deletions frontend/src/actions/entities.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,6 @@ export const RESULT_FAILURE = 'RESULT_FAILURE';
export const RESULT_UPDATE_REQUEST = 'RESULT_UPDATE_REQUEST';
export const RESULT_UPDATE_SUCCESS = 'RESULT_UPDATE_SUCCESS';
export const RESULT_UPDATE_FAILURE = 'RESULT_UPDATE_FAILURE';
export const RESULT_DELETE_REQUEST = 'RESULT_DELETE_REQUEST';
export const RESULT_DELETE_SUCCESS = 'RESULT_DELETE_SUCCESS';
export const RESULT_DELETE_FAILURE = 'RESULT_DELETE_FAILURE';
export const RESULTS_PATCH_REQUEST = 'RESULTS_PATCH_REQUEST';
export const RESULTS_PATCH_SUCCESS = 'RESULTS_PATCH_SUCCESS';
export const RESULTS_PATCH_FAILURE = 'RESULTS_PATCH_FAILURE';
Expand Down Expand Up @@ -113,26 +110,13 @@ export const updateResult = (projectId, result = {}) => {
};
};

export const deleteResult = (projectId, resultId) => {
if (!Number.isInteger(resultId)) {
throw new Error('Result id is invalid.');
}
return {
[CALL_API]: {
types: [RESULT_DELETE_REQUEST, RESULT_DELETE_SUCCESS, RESULT_DELETE_FAILURE],
endpoint: `projects/${projectId}/results/${resultId}`,
method: 'DELETE',
},
};
};

export const patchResults = (projectId, results = []) => {
return {
[CALL_API]: {
types: [RESULTS_PATCH_REQUEST, RESULTS_PATCH_SUCCESS, RESULTS_PATCH_FAILURE],
endpoint: `projects/${projectId}/results`,
method: 'PATCH',
body: { results },
body: { projectId, results },
},
};
};
Expand Down
9 changes: 4 additions & 5 deletions frontend/src/actions/status.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@ export const updateResultSelect = (projectId, resultId, selected) => ({
selected,
});

export const CHECKED_OF_RESULT_STATUS_UPDATE = 'CHECKED_OF_RESULT_STATUS_UPDATE';
export const updateCheckedOfResultStatus = (projectId, resultId, checked) => ({
type: CHECKED_OF_RESULT_STATUS_UPDATE,
export const CHECK_OF_RESULT_STATUS_LIST_UPDATE = 'CHECK_OF_RESULT_STATUS_LIST_UPDATE';
export const updateCheckOfResultStatusList = (projectId, results) => ({
type: CHECK_OF_RESULT_STATUS_LIST_UPDATE,
projectId,
resultId,
checked,
results,
});

export const RESULT_FILTER_UPDATE = 'RESULT_FILTER_UPDATE';
Expand Down
10 changes: 5 additions & 5 deletions frontend/src/components/ExperimentsTable.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const ExperimentsTable = (props) => {
onCommandSubmit,
onTableExpandedUpdate,
onTableColumnsVisibilityUpdate,
onCheckedOfResultStatusUpdate,
onCheckOfResultStatusListUpdate,
} = props;
const { argKeys, logKeys } = stats;
const { resultsConfig, tableState } = projectConfig;
Expand Down Expand Up @@ -75,7 +75,7 @@ const ExperimentsTable = (props) => {
project={project}
targetResults={resultList}
resultsStatus={resultsStatus}
onChange={onCheckedOfResultStatusUpdate}
onChange={onCheckOfResultStatusListUpdate}
/>
),
Cell: (p) => {
Expand All @@ -88,7 +88,7 @@ const ExperimentsTable = (props) => {
project={project}
targetResults={[original]}
resultsStatus={resultsStatus}
onChange={onCheckedOfResultStatusUpdate}
onChange={onCheckOfResultStatusListUpdate}
/>
);
},
Expand All @@ -105,7 +105,7 @@ const ExperimentsTable = (props) => {
project={project}
targetResults={groupedResults}
resultsStatus={resultsStatus}
onChange={onCheckedOfResultStatusUpdate}
onChange={onCheckOfResultStatusListUpdate}
/>
);
},
Expand Down Expand Up @@ -328,7 +328,7 @@ ExperimentsTable.propTypes = {
onCommandSubmit: PropTypes.func.isRequired,
onTableExpandedUpdate: PropTypes.func.isRequired,
onTableColumnsVisibilityUpdate: PropTypes.func.isRequired,
onCheckedOfResultStatusUpdate: PropTypes.func.isRequired,
onCheckOfResultStatusListUpdate: PropTypes.func.isRequired,
};

ExperimentsTable.defaultProps = {
Expand Down
10 changes: 4 additions & 6 deletions frontend/src/components/SelectedResultTools.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const SelectedResultTools = (props) => {
resultsStatus,
resultTypeId,
onResultsPatch,
onCheckedOfResultStatusUpdate,
onCheckOfResultStatusListUpdate,
onTableExpandedUpdate,
} = props;

Expand Down Expand Up @@ -39,10 +39,8 @@ const SelectedResultTools = (props) => {

const requestBody = targetResultKeys.map((id) => ({ id, isUnregistered }));
onResultsPatch(project.id, requestBody);

targetResultKeys.forEach((resultKey) => {
onCheckedOfResultStatusUpdate(project.id, results[resultKey].id, false);
});
const resultStatusList = targetResultKeys.map((id) => ({ id, checked: false }));
onCheckOfResultStatusListUpdate(project.id, resultStatusList);
};

return (
Expand All @@ -68,7 +66,7 @@ SelectedResultTools.propTypes = {
resultsStatus: uiPropTypes.resultsStatus,
resultTypeId: PropTypes.string.isRequired,
onResultsPatch: PropTypes.func.isRequired,
onCheckedOfResultStatusUpdate: PropTypes.func.isRequired,
onCheckOfResultStatusListUpdate: PropTypes.func.isRequired,
onTableExpandedUpdate: PropTypes.func.isRequired,
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@ const ResultSelectionCheckbox = (props) => {
type="checkbox"
checked={currentCheckState}
onChange={() =>
props.targetResults.forEach((result) =>
props.onChange(props.project.id, result.id, !currentCheckState)
props.onChange(
props.project.id,
props.targetResults.map((result) => ({
id: result.id,
checked: !currentCheckState,
}))
)
}
/>
Expand Down
10 changes: 5 additions & 5 deletions frontend/src/containers/PlotContainer.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {
updateTableColumnsVisibility,
updateChartDownloadStatus,
updateTargetResultType,
updateCheckedOfResultStatus,
updateCheckOfResultStatusList,
} from '../actions';
import NavigationBar from './NavigationBar';
import BreadcrumbLink from '../components/BreadcrumbLink';
Expand Down Expand Up @@ -157,7 +157,7 @@ class PlotContainer extends React.Component {
resultsStatus={projectStatus.resultsStatus}
onResultsPatch={this.props.patchResults}
onTableExpandedUpdate={this.props.updateTableExpanded}
onCheckedOfResultStatusUpdate={this.props.updateCheckedOfResultStatus}
onCheckOfResultStatusListUpdate={this.props.updateCheckOfResultStatusList}
/>
<ResultTypeSelector
projectId={projectId}
Expand All @@ -180,7 +180,7 @@ class PlotContainer extends React.Component {
onCommandSubmit={this.props.createCommand}
onTableExpandedUpdate={this.props.updateTableExpanded}
onTableColumnsVisibilityUpdate={this.handleExperimentsTableColumnsVisibilityUpdate}
onCheckedOfResultStatusUpdate={this.props.updateCheckedOfResultStatus}
onCheckOfResultStatusListUpdate={this.props.updateCheckOfResultStatusList}
/>
<ExperimentsTableConfigurator
project={project}
Expand Down Expand Up @@ -226,7 +226,7 @@ PlotContainer.propTypes = {
updateTableColumnsVisibility: PropTypes.func.isRequired,
updateChartDownloadStatus: PropTypes.func.isRequired,
updateTargetResultType: PropTypes.func.isRequired,
updateCheckedOfResultStatus: PropTypes.func.isRequired,
updateCheckOfResultStatusList: PropTypes.func.isRequired,
};

const getTargetTextForFilter = (project, result, filterKey) => {
Expand Down Expand Up @@ -305,6 +305,6 @@ export default connect(
updateTableColumnsVisibility,
updateChartDownloadStatus,
updateTargetResultType,
updateCheckedOfResultStatus,
updateCheckOfResultStatusList,
}
)(PlotContainer);
31 changes: 22 additions & 9 deletions frontend/src/reducers/configReducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {
GLOBAL_CONFIG_RESULT_NAME_ALIGNMENT_UPDATE,
GLOBAL_CONFIG_HIGHLIGHT_TABLE_AND_CHART,
} from '../actions/config';
import { RESULT_UPDATE_SUCCESS, RESULT_DELETE_SUCCESS } from '../actions/entities';
import { RESULT_UPDATE_SUCCESS, RESULTS_PATCH_SUCCESS } from '../actions/entities';
import { updatePartialState, removePartialState } from './utils';

const axisConfigReducer = (state = {}, action) => {
Expand Down Expand Up @@ -113,7 +113,7 @@ const axesConfigReducer = (state = defaultAxisConfig, action) => {
};

const resultsConfigReducer = (state = {}, action) => {
const { resultId } = action;
const { resultId, response } = action;
switch (action.type) {
case RESULTS_CONFIG_SELECT_UPDATE:
if (resultId) {
Expand Down Expand Up @@ -153,8 +153,18 @@ const resultsConfigReducer = (state = {}, action) => {
};
}
return state;
case RESULT_DELETE_SUCCESS:
return removePartialState(state, resultId);
case RESULTS_PATCH_SUCCESS:
if (response.results) {
let tmpState = state;
const targetResult = response.results.filter(
(result) => result.is_unregistered && result.is_unregistered === true
);
targetResult.forEach((result) => {
tmpState = removePartialState(tmpState, result.id);
});
return tmpState;
}
return state;
default:
return state;
}
Expand Down Expand Up @@ -229,18 +239,21 @@ const projectConfigReducer = combineReducers({
});

const projectsConfigReducer = (state = {}, action) => {
const { projectId } = action;
if (projectId) {
const { projectId: projectIdA, body = {} } = action;
const { projectId: projectIdB } = body;
const targetProjectId = projectIdA || projectIdB;
if (targetProjectId) {
switch (action.type) {
case PROJECT_CONFIG_RESET:
return updatePartialState(state, action, projectId, () =>
return updatePartialState(state, action, targetProjectId, () =>
projectConfigReducer(undefined, action)
);
case RESULTS_PATCH_SUCCESS:
return updatePartialState(state, action, targetProjectId, projectConfigReducer);
default:
return updatePartialState(state, action, projectId, projectConfigReducer);
return updatePartialState(state, action, targetProjectId, projectConfigReducer);
}
}

return state;
};

Expand Down
7 changes: 0 additions & 7 deletions frontend/src/reducers/entitiesReducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import {
RESULT_LIST_SUCCESS,
RESULT_SUCCESS,
RESULT_UPDATE_SUCCESS,
RESULT_DELETE_SUCCESS,
RESULTS_PATCH_SUCCESS,
COMMAND_CREATE_SUCCESS,
RESULT_LIST_CLEAR,
Expand Down Expand Up @@ -104,12 +103,6 @@ const resultsReducer = (state = {}, action) => {
};
}
return state;
case RESULT_DELETE_SUCCESS:
if (action.response && action.response.result) {
const { result } = action.response;
return removePartialState(state, result.id);
}
return state;
case RESULTS_PATCH_SUCCESS:
if (action.response && action.response.results) {
const { results } = action.response;
Expand Down
23 changes: 16 additions & 7 deletions frontend/src/reducers/statusReducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { RESULT_LIST_SUCCESS } from '../actions/entities';
import {
CHART_DOWNLOAD_STATUS_UPDATE,
RESULT_SELECT_UPDATE,
CHECKED_OF_RESULT_STATUS_UPDATE,
CHECK_OF_RESULT_STATUS_LIST_UPDATE,
RESULT_FILTER_UPDATE,
} from '../actions/status';
import { updatePartialState } from './utils';
Expand All @@ -29,7 +29,7 @@ const resultSelectedReducer = (state = false, action) => {

const resultCheckedReducer = (state = false, action) => {
switch (action.type) {
case CHECKED_OF_RESULT_STATUS_UPDATE:
case CHECK_OF_RESULT_STATUS_LIST_UPDATE:
return action.checked;
default:
return state;
Expand All @@ -42,12 +42,21 @@ const resultStatusReducer = combineReducers({
});

const resultsStatusReducer = (state = {}, action) => {
const { resultId } = action;
if (resultId) {
return updatePartialState(state, action, resultId, resultStatusReducer);
const { results } = action;
switch (action.type) {
case CHECK_OF_RESULT_STATUS_LIST_UPDATE:
if (results) {
let tmpState = state;
results.forEach((result) => {
const currentAction = { type: action.type, checked: result.checked };
tmpState = updatePartialState(tmpState, currentAction, result.id, resultStatusReducer);
});
return tmpState;
}
return state;
default:
return state;
}

return state;
};

const resultFilterReducer = (state = {}, action) => {
Expand Down

0 comments on commit 24cee58

Please sign in to comment.