dspace-angular
dspace-angular copied to clipboard
Added support for caching embedded objects without a self link & null responses
References
- Fixes DSpace/DSpace#9316
- Partially solves #3163
- Fixes #2833
Description
Reduced the number of requests sent to the backend by caching embedded null objects (this will prevent unnecessary thumbnail requests). Also added support for caching embedded objects without a self-link. (Credit for this PR goes to @Atmire-Kristof)
Instructions for Reviewers
List of changes in this PR:
- Added support to cache
nullresponses. - Added support to cache embedded objects without
selflinks. - Embedded the
accessStatusin places where a separate request was made.
Guidance for how to test/review this PR:
- On demo, go to your network tab and select Item Type Publication. Verify that a lot of
thumbnailandaccessStatusrequests are made. - Perform the same action with this fix and verify that both the
thumbnailandaccessStatusrequests are now cached. - These changes also apply to the browse page, the item page's related items section, the delete item tab, and the recent submissions section on the home page.
Checklist
- [x] My PR is created against the
mainbranch of code (unless it is a backport or is fixing an issue specific to an older branch). - [x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
- [x] My PR passes ESLint validation using
npm run lint - [x] My PR doesn't introduce circular dependencies (verified via
npm run check-circ-deps) - [x] My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
- [x] My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
- [x] My PR aligns with Accessibility guidelines if it makes changes to the user interface.
- [x] My PR uses i18n (internationalization) keys instead of hardcoded English text, to allow for translations.
- [x] My PR includes details on how to test it. I've provided clear instructions to reviewers on how to successfully test this fix or feature.
- [x] If my PR includes new libraries/dependencies (in
package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation. - [x] If my PR includes new features or configurations, I've provided basic technical documentation in the PR itself.
- [x] If my PR fixes an issue ticket, I've linked them together.