diff --git a/opentech/static_src/src/app/src/api/index.js b/opentech/static_src/src/app/src/api/index.js index 8b12cba9e524f20e74fb2c2df2f856831dd56540..d53e0261dc6225789477fa78b9499323a830018d 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 436c45909048736786d4c85064a16664dc0d4f4d..9e41fd1b44691a250462f6ddb4b37f542d80d829 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 727efa6b881db91334c41e607bea634fc772f87b..d1d336becdfcc5a37e884e8d88429ceed870c3e3 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 cc05d8edae8eabe4f02768c3d359260d59b48590..eec0ce80f9970506abeb6ec73c984a8eb3b419fe 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 a1ef3be289ab8fd4ed8657b90252c628cd81e4e6..c21046f1a5e4eafddac47375676eb7985682a992 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; }