(This ticket is to summarize a functional overview of a user experience. Therefore, it may require Angular UI and/or REST API subtickets for specific tasks listed here.)
DS-4491, the DSpace 7 Angular UI / REST API must support the ability to enhance or enrich an existing submission based on a search or lookup via ID (similar to DS-4515, but for an existing submission instead of a new submission).
In DSpace 6, metadata enrichment was limited. Technically, the "StartSubmissionLookupStep" classes supporting both BTE (in JSPUI) and Live Import (in XMLUI) were part of the Submission process (and as such therefore updated an existing submission). However, this step always appeared at the beginning, which forced users to use it prior to manually filling out metadata in the submission forms.
In DSpace 7, as all "pages" of the submission form appear at a time, we can no longer assume a user will always begin the submission with a file upload or search. Instead, they may begin to fill out the form manually, only to realize they have an ORCID (or similar identifier) which can be used to autofill some/much of the metadata for them.
Therefore in DSpace 7, this feature must include the following:
- (UI) From within the submission form, the same/similar searchbox (from DS-4515) should appear, likely at the top of the page.
- (UI) When a user interacts with that searchbox in an active submission, they should be returned a similar set of results as in DS-4515 from Live Import.
- (UI) Optionally, the Identifier fields in the form could perform this same search for specific identifier types (e.g. DOI) and prompt the user with a notification only if results were found matching that identifier.
- (UI) If the user chooses a result, they will see what metadata was returned and be able to decide whether to include it in the current submission form. Initially, it should just be a simple implementation which will replace or add to existing fields (depending on field type of currently enabled fields). If the field is single valued, the extracted value would replace the existing one. If the field is multi-valued or has no value, the extracted value would be added.
- (UI) If the user cancels the enrichment, no changes will be made. If the user accepts it, then all changes will be made. In other words, initially, this can be an all or nothing option. (However, in a future ticket, we could enhance this functionality to allow for individual field enrichment, where the user can chose to enrich some fields while ignoring changes to others.)