Skip to content

Commit

Permalink
#1514 (#456)
Browse files Browse the repository at this point in the history
* #1514 replaced project_id occurrences with project and adjusted functionality with current B/E

* #1514 added target_access_string to /api/download_structures, replaced /api/molgroup with /api/siteobservationgroup, minor fixes
  • Loading branch information
matej-vavrek authored Oct 16, 2024
1 parent 63fa397 commit 9916d56
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 62 deletions.
4 changes: 2 additions & 2 deletions js/components/preview/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ export const extractTargetFromURLParam = param => {

export const getProjectsForTarget = (target, projectsList) => {
let result = null;
if (target && projectsList && target.project_id && target.project_id.length > 0) {
const projects = projectsList.filter(project => target.project_id.includes(project.id));
if (target && projectsList && target.project && target.project.length > 0) {
const projects = projectsList.filter(project => target.project.includes(project.id));
result = [...projects];
}
return result;
Expand Down
2 changes: 1 addition & 1 deletion js/components/projects/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -771,7 +771,7 @@ export const Projects = memo(({ }) => {
</TableCell>
</Tooltip>
<TableCell align="left" style={{ minWidth: '100px', padding: '0px 10px 0px 0px', margin: '0px' }}>
<Link to={`${URLS.target}${project.target}`}>
<Link to={`${URLS.target}${project.target.title}`}>
<div>{project.target.title === undefined ? project.target : project.target.title}</div>
</Link>
</TableCell>
Expand Down
16 changes: 9 additions & 7 deletions js/components/snapshot/modals/downloadStructuresDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ const createFlagObjectFromFlagList = flagList => {
);
};

export const DownloadStructureDialog = memo(({}) => {
export const DownloadStructureDialog = memo(({ }) => {
const newDownload = '--- NEW DOWNLOAD ---';
const dispatch = useDispatch();
const classes = useStyles();
Expand All @@ -147,6 +147,7 @@ export const DownloadStructureDialog = memo(({}) => {
const taggedMolecules = useSelector(state => selectJoinedMoleculeList(state));
const downloadTags = useSelector(state => state.apiReducers.downloadTags);
const currentSnapshot = useSelector(state => state.projectReducers.currentSnapshot);
const currentProject = useSelector(state => state.targetReducers.currentProject);

const [structuresSelection, setStructuresSelection] = useState('allStructures');

Expand Down Expand Up @@ -236,6 +237,7 @@ export const DownloadStructureDialog = memo(({}) => {
} else {
requestObject = {
target_name: targetName,
target_access_string: currentProject?.target_access_string,
proteins: proteinNames,
...mapFiles,
...crystallographicFiles,
Expand All @@ -253,12 +255,12 @@ export const DownloadStructureDialog = memo(({}) => {
const prepareDownloadClicked = () => async (dispatch, getState) => {
const options = { link: { linkAction: downloadStructuresZip, linkText: 'Click to Download', linkParams: [] } };
if (selectedDownload !== newDownload) {
const donwloadTag = findDownload(selectedDownload);
if (donwloadTag) {
const downloadTag = findDownload(selectedDownload);
if (downloadTag) {
setGeneralError(false);
setZipPreparing(true);
setAlreadyInProgress(false);
getDownloadStructuresUrl(donwloadTag.additional_info.requestObject)
getDownloadStructuresUrl(downloadTag.additional_info.requestObject)
.then(resp => {
if (resp.status === 208) {
//same download is already preparing for someone else
Expand All @@ -276,7 +278,7 @@ export const DownloadStructureDialog = memo(({}) => {
if (resp) {
const fileSizeInBytes = resp.headers['content-length'];
setFileSize(getFileSizeString(fileSizeInBytes));
const url = generateUrlFromTagName(donwloadTag.tag);
const url = generateUrlFromTagName(downloadTag.tag);
options.link.linkParams = [url];
setDownloadTagUrl(url);
setZipPreparing(false);
Expand Down Expand Up @@ -534,8 +536,8 @@ export const DownloadStructureDialog = memo(({}) => {
<Grid item>
<Select className={classes.select} value={selectedDownload} onChange={onUpdateExistingDownload}>
<MenuItem value={newDownload}>{newDownload}</MenuItem>
{downloadTags.map(dt => (
<MenuItem value={dt.additional_info.downloadName}>{dt.additional_info.downloadName}</MenuItem>
{downloadTags.map((dt, index) => (
<MenuItem key={index} value={dt.additional_info.downloadName}>{dt.additional_info.downloadName}</MenuItem>
))}
</Select>
</Grid>
Expand Down
25 changes: 13 additions & 12 deletions js/components/target/redux/dispatchActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,18 +154,19 @@ export const getTargetProjectCombinations = (targets, projects) => {
targetItems.forEach(([targetId, target]) => {
if (!target.isLegacy) {
const updatedTarget = target;
target.project_id.forEach(projectId => {
const project = projects.find(project => project.id === projectId);
// const project = projects[projectId];
if (project) {
updatedTarget.project = project;
result.push({ updatedTarget });
} else {
console.log(
`User don't have access to project ${projectId} which is associated with target ${target.title}`
);
}
});
console.log('target.project', target.project);
// TODO debug this?
const projectId = typeof target.project === 'object' ? target.project.id : target.project;
const project = projects.find(project => project.id === projectId);
// const project = projects[projectId];
if (project) {
updatedTarget.project = project;
result.push({ updatedTarget });
} else {
console.log(
`User don't have access to project ${projectId} which is associated with target ${target.title}`
);
}
} else {
result.push({ updatedTarget: { ...target, project: { target_access_string: 'Legacy' } } });
}
Expand Down
56 changes: 28 additions & 28 deletions js/reducers/api/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export const setOpenDiscourseErrorModal = open => {
return { type: constants.SET_OPEN_DISCOURSE_ERROR_MODAL, payload: open };
};

export const setTargetIdList = function(input_json) {
export const setTargetIdList = function (input_json) {
return {
type: constants.SET_TARGET_ID_LIST,
target_id_list: input_json
Expand All @@ -28,77 +28,77 @@ export const replaceTarget = target => {
};
};

export const setDuckYankData = function(input_json) {
export const setDuckYankData = function (input_json) {
return {
type: constants.SET_DUCK_YANK_DATA,
duck_yank_data: input_json
};
};

export const setTargetOn = function(target_id, skipTracking = false) {
export const setTargetOn = function (target_id, skipTracking = false) {
return {
type: constants.SET_TARGET_ON,
target_on: target_id,
skipTracking: skipTracking
};
};

export const setPanddaSiteList = function(pandda_site_list) {
export const setPanddaSiteList = function (pandda_site_list) {
return {
type: constants.SET_PANNDA_SITE_LIST,
pandda_site_list: pandda_site_list
};
};

export const setPanddaEventList = function(pandda_event_list) {
export const setPanddaEventList = function (pandda_event_list) {
return {
type: constants.SET_PANNDA_EVENT_LIST,
pandda_event_list: pandda_event_list
};
};

export const setPanddaSiteOn = function(pandda_site_id) {
export const setPanddaSiteOn = function (pandda_site_id) {
return {
type: constants.SET_PANNDA_SITE_ON,
pandda_site_id: pandda_site_id
};
};
export const setPanddaEventOn = function(pandda_event_id) {
export const setPanddaEventOn = function (pandda_event_id) {
return {
type: constants.SET_PANNDA_EVENT_ON,
pandda_event_id: pandda_event_id
};
};

export const setMolGroupOn = function(mol_group_id) {
export const setMolGroupOn = function (mol_group_id) {
return {
type: constants.SET_MOL_GROUP_ON,
mol_group_on: mol_group_id
};
};

export const setMolGroupOff = function(mol_group_id) {
export const setMolGroupOff = function (mol_group_id) {
return {
type: constants.SET_MOL_GROUP_OFF,
mol_group_off: mol_group_id
};
};

export const setMolGroupList = function(mol_group_list) {
export const setMolGroupList = function (mol_group_list) {
return {
type: constants.SET_MOL_GROUP_LIST,
mol_group_list: mol_group_list
};
};

export const setMoleculeList = function(molecule_list) {
export const setMoleculeList = function (molecule_list) {
return {
type: constants.SET_MOLECULE_LIST,
molecule_list: molecule_list
};
};

export const setCachedMolLists = function(cached_mol_lists) {
export const setCachedMolLists = function (cached_mol_lists) {
return {
type: constants.SET_CACHED_MOL_LISTS,
cached_mol_lists: cached_mol_lists
Expand Down Expand Up @@ -182,70 +182,70 @@ export const removeLHSCompound = cmp => {
};
};

export const setSavingState = function(savingState) {
export const setSavingState = function (savingState) {
return {
type: constants.SET_SAVING_STATE,
savingState: savingState
};
};

export const setSeshListSaving = function(seshListSaving) {
export const setSeshListSaving = function (seshListSaving) {
return {
type: constants.SET_SESH_LIST_SAVING,
seshListSaving
};
};

export const setLatestSnapshot = function(uuid) {
export const setLatestSnapshot = function (uuid) {
return {
type: constants.SET_LATEST_SNAPSHOT,
latestSnapshot: uuid
};
};

export const setLatestSession = function(uuid) {
export const setLatestSession = function (uuid) {
return {
type: constants.SET_LATEST_SESSION,
latestSession: uuid
};
};

export const setSessionTitle = function(sessionTitle) {
export const setSessionTitle = function (sessionTitle) {
return {
type: constants.SET_SESSION_TITLE,
sessionTitle: sessionTitle
};
};

export const setSessionId = function(id) {
export const setSessionId = function (id) {
return {
type: constants.SET_SESSION_ID,
sessionId: id
};
};

export const setSessionIdList = function(input_json) {
export const setSessionIdList = function (input_json) {
return {
type: constants.SET_SESSION_ID_LIST,
sessionIdList: input_json
};
};

export const updateSessionIdList = function(input_json) {
export const updateSessionIdList = function (input_json) {
return {
type: constants.UPDATE_SESSION_ID_LIST,
sessionIdList: input_json
};
};

export const setTargetUnrecognised = function(bool) {
export const setTargetUnrecognised = function (bool) {
return {
type: constants.SET_TARGET_UNRECOGNISED,
targetUnrecognised: bool
};
};

export const setUuid = function(uuid) {
export const setUuid = function (uuid) {
return {
type: constants.SET_UUID,
uuid: uuid
Expand Down Expand Up @@ -294,7 +294,7 @@ export const setAllDataLoaded = allDataLoaded => {
};
};

export const reloadApiState = function(apiReducers) {
export const reloadApiState = function (apiReducers) {
const cachedMolList = apiReducers.cached_mol_lists;
let fixedCachedMolList = {};
if (cachedMolList) {
Expand Down Expand Up @@ -326,7 +326,7 @@ export const reloadApiState = function(apiReducers) {
app_on: apiReducers.app_on,
sessionIdList: apiReducers.sessionIdList,
latestSession: apiReducers.latestSession,
project_id: apiReducers.project_id,
project: apiReducers.project,
group_id: apiReducers.group_id,
group_type: apiReducers.group_type,
pandda_event_on: apiReducers.pandda_event_on,
Expand All @@ -346,31 +346,31 @@ export const updateTag = (item, skipTracking = false) => {
};
};

export const setTagList = function(tagList, skipTracking = false) {
export const setTagList = function (tagList, skipTracking = false) {
return {
type: constants.SET_TAG_LIST,
tagList: tagList,
skipTracking
};
};

export const appendTagList = function(item, skipTracking = false) {
export const appendTagList = function (item, skipTracking = false) {
return {
type: constants.APPEND_TAG_LIST,
item: item,
skipTracking
};
};

export const removeFromTagList = function(item, skipTracking = false) {
export const removeFromTagList = function (item, skipTracking = false) {
return {
type: constants.REMOVE_FROM_TAG_LIST,
item: item,
skipTracking
};
};

export const setCategoryList = function(categoryList, skipTracking = false) {
export const setCategoryList = function (categoryList, skipTracking = false) {
return {
type: constants.SET_CATEGORY_LIST,
categoryList: categoryList,
Expand Down
4 changes: 2 additions & 2 deletions js/reducers/api/actions.test.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/reducers/api/apiReducers.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { savingStateConst } from '../../components/snapshot/constants';
import { tags } from '../../components/preview/tags/redux/tempData';

export const INITIAL_STATE = {
project_id: undefined,
project: undefined,
target_id: undefined,
target_id_list: [],
legacy_target_id_list: [],
Expand Down Expand Up @@ -353,7 +353,7 @@ export default function apiReducers(state = INITIAL_STATE, action = {}) {

case constants.RELOAD_API_STATE:
return Object.assign({}, state, {
project_id: action.project_id,
project: action.project,
target_on_name: action.target_on_name,
target_on: action.target_on,
target_id: action.target_id,
Expand Down
Loading

0 comments on commit 9916d56

Please sign in to comment.