mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-18 07:23:03 +00:00
Merge pull request #2631 from vNovski/CST-12044-visualize-the-primary-bitstream
CST-12044 visualize the primary bitstream & CST-12043 primary bitstream flag
This commit is contained in:
@@ -59,6 +59,7 @@ export const SubmissionObjectActionTypes = {
|
||||
// Upload file types
|
||||
NEW_FILE: type('dspace/submission/NEW_FILE'),
|
||||
EDIT_FILE_DATA: type('dspace/submission/EDIT_FILE_DATA'),
|
||||
EDIT_FILE_PRIMARY_BITSTREAM_DATA: type('dspace/submission/EDIT_FILE_PRIMARY_BITSTREAM_DATA'),
|
||||
DELETE_FILE: type('dspace/submission/DELETE_FILE'),
|
||||
|
||||
// Errors
|
||||
@@ -760,6 +761,29 @@ export class NewUploadedFileAction implements Action {
|
||||
}
|
||||
}
|
||||
|
||||
export class EditFilePrimaryBitstreamAction implements Action {
|
||||
type = SubmissionObjectActionTypes.EDIT_FILE_PRIMARY_BITSTREAM_DATA;
|
||||
payload: {
|
||||
submissionId: string;
|
||||
sectionId: string;
|
||||
fileId: string | null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Edit a file data
|
||||
*
|
||||
* @param submissionId
|
||||
* the submission's ID
|
||||
* @param sectionId
|
||||
* the section's ID
|
||||
* @param fileId
|
||||
* the file's ID
|
||||
*/
|
||||
constructor(submissionId: string, sectionId: string, fileId: string | null) {
|
||||
this.payload = { submissionId, sectionId, fileId: fileId };
|
||||
}
|
||||
}
|
||||
|
||||
export class EditFileDataAction implements Action {
|
||||
type = SubmissionObjectActionTypes.EDIT_FILE_DATA;
|
||||
payload: {
|
||||
@@ -833,6 +857,7 @@ export type SubmissionObjectAction = DisableSectionAction
|
||||
| SectionStatusChangeAction
|
||||
| NewUploadedFileAction
|
||||
| EditFileDataAction
|
||||
| EditFilePrimaryBitstreamAction
|
||||
| DeleteUploadedFileAction
|
||||
| InertSectionErrorsAction
|
||||
| DeleteSectionErrorsAction
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { hasValue, isEmpty, isNotEmpty, isNotNull, isUndefined } from '../../shared/empty.util';
|
||||
import { hasValue, isEmpty, isNotEmpty, isNotNull, isNull, isUndefined } from '../../shared/empty.util';
|
||||
import differenceWith from 'lodash/differenceWith';
|
||||
import findKey from 'lodash/findKey';
|
||||
import isEqual from 'lodash/isEqual';
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
DepositSubmissionSuccessAction,
|
||||
DisableSectionAction,
|
||||
EditFileDataAction,
|
||||
EditFilePrimaryBitstreamAction,
|
||||
EnableSectionAction,
|
||||
InertSectionErrorsAction,
|
||||
InitSectionAction,
|
||||
@@ -203,6 +204,10 @@ export function submissionObjectReducer(state = initialState, action: Submission
|
||||
return newFile(state, action as NewUploadedFileAction);
|
||||
}
|
||||
|
||||
case SubmissionObjectActionTypes.EDIT_FILE_PRIMARY_BITSTREAM_DATA: {
|
||||
return editPrimaryBitstream(state, action as EditFilePrimaryBitstreamAction);
|
||||
}
|
||||
|
||||
case SubmissionObjectActionTypes.EDIT_FILE_DATA: {
|
||||
return editFileData(state, action as EditFileDataAction);
|
||||
}
|
||||
@@ -735,6 +740,46 @@ function newFile(state: SubmissionObjectState, action: NewUploadedFileAction): S
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit primary bitstream.
|
||||
*
|
||||
* @param state
|
||||
* the current state
|
||||
* @param action
|
||||
* an EditFilePrimaryBitstreamAction action
|
||||
* @return SubmissionObjectState
|
||||
* the new state, with the edited file.
|
||||
*/
|
||||
function editPrimaryBitstream(state: SubmissionObjectState, action: EditFilePrimaryBitstreamAction): SubmissionObjectState {
|
||||
const filesData = state[ action.payload.submissionId ].sections[ action.payload.sectionId ].data as WorkspaceitemSectionUploadObject;
|
||||
const { submissionId, sectionId, fileId } = action.payload;
|
||||
|
||||
const fileIndex = findKey(filesData.files, { uuid: fileId });
|
||||
if (isNull(fileIndex)) {
|
||||
return state;
|
||||
}
|
||||
|
||||
const submission = state[submissionId];
|
||||
return {
|
||||
...state,
|
||||
[submissionId]: {
|
||||
...submission,
|
||||
sections: {
|
||||
...submission.sections,
|
||||
[sectionId]: {
|
||||
...submission.sections[sectionId],
|
||||
data: {
|
||||
...submission.sections[sectionId].data as WorkspaceitemSectionUploadObject,
|
||||
primary: fileId
|
||||
}
|
||||
}
|
||||
},
|
||||
isLoading: submission.isLoading,
|
||||
savePending: submission.savePending,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit a file.
|
||||
*
|
||||
|
Reference in New Issue
Block a user