ABCDEFGHIJKLMNOPQRSTUVWX
1
REST APIAngular UI
2
CategoryFinal
Priority
FeatureSpecs / NotesMid Estimate
(Hours)
StatusSpecs / NotesMid Estimate
(Hours)
Status
3
SEORobots.txt for SEO0(not applicable)Add a default robots.txt to Angular UI source63. ready to be worked on
4
SEOSitemaps for SEODS-406153. ready to be worked onSitemap content must appear off root path of UI (like robots.txt)21. needs ticket(s)
5
UINew Theme for User InterfaceTBD(not applicable)Mantis is the initial theme. This is not necessarily done until we are "feature complete" (ongoing work). This was initially about hiring a designer for another theme (4Science is still interested in helping fund a professional designer with others)TBD
6
UISupport separate themes per community or collection (like XMLUI)0(not applicable)Sitewide themes is done (see OR2019 workshops). Community/Collection specific theming is more difficult until we upgrade Angular 8.TBD1. needs ticket(s)
7
SecurityUpgrade to Angular 80(not applicable)Requires senior developer
- follow the angular update guide, from 6 to 7, complexity advanced, using yarn
- upgrade outdated dependencies in package.json using yarn upgrade-interactive
- fix any issues with dependencies that don't have a compatible version, or swap out dependencies if necessary
603. ready to be worked on
8
SecurityUpgrade to Angular 90(not applicable)Angular 9 is not yet released.40
9
AdminThe harvesting client (XMLUI only) should be ported to dspace 7 (https://wiki.duraspace.org/dsdoc6x/using-dspace/exporting-content-and-metadata/oai#OAI-OAI-PMH/OAI-OREHarvester(Client))REST endpoints already complete: https://github.com/DSpace/DSpace/pull/249106. draft implementationThis includes ability to kick off harvest from collection level and site level harvesting status (XMLUI Control Panel). We currently don't have the REST for the Control Panel.

Done:
- The content source tab on the edit collection page has been added an allows you to configure the params and store them to the server

Still to do:
- Start harvesting and show the status

Specs:
- Add UI elements to start a harvest and show the status
- Start jobs using the scripts&processes endpoint
- Get the status from the collection /harvest endpoint
241. needs ticket(s)
10
PerformanceREST API Projectionshttps://jira.duraspace.org/browse/DS-3533 Additional options presented by Chris W on Oct 17: https://wiki.duraspace.org/display/DSPACE/2019-10-17+DSpace+7+Working+Group+MeetingTBD4. in progressChris presented on Oct 17, 2019 meetingTBD1. needs ticket(s)
11
SubmissionLive import framework
https://wiki.duraspace.org/display/DSDOC6x/2016+Framework+for+live+import+from+external+sources
Please note that the new submission UI supports the BTE framework, see point 5.8 & 5.9 that currently provide more end user features and connectors that the custom dspace framework (AB). Early REST Contract work: https://github.com/DSpace/Rest7Contract/pull/83TBD4. in progressTBD
12
RESTDocumentation framework for the REST API (RestDoc)https://jira.duraspace.org/browse/DS-3484TBD2. backlog (temporarily on hold)0(not applicable)
13
RESTALPS Supporthttps://jira.duraspace.org/browse/DS-3486TBD2. backlog (temporarily on hold)0(not applicable)
14
DocsDocumentation of DSpace 7, especially new UI, Install & Upgradehttps://wiki.duraspace.org/display/DSDOC7x/TBD3. ready to be worked onTBD3. ready to be worked on
15
BrowseBreadcrumbs in headerDepends on REST Projections? See: https://jira.duraspace.org/browse/DS-3532TBD1. needs ticket(s)TBD1. needs ticket(s)
16
SEOMeta "generator" tag in page header (<meta name="Generator" content="DSpace [version]"/>)Finalized ticket: https://jira.duraspace.org/browse/DS-435723. ready to be worked onUse/Update metadata.service.ts?33. ready to be worked on
17
UIContextual HelpNew user documentation accessible linkable from the specific feature0(not applicable)TBD1. needs ticket(s)
18
AuthProtected metadata and informationSome information in the item, workspace, etc. contains sensitive / reserved information (dc.description.provenance, submitter, etc). We need to serialize the objects according to the user rightsTBDTBD
19
UIFeedback FormForm to provide feedback to the dspace administratorTBDTBD
20
SecurityJDK 11 Support for backend (REST API)JDK 8 is nearing EOL. https://jira.duraspace.org/browse/DS-4380TBD3. ready to be worked on0(not applicable)
21
BrowseBrowse by Community/CollectionDepends on Projections (1.12)?07. completedTBD1. needs ticket(s)
22
BrowseRSS/ATOM FeedsSee https://jira.duraspace.org/browse/DS-3947. RSS needs to create a link based on the Angular UI (for details of the item). REST needs to translate the URL to the Angular Path (Similar idea on Sitemaps too). RSS/ATOM feeds already provided via OpenSearch, which can limit by Community or Collection. These estimates assume we will use OpenSearch and simply document the proper queries to run in different scenarios.23. ready to be worked onRSS content must appear off root path of UI (like robots.txt & sitemaps). "- Proxy the backend's RSS feeds on the express.js server
- Add/adapt service to retrieve RSS config from backend (e.g. whether or not it's enabled)
- Add RSS buttons to the UI if it's enabled
- Backend needs to be determined (might be content negiotiation on the search/discovery endpoint). Once figured out, might become more certain."
81. needs ticket(s)
23
BrowseSupport Handle.net URIs07. completedSenior developer required

see https://github.com/DSpace/dspace-angular/issues/256
235. awaiting review
24
BrowseOpenURL SupportSee https://jira.duraspace.org/browse/DS-4319. Assume we are only building a URL based on configuration and metadata. Reuse code from the JSPUI 6 Tag implementation adding the extra link when appropriate in the ItemResource (revisit later if needed)53. ready to be worked onLinks should appear on Item pages when enabled. Estimate is for just displaying embedded links if configuration is enabled.23. ready to be worked on
25
BrowseConfigurable browseThe /api/discover/browses endpoint returns the list of configured browses07. completedAlready COMPLETE? https://github.com/DSpace/dspace-angular/issues/25905. awaiting review
26
BrowseTag Cloud visualizationFeature introduced in version 5 JSPUI, see https://jira.duraspace.org/browse/DS-1227TBD1. needs ticket(s)TBD1. needs ticket(s)
27
SearchOpenSearch APISee https://jira.duraspace.org/browse/DS-4249. Implement a redirect to a configurable UI search URL23. ready to be worked onJust needs an HTML <head> section for Angular for autodiscovery. See http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_5#Autodiscovery_in_HTML.2FXHTML Add these tags using the metadata service23. ready to be worked on
28
SearchSupport for controlled-vocabulary - Hierarchical facets?NEEDS VOLUNTEERTBD1. needs ticket(s)TBD1. needs ticket(s)
29
AuthenticationAuthentication via Shibboleth06. draft implementationhttps://github.com/DSpace/dspace-angular/pull/429 (NEARLY COMPLETE)04. in progress
30
AuthorizationAuthorization as someone without special rightsNeeds testingTBD3. ready to be worked onDiscuss how to achieve in AngularTBD1. needs ticket(s)
31
AuthorizationAuthorization as someone with Submitter rightsSee https://jira.duraspace.org/browse/DS-4043 Task is to build detailed ITs (very core piece here) and verify everything is working. However, it's likely some ITs will fail initially. Lots of uncertainty here263. ready to be worked onDiscuss how to achieve in AngularTBD1. needs ticket(s)
32
AuthorizationAuthorization as someone with Collection Admin rightsNeeds testingTBD2. backlog (temporarily on hold)Discuss how to achieve in AngularTBD1. needs ticket(s)
33
AuthorizationAuthorization as someone with Community Admin rightsNeeds testingTBD2. backlog (temporarily on hold)Discuss how to achieve in AngularTBD1. needs ticket(s)
34
AuthorizationAuthorization as someone with Full Admin rightsNeeds testingTBD3. ready to be worked onTBD1. needs ticket(s)
35
AuthorizationEnsure submitters can only edit metadata fields configured in submission formshttps://jira.duraspace.org/browse/DS-4278TBD3. ready to be worked onTBD1. needs ticket(s)
36
AuthorizationEnsure workflow members can only perform actions assignedhttps://jira.duraspace.org/browse/DS-4279. Expose the right actions for the specific workflow step (approve, reject, edit, vote, etc.)TBD3. ready to be worked onTBD1. needs ticket(s)
37
Account ProfileManage Account ProfileDS-406207. completed- Create a service to fetch and store the info
- Create the form to show and modify the info
151. needs ticket(s)
38
Account ProfileManage SubscriptionsAllow users to subscribe to Collections for daily emails. Extra subscription endpoint (subscription resource) which maps to the subscription table. May be a subresource of user. UNCERTAIN161. needs ticket(s)- Create a service to retrieve, add, remove subscriptions on REST
- Add the ability to subscribe/unsubscribe on the collection page itself
- show an overview of active subscriptions on the profile page with the ability to remove them
131. needs ticket(s)
39
Account ProfileView Authorization Groupshttps://jira.duraspace.org/browse/DS-3736 (Dependent on Account Profile, DS-4062)07. completed- Create/modify a service to be able to retrieve the groups for the current user
- List them on the profile page
51. needs ticket(s)
40
Account ProfileChange PasswordDS-406207. completed- Modify the authentication service to be able to change the password
- Create the change password form
- Add validation to ensure it follows the criteria

Note, we should update those criteria: 6 characters long isn't very safe
71. needs ticket(s)
41
AuthorizationEnforce Community/Collection Access Restrictionshttps://jira.duraspace.org/browse/DS-4122, According to the ticket this is only about providing the testing and eventually fix misbehavior on single communities/collections but we need to filter also subcommunities and collections referenced from the object. This would require rewrite the strategy used to retrieve the children moving to a solr based approach and a LinkRestRepository. 263. ready to be worked on0(not applicable)
42
AuthorizationEnforce Item Access Restrictionshttps://jira.duraspace.org/browse/DS-4123. This is just ITs63. ready to be worked on0(not applicable)
43
AuthorizationEnforce Bitstream Access Restrictionshttps://jira.duraspace.org/browse/DS-4124. Again, just ITs, although in two areas: Content Controller and BitstreamRestRepository83. ready to be worked on0(not applicable)
44
Account ProfileNew user registrationSee https://jira.duraspace.org/browse/DS-4027. Andrea feels ticket doesn't have enough info. Not just about create EPerson. Need to apply for registration, get a token and then confirm registration data. Likely needs to be two REST endpoints. Andrea feels "We should explore a solution based on posting the uri of the token to the eperson endpoint plus a json describing the registration data or create a special authentication to use the registration token as auth-token or collect all the necessary information in the registration data and move them later to the eperson" May need feedback from GDPR Working Group on whether DSpace 6 way of doing this is GDPR compliant. MOVE TO 20 hours and UNCERTAIN. NEEDS MORE DETAILED DISCUSSION TO FINALIZE.203. ready to be worked on- Modify the authentication service to be able to
- enter a new email for verification
- use a verification token and a filled in form (at least name and password) to create a new eperson, and immediately log in
- Create the user registration component, that has the 3 steps (email, profile, finished) and can be rendered in the dropdown or as a standalone page
- Add links to registration to the login component
181. needs ticket(s)
45
SubmissionSubmission Configuration Upgrade script (input-forms to submission-forms)https://jira.duraspace.org/browse/DS-4046. Currently, estimate assumes we need to do this migration via Java code (Generate a submission form where each inputform step is mapped to a single panel. It includes also the generation of a new item-submissions where the single panel are listed). However, we might be able to cut the effort in half if we can simply use an XSLT transformation (as both files are XML)223. ready to be worked on0(not applicable)
46
SubmissionSubmission via an identifierThe submission PR includes the capabilities to enrich the submission with information retrieved by the bibliographic database once than an identifier is provided. This is slightly different than the current JSPUI functionality "Search by Identifiers". We are interested in implement also this functionality but it has a very low priority and could IMHO eventually excluded from DSpace 7 - abTBD2. backlog (temporarily on hold)TBD1. needs ticket(s)
47
SubmissionSupport for authority frameworkhttps://jira.duraspace.org/browse/DS-4350TBD3. ready to be worked on06. draft implementation
48
SubmissionEmbargo Item MetadataEmbargo bitstream already exists (REST contract is missing though). Mimic the implemented solution for the bitstream. Heavy testing is required to verify that embargo is also respected once the items are archived. NEEDS DISCUSSION. UNCERTAIN201. needs ticket(s)May be combined with "Make an Item Private". "Requires senior developer

- Write a custom section component to render the Access section
- Write a service to parse the access section data, and send patches back to the server"
301. needs ticket(s)
49
SubmissionMake an Item privateREST functionality exists06. draft implementationNeed option to make Item Private during submission. Depends on Embargo Item Metadata (form Submission UI Only)

- Add the private item checkobx to the access section component
- Ensure the service can parse the response, and send patches concering the private item status
61. needs ticket(s)
50
SubmissionType-bind submissionSome metadata should be included only for specific value of dc.type https://wiki.duraspace.org/display/DSDOC6x/Submission+User+Interface#SubmissionUserInterface-ItemtypeBasedMetadataCollection TBD1. needs ticket(s)TBD1. needs ticket(s)
51
SubmissionControlled-vocabularySome institutions use hierarchical vocabulary https://wiki.duraspace.org/display/DSDOC6x/Submission+User+Interface#SubmissionUserInterface-ConfiguringControlledVocabulariesTBD1. needs ticket(s)TBD1. needs ticket(s)
52
SubmissionSherpa-Romeo IntegrationTBD1. needs ticket(s)TBD1. needs ticket(s)
53
SubmissionCreative CommonsTBD1. needs ticket(s)TBD1. needs ticket(s)
54
SubmissionORCID LookupIt should work unchanged as the authority framework is supported but I guess it deserves a row for importanceTBD1. needs ticket(s)TBD1. needs ticket(s)
55
WorkflowSupport for General Configurable Workflow steps.Need to be able to retrieve all steps and actions via REST API. Required for all other sample steps (see "Select Single Reviewer", and "Score review workflow" below). NEEDS REST Contract. General Configurable Workflow, retrieiving steps & actions. See https://jira.duraspace.org/browse/DS-4180121. needs ticket(s)Requires rendering workflow actions dynamicallyTBD1. needs ticket(s)
56
WorkflowAdditional configurable workflow steps: "Select Single Reviewer Workflow"https://wiki.duraspace.org/display/DSDOC6x/Configurable+Workflow#ConfigurableWorkflow-Additionalworkflowsteps/actionsandfeatures Needs developer familiar with this feature (Atmire). LOWER PRIORITY, NOT WIDELY USED. Create the backend to store the information
Creating a REST API to identify which identifies the options per step should be part of https://jira.duraspace.org/browse/DS-4279
91. needs ticket(s)- AssignStep
- Add a component to select a reviewer to assign
- Add methods to a submission service to search for applicable reviewers, and to assign a reviewer to a workflowitem
- ReviewStep
- Everything should already be in place on the UI side
Assumes render workflow action dynamically is completed (see above). UNCERTAIN
181. needs ticket(s)
57
WorkflowAdditional configurable workflow steps: "Score review workfow"Needs developer familiar with this feature (Atmire). LOWER PRIORITY, NOT WIDELY USED. Create the backend to store the information
Creating a REST API to identify which identifies the options per step should be part of https://jira.duraspace.org/browse/DS-4279
141. needs ticket(s)- ScoreReviewStep
- Add a component to enter the score.
- Enforce that the score is a valid percentage
- Add buttons to submit the score, or leave the step
- Add a method to the appropriate submission service to send the score to the REST API
Assumes render workflow action dynamically is completed (see above). UNCERTAIN
91. needs ticket(s)
58
WorkflowAdminister Workflow (Abort WorkflowItem, Delete WorkflowItem, Send back to Submitter)Abort WorflowItem already exists (which sends item back to Submitter). Can already findAll on this endpoint, but it's very basic (so no Search configuration exists for WorkflowItems). Delete Item may be low priority?TBD1. needs ticket(s)- Add buttons to abort, delete and send back to the workflowitem actions component
- Implement the methods in the appropriate submission service to send those actions to the rest api
Requires new search configuration. More of this is on the REST side though, but requires configuration in the Angular UI (as this is not dynamic).
201. needs ticket(s)
59
Batch ExportExport Community (to ZIP)Depends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)On hold, likely to be redesigned using the scripts and processes endpoint TBD2. backlog (temporarily on hold)
60
Batch ExportExport Community Metadata (to CSV)See https://jira.duraspace.org/browse/DS-4060 Depends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)On hold, likely to be redesigned using the scripts and processes endpointTBD2. backlog (temporarily on hold)
61
Batch ExportExport Collection (to ZIP)Depends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)On hold, likely to be redesigned using the scripts and processes endpointTBD2. backlog (temporarily on hold)
62
Batch ExportExport Collection Metadata (to CSV)See https://jira.duraspace.org/browse/DS-4060 Depends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)On hold, likely to be redesigned using the scripts and processes endpointTBD2. backlog (temporarily on hold)
63
VersioningCreate new Item Versionhttps://wiki.duraspace.org/display/DSDOC6x/Item+Level+Versioning In JSPUI, possible for submitters to version own items. In XMLUI, only Admins or Com/Col Admins can version.TBD1. needs ticket(s)TBD1. needs ticket(s)
64
Batch ExportExport Item (to ZIP)Depends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)On hold, likely to be redesigned using the scripts and processes endpointTBD2. backlog (temporarily on hold)
65
Batch ExportExport Item Metadata (to CSV)Depends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)On hold, likely to be redesigned using the scripts and processes endpointTBD2. backlog (temporarily on hold)
66
EditEmbargo an archived ItemIn DSpace 6.x, this was done via editing Resource Policies directly (see "Edit Item - Manage Resource Policies / Roles")TBD1. needs ticket(s)TBD1. needs ticket(s)
67
EditCreate/Manage a Collection Item TemplateDepends on an Edit Collection endpoint (already exists). POST to /api/core/collections/:uuid/templateItem to create an empty item, DELETE to remove the template. PUT is not required121. needs ticket(s)This has been started within Atmire already and is almost completed.141. needs ticket(s)
68
End UserRequest a Copyhttps://wiki.duraspace.org/display/DSDOC6x/Request+a+Copy See https://jira.duraspace.org/browse/DS-3952 Work begun in https://github.com/DSpace/DSpace/pull/2129 (but needs significant work)203. ready to be worked on- Item page
- Indicate when the user doesn't have access to one or more files
- Add a link or button to request a copy
- Requester Form
- Create the requester form
- Create a service to send the request data to the REST API
- Submitter Grant Form
- Add a method to the data service to validate the submitter token with the REST API
- Create the submitter form
- Add a method to the data service to send the the submitter data to the REST API
- Submitter Change Permissions form
- Create the change permissions form, show it after access is granted in the previous form
- Add a method to the data service to send the grant permission request to the REST API
223. ready to be worked on
69
EditEdit Item (Submission Style) - NEW FEATURE FROM 4ScienceThis is a new feature where users can edit an Item using a submission-like form (instead of the old v6.x edit metadata screens, etc) Feature existed in the OR2018 demo code, but was never extracted into a PR. Uncertain how difficult this effort would be.TBD2. backlog (temporarily on hold)TBD2. backlog (temporarily on hold)
70
EditEdit Community - Assign Roles/Groups(Similar to Item Templates) Endpoint should only initialize the empty group (for the community administrators) and the ability to remove such group. Later group changes can use the Manage Groups endpoint. Additional Roles could be defined by the configurable workflow but they are out of scope of this task81. needs ticket(s)
This task depends on Manage Groups

