Add user notes on accounts (#14148)
* Add UserNote model * Add UI for user notes * Put comment in relationships entity * Add API to create user notes * Copy user notes to new account when receiving a Move activity * Address some of the review remarks * Replace modal by inline edition * Please CodeClimate * Button design changes * Change design again * Cancel note edition when pressing Escape * Fixes * Tweak design again * Move “Add note” item, and allow users to add notes to themselves * Rename UserNote into AccountNote, rename “comment” Relationship attribute to “note”
This commit is contained in:
		
							
								
								
									
										69
									
								
								app/javascript/mastodon/actions/account_notes.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								app/javascript/mastodon/actions/account_notes.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
import api from '../api';
 | 
			
		||||
 | 
			
		||||
export const ACCOUNT_NOTE_SUBMIT_REQUEST = 'ACCOUNT_NOTE_SUBMIT_REQUEST';
 | 
			
		||||
export const ACCOUNT_NOTE_SUBMIT_SUCCESS = 'ACCOUNT_NOTE_SUBMIT_SUCCESS';
 | 
			
		||||
export const ACCOUNT_NOTE_SUBMIT_FAIL    = 'ACCOUNT_NOTE_SUBMIT_FAIL';
 | 
			
		||||
 | 
			
		||||
export const ACCOUNT_NOTE_INIT_EDIT = 'ACCOUNT_NOTE_INIT_EDIT';
 | 
			
		||||
export const ACCOUNT_NOTE_CANCEL    = 'ACCOUNT_NOTE_CANCEL';
 | 
			
		||||
 | 
			
		||||
export const ACCOUNT_NOTE_CHANGE_COMMENT = 'ACCOUNT_NOTE_CHANGE_COMMENT';
 | 
			
		||||
 | 
			
		||||
export function submitAccountNote() {
 | 
			
		||||
  return (dispatch, getState) => {
 | 
			
		||||
    dispatch(submitAccountNoteRequest());
 | 
			
		||||
 | 
			
		||||
    const id = getState().getIn(['account_notes', 'edit', 'account_id']);
 | 
			
		||||
 | 
			
		||||
    api(getState).post(`/api/v1/accounts/${id}/note`, {
 | 
			
		||||
      comment: getState().getIn(['account_notes', 'edit', 'comment']),
 | 
			
		||||
    }).then(response => {
 | 
			
		||||
      dispatch(submitAccountNoteSuccess(response.data));
 | 
			
		||||
    }).catch(error => dispatch(submitAccountNoteFail(error)));
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export function submitAccountNoteRequest() {
 | 
			
		||||
  return {
 | 
			
		||||
    type: ACCOUNT_NOTE_SUBMIT_REQUEST,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export function submitAccountNoteSuccess(relationship) {
 | 
			
		||||
  return {
 | 
			
		||||
    type: ACCOUNT_NOTE_SUBMIT_SUCCESS,
 | 
			
		||||
    relationship,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export function submitAccountNoteFail(error) {
 | 
			
		||||
  return {
 | 
			
		||||
    type: ACCOUNT_NOTE_SUBMIT_FAIL,
 | 
			
		||||
    error,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export function initEditAccountNote(account) {
 | 
			
		||||
  return (dispatch, getState) => {
 | 
			
		||||
    const comment = getState().getIn(['relationships', account.get('id'), 'note']);
 | 
			
		||||
 | 
			
		||||
    dispatch({
 | 
			
		||||
      type: ACCOUNT_NOTE_INIT_EDIT,
 | 
			
		||||
      account,
 | 
			
		||||
      comment,
 | 
			
		||||
    });
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export function cancelAccountNote() {
 | 
			
		||||
  return {
 | 
			
		||||
    type: ACCOUNT_NOTE_CANCEL,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export function changeAccountNoteComment(comment) {
 | 
			
		||||
  return {
 | 
			
		||||
    type: ACCOUNT_NOTE_CHANGE_COMMENT,
 | 
			
		||||
    comment,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user