Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/origin/#454' into allfunctionality
Browse files Browse the repository at this point in the history
  • Loading branch information
boriskovar-m2ms committed Nov 20, 2020
2 parents 9fb95ec + 5178a7f commit ab552c4
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 23 deletions.
9 changes: 8 additions & 1 deletion js/components/snapshot/redux/dispatchActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ import { base_url, URLS } from '../../routes/constants';
import { resetCurrentSnapshot, setCurrentSnapshot, setForceCreateProject } from '../../projects/redux/actions';
import { selectFirstMolGroup } from '../../preview/moleculeGroups/redux/dispatchActions';
import { reloadDatasetsReducer } from '../../datasets/redux/actions';
import {
sendTruckingActionsByProjectId,
appendAndSendTruckingActions
} from '../../../reducers/tracking/dispatchActions';

export const getListOfSnapshots = () => (dispatch, getState) => {
const userID = DJANGO_CONTEXT['pk'] || null;
Expand Down Expand Up @@ -261,14 +265,14 @@ export const activateSnapshotDialog = (loggedInUserID = undefined, finallyShareS
};
dispatch(createProjectFromSnapshotDialog(data))
.then(() => {
dispatch(appendAndSendTruckingActions(null));
dispatch(setOpenSnapshotSavingDialog(true));
})
.catch(error => {
throw new Error(error);
});
} else if (finallyShareSnapshot === true && loggedInUserID && projectID !== null && currentSnapshotAuthor === null) {
dispatch(setForceCreateProject(true));

dispatch(setOpenSnapshotSavingDialog(true));
} else {
dispatch(setOpenSnapshotSavingDialog(true));
Expand Down Expand Up @@ -342,6 +346,7 @@ export const saveAndShareSnapshot = (target = undefined) => (dispatch, getState)
author: loggedInUserID || null,
tags: '[]'
};