- Add the "assign roles" tab to the edit community page
- Add the ability to retrieve or parse (e.g. from the _links section on an existing endpoint) the possible roles for a community or collection to the ComColDataService
- Create a component to represent a role in an Com/Col roles tab
- Add a method to the groups service to create a group for a role + community or collection combination (the UI shouldn't have to know how to name that group)
- Link to the edit group page for a group if one exists
181. needs ticket(s)
71
EditEdit Collection - Assign Roles/GroupsThis is similar to the previous task. We can save time if the task is performed by the same developer than the previous one. The estimation is only related to the "hardcoded" groups: Collection Administrator, Submitters, Default Item Read. Needs to *exclude* Workflow specific groups.151. needs ticket(s)This task depends on Edit Community - Assign Roles/Groups (above). Both tasks could be done by same developer at same time.

- Add the "assign roles" tab to the edit collection page
- Use the roles component created for r21 for each of the available roles
21. needs ticket(s)
72
EditEdit Community - Upload LogoIn progress already: https://github.com/DSpace/DSpace/pull/256295. awaiting review- Render the logo if it exists on the edit community page
- Add a way to remove it
- Add a dropzone similar to the submission for file uploads to upload a new logo
- Add methods to the ComColDataService to upload and delete the logo
Estimate assumes we can reuse the submission uploader
141. needs ticket(s)
73
EditEdit Collection - Upload LogoIn progress already: https://github.com/DSpace/DSpace/pull/256265. awaiting reviewThis task depends on Edit Community - Upload Logo (previous task). Should be done by same developer

- Reuse the components created for that feature on the edit collection page
21. needs ticket(s)
74
EditEdit Collection - Harvesting Settingshttps://github.com/DSpace/DSpace/pull/249121. needs ticket(s)Atmire is already working on the angular UI as well.

Done:
- The content source tab on the edit collection page has been added an allows you to configure the params and store them to the server

Still to do:
- Start harvesting and show the status

Specs:
- Add UI elements to start a harvest and show the status
- Start jobs using the scripts&processes endpoint
- Get the status from the collection /harvest endpoint
91. needs ticket(s)
75
EditEdit Item - Manage Bitstreamshttps://github.com/DSpace/Rest7Contract/pull/71111. needs ticket(s)Atmire is already working on this.

Done:
- The edit bitstreams tab on the edit item page, with an overview of the available bitstreams
- Adding new bitstreams
- Editing existing bitstreams

Still to do, everything involving Bundles:
- Reordering bitstreams
- Grouping the bitstreams by bundle in the edit bitstreams tab
- Support for uploading bitstreams to something other than the ORIGINAL bundle

This work is waiting on REST support for Bundles
121. needs ticket(s)
76
EditEdit Item - Manage Resource Policies / RolesWe should implements the CRUD operation over the resourcepolicies endpoint without having dedicated endpoint for the "item's resourcepolicies". DELETE POST PATCH verbs are required. Bulks changes are out-of-scope for this task. Security needs to be implemented. NOT A TRIVIAL ENDPOINT. Early contract: https://github.com/DSpace/Rest7Contract/pull/87301. needs ticket(s)- Add a link to the item policies page to the item status tab
- Create the policies page component
- Show the current policies for the Item, and each bundle and bitstream within the item
- Add the ability to edit or remove each exiting policy
- When showing groups, add a link to their edit group page
- Add the ability to add a new policy for the item and each bundle and bitstream within the item
- Add methods to the ItemDataService, or a dedicated PolicyService to
- retrieve all policies for an item grouped by bundle and bitstream
- support CRUD for policies → you should be able to reuse DataService code for this
241. needs ticket(s)
77
VersioningCreate a new item version as submitterThis feature only existed in JSPUITBD1. needs ticket(s)TBD
78
VersioningList version historyTBD1. needs ticket(s)TBD
79
VersioningWhen viewing an old version, provide a notice regarding the availability of the new versionTBD1. needs ticket(s)TBD
80
AdminBulk Access Control Management (Wildcard / Advanced Policy Manager)This is the Wildcard/Advanced Item Policy tool in v6.xTBD1. needs ticket(s)TBD1. needs ticket(s)
81
AdminManage EPeopleDS-3735, DS-402106. draft implementation- Create an EPerson Management page
- It should contain a paginated search of the EPersons in the system
- Render the results like the edit item bitstreams or metadata page:
- show ID, Name and Email columns for each EPerson
- and add an actions column at the end containing edit and delete buttons
- Create a component to add/edit EPersons
- show fields for email, first name, last name, telephone, can log in and require certificate
- when in edit mode,
- show buttons to reset password, delete the eperson and to log in as the eperson (when permitted)
- List the groups the EPerson is a part of with links to the edit page for each group
- Create an EPersonDataService based on DataService with CRUD methods for epersons.
- It will need a search method that isn't part of the default set
- Hook up the Manage People link in the admin menu
231. needs ticket(s)
82
AdminManage GroupsCan create groups already (DS-4023). We need to implement add/remove eperson and groups from Group. The contract is specified in the DS-4026. A senior developer is required to implement it according to the suggestion. Early work at https://github.com/DSpace/Rest7Contract/pull/41223. ready to be worked on- Create an Group Management page
- It should contain a paginated search of the Groups in the system
- Render the results like the edit item bitstreams or metadata page:
- show ID, Name, Members and Community/collection columns for each Group
- and add an actions column at the end containing edit and delete buttons
- Create a component to add/edit Group
- show a field for the group name, and a search box to allow you to search for either groups or epersons
- Show the results in a paginated table, columns ID, name email and actions,
- If they're not in the group, show the add action, if they're part of the group show a remove action
- when in edit mode, show a paginated list of the members in the group
- Don't use a table like dspace 6, use a list instead, because it can contain both groups and eperons
- Add a remove action after each one
- Create an GroupDataService based on DataService with CRUD methods for groups.
- It will need a search method that isn't part of the default set however this is very similar to the EpersonDataService, so it can probably be reused between the two
- Hook up the Manage groups link in the admin menu

Note The UI for editing a group could use some thought. It's very clunky
281. needs ticket(s)
83
AdminFind Item by Internal Item ID (UUID) or HandleExists as "/api/pid/find"07. completed- Create an administrative version of the Search page on an alternate URL
- The idea is that it would be configured on the backend with a facet for withdrawn or private
- Modify the search result components for each DSO to show a label if an item is private or withdrawn.
- Refactor the search service to be able to reuse it for this administrative search
- Hook up the admin menu links
This task is combined with the next 2 tasks (Browse Withdrawn and Browse Private). Same developer
201. needs ticket(s)
84
AdminWithdrawn Items (browse by Title)https://jira.duraspace.org/browse/DS-3906 Also requires additional ITs. This should be implemented at same time as Browse Private Items263. ready to be worked onTask should be combined with "Find Item by Internal Item ID" task . This should be a facet of that same Admin search feature (which is why this is a zero estimate)01. needs ticket(s)
85
AdminPrivate Items (browse by Title)https://jira.duraspace.org/browse/DS-3906 Also requires additional ITs. This should be implemented as part of Browse Withdrawn Items (which is why this task has a zero estimate)03. ready to be worked onTask should be combined with "Find Item by Internal Item ID" task . This should be a facet of that same Admin search feature (which is why this is a zero estimate)01. needs ticket(s)
86
AdminControl PanelThis is an XMLUI only feature in 6.x. REQUIRES DICUSSIONTBD1. needs ticket(s)This is an XMLUI only feature in 6.x. Unclear what is possible in Angular. REQUIRES DISCUSSIONTBD1. needs ticket(s)
87
Batch ImportImport Metadata CSV (no Preview of Changes Feature)https://jira.duraspace.org/browse/DS-4060 (needed for Entities). Dependent on Scripts & Processes
The implementation of this script will require:
* A migration of 2 command line scripts
* Support for non-admins to perform some scripts
73. ready to be worked onInitial version (based on basic drag & drop, and then a status of success or failure). Does NOT include Preview of changes, as that was split out into a separate task by the REST API team.81. needs ticket(s)
88
Batch ImportImport Metadata CSV (Enhanced, with Preview of Changes, as in v6.x)Adds the capability to preview the changes and exports search result, which will require a dedicated endpoint (beyond the generic "scripts & processes" endpoint)

An endpoint is needed /utilities/bulkedits where POST is used to create a new bulkedit preview. The final import can be done via the scripts endpoint supplying the preview uuid (that can be used as name of the temporary file). DELETE will cancel the bulkedits removing the files, otherwise a cleaning script can be used to remove file older than a defined period.
The dspace-api should be revisited to allow pagination of the changes in the preview but this is postponed to a future improvement.
261. needs ticket(s)Note this assumes the export CSV functionality is part of a different task. It also assumes the backend has separate independent endpoints for the preview and the actual import

- Create an Import metadata page
- Reuse the dropzone from the submission to upload the file
- Show the pending changes on the same page after the upload succeeds
- Also reuse that page for the overview after the import is executed
- Create a service to communicate with the import csv endpoint. With methods to:
- POST a CSV file to a preview endpoint, and get a response of what the changes would be
- POST a CSV file to an import endpoint and get a response of what was executed.
141. needs ticket(s)
89
Batch ImportBatch Import (from ZIP)Depends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)TBD2. backlog (temporarily on hold)
90
AdminCuration TasksDepends on "Scripts & Processes" endpointTBD2. backlog (temporarily on hold)https://github.com/DSpace/dspace-angular/issues/285TBD2. backlog (temporarily on hold)
91
AdminSupervision Orders (JSPUI Only)Needs DCAT feedback? Unclear if this is used much. See JSPUI: http://demo.dspace.org/jspui/dspace-admin/superviseTBD1. needs ticket(s)TBD1. needs ticket(s)
92
AdminEdit Homepage News from Admin UI (JSPUI Only)Early work: https://github.com/DSpace/Rest7Contract/pull/45
See JSPUI: http://demo.dspace.org/jspui/dspace-admin/news-edit
TBD4. in progressTBD1. needs ticket(s)
93
AdminEdit Default Deposit License from Admin UI (JSPUI Only)See JSPUI: http://demo.dspace.org/jspui/dspace-admin/license-editTBD1. needs ticket(s)TBD1. needs ticket(s)
94
AdminLogin as EPersonUse case is similar to "Supervision Orders". Allows helping someone or debugging issues by seeing what they see. See XMLUI "Edit EPerson" page or the JSPUI e-people administrative page. There's a button called "Login as E-Person". https://wiki.duraspace.org/display/DSDOC6x/Configuration+Reference#ConfigurationReference-Loginasfeature

