From 305ae573150dcbf9806e00815473c392b638d965 Mon Sep 17 00:00:00 2001 From: Chris Lawton <chris.lawton@torchbox.com> Date: Tue, 14 May 2019 17:09:15 +0100 Subject: [PATCH] initial work on submitting an edited message --- opentech/static_src/src/app/src/api/index.js | 3 ++- opentech/static_src/src/app/src/api/notes.js | 10 ++++++++++ .../src/app/src/containers/EditNoteForm.js | 8 ++++---- .../static_src/src/app/src/redux/actions/notes.js | 14 ++++++++++++++ .../static_src/src/app/src/redux/reducers/notes.js | 11 +++++++++++ 5 files changed, 41 insertions(+), 5 deletions(-) diff --git a/opentech/static_src/src/app/src/api/index.js b/opentech/static_src/src/app/src/api/index.js index 8b12cba9e..d53e0261d 100644 --- a/opentech/static_src/src/app/src/api/index.js +++ b/opentech/static_src/src/app/src/api/index.js @@ -5,7 +5,7 @@ import { fetchSubmissionsByStatuses } from '@api/submissions'; import { fetchRound, fetchRounds } from '@api/rounds'; -import { createNoteForSubmission, fetchNotesForSubmission, fetchNewNotesForSubmission } from '@api/notes'; +import { createNoteForSubmission, fetchNotesForSubmission, fetchNewNotesForSubmission, editNoteForSubmission } from '@api/notes'; export default { executeSubmissionAction, @@ -20,4 +20,5 @@ export default { fetchNotesForSubmission, fetchNewNotesForSubmission, createNoteForSubmission, + editNoteForSubmission, }; diff --git a/opentech/static_src/src/app/src/api/notes.js b/opentech/static_src/src/app/src/api/notes.js index 436c45909..9e41fd1b4 100644 --- a/opentech/static_src/src/app/src/api/notes.js +++ b/opentech/static_src/src/app/src/api/notes.js @@ -30,3 +30,13 @@ export function createNoteForSubmission(submissionID, note) { } }; } + +export function editNoteForSubmission(note) { + return { + path: `/apply/api/comments/${note.id}/edit/`, + method: 'POST', + options: { + body: JSON.stringify({ message: note.message }), + } + } +} diff --git a/opentech/static_src/src/app/src/containers/EditNoteForm.js b/opentech/static_src/src/app/src/containers/EditNoteForm.js index 727efa6b8..d1d336bec 100644 --- a/opentech/static_src/src/app/src/containers/EditNoteForm.js +++ b/opentech/static_src/src/app/src/containers/EditNoteForm.js @@ -43,9 +43,9 @@ class EditNoteForm extends React.Component { } onSubmit = (message, resetEditor) => { - this.props.submitNote(this.props.submissionID, { + this.props.submitNote({ + ...this.props.editing, message, - visibility: 'internal', }).then(() => resetEditor()); } } @@ -55,8 +55,8 @@ const mapStateToProps = (state, ownProps) => ({ isCreating: getNoteCreatingStateForSubmission(ownProps.submissionID)(state), }); -const mapDispatchToProps = dispatch => ({ - submitNote: (submissionID, note) => dispatch(createNoteForSubmission(submissionID, note)), +const mapDispatchToProps = (dispatch, ownProps) => ({ + submitNote: (note) => dispatch(editNoteForSubmission(note)), }); export default connect(mapStateToProps, mapDispatchToProps)(EditNoteForm); diff --git a/opentech/static_src/src/app/src/redux/actions/notes.js b/opentech/static_src/src/app/src/redux/actions/notes.js index cc05d8eda..eec0ce80f 100644 --- a/opentech/static_src/src/app/src/redux/actions/notes.js +++ b/opentech/static_src/src/app/src/redux/actions/notes.js @@ -12,6 +12,10 @@ export const UPDATE_EDIT_NOTE = 'UPDATE_EDIT_NOTE'; export const START_CREATING_NOTE_FOR_SUBMISSION = 'START_CREATING_NOTE_FOR_SUBMISSION'; export const FAIL_CREATING_NOTE_FOR_SUBMISSION = 'FAIL_CREATING_NOTE_FOR_SUBMISSION'; +export const START_EDITING_NOTE_FOR_SUBMISSION = 'START_EDITING_NOTE_FOR_SUBMISSION'; +export const EDIT_NOTE = 'EDIT_NOTE'; +export const FAIL_EDITING_NOTE_FOR_SUBMISSION = 'FAIL_EDITING_NOTE_FOR_SUBMISSION'; + export const fetchNotesForSubmission = submissionID => (dispatch, getState) => { return dispatch(fetchNotes(submissionID)) } @@ -62,3 +66,13 @@ export const handleEditNote = (messageID, submissionID, message) => ({ submissionID, message }) + +export const editNoteForSubmission = (note) => (dispatch) => dispatch(editNote(note)) + +const editNote = (note) => ({ + [CALL_API]: { + types: [ START_EDITING_NOTE_FOR_SUBMISSION, EDIT_NOTE, FAIL_EDITING_NOTE_FOR_SUBMISSION ], + endpoint: api.editNoteForSubmission(note), + }, + note +}) diff --git a/opentech/static_src/src/app/src/redux/reducers/notes.js b/opentech/static_src/src/app/src/redux/reducers/notes.js index a1ef3be28..c21046f1a 100644 --- a/opentech/static_src/src/app/src/redux/reducers/notes.js +++ b/opentech/static_src/src/app/src/redux/reducers/notes.js @@ -8,6 +8,10 @@ import { START_CREATING_NOTE_FOR_SUBMISSION, FAIL_CREATING_NOTE_FOR_SUBMISSION, UPDATE_EDIT_NOTE, + START_EDITING_NOTE_FOR_SUBMISSION, + EDIT_NOTE, + FAIL_EDITING_NOTE_FOR_SUBMISSION + } from '@actions/notes'; function notesFetching(state = false, action) { @@ -125,6 +129,13 @@ function editingNote(state={}, action) { message: action.message, }, }; + case START_EDITING_NOTE_FOR_SUBMISSION: + case EDIT_NOTE: + return { + ...state, + ...action.data, + } + case FAIL_EDITING_NOTE_FOR_SUBMISSION: default: return state; } -- GitLab