dispatch(createProjectWithoutStateModification(data))
.then(projectID => {
const username = DJANGO_CONTEXT['username'];
Expand All @@ -353,6 +358,8 @@ export const saveAndShareSnapshot = (target = undefined) => (dispatch, getState)
const parent = null;
const session_project = projectID;

dispatch(sendTruckingActionsByProjectId(projectID, author));

return dispatch(
createNewSnapshotWithoutStateModification({ title, description, type, author, parent, session_project })
);
Expand Down
71 changes: 49 additions & 22 deletions js/reducers/tracking/dispatchActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ import {
import * as listType from '../../constants/listTypes';
import { assignRepresentationToComp } from '../../components/nglView/generatingObjects';
import { deleteObject } from '../../../js/reducers/ngl/dispatchActions';
import { setSendActionsList, setIsActionsSending, setIsActionsLoading } from './actions';
import { setSendActionsList, setIsActionsSending, setIsActionsLoading, setActionsList } from './actions';
import { api, METHOD } from '../../../js/utils/api';
import { base_url } from '../../components/routes/constants';
import { CONSTANTS } from '../../../js/constants/constants';
Expand Down Expand Up @@ -514,9 +514,8 @@ export const undoAction = (stages = []) => (dispatch, getState) => {
actionsLenght = actionsLenght > 0 ? actionsLenght - 1 : actionsLenght;
action = actions.truck_actions_list[actionsLenght];

Promise.resolve(dispatch(handleUndoAction(action, stages))).then(function(response) {
Promise.resolve(dispatch(handleUndoAction(action, stages))).then(() => {
dispatch(setIsUndoRedoAction(false));
return response;
});
}
};
Expand All @@ -533,9 +532,8 @@ export const redoAction = (stages = []) => (dispatch, getState) => {
actionsLenght = actionsLenght > 0 ? actionsLenght - 1 : actionsLenght;
action = actions.truck_actions_list[actionsLenght];

Promise.resolve(dispatch(dispatch(handleRedoAction(action, stages)))).then(function(response) {
Promise.resolve(dispatch(dispatch(handleRedoAction(action, stages)))).then(() => {
dispatch(setIsUndoRedoAction(false));
return response;
});
}
};
Expand Down Expand Up @@ -887,18 +885,20 @@ export const getCanRedo = () => (dispatch, getState) => {
export const appendAndSendTruckingActions = truckAction => (dispatch, getState) => {
const state = getState();
const currentProject = state.projectReducers.currentProject;
const projectID = currentProject && currentProject.projectID;
const sendActions = state.trackingReducers.send_actions_list;

Promise.resolve(dispatch(checkActionsProject(sendActions, projectID))).then(response => {
dispatch(appendToActionList(truckAction));
dispatch(appendToSendActionList(truckAction));
dispatch(checkSendTruckingActions(truckAction));
return response;
Promise.resolve(dispatch(checkActionsProject(sendActions, currentProject))).then(response => {
if (truckAction) {
dispatch(appendToActionList(truckAction));
dispatch(appendToSendActionList(truckAction));
}
if (response === true) {
dispatch(checkSendTruckingActions());
}
});
};

const checkSendTruckingActions = truckAction => (dispatch, getState) => {
export const checkSendTruckingActions = () => (dispatch, getState) => {
const state = getState();
const currentProject = state.projectReducers.currentProject;
const sendActions = state.trackingReducers.send_actions_list;
Expand All @@ -913,7 +913,7 @@ const sendTruckingActions = (sendActions, project) => (dispatch, getState) => {
if (project) {
const projectID = project && project.projectID;

if (projectID) {
if (projectID && sendActions && sendActions.length > 0) {
dispatch(setIsActionsSending(true));

const dataToSend = {
Expand All @@ -927,7 +927,7 @@ const sendTruckingActions = (sendActions, project) => (dispatch, getState) => {
method: METHOD.POST,
data: JSON.stringify(dataToSend)
})
.then(response => {
.then(() => {
dispatch(setSendActionsList([]));
})
.catch(error => {
Expand All @@ -947,13 +947,9 @@ const sendTruckingActions = (sendActions, project) => (dispatch, getState) => {
export const setProjectTruckingActions = () => (dispatch, getState) => {
const state = getState();
const currentProject = state.projectReducers.currentProject;
const sendActions = state.trackingReducers.send_actions_list;
const projectID = currentProject && currentProject.projectID;

Promise.resolve(dispatch(checkActionsProject(sendActions, projectID))).then(response => {
dispatch(getTruckingActions(projectID));
return response;
});
dispatch(getTruckingActions(projectID));
};

const getTruckingActions = projectID => (dispatch, getState) => {
Expand Down Expand Up @@ -983,16 +979,33 @@ const getTruckingActions = projectID => (dispatch, getState) => {
dispatch(setIsActionsLoading(false));
});
} else {
let projectActions = [...sendActions];
dispatch(setProjectActionList(projectActions));
return Promise.resolve();
}
};

const checkActionsProject = (actions, currentProjectID) => (dispatch, getState) => {
let project = dispatch(getActionProject(actions, currentProjectID));
const checkActionsProject = (actions, currentProject) => (dispatch, getState) => {
const state = getState();
const currentProjectID = currentProject && currentProject.projectID;
const actionList = state.trackingReducers.truck_actions_list;

let project = dispatch(getActionProject(actionList, currentProjectID));
if (project !== null) {
dispatch(sendTruckingActions(actions, project));

let newProject = { projectID: currentProject.projectID, authorID: currentProject.authorID };
let newActionsList = [];

actionList.forEach(r => {
newActionsList.push(Object.assign({ ...r, project: newProject }));
});

dispatch(setActionsList(newActionsList));
dispatch(sendTruckingActions(newActionsList, currentProject));
return Promise.resolve(false);
} else {
return Promise.resolve();
return Promise.resolve(true);
}
};

Expand All @@ -1004,3 +1017,17 @@ const getActionProject = (actions, currentProjectID) => (dispatch, getState) =>
}
return project;
};

export const sendTruckingActionsByProjectId = (projectID, authorID) => (dispatch, getState) => {
const state = getState();
const actionList = state.trackingReducers.truck_actions_list;
const project = { projectID, authorID };

let newActionsList = [];

actionList.forEach(r => {
newActionsList.push(Object.assign({ ...r, project: project }));
});

dispatch(sendTruckingActions(newActionsList, project));
};

0 comments on commit ab552c4

Please sign in to comment.