See https://jira.duraspace.org/browse/DS-3934
TBD1. needs ticket(s)TBD1. needs ticket(s)
95
GDPRDelete EPersonhttps://jira.duraspace.org/browse/DS-4036 REQUIRED FOR GDPR COMPLIANCE
Add test to verify that inprogress submission are deleted as well, including pending workflow tasks. Add test to verify that the EPerson is removed from Groups without touching other members. Add test to include item without submitter in Search and Browse endpoint. Add test to check edit of item with null submitter. Add tests related to verify that subscriptions and request-a-copy about such eperson are deleted as well. Add test to include submitter null item in the versioning items endpoint (or create a task for future check)

Add a configuration parameter to limit the DELETE operation to only administrator and implement proper security
293. ready to be worked onThis is a subtask of "Manage EPeople" task (for Angular UI)01. needs ticket(s)
96
AdminScripts and Processes (Lots of features dependent on this one)New endpoint which allows key commandline scripts (Curation Tasks, export/import scripts) to be kicked off via a single REST API endpoint. Discussed in detail on Sept 22, 2019

See https://github.com/DSpace/Rest7Contract/pull/17 and https://github.com/DSpace/DSpace/pull/2529
TBD4. in progress0(not applicable)
97
StatisicsGoogle Analytics supporthttps://jira.duraspace.org/browse/DS-4059 (Provide Analytics Key via REST). Create an endpoint /config/paramters/:param that provide GET access to the configuration. Add a service configured via spring mantaining a list of protected key that can be only exposed to administrator. The estimation is only related to the implementation of a direct access to a specific parameters. No listing capabilities seems needed for now. Investigation is needed to found the best way to express the parameter if it is "single value" or an "array"173. ready to be worked onBasic support already exists. Enhancements already up for review in https://github.com/DSpace/dspace-angular/pull/49505. awaiting review
98
StatisticsDSpace (Solr) Statistics - Tracking EventsSee https://jira.duraspace.org/browse/DS-3574. REST Contract for tracking events for statistics exists at https://github.com/DSpace/Rest7Contract/pull/63TBD3. ready to be worked onTBD1. needs ticket(s)
99
StatisticsDSpace (Solr) Statistics - Sitewide Usage Reports (same as v6.x)Reports include: top 10 Items in total visitsTBD1. needs ticket(s)TBD1. needs ticket(s)
100
StatisticsDSpace (Solr) Statistics - Community/Collection Usage Reports (same as v6.x)Reports include: Total Community/Collection Visits (overall, per month over last 6 months). Top Country Views. Top City ViewsTBD1. needs ticket(s)TBD1. needs ticket(s)