Compare commits

..

1402 Commits

Author SHA1 Message Date
dependabot[bot]
c82f17dcb7 Bump the angular group across 1 directory with 15 updates
Bumps the angular group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `18.2.13` | `18.2.14` |
| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.13` | `18.2.14` |
| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.13` | `18.2.14` |
| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.13` | `18.2.14` |
| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.13` | `18.2.14` |
| [@angular/localize](https://github.com/angular/angular) | `18.2.13` | `18.2.14` |
| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.13` | `18.2.14` |
| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.13` | `18.2.14` |
| [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `18.2.13` | `18.2.14` |
| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.13` | `18.2.14` |
| [@angular/ssr](https://github.com/angular/angular-cli) | `18.2.20` | `18.2.21` |
| [@angular/cli](https://github.com/angular/angular-cli) | `18.2.20` | `18.2.21` |



Updates `@angular/animations` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/animations)

Updates `@angular/common` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/common)

Updates `@angular/compiler` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/compiler)

Updates `@angular/core` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/core)

Updates `@angular/forms` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/forms)

Updates `@angular/localize` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/compare/18.2.13...18.2.14)

Updates `@angular/platform-browser` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/platform-browser)

Updates `@angular/platform-browser-dynamic` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/platform-browser-dynamic)

Updates `@angular/platform-server` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/platform-server)

Updates `@angular/router` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/router)

Updates `@angular/ssr` from 18.2.20 to 18.2.21
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.20...18.2.21)

Updates `@angular-devkit/build-angular` from 18.2.20 to 18.2.21
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.20...18.2.21)

Updates `@angular/cli` from 18.2.20 to 18.2.21
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.20...18.2.21)

Updates `@angular/compiler-cli` from 18.2.13 to 18.2.14
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.14/packages/compiler-cli)

Updates `@ngtools/webpack` from 18.2.20 to 18.2.21
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.20...18.2.21)

---
updated-dependencies:
- dependency-name: "@angular/animations"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/common"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/compiler"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/core"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/forms"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/localize"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/platform-browser"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/platform-browser-dynamic"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/platform-server"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/router"
  dependency-version: 18.2.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/ssr"
  dependency-version: 18.2.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-devkit/build-angular"
  dependency-version: 18.2.21
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-version: 18.2.21
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/compiler-cli"
  dependency-version: 18.2.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@ngtools/webpack"
  dependency-version: 18.2.21
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 20:42:13 +00:00
Tim Donohue
27a1bfc6b1 Merge pull request #4738 from alanorth/unused-dependencies
Remove unused dependencies
2025-10-01 15:31:03 -05:00
Alan Orth
2b0cc82b12 package-lock.json: run npm install 2025-10-01 07:35:54 +03:00
Tim Donohue
eef6d953e3 Merge pull request #4733 from danielcoelhocgu/fix-2315
SSR: avoid sending new response when headers were already sent
2025-09-30 16:25:34 -05:00
Alan Orth
0bcef2afa1 Remove unused @angular/language-service dependency 2025-09-29 11:36:30 +03:00
Alan Orth
a46e378ab6 Remove unused webpack-dev-server dependency 2025-09-29 11:35:16 +03:00
Alan Orth
053d8e29b1 Remove unused @babel/runtime dependency 2025-09-29 09:46:30 +03:00
Alan Orth
e3ccaa3ee0 Remove unused @ngrx/operators from dependencies 2025-09-29 09:44:50 +03:00
Daniel Coelho
951c5f69d4 SSR: avoid sending new response when headeras were already sent (fixes #2315) 2025-09-22 08:25:06 -03:00
kshepherd
dba2d7a1e2 Merge pull request #4728 from alanorth/collection-mapper-trash-icon
src/app: use correct icon in item mapper
2025-09-19 14:06:34 +02:00
Alan Orth
3a9eb87914 src/app: use correct icon in item mapper
When adding mappings in the item mapper we should use the save icon
rather than the trash icon!
2025-09-19 14:19:57 +03:00
Tim Donohue
80865efc2b Merge pull request #4639 from im-shubham-vish/fix-8918
Fix for #8916 #8917 #8918 The Community Administrator should not be able to view all communities/collections in the create/edit community and collection sections. Previous PR #9814
2025-09-12 16:21:37 -05:00
Tim Donohue
c7f2248e89 Merge pull request #4685 from DSpace/dependabot/npm_and_yarn/core-js-3.45.1
Bump core-js from 3.44.0 to 3.45.1
2025-09-12 14:06:06 -05:00
Tim Donohue
5e4e9841d7 Merge pull request #4683 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.28.4
Bump @babel/runtime from 7.28.2 to 7.28.4
2025-09-12 12:31:55 -05:00
Tim Donohue
7de87330d8 Merge pull request #4686 from DSpace/dependabot/npm_and_yarn/types/node-18.19.124
Bump @types/node from 18.19.121 to 18.19.124
2025-09-10 17:01:24 -05:00
Tim Donohue
8314661691 Merge pull request #4680 from DSpace/dependabot/npm_and_yarn/sass-2e0f0fb0cc
Bump sass from 1.89.2 to 1.92.1 in the sass group
2025-09-10 16:58:26 -05:00
Tim Donohue
26cf965560 Merge pull request #4684 from DSpace/dependabot/npm_and_yarn/isbot-5.1.30
Bump isbot from 5.1.29 to 5.1.30
2025-09-10 16:37:26 -05:00
Tim Donohue
c33bdaaad2 Merge pull request #4682 from DSpace/dependabot/npm_and_yarn/bootstrap-5.3.8
Bump bootstrap from 5.3.7 to 5.3.8
2025-09-10 16:29:23 -05:00
Tim Donohue
dc57a59e01 Merge pull request #4679 from DSpace/dependabot/npm_and_yarn/testing-c9201e7a88
Bump cypress-axe from 1.6.0 to 1.7.0 in the testing group
2025-09-10 15:56:43 -05:00
Tim Donohue
dc9137b998 Merge pull request #4634 from alanorth/server-setup
server.ts: remove port and host fallbacks in run
2025-09-10 14:35:16 -05:00
Tim Donohue
64e9f86741 Merge pull request #4636 from alanorth/banner-jpg-size
src/themes/dspace: rework banner image
2025-09-10 14:07:43 -05:00
dependabot[bot]
280b7660f2 Bump bootstrap from 5.3.7 to 5.3.8
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 5.3.7 to 5.3.8.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v5.3.7...v5.3.8)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-version: 5.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 17:24:43 +00:00
Tim Donohue
11ca474634 Merge pull request #4632 from alanorth/modern-node
Use several modern Node.js patterns
2025-09-10 12:23:15 -05:00
Tim Donohue
1193413ac2 Merge pull request #4673 from dspace-unimr/fix/replace-bootstrap3-col-xs-classes
Replaced removed col-xs-_ bootstrap 3 classes with the equivalent col-_ classes
2025-09-10 11:57:38 -05:00
Tim Donohue
b78b7c953e Merge pull request #4644 from jlipka/fix/form-control-container-unsubscribe
fix: call parent ngOnDestroy in dynamic form control container
2025-09-09 16:36:35 -05:00
im-shubham-vish
15d9cb0ea8 Fix Lint Error 2025-09-09 18:53:01 +05:30
im-shubham-vish
a26c718db4 Fix to set Edit Collection to utilize findAdminAuthorized instead of findSubmitAuthorized 2025-09-09 18:35:18 +05:30
im-shubham-vish
93d43bcbd7 Merge branch 'DSpace:main' into fix-8918 2025-09-09 11:15:56 +05:30
dependabot[bot]
26c0b5b842 Bump sass from 1.89.2 to 1.92.1 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.89.2 to 1.92.1
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.89.2...1.92.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.92.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 20:07:14 +00:00
dependabot[bot]
5562ee1780 Bump cypress-axe from 1.6.0 to 1.7.0 in the testing group
Bumps the testing group with 1 update: [cypress-axe](https://github.com/component-driven/cypress-axe).


Updates `cypress-axe` from 1.6.0 to 1.7.0
- [Release notes](https://github.com/component-driven/cypress-axe/releases)
- [Commits](https://github.com/component-driven/cypress-axe/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: cypress-axe
  dependency-version: 1.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 20:02:32 +00:00
dependabot[bot]
4e059862d0 Bump @types/node from 18.19.121 to 18.19.124
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.19.121 to 18.19.124.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 18.19.124
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 19:58:10 +00:00
dependabot[bot]
e41c1d088d Bump core-js from 3.44.0 to 3.45.1
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.44.0 to 3.45.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.45.1/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.45.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 19:57:29 +00:00
dependabot[bot]
a96ba40f48 Bump isbot from 5.1.29 to 5.1.30
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.29 to 5.1.30.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.29...v5.1.30)

---
updated-dependencies:
- dependency-name: isbot
  dependency-version: 5.1.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 19:57:15 +00:00
dependabot[bot]
f07f0481fd Bump @babel/runtime from 7.28.2 to 7.28.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.28.2 to 7.28.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.4/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.28.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 19:56:57 +00:00
Tim Donohue
9eadcea48a Update dependabot.yml. Remove security related settings as those automatically occur anyways. 2025-09-08 14:56:26 -05:00
Tim Donohue
265c08eaec Merge pull request #4520 from lareferencia/cookie-popup-html-tags
Fix: Remove HTML tags from cookie popup translations
2025-09-08 11:04:31 -05:00
Jesiel Viana
38b55006f5 Merge branch 'main' into cookie-popup-html-tags 2025-09-08 08:14:49 -03:00
Atmire-Kristof
bf24baf630 Clear url parameters for entity search tabs (#2734)
* 110878: Entity search - clear params on tab switch

* 110878: Properly clear browse-by values when navigating

* 132230: Related entity tab switching: only keep query & scope, reset page to 1

---------

Co-authored-by: Nona Luypaert <nona.luypaert@atmire.com>
2025-09-05 16:46:44 -05:00
Eike Martin Löhden
31a31b247d Replace col-xs-_ with the equivalent col-_. 2025-09-04 18:15:04 +02:00
Art Lowel
c48c4ad6c7 Merge pull request #4664 from kshepherd/split_dynamic_tags_on_keychars
Inspect event key characters, not keyCodes on tag keyUp for dynamic tag input
2025-09-04 16:45:45 +02:00
Tim Donohue
7c8486af57 Merge pull request #4628 from lareferencia/fix-untranslated-i18n-keys-ror-api
Fix untranslated i18n keys ror api
2025-09-03 15:56:13 -05:00
Kim Shepherd
98fc76d867 Create dynamic tag test events with key chars, not keyCodes 2025-08-30 17:27:20 +02:00
Kim Shepherd
f313b4a8fd Inspect event key characters, not keyCodes on tag keyUp 2025-08-30 17:06:41 +02:00
Tim Donohue
20cef9ceff Merge pull request #4633 from alanorth/dspace.org-http-links
Replace plaintext links to www.dspace.org
2025-08-28 14:57:31 -05:00
Alan Orth
287347b764 README.md: fix link to service providers 2025-08-28 06:25:33 +03:00
Alan Orth
0bdb8ec7f2 src/app/footer: use https for dspace.org link 2025-08-26 09:37:54 +03:00
Alan Orth
d9d43ef9c1 README.md: replace links to http://www.dspace.org 2025-08-26 09:37:39 +03:00
Tim Donohue
e6f9e8ca4b Merge pull request #4563 from pilasou/pilasou-translations-fr
Adding all missing french translations
2025-08-22 10:11:19 -05:00
kshepherd
f58ba039a2 Merge pull request #4642 from alexandrevryghem/restrict-map-bounds_contribute-main
Improved geospatial map bounds & scroll behaviour
2025-08-21 15:11:04 +02:00
Tim Donohue
59e477aa79 Merge pull request #4640 from alanorth/codeql-action-v3
.github/workflows/codescan.yml: use codeql-action v3
2025-08-20 16:08:42 -05:00
Tim Donohue
1761500330 Merge pull request #4635 from alanorth/github-template-dsdoc
Update GitHub template references to DSDOC9x
2025-08-20 13:38:48 -05:00
Jukka Lipka
4d803a58d4 fix: call parent ngOnDestroy in dynamic form control container 2025-08-20 08:37:16 +02:00
Pierre Lasou
e4dfcda009 Remove extra character
Remove extra ": line 1636
2025-08-19 12:57:30 -04:00
Alexandre Vryghem
643836addc Restricted map bounds 2025-08-18 18:37:48 +02:00
Alan Orth
3333ee4fbb .github/workflows/codescan.yml: use codeql-action v3
Version 2 was deprecated in January, 2024 after the release of v3.

See: https://github.blog/changelog/2025-01-10-code-scanning-codeql-action-v2-is-now-deprecated/
2025-08-17 12:01:52 +03:00
im-shubham-vish
5aab53e064 Fix for #8918 The Community Administrator should not be able to view all communities/collections in the create/edit community and collection sections 2025-08-14 17:12:54 +05:30
Alan Orth
d9e8fea5bf src/themes/dspace: rework banner image
For some reason our version of this image is twice the size of the
original (~860KiB vs 1.6MiB). To make matters worse, the dimensions
of the image are 4777x3166 pixels, but we display it at 2000 pixels
wide.

This regenerates the images based on the original and adjusts the
dimensions to be more appropriate. Generated using ImageMagick 7
on Linux:

$ magick pexels-inspiredimages-132477.jpg -resize 2000x src/themes/dspace/assets/images/banner.jpg
$ magick pexels-inspiredimages-132477.jpg -resize 2000x src/themes/dspace/assets/images/banner.webp
$ magick pexels-inspiredimages-132477.jpg -resize 1200x src/themes/dspace/assets/images/banner-half.jpg
$ magick pexels-inspiredimages-132477.jpg -resize 1200x src/themes/dspace/assets/images/banner-half.webp

See: https://www.pexels.com/photo/clear-water-drops-132477/
2025-08-11 10:02:19 +03:00
Alan Orth
b5fe301209 README.md: update DSDOC references to DSDOC9x 2025-08-10 12:03:47 +03:00
Alan Orth
a877cbe284 Fix references to DSDOC8x
The latest release is DSDOC9x.
2025-08-09 19:43:23 +03:00
Alan Orth
6c09677510 server.ts: remove port fallback
If a user has messed up their config so much that the fallbacks in
our default configuration interface don't work then we should just
fail here.
2025-08-09 19:25:28 +03:00
Alan Orth
f622d58917 server.ts: remove invalid host fallback
If `environment.ui.host` is Falsy, then we attempt to fall back to
a host value of '/', which is invalid. I think that, if a user has
messed up their config so much that defaults in our configuration
interface don't work, then we should actually fail here.
2025-08-09 19:23:51 +03:00
Alan Orth
4d7051007b Use native Node.js watch instead of nodemon
Modern Node.js can watch natively so we don't need nodemon anymore.
2025-08-09 11:35:18 +03:00
Alan Orth
2d31afb92f Remove axios dependency
We can use the Node.js Fetch API directly instead of relying on an
external dependency.
2025-08-09 11:35:11 +03:00
Alan Orth
af71c152c1 Use node: for Node.js builtin modules
Use the the `node:` protocol when importing Node.js builtin modules
and enable rule in eslint to enforce.

The `node:` protocol for Node.js builtin modules has been available
since Node.js v14.

See: https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/enforce-node-protocol-usage.md
2025-08-09 11:06:09 +03:00
Tim Donohue
77731af50d Merge pull request #4550 from lareferencia/fix-back-button-navigation-community-collection
fix back button navigation after visiting a community or collection page
2025-08-08 12:07:59 -05:00
Jesiel Viana
22baef689a fix code style 2025-08-06 17:55:49 -03:00
Jesiel Viana
14de56279f add in pt-BR file and remove form pt-PT 2025-08-06 17:40:57 -03:00
Jesiel Viana
b6bf862542 add untranslated i18n keys for ROR API 2025-08-06 17:37:56 -03:00
Tim Donohue
67a17e4ea1 Merge pull request #4386 from arvoConsultores/i18n-spanish-update
Spanish translation updated
2025-08-05 14:50:30 -05:00
Tim Donohue
b0d5430a4c Merge pull request #4623 from alanorth/webpack-pin
Update webpack and webpack-cli dependencies
2025-08-05 14:35:14 -05:00
Tim Donohue
18aafea9bc Merge pull request #4622 from alanorth/node-types
Update @types/node to ^18.11.9
2025-08-05 09:15:27 -05:00
Alan Orth
46e291d767 package.json: update webpack-cli to v6.0.1
Update webpack-cli from v5.1.4 to v6.0.1. This is compatible with
webpack v5 and the minimum required Node.js version is 18.12.0.

See: https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md
2025-08-05 11:12:09 +03:00
Alan Orth
24ca6442f6 package.json: use semver for webpack dependency
As far as I can tell dspace-angular doesn't explicitly need any
particular version of webpack itself, but angular-cli specifies
a semver string of `^5.54.0` so we should do the same.

Also, our dependabot configuration currently considers minor and
patch versions for updates, so we should not be using an exact
version here anyway.

See: https://github.com/angular/angular-cli/blob/18.2.x/packages/ngtools/webpack/package.json
2025-08-05 11:05:18 +03:00
Alan Orth
41282f064c Update @types/node to ^18.11.9
As of DSpace 10.0-SNAPSHOT we currently support Node.js v18 and v20
so we should be using appropriate types.
2025-08-05 09:48:00 +03:00
Tim Donohue
eaf11d5ffe Merge pull request #4453 from sh-habibi/main
Contribute to adding Persian translation to DSpace
2025-08-04 11:44:32 -05:00
Tim Donohue
4fa0c57e02 Add Persian language to default configs 2025-08-04 11:02:40 -05:00
Tim Donohue
c0ba94836f Merge pull request #4589 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.28.2
Bump @babel/runtime from 7.27.6 to 7.28.2
2025-08-01 10:46:36 -05:00
Tim Donohue
4f8724bb3e Merge pull request #4614 from DSpace/dependabot/npm_and_yarn/webpack-16f7f9f544
Bump the webpack group across 1 directory with 2 updates
2025-08-01 09:59:49 -05:00
dependabot[bot]
85066ac595 Bump the webpack group across 1 directory with 2 updates
Bumps the webpack group with 2 updates in the / directory: [webpack](https://github.com/webpack/webpack) and [webpack-dev-server](https://github.com/webpack/webpack-dev-server).


Updates `webpack` from 5.99.9 to 5.101.0
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.9...v5.101.0)

Updates `webpack-dev-server` from 5.2.1 to 5.2.2
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v5.2.1...v5.2.2)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.101.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: webpack
- dependency-name: webpack-dev-server
  dependency-version: 5.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-31 21:24:52 +00:00
Tim Donohue
fa58bc5da7 Merge pull request #4617 from tdonohue/refactor_dependabot_rules
[Dependabot] Move zone.js and typescript rules into "ignore" settings and ignore major/minor versions
2025-07-31 16:23:29 -05:00
Tim Donohue
9f8fd506f0 Move zone.js and typescript rules into "ignore" settings and ignore all major/minor versions 2025-07-31 16:09:42 -05:00
Tim Donohue
5015e68901 Merge pull request #4115 from atmire/w2p-129629_add-models-to-provide-core-list_contribute-main
129629: Add models to provide-core.ts and remove duplicates
2025-07-30 17:00:10 -05:00
Tim Donohue
45f7ea8f03 Merge pull request #4611 from DSpace/backport-4606-to-main
[Port main] [Dependabot] Bump webpack-dev-server from 4.15.2 to 5.2.1
2025-07-30 16:05:31 -05:00
dependabot[bot]
a1fb28a03f Bump webpack-dev-server from 4.15.2 to 5.2.1
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.15.2 to 5.2.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.15.2...v5.2.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-version: 5.2.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 8454a1cbe7)
2025-07-30 19:58:59 +00:00
Alan Orth
c1bd789180 Merge pull request #4610 from tdonohue/change_dependabot_schedule 2025-07-30 11:39:02 -07:00
Tim Donohue
2ee68323d5 Update dependabot to run monthly 2025-07-30 11:53:04 -05:00
Tim Donohue
3fc4cedb44 Merge pull request #4544 from DSpace/dependabot/npm_and_yarn/core-js-3.44.0
Bump core-js from 3.42.0 to 3.44.0
2025-07-30 11:42:38 -05:00
Tim Donohue
69655a5217 Merge pull request #4471 from DSpace/dependabot/npm_and_yarn/ngtools/webpack-18.2.20
Bump @ngtools/webpack from 18.2.19 to 18.2.20
2025-07-30 10:08:22 -05:00
Tim Donohue
7fafa8602c Merge pull request #4575 from DSpace/dependabot/npm_and_yarn/axios-1.11.0
Bump axios from 1.10.0 to 1.11.0
2025-07-30 09:59:26 -05:00
Tim Donohue
eddbe0eea5 Merge pull request #4344 from jlipka/fix/4327-encode-version-summary
fix(versioning): Encode summary
2025-07-30 09:20:49 -05:00
Shafi Habibi
a85f5c5d5c Update fa.json5 2025-07-30 17:29:25 +03:30
Shafi Habibi
c20de9eddf Update fa.json5 2025-07-30 17:17:19 +03:30
Alan Orth
4cfbe00dd1 Merge pull request #4597 from DSpace/dependabot/npm_and_yarn/isbot-5.1.29 2025-07-29 10:43:40 -07:00
dependabot[bot]
9bae9e2659 Bump isbot from 5.1.28 to 5.1.29
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.28 to 5.1.29.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.28...v5.1.29)

---
updated-dependencies:
- dependency-name: isbot
  dependency-version: 5.1.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-29 14:44:25 +00:00
Tim Donohue
813f9ba23f Merge pull request #4483 from alanorth/dependabot-typescript
.github/dependabot.yml: adjust rules for typescript
2025-07-29 09:28:54 -05:00
Tim Donohue
9555630ae0 Merge pull request #4482 from alanorth/ng-tools-dependabot
.github/dependabot.yml: group @ngtools/webpack with Angular
2025-07-29 09:26:22 -05:00
Alan Orth
4cd8544a43 .github/dependabot.yml: group @ngtools/webpack with Angular
@ngtools/webpack is provided by the Angular team and follows the
same versioning so we should group it with Angular in dependabot.
2025-07-28 21:53:09 -07:00
Alan Orth
460cef44c1 .github/dependabot.yml: adjust rules for typescript
Our package.json uses the "~" specifier to pin typescript to patch
versions so dependabot should not try to update minor versions here.
2025-07-28 21:48:20 -07:00
Tim Donohue
5c0580201f Merge pull request #4593 from tdonohue/remove_pgcryto_in_docker
[Docker] Remover references to obsolete backend "pgcrypto" images
2025-07-28 16:22:51 -05:00
Tim Donohue
1e4ee4fb0b Update Docker to no longer reference removed/replaced backend "pgcrypto" images. 2025-07-28 15:48:14 -05:00
Tim Donohue
38b641e577 Update package-lock.json to remove dependency that is no longer needed. This was an automated change by "npm install" 2025-07-28 09:22:35 -05:00
dependabot[bot]
45953931d9 Bump @babel/runtime from 7.27.6 to 7.28.2
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.27.6 to 7.28.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.2/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.28.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 07:43:55 +00:00
Alan Orth
0435802002 Merge pull request #4536 from lareferencia/fix-search-bar-empty-query-interaction 2025-07-24 10:58:43 -07:00
dependabot[bot]
b751b103b1 Bump axios from 1.10.0 to 1.11.0
Bumps [axios](https://github.com/axios/axios) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 16:52:33 +00:00
Tim Donohue
11fdc4ab39 Merge pull request #4568 from lareferencia/fix-subcommunity-current-parent-order
Fix current parent order when creating subcommunity
2025-07-23 10:41:55 -05:00
Jesiel Viana
44fcc7221b Fix current parent order when creating subcommunity 2025-07-23 09:18:40 -03:00
Tim Donohue
841a46c9a9 Merge tag 'dspace-7.6.5' 2025-07-22 16:12:32 -05:00
Tim Donohue
6967b84ddb Merge tag 'dspace-7.6.4' 2025-07-22 16:11:46 -05:00
Pierre Lasou
8c4e8f38bc Update to correct errors and duplicates 2025-07-22 12:23:06 -04:00
Alan Orth
4179519953 Merge pull request #4557 from DSpace/dependabot/npm_and_yarn/morgan-1.10.1 2025-07-21 21:31:24 -07:00
Alan Orth
dc6b317425 Merge pull request #4490 from DSpace/dependabot/npm_and_yarn/eslint-036d341c50 2025-07-21 21:08:52 -07:00
Alan Orth
ae15b2fa73 Merge pull request #4558 from DSpace/dependabot/npm_and_yarn/compression-1.8.1 2025-07-21 18:12:35 -07:00
Pierre Lasou
003a5f5ee8 Adding translation for all missing french translations
This commit is adding translations for all parameters that were tagged "// TODO New key - Add a translation" in fr.json5 file.
2025-07-21 13:22:36 -04:00
dependabot[bot]
a1aaf906ca Bump compression from 1.8.0 to 1.8.1
Bumps [compression](https://github.com/expressjs/compression) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/expressjs/compression/releases)
- [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/compression/compare/1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: compression
  dependency-version: 1.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 06:22:45 +00:00
dependabot[bot]
6f6cdc545f Bump morgan from 1.10.0 to 1.10.1
---
updated-dependencies:
- dependency-name: morgan
  dependency-version: 1.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 06:15:18 +00:00
dependabot[bot]
acf4a25eb2 Bump eslint-plugin-import from 2.31.0 to 2.32.0 in the eslint group
Bumps the eslint group with 1 update: [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import).


Updates `eslint-plugin-import` from 2.31.0 to 2.32.0
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-version: 2.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 05:17:54 +00:00
Tim Donohue
9c37858cfe Merge pull request #4552 from wwtamu/patch-1
Update legacy Bootstrap spacing class in object-list.component.html
2025-07-18 08:49:44 -05:00
wwtamu
3e6b8c0529 Update object-list.component.html refactoring bootstrap spacing class 2025-07-17 11:53:20 -05:00
Jesiel Viana
c7c1c0fc17 fix back button navigation after visiting a community or collection page 2025-07-16 08:02:44 -03:00
dependabot[bot]
5b808ff432 Bump core-js from 3.42.0 to 3.44.0
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.42.0 to 3.44.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.44.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 06:15:32 +00:00
Shafi Habibi
a078807fc0 Update fa.json5 2025-07-13 23:36:51 +03:30
Tim Donohue
addd1b04b1 Merge pull request #4487 from arvoConsultores/i18n-russian-translation
Russian translation
2025-07-10 16:08:45 -05:00
Tim Donohue
032381008e Enable Russian by default. Reorder alphabetical by language code 2025-07-10 16:06:26 -05:00
Shafi Habibi
69c33d7bca Update fa.json5 2025-07-10 23:02:32 +03:30
Tim Donohue
cfd6780b3d Merge pull request #4491 from DSpace/dependabot/npm_and_yarn/bootstrap-5.3.7
Bump bootstrap from 5.3.6 to 5.3.7
2025-07-09 08:57:10 -05:00
Sergio Fernández Celorio
f85042e0d6 Fixed lint errors 2025-07-09 11:02:15 +02:00
dependabot[bot]
a048e98f03 Bump bootstrap from 5.3.6 to 5.3.7
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 5.3.6 to 5.3.7.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v5.3.6...v5.3.7)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-version: 5.3.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-08 21:19:47 +00:00
Tim Donohue
2b9aea3798 Merge pull request #4460 from DSpace/dependabot/npm_and_yarn/angular-43581e9bed
Bump the angular group with 3 updates
2025-07-08 16:18:05 -05:00
Tim Donohue
c51fc63fbc Merge pull request #4538 from alexandrevryghem/bootstrap-issues_contribute-main
Migrated remaining bootstrap 4 classes & other minor css fixes
2025-07-08 15:26:56 -05:00
Shafi Habibi
57bed93f16 Update fa.json5 2025-07-08 23:46:36 +03:30
Alexandre Vryghem
a59dc5adb0 Merge branch 'bootstrap-issues_contribute-9.0' into bootstrap-issues_contribute-main 2025-07-08 18:40:30 +02:00
Alexandre Vryghem
e3b5405698 132007: Auto-fixed the ng generate @angular/core:control-flow issues 2025-07-08 12:51:31 +02:00
Alexandre Vryghem
1085c9812f Merge branch 'w2p-132350_minor-css-fixes_contribute-7.6' into bootstrap-issues_contribute-main 2025-07-08 12:46:05 +02:00
Alexandre Vryghem
b4d694e0c0 132007: Bootstrap fixes 2025-07-08 11:06:30 +02:00
Jesiel Viana
cf34198d54 fix empty search query after previous non-empty search 2025-07-07 15:10:03 -03:00
dependabot[bot]
321a05dbef Bump the angular group with 3 updates
Bumps the angular group with 3 updates: [@angular/ssr](https://github.com/angular/angular-cli), [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli).


Updates `@angular/ssr` from 18.2.19 to 18.2.20
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.19...18.2.20)

Updates `@angular-devkit/build-angular` from 18.2.19 to 18.2.20
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.19...18.2.20)

Updates `@angular/cli` from 18.2.19 to 18.2.20
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.19...18.2.20)

---
updated-dependencies:
- dependency-name: "@angular/ssr"
  dependency-version: 18.2.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-devkit/build-angular"
  dependency-version: 18.2.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-version: 18.2.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 06:01:50 +00:00
Tim Donohue
277154b4ed Merge pull request #4521 from rsaraivac/patch-5
Update pt-PT.json5
2025-07-02 15:38:31 -05:00
Ricardo Saraiva
d17f0a2a3d Update pt-PT.json5
Minor corretions and updates.
2025-07-02 09:16:41 +01:00
Tim Donohue
9c6bb828e8 Merge pull request #3819 from atmire/vocabulary-preloadlevel-fix-main
Vocabulary preloadlevel fix
2025-07-01 17:03:09 -05:00
Jesiel Viana
0b14bbcc0c fix merge 2025-07-01 12:24:14 -03:00
Tim Donohue
9f09c33a83 Merge pull request #4518 from tdonohue/port_4506_to_main
[Port main] Improve Hungarian translations in DSpace 9.0
2025-06-30 16:20:42 -05:00
Jesiel Viana
d5103bb16a remove hardcoded HTML tags from cookie popup translations 2025-06-30 17:59:21 -03:00
Zoltán Kanász-Nagy
1a80e2ea87 Improve Hungarian translations in DSpace 9.0 (#4506)
* QREPO-0 improving HU translations

* QREPO-0 improving HU translations

* QREPO-0 HU translations: grant-request-copy messages

* QREPO-0 improving HU translations

* QREPO-0 HU translation improvements

* QREPO-0 HU translation improvements

* QREPO-0 HU translation improvements

* QREPO-0 HU translation improvements

* QREPO-0 HU translations improvements

* QREPO-0 HU translation improvements

* QREPO-0 HU translation improvements

* QREPO-0 removing TODO comments

* QREPO-0 inserting some missing new lines

* QREPO-0 HU translation improvements
2025-06-30 14:38:46 -05:00
Alan Orth
9b72b1c36e Merge pull request #4489 from DSpace/dependabot/npm_and_yarn/postcss-bff535204e 2025-06-28 12:00:14 +03:00
Tim Donohue
f807f5ae77 Merge pull request #4291 from oscar-escire/Issue/3989
Improve community list e2e tests
2025-06-27 11:13:58 -05:00
Alexandre Vryghem
45934e31f2 132350: Fixed some SASS variables not being overridable in the themes
Also fixed the authority icons not being totally centered in the onebox submission fields
2025-06-25 11:51:58 +02:00
dependabot[bot]
b201661ce1 Bump postcss from 8.5.5 to 8.5.6 in the postcss group
Bumps the postcss group with 1 update: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.5.5 to 8.5.6
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.5...8.5.6)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: postcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 05:46:45 +00:00
Sergio Fernández Celorio
b6ee8dff9f Russian translation 2025-06-19 13:00:02 +02:00
Alan Orth
417f835b56 Merge pull request #4465 from DSpace/dependabot/npm_and_yarn/sass-63defccb8e 2025-06-17 08:34:54 +03:00
Alan Orth
fdb747537e Merge pull request #4470 from DSpace/dependabot/npm_and_yarn/postcss-ff1e1e588d 2025-06-17 08:34:18 +03:00
Alan Orth
ed2095a275 Merge pull request #4468 from DSpace/dependabot/npm_and_yarn/axios-1.10.0 2025-06-17 07:04:34 +03:00
dependabot[bot]
7beac7d568 Bump @ngtools/webpack from 18.2.19 to 18.2.20
Bumps [@ngtools/webpack](https://github.com/angular/angular-cli) from 18.2.19 to 18.2.20.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.19...18.2.20)

---
updated-dependencies:
- dependency-name: "@ngtools/webpack"
  dependency-version: 18.2.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 05:43:07 +00:00
dependabot[bot]
54f8dddc8c Bump postcss from 8.5.4 to 8.5.5 in the postcss group
Bumps the postcss group with 1 update: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.5.4 to 8.5.5
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.4...8.5.5)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: postcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 05:42:32 +00:00
dependabot[bot]
44e248d1df Bump axios from 1.9.0 to 1.10.0
Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.9.0...v1.10.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 05:41:45 +00:00
dependabot[bot]
03d7c5284e Bump sass from 1.89.1 to 1.89.2 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.89.1 to 1.89.2
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.89.1...1.89.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 05:40:58 +00:00
Alan Orth
aecfabbf93 Merge pull request #4389 from jlipka/fix/4346-delete-group-confirm-dialog
Confirmation dialog before deleting Group
2025-06-13 21:39:25 +03:00
Jukka Lipka
20510591e4 fix: add styles to confirmation modal
Words are forced to break if no more space available
2025-06-13 17:32:29 +02:00
Jukka Lipka
55d2f0ce38 fix: cleanup / unnecessary changes reverted 2025-06-13 17:22:16 +02:00
Jukka Lipka
137bbc35bd fix: added translations 2025-06-13 17:22:16 +02:00
Jukka Lipka
57bf254bec fix: confirm dialog for group deletion
Introduced a confirmation modal before deleting groups in both the Group Registry and Comcol Role components. This ensures users explicitly confirm deletion, reducing accidental data loss. Updated relevant tests and added new translations for modal text.
2025-06-13 17:22:15 +02:00
Shafi Habibi
d72a02137a Update fa.json5 2025-06-12 21:24:45 +03:30
kshepherd
db81d5ec42 Merge pull request #4448 from ybnd/defer-geospatial-map-components_9.x
Lazy-load geospatial map code
2025-06-12 19:17:45 +02:00
Tim Donohue
7c27392cda Merge pull request #4434 from the-library-code/fix_repeated_field_errors
Resolve field instance models using index when filtering errors
2025-06-12 11:40:25 -05:00
Yury Bondarenko
6c3bbf617c Remove unneeded platform checks 2025-06-12 17:55:05 +02:00
Yury Bondarenko
c147354ee1 Fix failing unit test
According to the Angular docs it should be possible to "trigger" the different states of the @defer block
https://angular.dev/guide/templates/defer#testing-defer-blocks
...but I wasn't able to get this example to work either.

This was the only case where we directly test an inner component's reflected inputs, so IMO it makes sense to "let it go".
2025-06-11 16:27:12 +02:00
Yury Bondarenko
343718d07b Defer geospatial map components 2025-06-11 14:28:37 +02:00
Alan Orth
37bd0fd904 Merge pull request #4445 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.27.6
Bump @babel/runtime from 7.27.4 to 7.27.6
2025-06-11 12:19:58 +03:00
dependabot[bot]
d9a9f0d837 Bump @babel/runtime from 7.27.4 to 7.27.6
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.27.4 to 7.27.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.6/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.27.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 06:28:09 +00:00
Alan Orth
00fc2a21f7 Merge pull request #4433 from DSpace/dependabot/npm_and_yarn/sass-d83863101d
Bump sass from 1.89.0 to 1.89.1 in the sass group
2025-06-05 08:52:43 +03:00
Kim Shepherd
d218e22944 Resolve field instance models using index when filtering errors 2025-06-04 19:11:41 +02:00
dependabot[bot]
e2159709f5 Bump sass from 1.89.0 to 1.89.1 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.89.0 to 1.89.1
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.89.0...1.89.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 13:50:19 +00:00
Tim Donohue
469c715751 Merge pull request #4424 from alanorth/dependabot-zone.js
.github/dependabot.yml: adjust rules for zone.js
2025-06-04 08:45:50 -05:00
Alan Orth
bc3d8399dd Merge pull request #4076 from saschaszott/saschaszott-patch-12
fix typo in German translation of bitstream.edit.form.description.hint
2025-06-04 12:45:53 +03:00
Alan Orth
c838b4298c .github/dependabot.yml: adjust rules for zone.js
As @angular/core uses the "~" specifier to pin zone.js to a patch
version,dependabot should not try to update minor versions here.

See: https://github.com/angular/angular/blob/18.2.x/packages/core/package.json
2025-06-04 09:48:31 +03:00
Alan Orth
0ec98a576a Merge pull request #4406 from DSpace/dependabot/npm_and_yarn/postcss-3f4fa9ea8d
Bump postcss from 8.5.3 to 8.5.4 in the postcss group
2025-06-03 09:09:26 +03:00
Alan Orth
3d16975020 Merge pull request #4414 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.27.4
Bump @babel/runtime from 7.27.3 to 7.27.4
2025-06-03 09:05:03 +03:00
Tim Donohue
aa9c8bab1d Merge pull request #4362 from GauravD2t/translation_hindi_gu_ma
add Gujarati(gu) and marathi(mr) json5 file
2025-06-02 12:13:32 -05:00
dependabot[bot]
df6f52f85c Bump @babel/runtime from 7.27.3 to 7.27.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.27.3 to 7.27.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.4/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.27.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 06:48:21 +00:00
dependabot[bot]
22c7662506 Bump postcss from 8.5.3 to 8.5.4 in the postcss group
Bumps the postcss group with 1 update: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.5.3 to 8.5.4
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.3...8.5.4)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: postcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 06:37:52 +00:00
Shafi Habibi
366d0e1aad Update fa.json5 2025-05-31 21:32:23 +03:30
Tim Donohue
ce2b52ba43 Merge pull request #4377 from DSpace/dependabot/npm_and_yarn/testing-ff22ddd0c9
Bump ng-mocks from 14.13.4 to 14.13.5 in the testing group
2025-05-29 08:50:04 -05:00
gaurav patel
a2c53c6b8a Merge branch 'DSpace:main' into translation_hindi_gu_ma 2025-05-29 16:46:30 +05:30
Alan Orth
a9c50c19e3 Merge pull request #2774 from saschaszott/patch-15
German translation improvements in cookie consent dialog
2025-05-29 08:53:32 +03:00
Alan Orth
cea455e316 Merge pull request #4395 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.27.3
Bump @babel/runtime from 7.27.1 to 7.27.3
2025-05-29 08:42:05 +03:00
Tim Donohue
7d1cf1d01c Merge pull request #4378 from DSpace/dependabot/npm_and_yarn/webpack-51a062295f
Bump webpack from 5.99.8 to 5.99.9 in the webpack group
2025-05-28 15:50:11 -05:00
dependabot[bot]
c9aef54eeb Bump webpack from 5.99.8 to 5.99.9 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.99.8 to 5.99.9
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.8...v5.99.9)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 18:34:08 +00:00
dependabot[bot]
51d1a558fa Bump @babel/runtime from 7.27.1 to 7.27.3
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.27.1 to 7.27.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.3/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.27.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 18:29:32 +00:00
dependabot[bot]
9d48aab127 Bump ng-mocks from 14.13.4 to 14.13.5 in the testing group
Bumps the testing group with 1 update: [ng-mocks](https://github.com/help-me-mom/ng-mocks).


Updates `ng-mocks` from 14.13.4 to 14.13.5
- [Release notes](https://github.com/help-me-mom/ng-mocks/releases)
- [Changelog](https://github.com/help-me-mom/ng-mocks/blob/master/CHANGELOG.md)
- [Commits](https://github.com/help-me-mom/ng-mocks/compare/v14.13.4...v14.13.5)

---
updated-dependencies:
- dependency-name: ng-mocks
  dependency-version: 14.13.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 18:27:37 +00:00
Tim Donohue
e24fd0eea0 Merge pull request #4392 from tdonohue/dependabot_for_9x
Add dependabot configuration for dspace-9_x.
2025-05-28 13:00:19 -05:00
Tim Donohue
ee95cbfaef Add dependabot configuration for dspace-9_x. Set a specific time for each to run so that they run together as much as possible. 2025-05-28 11:44:34 -05:00
Shafi Habibi
3fb1e77001 Update fa.json5 2025-05-27 12:54:23 +03:30
Sergio Fernández Celorio
36ca66c09a Fixed some errors 2025-05-26 11:06:25 +02:00
Sergio Fernández Celorio
5530ba9a0d Spanish translation updated 2025-05-26 10:54:59 +02:00
gaurav patel
5ac8dc13ac Rename Gu.json5 to gu.json5 2025-05-26 10:11:16 +05:30
gauravd2t
ce34bd271d change file name 2025-05-26 10:09:18 +05:30
gaurav patel
81152ef506 Merge branch 'DSpace:main' into translation_hindi_gu_ma 2025-05-26 10:06:24 +05:30
Shafi Habibi
4f7dfbe5ff Update fa.json5 2025-05-24 19:38:26 +03:30
Tim Donohue
c15831191f Update homepage header/description for DSpace 10 2025-05-23 12:37:13 -05:00
Tim Donohue
0a2db167ff Update version tag for development of next major release 2025-05-23 11:21:17 -05:00
Tim Donohue
d87b83f9e9 Update version tag for development of next release 2025-05-23 11:06:00 -05:00
Tim Donohue
bcc437d029 Update version tag for release 2025-05-23 11:00:57 -05:00
Shafi Habibi
e28f24ff15 Update fa.json5 2025-05-23 08:48:45 +03:30
Shafi Habibi
43e6b3b54a Update fa.json5 2025-05-23 08:19:22 +03:30
Shafi Habibi
1af8be2bdb Update fa.json5 2025-05-23 08:17:50 +03:30
Shafi Habibi
8a10866dce Update fa.json5 2025-05-23 08:08:03 +03:30
Shafi Habibi
27a1dfff6d Update fa.json5 2025-05-23 08:00:36 +03:30
Shafi Habibi
c2b7e7b0b8 Create fa.json5
Persian language
2025-05-23 07:55:46 +03:30
Tim Donohue
269404cb4f Merge pull request #4367 from tdonohue/sync_i18n
Sync all i18n files with en.json5 for 9.0 release
2025-05-22 14:56:02 -05:00
Tim Donohue
120817f5f4 Sync all i18n files with en.json5 2025-05-22 14:14:17 -05:00
Tim Donohue
c8a136f0d5 Merge pull request #4364 from tdonohue/fix_typo
Remove stray comma from `config.example.yml` which makes example config invalid
2025-05-22 12:04:52 -05:00
Tim Donohue
bcd2081ee3 Remove stray comma 2025-05-22 10:36:44 -05:00
gaurav patel
b1a2008873 Merge branch 'DSpace:main' into translation_hindi_gu_ma 2025-05-22 13:20:14 +05:30
gauravd2t
dade46ca79 add Gujarati and marathi json5 file 2025-05-22 10:26:25 +05:30
Tim Donohue
e623b68d91 Merge pull request #4359 from GauravD2t/translation_hindi_gu_ma
Re-translated Hindi(hi) language labels
2025-05-21 16:01:55 -05:00
Tim Donohue
814b411192 Merge pull request #4360 from the-library-code/fix_submission_section_enabling
Fix and simplify submission section 'enabled' logic
2025-05-21 15:12:54 -05:00
Kim Shepherd
f77dfa37da Fix and simplify submission section 'enabled' logic
Fixes cases where a section needs to be disabled on save/init
because it is empty and non-mandatory
2025-05-21 19:29:08 +02:00
gauravd2t
04964787fa Trailing spaces not allowed 2025-05-21 13:25:25 +05:30
gauravd2t
20748d2f64 remove Trailing spaces and Expected indentation of 2 2025-05-21 12:50:33 +05:30
gauravd2t
b5a29fa400 change hindi translation label 2025-05-21 10:48:13 +05:30
Tim Donohue
2fffda3a28 Merge pull request #4351 from DSpace/dependabot/npm_and_yarn/eslint-1ccb09f07e
Bump eslint-plugin-jsonc from 2.20.0 to 2.20.1 in the eslint group
2025-05-19 11:07:27 -05:00
Tim Donohue
537fb4bfda Merge pull request #4352 from DSpace/dependabot/npm_and_yarn/sass-5219375de9
Bump sass from 1.88.0 to 1.89.0 in the sass group
2025-05-19 11:05:16 -05:00
Tim Donohue
4ab895f821 Merge pull request #4353 from DSpace/dependabot/npm_and_yarn/isbot-5.1.28
Bump isbot from 5.1.27 to 5.1.28
2025-05-19 10:23:00 -05:00
dependabot[bot]
880b9e4130 Bump isbot from 5.1.27 to 5.1.28
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.27 to 5.1.28.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.27...v5.1.28)

---
updated-dependencies:
- dependency-name: isbot
  dependency-version: 5.1.28
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 02:50:08 +00:00
dependabot[bot]
d965968fc9 Bump sass from 1.88.0 to 1.89.0 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.88.0 to 1.89.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.88.0...1.89.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 02:44:15 +00:00
dependabot[bot]
3f02846fed Bump eslint-plugin-jsonc from 2.20.0 to 2.20.1 in the eslint group
Bumps the eslint group with 1 update: [eslint-plugin-jsonc](https://github.com/ota-meshi/eslint-plugin-jsonc).


Updates `eslint-plugin-jsonc` from 2.20.0 to 2.20.1
- [Release notes](https://github.com/ota-meshi/eslint-plugin-jsonc/releases)
- [Changelog](https://github.com/ota-meshi/eslint-plugin-jsonc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/eslint-plugin-jsonc/compare/v2.20.0...v2.20.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsonc
  dependency-version: 2.20.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 02:43:17 +00:00
Tim Donohue
a36e085920 Merge pull request #3390 from alexandrevryghem/w2p-117616_ported-custom-atmire-eslint-rules
Enforce DSpace-specific coding conventions
2025-05-16 16:03:49 -05:00
Alexandre Vryghem
443809f3b2 117616: Disabled unstable linting rules 2025-05-16 21:52:22 +02:00
Alexandre Vryghem
e1f3cc09cb 117616: Auto-fixed new linting rules 2025-05-16 18:21:05 +02:00
Alexandre Vryghem
f14cd51678 117616: Allow CallExpressions like forwardRef in the standalone imports array as well 2025-05-16 18:13:51 +02:00
Alexandre Vryghem
f0a00aca95 117616: Added support to alias-import to disallow aliasing certain imports 2025-05-16 18:13:51 +02:00
Alexandre Vryghem
aed0460cfe 117616: Created custom sort-standalone-imports rule 2025-05-16 18:13:51 +02:00
Alexandre Vryghem
6017537107 117616: Fixed unique-decorators rule not working in IntelliJ because the decorator calls were registered every time the file was updated 2025-05-16 18:13:50 +02:00
Alexandre Vryghem
c6657b5f9b 117616: Added default options in .eslintrc.json
Also enforced the trailing commas rule in .editorconfig for IntelliJ
2025-05-16 18:13:50 +02:00
Alexandre Vryghem
2d8fada3c4 117616: Created documentation for the custom lint options 2025-05-16 18:13:50 +02:00
Alexandre Vryghem
eb0572640b 117616: Ported themed-decorators rule 2025-05-16 18:13:50 +02:00
Alexandre Vryghem
598471913e 117616: Fixed unique-decorators rule to work across multiple files
Also moved the logic to filter out unwanted decorators to the ESLint's selector and fixed a typo
2025-05-16 18:13:50 +02:00
Yury Bondarenko
8ff5a23c40 117616: Fix rule creator call & add structure test case 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
01c8c60624 117616: Ported unique-decorators rule 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
4200357100 117616: Ported themed-wrapper-no-input-defaults rule 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
39fec7ce64 117616: Replace all the usages of the import 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
f10447b8d3 117616: Fixed alias-imports edge case where duplicate imports with different aliases were both kept 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
abb03799e0 117616: Ported alias-imports rule 2025-05-16 18:13:48 +02:00
Tim Donohue
d4aedbbb51 Merge pull request #3613 from atmire/accessibility-settings-main
Accessibility settings page
2025-05-16 11:00:21 -05:00
Andreas Awouters
d1beb28de0 119602: Open tooltip to left of info icon 2025-05-16 17:10:40 +02:00
Andreas Awouters
e3152c94e0 119602: Align accessibility link with other footer links 2025-05-16 17:01:19 +02:00
Jukka Lipka
2dd870ea7e fix(versioning): encode summary
The reason for creating a new version is now encoded in the URL.
2025-05-16 09:15:40 +02:00
Andreas Awouters
e9b8b25da5 Merge remote-tracking branch 'dspace/main' into accessibility-settings-main
# Conflicts:
#	cypress/support/e2e.ts
#	src/app/core/auth/auth.service.ts
#	src/app/footer/footer.component.html
2025-05-16 08:21:14 +02:00
Tim Donohue
5cdc72ddbf Merge pull request #4341 from 4Science/task/main/CST-19327
Use ellipsis for truncatable parts
2025-05-15 14:55:31 -05:00
Tim Donohue
be3dbd604b Merge pull request #4340 from alexandrevryghem/w2p-130424_impossible-to-add-new-values-for-fields-without-qualifiers_contribute-main
Fix unqualified metadata field validation in Edit Metadata tab by sorting fields in validation request
2025-05-15 14:20:13 -05:00
Tim Donohue
f277832dc1 Merge pull request #4329 from 4Science/task/main/DURACOM-368
Enforce standalone components/directives/pipes via linting
2025-05-15 13:47:54 -05:00
Tim Donohue
ba3c43ac9a Merge pull request #3889 from 4Science/task/main/DURACOM-309_from-community-main
Add new orejime cookie for correlation-id header
2025-05-15 10:38:34 -05:00
Andrea Barbasso
520831bd33 [DURACOM-309] add new enableCookieConsentPopup property to config.example.yml 2025-05-15 16:22:26 +02:00
Andrea Barbasso
6703a07207 [CST-19327] use ellipsis for truncatable parts 2025-05-15 14:17:59 +02:00
Andrea Barbasso
056351ddfe [DURACOM-309] fix error occurring when preferences is undefined 2025-05-15 13:27:58 +02:00
Andrea Barbasso
87e4a33621 Merge branch 'main' into task/main/DURACOM-309_from-community-main
# Conflicts:
#	src/app/footer/footer.component.ts
2025-05-15 12:17:27 +02:00
Andrea Barbasso
9be8a87a57 [DURACOM-309] fix pipeline, remove cookie settings link from footer if popup is disabled 2025-05-15 11:21:07 +02:00
Alexandre Vryghem
15f96f3c82 Merge branch 'w2p-130424_impossible-to-add-new-values-for-fields-without-qualifiers_contribute-7.6' 2025-05-15 01:25:53 +02:00
Tim Donohue
98da22047a Merge pull request #4335 from alexandrevryghem/w2p-130479_fix-accessibility-issues-for-the-language-toggle-and-recent-submissions_contribute-main
Improve accessibility for screen readers
2025-05-14 16:41:03 -05:00
Andrea Barbasso
887bf0d266 [DURACOM-309] fix circular dependency 2025-05-14 17:43:12 +02:00
Andrea Barbasso
f1a1aebe33 [DURACOM-309] improve e2e pipeline, fix cookie issues 2025-05-14 17:12:13 +02:00
Tim Donohue
ebd69c04e8 Merge pull request #4317 from DSpace/dependabot/npm_and_yarn/sass-d0f2b75659
Bump sass from 1.87.0 to 1.88.0 in the sass group
2025-05-14 09:59:48 -05:00
Alexandre Vryghem
aba3a9439d 129964: Fixed the header role structure being invalid in the custom theme
- Replaced the menubar role from the parent of all the header buttons like lang switch, auth menu & help toggle with toolbar
- Replaced the remaining `<a>` buttons in the header with `<button>` to make them expandable with space
- Fixed accessibility issues flagged by axe DevTools in the user menu dropdown
2025-05-14 16:55:07 +02:00
Oscar Chacón
492023ce22 removed unnecessary class on name/span validation 2025-05-14 00:41:10 -06:00
dependabot[bot]
63c2ac0a96 Bump sass from 1.87.0 to 1.88.0 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.87.0 to 1.88.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.87.0...1.88.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.88.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 22:06:15 +00:00
Tim Donohue
96d2b66068 Merge pull request #4318 from DSpace/dependabot/npm_and_yarn/webpack-ab0e10ec03
Bump webpack from 5.99.7 to 5.99.8 in the webpack group
2025-05-13 17:04:45 -05:00
Tim Donohue
d32681bbe9 Merge pull request #4072 from rsaraivac/patch-4
Update pt-PT.json5
2025-05-13 16:53:58 -05:00
Tim Donohue
dfc1ecef25 Merge pull request #3373 from DanGastardelli/AdjustTextNotThumbnail
Adjust the font size of the 'No thumbnails available' text.
2025-05-13 16:41:04 -05:00
Tim Donohue
cef7cae573 Merge pull request #4060 from alexandrevryghem/w2p-127655_fix-submission-form-getting-stuck-in-loop_contribute-main
Fix infinite loading submission forms
2025-05-13 15:02:10 -05:00
Alexandre Vryghem
be85947fb6 Merge branch 'w2p-130479_fix-accessibility-issues-for-the-language-toggle-and-recent-submissions' 2025-05-13 20:28:00 +02:00
Ricardo Saraiva
8c8ff6189b Update pt-PT.json5
Lint correction.
2025-05-13 16:41:00 +01:00
Ricardo Saraiva
788f173066 Merge branch 'main' into patch-4 2025-05-13 16:29:45 +01:00
Tim Donohue
daaa8109d6 Merge pull request #4326 from tdonohue/test_for_error_codes
Add basic automated tests to ensure common HTTP Return Codes do not break
2025-05-13 09:35:43 -05:00
Andrea Barbasso
7ec20edbc0 [DURACOM-368] enforce standalone components/directives/pipes via linting 2025-05-13 15:22:07 +02:00
Tim Donohue
80c38f0c3d Add basic tests to our build to verify correct HTTP return codes for 301, 403, 404 and 500. 2025-05-12 16:46:48 -05:00
Tim Donohue
6a138eccc6 Merge pull request #4227 from 4Science/task/main/DURACOM-344
Remove `ssr.paths` configuration and replace with `ssr.excludePathPatterns` which excludes specific paths from SSR
2025-05-12 14:11:34 -05:00
Tim Donohue
1fe9065fca Merge pull request #4324 from 4Science/task/main/DURACOM-367
Fix matomo SSR error on bitstream download page
2025-05-12 12:17:59 -05:00
FrancescoMolinaro
c442d35505 [DURACOM-344] refactor solution to avoid double slashes 2025-05-12 17:34:07 +02:00
Tim Donohue
7da8f92b15 Merge pull request #4319 from DSpace/dependabot/npm_and_yarn/bootstrap-5.3.6
Bump bootstrap from 5.3.5 to 5.3.6
2025-05-12 10:14:05 -05:00
dependabot[bot]
de66aa294f Bump bootstrap from 5.3.5 to 5.3.6
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 5.3.5 to 5.3.6.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v5.3.5...v5.3.6)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-version: 5.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 02:16:17 +00:00
dependabot[bot]
5f53a7c966 Bump webpack from 5.99.7 to 5.99.8 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.99.7 to 5.99.8
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.7...v5.99.8)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 02:10:22 +00:00
Tim Donohue
6115e673cd Merge pull request #4316 from tdonohue/missing_i18n_labels
Add missing i18n labels, mostly for OpenAlex import of related Entities
2025-05-09 16:36:58 -05:00
Tim Donohue
5b18304e1c Merge pull request #3307 from alexandrevryghem/w2p-118157_entity-label-fix_contribute-main
Made the labels in edit relationships tab unique
2025-05-09 16:31:12 -05:00
Tim Donohue
a51cc5485c Merge pull request #4315 from pilasou/pilasou-translations-fr
Updates on the fr.json5
2025-05-09 16:20:38 -05:00
Tim Donohue
512d2e215f Add missing i18n labels, mostly for OpenAlex import of related Entities 2025-05-09 16:00:44 -05:00
Alexandre Vryghem
3adb81e2c6 118135: Added missing rioxx3 & openaire4 relationship labels 2025-05-09 22:55:22 +02:00
Pierre Lasou
0ae73c7131 Updates on the fr.json5
Random updates based on the "TODO New keys" tags.
2025-05-09 16:06:01 -04:00
Tim Donohue
9926121912 Merge pull request #4310 from lareferencia/fix-orcid-settings-layout
Fix layout of ORCID settings on profile page
2025-05-09 14:01:36 -05:00
Tim Donohue
c1524c0713 Merge pull request #3513 from 4Science/task/main/DSC-1966
Fix navbar wrapping on medium screens
2025-05-09 12:33:21 -05:00
Tim Donohue
dd4aa5ac80 Merge pull request #4311 from 4Science/task/main/DURACOM-363
Fixes wrong wiki reference on labels
2025-05-09 12:18:53 -05:00
Andrea Barbasso
a9dff09300 [DURACOM-363] Fixed wrong wiki reference on translation files 2025-05-09 17:57:40 +02:00
Andrea Barbasso
37cef0fbae [DURACOM-367] fix matomo SSR error on bitstream download page 2025-05-09 16:56:59 +02:00
Jesiel Viana
e28d212789 fix label width 2025-05-09 10:52:54 -03:00
Jesiel Viana
d5c9e694c3 Fix layout of ORCID settings on profile page 2025-05-09 10:46:26 -03:00
Tim Donohue
73bd0d67ea Merge pull request #4249 from atmire/fix-embargoed-thumbnails_contribute-9.0
Show restricted thumbnails to users with access rights
2025-05-08 15:12:36 -05:00
Andrea Barbasso
c0a5420e8b [DURACOM-309] add prod-e2e build script and use it for e2e tests 2025-05-08 12:20:10 +02:00
Art Lowel
bec91c5b8d Merge branch 'fix-embargoed-thumbnails_contribute-8.1' into fix-embargoed-thumbnails_contribute-9.0 2025-05-08 12:07:18 +02:00
Art Lowel
7a49802444 Merge branch 'fix-embargoed-thumbnails_contribute-8.1' into fix-embargoed-thumbnails_contribute-9.0 2025-05-08 12:02:43 +02:00
Tim Donohue
dec05e5cfe Merge pull request #4288 from 4Science/task/main/DURACOM-312
Bitstream upload failure during the workflow editing process when impersonating an editor
2025-05-07 16:41:58 -05:00
FrancescoMolinaro
4c9638150a [DURACOM-344] adapt patterns and example file, fix possible error from YAML 2025-05-07 15:25:08 +02:00
Art Lowel
b1191117fc Merge remote-tracking branch 'upstream/main' into fix-embargoed-thumbnails_contribute-9.0 2025-05-07 12:43:49 +02:00
Giuseppe Digilio
fd23044005 Merge branch 'main' into task/main/DSC-1966
# Conflicts:
#	src/themes/dspace/app/header/header.component.html
2025-05-07 11:18:37 +02:00
Tim Donohue
c2af23b3df Merge pull request #4293 from DSpace/dependabot/npm_and_yarn/core-js-3.42.0
Bump core-js from 3.41.0 to 3.42.0
2025-05-06 17:06:34 -05:00
Jesiel Viana
8757712905 Fix: Improve footer responsiveness and download button on the full item page (#4218)
* fix: footer and download button responsiveness

* Revert styling changes to the download button on the simple item page

* fix: for restrict bitstrream show only lock icon

* ix: display download icon consistently across all item pages

* fix embargo label responsiveness

* Recommit without json5 changes

* Recommit without json5 changes

* Recommit without json5 changes
2025-05-06 12:21:18 -05:00
Art Lowel
149feee93a wait for loading components to disappear before running a11y test 2025-05-06 17:06:37 +02:00
Tim Donohue
b15e9d74d6 Merge pull request #4304 from alexandrevryghem/w2p-117573_remove-observable-function-calls-from-template-main
Fixed broken Pagination of People/Groups on Edit Resource Policy page
2025-05-06 09:59:32 -05:00
Art Lowel
f5ce6301e0 Merge branch 'fix-embargoed-thumbnails_contribute-8.1' into fix-embargoed-thumbnails_contribute-9.0 2025-05-06 15:03:40 +02:00
Art Lowel
a84365996b Merge branch 'fix-embargoed-thumbnails_contribute-8.1' into fix-embargoed-thumbnails_contribute-9.0 2025-05-06 14:57:23 +02:00
Alexandre Vryghem
81fb2e1cbf Merge branch 'w2p-127655_fix-submission-form-getting-stuck-in-loop_contribute-7.6' 2025-05-06 14:35:20 +02:00
Andreas Awouters
25d6809e1c 119602: Update e2e cookieContent 2025-05-06 10:05:16 +02:00
Andreas Awouters
bcd9bfd607 Revert "click orejime popup accept after login"
This reverts commit 33062214da.
2025-05-06 10:03:07 +02:00
Andreas Awouters
3a419b733a Merge remote-tracking branch 'dspace/main' into accessibility-settings-main 2025-05-06 09:33:03 +02:00
Andrea Barbasso
ea265075c8 [DURACOM-309] disable orejime during e2e tests 2025-05-06 09:25:09 +02:00
Andrea Barbasso
d423f82324 [DURACOM-309] fix tests 2025-05-06 09:20:49 +02:00
Andrea Barbasso
79d03d0433 [DURACOM-309] fix issue after logging in 2025-05-06 09:19:45 +02:00
Andrea Barbasso
bc3d3e4129 [DURACOM-309] fix SSR build 2025-05-06 09:19:44 +02:00
Andrea Barbasso
9d3b298f1a [DURACOM-309] add new orejime cookie for correlation id 2025-05-06 09:19:12 +02:00
Alan Orth
0180b633e2 Merge pull request #4294 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.27.1
Bump @babel/runtime from 7.27.0 to 7.27.1
2025-05-06 07:56:14 +03:00
Alexandre Vryghem
f1444b6edb Merge branch 'w2p-117573_remove-observable-function-calls-from-template-7.6'
# Conflicts:
#	src/app/profile-page/profile-page-researcher-form/profile-page-researcher-form.component.html
#	src/app/shared/eperson-group-list/eperson-group-list.component.ts
2025-05-06 00:50:39 +02:00
Tim Donohue
052e1c39ab Merge pull request #4290 from alexandrevryghem/w2p-117573_remove-observable-function-calls-from-template-main
Removed observable function calls from template (part 2)
2025-05-05 14:32:25 -05:00
Tim Donohue
19d438040b Merge pull request #4289 from 4Science/task/main/DURACOM-326
[DURACOM-326] fix possible issue on missing value for eperson patch
2025-05-05 11:49:07 -05:00
Kristof De Langhe
4d74d2c6dc Merge branch 'w2p-127655_Fix-submission-infinite-loading-7.6' into w2p-127655_Fix-submission-infinite-loading-main 2025-05-05 13:31:21 +02:00
dependabot[bot]
e40a697dbd Bump @babel/runtime from 7.27.0 to 7.27.1
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.27.0 to 7.27.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.1/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.27.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 02:37:34 +00:00
dependabot[bot]
c3ba7ef51a Bump core-js from 3.41.0 to 3.42.0
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.41.0 to 3.42.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.42.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 02:31:25 +00:00
Alexandre Vryghem
6d7d3572a2 Merge branch 'w2p-118157_entity-label-fix_contribute-7.6' 2025-05-05 01:20:04 +02:00
Oscar Chacón
bcbbaabc76 Merge branch 'main' into Issue/3989
# Conflicts:
#	src/app/community-list-page/community-list/community-list.component.html
2025-05-02 16:59:10 -06:00
Oscar Chacón
a2dd3d185d improved community-list e2e tests 2025-05-02 16:57:40 -06:00
Tim Donohue
e7359a3fd2 Merge pull request #4246 from atmire/w2p-127705_cleanup-input-form-spacing_contribute-main
Reduce margins on input fields
2025-05-02 14:51:04 -05:00
Joran De Braekeleer
46a89533f0 127705: Update dynamic list to bootstrap 5 2025-05-02 20:22:12 +02:00
Alexandre Vryghem
f7b77a1c3f Merge branch 'main' 2025-05-02 18:01:33 +02:00
Alexandre Vryghem
2bdb996e1a Merge branch 'theme-fixes_contribute-7.6' 2025-05-02 17:53:02 +02:00
Alexandre Vryghem
56e45a9f08 117287: Fixed various layout issues
- The unthemed home news didn't stick to the header like the dspace theme
- Impersonate user button has additional margin
- Submission form loading icon is not translatable
- Create resource policy page doesn't have the correct heading
2025-05-02 17:51:44 +02:00
Alexandre Vryghem
6c1212de4e Merge branch 'w2p-117573_remove-observable-function-calls-from-template-7.6' 2025-05-02 17:07:56 +02:00
FrancescoMolinaro
b1c5460bbb [DURACOM-344] Adapt SSR page filtering mechanism to a not allowed list 2025-05-02 11:37:41 +02:00
Adamo
c68e5a181d [DURACOM-312] lint fix 2025-05-02 11:04:40 +02:00
Adamo
0574c8ed98 [DURACOM-312] set the X-On-Behalf-Of header with impersonatingID in FileUploader.
(cherry picked from commit 727bcdc2cb23ae7fcff1d9ddfa794f872f1d1b8c)
2025-05-02 10:30:19 +02:00
Adamo
70c6af3630 [DURACOM-312] set the newly created impersonatingID filed in UploaderOptions.
(cherry picked from commit c70fe184208805be8657d4373f50f193e2c6e85f)
2025-05-02 10:29:56 +02:00
Adamo
4b0ab8161f [DURACOM-312] updated UploaderOptions to include impersonatingID.
(cherry picked from commit 2c79be1456c753665e27b58563e56accc87b0383)
2025-05-02 10:29:30 +02:00
Tim Donohue
9a24fb2b64 Merge pull request #4244 from oscar-escire/Issue/4201
Keyboard 'tab' key navigation improved
2025-05-01 15:58:12 -05:00
Tim Donohue
df9c950f1f Merge pull request #4282 from guillermo2519/4195
Fixed Missing Tags in Import Popup from External Sources - 4220
2025-05-01 12:14:46 -05:00
Tim Donohue
af3d68ff71 Fix title tag to have quotes again 2025-05-01 11:20:31 -05:00
Tim Donohue
8c1f50b4d2 Merge pull request #4255 from DSpace/dependabot/npm_and_yarn/sass-f1c32079c7
Bump sass from 1.86.3 to 1.87.0 in the sass group
2025-05-01 10:02:28 -05:00
Tim Donohue
ca22bf327a Merge pull request #4257 from DSpace/dependabot/npm_and_yarn/axios-1.9.0
Bump axios from 1.8.4 to 1.9.0
2025-04-30 17:17:37 -05:00
Tim Donohue
5eda4db743 Merge pull request #4254 from DSpace/dependabot/npm_and_yarn/angular-27236e9c24
Bump the angular group with 3 updates
2025-04-30 17:02:06 -05:00
Tim Donohue
a41a2441df Merge pull request #4057 from saschaszott/saschaszott-patch-11
apply spellCheck configuration to input model
2025-04-30 13:38:19 -05:00
Tim Donohue
f44599a3c9 Merge pull request #4270 from oscar-escire/Issue/4204
fixed flash and translate problems on statistics
2025-04-30 11:40:14 -05:00
Tim Donohue
3370bda789 Merge pull request #4080 from atmire/themed-SubmissionComponents_contribute-main
Themed Submission Components
2025-04-30 09:55:45 -05:00
kshepherd
19078a18fc Merge pull request #4279 from atmire/w2p-130484_bitstreams-tables-keep-being-duplicated-9.0
Fix bitstream tables being duplicated
2025-04-30 16:50:51 +02:00
Andreas Awouters
f9b58ecd06 130484: Filter new bundles 2025-04-30 15:49:59 +02:00
FrancescoMolinaro
7b9cd73ee0 [DURACOM-326] fix possible issue on missing value for eperson patch 2025-04-30 14:51:42 +02:00
Andreas Awouters
41afcf9cf6 130484: Correctly update the 'showLoadMoreLink$' observable 2025-04-30 14:18:14 +02:00
Andreas Awouters
d3b48f4ea4 130484: Only add bundles when they are missing from the subject 2025-04-30 14:17:59 +02:00
Zahraa Chreim
0aea4a7666 127047: Remove unnecessary CSS variable from spec setup 2025-04-30 10:22:01 +02:00
guillermo2519
4c26359e29 Fixed Missing Tags in Import Popup from External Sources - 4220 2025-04-29 21:24:59 -06:00
Tim Donohue
5719f06dd1 Merge pull request #4273 from 4Science/task/main/DURACOM-354
Fix missing input fields for integer script parameters
2025-04-29 17:06:48 -05:00
Tim Donohue
67e91e370a Merge pull request #3888 from alexandrevryghem/w2p-119276_fixed-searchservice-returning-stale-requests_contribute-main
Fixed search page still returning stale data after invalidating a request
2025-04-29 13:57:44 -05:00
Tim Donohue
aacedd2db6 Merge pull request #3892 from atmire/w2p-119612_export-item-limit
UI warning for export item limit
2025-04-29 12:42:48 -05:00
Tim Donohue
ea6f640820 Merge pull request #4276 from 4Science/task/main/DURACOM-226
Fix submission footer wrapping on medium screens
2025-04-29 12:21:27 -05:00
Andrea Barbasso
00143d29e7 [DURACOM-354] fix missing input fields for integer script parameters 2025-04-29 16:45:44 +02:00
Tim Donohue
f16a03e226 Merge pull request #4217 from kshepherd/rss-sort-link-fix
Several fixes to RSS component and object lists
2025-04-29 08:58:47 -05:00
Andrea Barbasso
ad7aa36f88 [DURACOM-226] fix submission footer wrapping on medium screens 2025-04-29 15:48:30 +02:00
Jens Vannerum
6232d4e9cf 119612: fix spec test 2025-04-29 12:20:25 +02:00
Jens Vannerum
a6c14e50c2 Merge remote-tracking branch 'origin/main' into w2p-119612_export-item-limit 2025-04-29 10:54:22 +02:00
Oscar Chacón
3c1d514807 fixed flash and translate problems on statistics 2025-04-28 23:42:38 -06:00
Kim Shepherd
6cd88ec57b [#4172] Remove unused RSS import from RecentItemListComponent 2025-04-28 22:46:36 +02:00
Tim Donohue
28f865eb2e Merge pull request #4269 from 4Science/task/main/DURACOM-359
Fix matomo downloading its .js even if it's disabled
2025-04-28 11:29:56 -05:00
Tim Donohue
f107573bc1 Merge pull request #4225 from 4Science/task/main/DURACOM-353
[DURACOM-353] fix orejime callbacks
2025-04-28 11:22:36 -05:00
Kristof De Langhe
557879941b Merge branch 'w2p-127655_Fix-submission-infinite-loading-7.6' into w2p-127655_Fix-submission-infinite-loading-main 2025-04-28 17:49:11 +02:00
dependabot[bot]
62822ade31 Bump the angular group with 3 updates
Bumps the angular group with 3 updates: [@angular/ssr](https://github.com/angular/angular-cli), [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli).


Updates `@angular/ssr` from 18.2.18 to 18.2.19
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.18...18.2.19)

Updates `@angular-devkit/build-angular` from 18.2.18 to 18.2.19
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.18...18.2.19)

Updates `@angular/cli` from 18.2.18 to 18.2.19
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.18...18.2.19)

---
updated-dependencies:
- dependency-name: "@angular/ssr"
  dependency-version: 18.2.19
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-devkit/build-angular"
  dependency-version: 18.2.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-version: 18.2.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 15:30:33 +00:00
dependabot[bot]
a16f1e8248 Bump sass from 1.86.3 to 1.87.0 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.86.3 to 1.87.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.3...1.87.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.87.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 15:27:45 +00:00
Tim Donohue
b123e86760 Merge pull request #4262 from DSpace/dependabot/npm_and_yarn/ngtools/webpack-18.2.19
Bump @ngtools/webpack from 18.2.18 to 18.2.19
2025-04-28 10:18:00 -05:00
Tim Donohue
d664f1f94a Merge pull request #4256 from DSpace/dependabot/npm_and_yarn/webpack-cee3a23860
Bump webpack from 5.99.6 to 5.99.7 in the webpack group
2025-04-28 10:17:30 -05:00
Tim Donohue
0b02dbbb67 Merge pull request #4261 from DSpace/dependabot/npm_and_yarn/isbot-5.1.27
Bump isbot from 5.1.26 to 5.1.27
2025-04-28 10:15:59 -05:00
Andrea Barbasso
16e4ae5583 Merge branch 'main' into task/main/DSC-1966
# Conflicts:
#	src/themes/dspace/app/header/header.component.html
#	src/themes/dspace/app/navbar/navbar.component.html
2025-04-28 17:04:32 +02:00
Andrea Barbasso
cace253d8b [DURACOM-359] fix matomo downloading its .js even if it's disabled 2025-04-28 16:15:10 +02:00
Kim Shepherd
97a4c3c0c0 [#4172] Disable manual ds-rss display in recent items comp
This can be added in easily with:
`      <ds-rss [sortConfig]="sortConfig"></ds-rss>`
2025-04-28 15:37:55 +02:00
Kim Shepherd
72a050c7ae [#4172] Shift enableRSS route data for coll and comm routes
app-routes previously set this but it now needs to be
set in collection-page-routes and community-page-routes
respectively.
2025-04-28 15:31:31 +02:00
Kristof De Langhe
9dc96e7b33 Merge branch 'main' into w2p-127655_Fix-submission-infinite-loading-main 2025-04-28 15:19:50 +02:00
Andrea Barbasso
33d75cf217 [DURACOM-353] fix error in SSR 2025-04-28 14:16:13 +02:00
Ricardo Saraiva
c5d203bbd6 Merge branch 'main' into patch-4 2025-04-28 09:15:58 +01:00
dependabot[bot]
e4d53eddcc Bump @ngtools/webpack from 18.2.18 to 18.2.19
Bumps [@ngtools/webpack](https://github.com/angular/angular-cli) from 18.2.18 to 18.2.19.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.18...18.2.19)

---
updated-dependencies:
- dependency-name: "@ngtools/webpack"
  dependency-version: 18.2.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 02:49:37 +00:00
dependabot[bot]
25f474386b Bump isbot from 5.1.26 to 5.1.27
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.26 to 5.1.27.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.26...v5.1.27)

---
updated-dependencies:
- dependency-name: isbot
  dependency-version: 5.1.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 02:49:17 +00:00
dependabot[bot]
3d8951db18 Bump axios from 1.8.4 to 1.9.0
Bumps [axios](https://github.com/axios/axios) from 1.8.4 to 1.9.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.8.4...v1.9.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 02:43:22 +00:00
dependabot[bot]
d6875117b0 Bump webpack from 5.99.6 to 5.99.7 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.99.6 to 5.99.7
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.6...v5.99.7)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 02:43:08 +00:00
Alexandre Vryghem
b64f69105e Merge branch 'main' into w2p-119276_fixed-searchservice-returning-stale-requests_contribute-main 2025-04-26 14:47:58 +02:00
Tim Donohue
353d660f23 Merge pull request #4212 from jesielviana/fix-bitstream-unable-to-change-format
Fix: prevent bitstream format cache issue by disabling cached version
2025-04-25 16:42:42 -05:00
Art Lowel
80dd89da56 switch to signals 2025-04-25 18:13:46 +02:00
Art Lowel
fa96c8c5ab Merge branch 'fix-embargoed-thumbnails_contribute-8.1' 2025-04-25 17:58:06 +02:00
Tim Donohue
ff3784ab5f Merge pull request #4243 from atmire/w2p-130405_missing-labels-in-journal-volume-search-results_contribute-main
Add translation keys for journal submission volume lookup
2025-04-25 10:31:22 -05:00
Tim Donohue
8d26b1509f Merge pull request #4192 from alanorth/no-proper-noun
Adjust unnecessary capitalization in English i18n strings
2025-04-25 10:05:02 -05:00
Joran De Braekeleer
b00f489d09 127705: Reduce margins on input fields 2025-04-25 10:00:35 +02:00
Oscar Chacón
4e5b344ce8 hotfix: e2e accessibility tests 2025-04-24 17:11:54 -06:00
Tim Donohue
b1f0ed201a Merge pull request #4234 from 4Science/task/main/DURACOM-350
[DURACOM-350] fix cache issue after mydspace action
2025-04-24 15:07:06 -05:00
Oscar Chacón
f8cfb74555 tab navigation improved 2025-04-24 13:29:01 -06:00
Kim Shepherd
e3c6ad807b #4172 Remove unneeded SearchService from RSS 2025-04-24 16:18:41 +02:00
Tim Donohue
818f60b4d7 Merge pull request #4242 from dataquest-dev/cs-translation-thumbnail-more-accurate
Fix the last update to the Czech Translation
2025-04-24 08:48:53 -05:00
Kim Shepherd
6f878e5c4a #4172 Better boolean comparison of showRSS test 2025-04-24 15:24:58 +02:00
Kim Shepherd
3a347d83b5 #4172 Allow SortOptions override to showRSS input
If a valid, complete SortOptions is passed to
the pagination component showRSS, it will be
used instead of the underlying sortOptions,
otherwise the pagination context sortOptions
will be used.
2025-04-24 15:24:58 +02:00
Kim Shepherd
b89a626ffc #4172 Several fixes to RSS component and object lists
* RSS button displayed on search result pages
* RSS button displayed on Recent Items component
* RSS button NOT displayed in other components
  like top-level community, etc.
* RSS component tracks sort option changes
2025-04-24 15:24:58 +02:00
Joran De Braekeleer
fef16bca14 130405: Add translations for journal submission volume lookup 2025-04-24 15:15:29 +02:00
Jesiel Viana
bb536192c2 fix unit tests for bitstream-data.service.ts 2025-04-24 10:04:41 -03:00
milanmajchrak
00d7e1f97c Use more accurate czech translation for the thumbnail.default.placeholder 2025-04-24 14:56:21 +02:00
Jesiel Viana
4f48f39f7b fix: invalidate cache only for the modified bitstream 2025-04-24 07:43:05 -03:00
FrancescoMolinaro
7998d2d8b9 [DURACOM-350] Fix filter skeleton missing update 2025-04-24 09:28:29 +02:00
Tim Donohue
5fc83782b1 Merge pull request #4231 from atmire/4099-duplicate-view-events_contibute-main
Fix for double view events when using dynamic themes
2025-04-23 16:57:49 -05:00
Tim Donohue
7269f6c36a Merge pull request #4236 from DSpace/backport-4167-to-main
[Port main] Fix unable to remove data from a submission form field of type "name"
2025-04-23 13:44:28 -05:00
abhinav
583bed6164 129621: Add a not empty check
This check is present in the other event handlers above so adding it here as well.

(cherry picked from commit 0b28789e4f)
2025-04-23 12:52:02 -05:00
Tim Donohue
056e923ae8 Merge pull request #4240 from tdonohue/update_solr_in_Docker
Update Docker Compose scripts for Solr 9 compatibility
2025-04-23 12:51:06 -05:00
Tim Donohue
856d701b3e Solr 9 compatibility requires minor updates to how Solr image is initialized 2025-04-23 12:07:46 -05:00
Tim Donohue
7845d37b2e Merge pull request #3968 from VictorDuranEscire/2567
Fix - previously entered qualdrop value field is deleted when adding a new (emtpy) line with the same(!) qualifier and then deleting it
2025-04-23 11:38:21 -05:00
FrancescoMolinaro
1b112dd887 [DURACOM-350] prevent unnecessary reload 2025-04-23 15:47:01 +02:00
FrancescoMolinaro
e84af6ab91 [DURACOM-350] fix cache issue after mydspace action 2025-04-23 15:07:00 +02:00
lotte
bde54ca6fa 129694: fixed lint issues 2025-04-22 18:32:51 +02:00
Andrea Barbasso
4b6ef50611 [DURACOM-353] fix orejime callbacks 2025-04-22 12:58:33 +02:00
lotte
8140ed29e7 129694: PoC #4099 solution with resolvers 2025-04-22 12:43:58 +02:00
Zahraa Chreim
d269d668e5 127047: Remove default value of collectionModifiable and Update overrideComponent to exclude themed components 2025-04-22 09:57:27 +03:00
Tim Donohue
b076738b53 Merge pull request #4219 from michdyk/patch-2
Full update pl translations and minor changes in cz and uk translations
2025-04-21 14:57:08 -05:00
Tim Donohue
09e6452a48 Merge pull request #4223 from DSpace/dependabot/npm_and_yarn/webpack-753b40408c
Bump webpack from 5.99.5 to 5.99.6 in the webpack group
2025-04-21 08:52:41 -05:00
dependabot[bot]
03bcdc37ce Bump webpack from 5.99.5 to 5.99.6 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.99.5 to 5.99.6
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.5...v5.99.6)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 03:17:20 +00:00
Michał Dykas
8734a07592 Corrected one indentation from pl.json5 2025-04-20 21:52:06 +02:00
Michał Dykas
548fbf54cf Corrected indentations for pl.json5 2025-04-20 21:44:51 +02:00
Michał Dykas
050c007e44 Minor change of commas in pl.json5 2025-04-20 21:28:12 +02:00
Michał Dykas
5346679880 Corrected minor comma/markdown mispellings from json validation for pl.json5 2025-04-20 11:57:44 +02:00
Michał Dykas
fad41b2ddf Added comments to pl.json5 2025-04-20 01:56:17 +02:00
Tim Donohue
fcac66caab Merge pull request #4183 from DSpace/dependabot/npm_and_yarn/bootstrap-5.3.5
Bump bootstrap from 5.3.3 to 5.3.5
2025-04-18 14:19:06 -05:00
Tim Donohue
11493914a7 Merge pull request #4216 from atmire/fix-untyped-item-display-in-edit-item-modal
fix untyped item display in edit item modal
2025-04-18 13:32:01 -05:00
Michał Dykas
e14ed8804c Added missing comma to pl.json5 2025-04-18 12:13:43 +02:00
Michał Dykas
8abd71ab73 Update uk.json5 2025-04-18 10:49:30 +02:00
Michał Dykas
41c4225c0f Update cs.json5 2025-04-18 10:48:18 +02:00
Michał Dykas
d8896f78b8 Update pl.json5 2025-04-18 10:46:01 +02:00
Michał Dykas
3d167acecb Update full translation to pl.json5 2025-04-18 10:37:41 +02:00
Tim Donohue
9b5d008d66 Merge pull request #4215 from pilasou/pilasou-translations-fr
Correct small typo in en.json5
2025-04-17 10:17:38 -05:00
Art Lowel
5ef0a57438 fix untyped item display in edit item modal 2025-04-17 16:57:01 +02:00
Pierre Lasou
f01ccbdae2 Correct typo
Correct type in the external-login.confirm-email-sent.info parameter
2025-04-17 10:32:03 -04:00
Jesiel Viana
6001652101 fix: prevent bitstream format cache issue by disabling cached version 2025-04-17 09:08:19 -03:00
Tim Donohue
6a49cdb54b Merge pull request #2317 from alanorth/eslint-json5
Update ESLint configuration for json5 files
2025-04-16 14:54:30 -05:00
Andreas Awouters
b9e2ec15ed Merge remote-tracking branch 'dspace/main' into accessibility-settings-main
# Conflicts:
#	config/config.example.yml
#	src/config/app-config.interface.ts
#	src/config/default-app-config.ts
#	src/environments/environment.test.ts
2025-04-16 10:56:51 +02:00
Alan Orth
9896eab6ac .eslintrc.json: remove second eslint-plugin-jsonc
This seems to have been added twice at some point.
2025-04-15 23:57:19 +03:00
Alan Orth
5e8571de80 .eslintrc.json: use jsonc/no-irregular-whitespace
The eslint-plugin-jsonc documentation recommends turning ESLint's
own no-irregular-whitespace plugin off for JSON files in favor of
its own jsonc/no-irregular-whitespace plugin.

See: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-irregular-whitespace.html
2025-04-15 23:55:43 +03:00
Ricardo Saraiva
452493a828 Update pt-PT.json5
Lint corrections.
2025-04-15 21:39:03 +01:00
Alan Orth
3a05733256 .eslintrc.json: use plugin:jsonc/recommended-with-json5
The eslint-plugin-jsonc has a recommended configuration for json5.

See: https://ota-meshi.github.io/eslint-plugin-jsonc/user-guide/#usage
2025-04-15 23:34:46 +03:00
Ricardo Saraiva
71d7a7b659 Update pt-PT.json5
Lint corrections.
2025-04-15 21:31:38 +01:00
Ricardo Saraiva
9f19b481cf Merge branch 'main' into patch-4 2025-04-15 20:48:02 +01:00
Tim Donohue
f95596ba02 Merge pull request #4184 from DSpace/dependabot/npm_and_yarn/http-proxy-middleware-2.0.9
Bump http-proxy-middleware from 2.0.7 to 2.0.9
2025-04-15 14:13:03 -05:00
dependabot[bot]
bd2b5d3bc0 Bump bootstrap from 5.3.3 to 5.3.5
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 5.3.3 to 5.3.5.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v5.3.3...v5.3.5)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-version: 5.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-15 19:05:14 +00:00
Tim Donohue
fd2e9a49ee Merge pull request #4117 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.27.0
Bump @babel/runtime from 7.26.0 to 7.27.0
2025-04-15 14:03:45 -05:00
dependabot[bot]
8f95d7b5b3 Bump @babel/runtime from 7.26.0 to 7.27.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.27.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-15 13:27:14 -05:00
Tim Donohue
67c2b33bb0 Merge pull request #4193 from jesielviana/add-tooltips-to-switch-view-buttons
Fix: adding tooltips to indicate functionality of buttons when switching views of search results
2025-04-15 12:24:24 -05:00
dependabot[bot]
237f183a18 Bump http-proxy-middleware from 2.0.7 to 2.0.9
Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.7 to 2.0.9.
- [Release notes](https://github.com/chimurai/http-proxy-middleware/releases)
- [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md)
- [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.7...v2.0.9)

---
updated-dependencies:
- dependency-name: http-proxy-middleware
  dependency-version: 2.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-15 15:24:52 +00:00
Tim Donohue
0d78cd57b3 Merge pull request #4185 from DSpace/dependabot/npm_and_yarn/isbot-5.1.26
Bump isbot from 5.1.25 to 5.1.26
2025-04-15 09:51:36 -05:00
Jesiel Viana
5bdf0974fc Adding tooltips to indicate functionality of buttons when switching views of search results 2025-04-15 10:03:49 -03:00
Zahraa Chreim
7864909466 127047: Fix selector of SubmissionSectionContainerComponent in custom theme 2025-04-15 12:03:25 +03:00
kshepherd
d3130bd433 Merge pull request #4189 from tdonohue/more_automated_ssr_tests
Add additional automated server-side rendering (SSR) tests for all Entity Types
2025-04-15 10:31:54 +02:00
Alan Orth
fd9d899574 src/assets/i18n: adjust English capitalization
We don't need to be capitalizing "Community" and "Collection" in
the user interface unless they are at the beginning of a sentence
or in a title, header, or bread crumb. They are not proper nouns
and they look out of place when capitalized.
2025-04-15 10:53:00 +03:00
Tim Donohue
42c52d619b Add additional automated SSR tests for Community, Collection, Publication/Item, Person, OrgUnit and all Journal entities 2025-04-14 14:37:49 -05:00
dependabot[bot]
ef57754e6d Bump isbot from 5.1.25 to 5.1.26
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.25 to 5.1.26.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.25...v5.1.26)

---
updated-dependencies:
- dependency-name: isbot
  dependency-version: 5.1.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 03:02:45 +00:00
Tim Donohue
0989e28c38 Merge pull request #4158 from DSpace/dependabot/npm_and_yarn/eslint-7904436953
Bump eslint-plugin-jsonc from 2.19.1 to 2.20.0 in the eslint group
2025-04-11 17:13:32 -05:00
Tim Donohue
051828ca74 Merge pull request #4159 from DSpace/dependabot/npm_and_yarn/webpack-0542bd02c8
Bump webpack from 5.98.0 to 5.99.5 in the webpack group
2025-04-11 15:02:17 -05:00
Tim Donohue
119a5dc5aa Merge pull request #4157 from DSpace/dependabot/npm_and_yarn/angular-177e8f1518
Bump the angular group with 3 updates
2025-04-11 15:01:39 -05:00
Tim Donohue
5e5c2ab6dd Merge pull request #4168 from atmire/fix-export-button_contribute-main
Fix export button enabled in bulk access management without selecting step 2
2025-04-11 14:43:25 -05:00
Tim Donohue
46831cb9e8 Merge pull request #4143 from atmire/w2p-130081_access-control-bitstreams-pagination-fix-main
Fix pagination on the "Select bitstreams" modal of the "Access Control" tab
2025-04-11 13:55:05 -05:00
Tim Donohue
956ed427e6 Merge pull request #4174 from atmire/fix-orejime-required-cookies
Fix issue where required cookies are removed by orejime
2025-04-11 12:31:51 -05:00
Tim Donohue
4d929dd3ac Merge pull request #4175 from saschaszott/saschaszott-patch-13
trivial change: fixed typo in description of trackSearch method
2025-04-11 11:32:42 -05:00
Tim Donohue
201d8db167 Merge pull request #4160 from arvoConsultores/DS-4097-main
[Port main] Store the state of the computed filters
2025-04-11 11:26:32 -05:00
Sascha Szott
a31ef383d9 fixed typo 2025-04-11 17:39:40 +02:00
Art Lowel
7b88ac84a5 fix issue where orejime would delete required cookies before the user clicks accept in the popup 2025-04-11 17:15:18 +02:00
abhinav
4b3b660354 Fix export button enabled in bulk access management without selecting step 2 2025-04-11 12:09:10 +02:00
Tim Donohue
0ff8ce9c25 Merge pull request #4109 from DSpace/dependabot/npm_and_yarn/axios-1.8.4
Bump axios from 1.8.1 to 1.8.4
2025-04-10 17:15:20 -05:00
Tim Donohue
b7a130c8c2 Merge pull request #4164 from atmire/edit-bitstream-word-wrap
Wrap long bitstream filenames
2025-04-10 16:37:50 -05:00
Tim Donohue
42b567fd65 Merge pull request #4163 from atmire/sync-i18n-files
Ensure all i18n files are up to date with the english version
2025-04-10 15:22:49 -05:00
Sergio Fernández Celorio
c90008e3c2 Use take instead unsubscribing the observable 2025-04-10 17:27:26 +02:00
Art Lowel
3fb8ec8860 ensure very long filenames wrap on the edit bitstream page and the edit bitstream tab on edit item 2025-04-10 16:44:51 +02:00
Art Lowel
d0b4dacf89 ran npm run sync-i18n to ensure all i18n files are up to date with the english version 2025-04-10 16:14:43 +02:00
Sergio Fernández Celorio
6075317c88 Lint errors fixed 2025-04-10 14:27:44 +02:00
kshepherd
291db026c5 Merge pull request #4161 from atmire/only-import-altcha-on-the-browser
Fix ssr error by only importing altcha on the client side
2025-04-10 13:23:12 +02:00
Art Lowel
b8fdf46340 fix ssr error by only importing altcha on the client side 2025-04-10 11:29:18 +02:00
Sergio Fernández Celorio
865e5216c1 [Port dspace-8_x] Store the state of the computed filters 2025-04-10 11:04:03 +02:00
dependabot[bot]
aa36e5f0e1 Bump webpack from 5.98.0 to 5.99.5 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.98.0 to 5.99.5
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.98.0...v5.99.5)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-09 23:16:19 +00:00
dependabot[bot]
45a3c11dfc Bump eslint-plugin-jsonc from 2.19.1 to 2.20.0 in the eslint group
Bumps the eslint group with 1 update: [eslint-plugin-jsonc](https://github.com/ota-meshi/eslint-plugin-jsonc).


Updates `eslint-plugin-jsonc` from 2.19.1 to 2.20.0
- [Release notes](https://github.com/ota-meshi/eslint-plugin-jsonc/releases)
- [Changelog](https://github.com/ota-meshi/eslint-plugin-jsonc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/eslint-plugin-jsonc/compare/v2.19.1...v2.20.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsonc
  dependency-version: 2.20.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-09 23:15:16 +00:00
dependabot[bot]
d814a4b6d7 Bump the angular group with 3 updates
Bumps the angular group with 3 updates: [@angular/ssr](https://github.com/angular/angular-cli), [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli).


Updates `@angular/ssr` from 18.2.17 to 18.2.18
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.17...18.2.18)

Updates `@angular-devkit/build-angular` from 18.2.17 to 18.2.18
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.17...18.2.18)

Updates `@angular/cli` from 18.2.17 to 18.2.18
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.17...18.2.18)

---
updated-dependencies:
- dependency-name: "@angular/ssr"
  dependency-version: 18.2.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-devkit/build-angular"
  dependency-version: 18.2.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-version: 18.2.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-09 23:14:24 +00:00
Tim Donohue
40a313f1a7 Merge pull request #4131 from DSpace/dependabot/npm_and_yarn/ngtools/webpack-18.2.17
Bump @ngtools/webpack from 18.2.14 to 18.2.17
2025-04-09 17:00:19 -05:00
Tim Donohue
7795d96d53 Merge pull request #4098 from alanorth/update-es-deps
Update dependencies to use versions supporting ES modules
2025-04-09 16:48:38 -05:00
Tim Donohue
318a2fe02a Merge pull request #4086 from DSpace/dependabot/npm_and_yarn/testing-dc0c2e70dc
Bump ng-mocks from 14.13.2 to 14.13.4 in the testing group across 1 directory
2025-04-09 16:33:14 -05:00
Tim Donohue
b21e307af2 Merge pull request #4063 from DSpace/dependabot/npm_and_yarn/core-js-3.41.0
Bump core-js from 3.40.0 to 3.41.0
2025-04-09 16:30:28 -05:00
Tim Donohue
f77c16ebee Merge pull request #4043 from DSpace/dependabot/npm_and_yarn/sass-b0ce3413d9
Bump sass from 1.84.0 to 1.85.1 in the sass group across 1 directory
2025-04-09 16:14:51 -05:00
dependabot[bot]
19f78f5709 Bump @ngtools/webpack from 18.2.14 to 18.2.17
Bumps [@ngtools/webpack](https://github.com/angular/angular-cli) from 18.2.14 to 18.2.17.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.14...18.2.17)

---
updated-dependencies:
- dependency-name: "@ngtools/webpack"
  dependency-version: 18.2.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-09 20:26:10 +00:00
Tim Donohue
e8a9770b6e Merge pull request #4011 from DSpace/dependabot/npm_and_yarn/webpack-a5e48b3f33
Bump webpack from 5.97.1 to 5.98.0 in the webpack group
2025-04-09 15:14:46 -05:00
Tim Donohue
6b562f06ea Merge pull request #4087 from DSpace/dependabot/npm_and_yarn/angular-8f611e3656
Bump the angular group with 3 updates
2025-04-09 15:13:16 -05:00
Tim Donohue
d6261e43ea Merge pull request #4138 from alexandrevryghem/w2p-130080_fix-missing-dso-buttons-on-comcol-page_contribute-7.6
Added the DSO menus back to the comcol search tabs
2025-04-09 14:17:41 -05:00
Tim Donohue
4887a2848d Merge pull request #4136 from atmire/w2p-127705_cleanup-input-form-spacing_contribute-main
Clean up spacing in input forms
2025-04-09 13:46:01 -05:00
Tim Donohue
b44f2a9c40 Merge pull request #4110 from DSpace/dependabot/npm_and_yarn/isbot-5.1.25
Bump isbot from 5.1.23 to 5.1.25
2025-04-09 12:31:28 -05:00
Tim Donohue
57a62b0017 Merge pull request #4075 from pilasou/pilasou-translations-fr
Adding missing french labels
2025-04-09 09:34:36 -05:00
Pierre Lasou
c2b702427c Fix lint errors 2025-04-09 08:40:35 -04:00
Nona Luypaert
8f52250beb Merge remote-tracking branch 'contributions/w2p-130081_access-control-bitstreams-pagination-fix-7.6' into w2p-130081_access-control-bitstreams-pagination-fix-main
Conflicts:
	src/app/shared/access-control-form-container/item-access-control-select-bitstreams-modal/item-access-control-select-bitstreams-modal.component.html
	src/app/shared/access-control-form-container/item-access-control-select-bitstreams-modal/item-access-control-select-bitstreams-modal.component.ts
2025-04-09 14:24:11 +02:00
Alexandre Vryghem
832b5b1328 130080: Added the DSO menus back to the search tab 2025-04-09 00:37:05 +02:00
Tim Donohue
bd4c6d6dfa Merge pull request #4134 from the-library-code/request-a-copy-preview-link-bugfix
Request-a-copy: Show correct preview link
2025-04-08 11:34:59 -05:00
Joran De Braekeleer
6212e3fbfc Merge branch 'w2p-127705_cleanup-input-form-spacing' into w2p-127705_cleanup-input-form-spacing_contribute-main 2025-04-08 09:36:07 +02:00
Kim Shepherd
9c9bff17be Request-a-copy: Show correct preview link
Preview link was showing old URL path
in grant access form
2025-04-07 15:13:42 +02:00
dependabot[bot]
ce35ca2dfd Bump webpack from 5.97.1 to 5.98.0 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.97.1 to 5.98.0
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.97.1...v5.98.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 03:17:19 +00:00
dependabot[bot]
5bcb9c43e1 Bump ng-mocks in the testing group across 1 directory
Bumps the testing group with 1 update in the / directory: [ng-mocks](https://github.com/help-me-mom/ng-mocks).


Updates `ng-mocks` from 14.13.2 to 14.13.4
- [Release notes](https://github.com/help-me-mom/ng-mocks/releases)
- [Changelog](https://github.com/help-me-mom/ng-mocks/blob/master/CHANGELOG.md)
- [Commits](https://github.com/help-me-mom/ng-mocks/compare/v14.13.2...v14.13.4)

---
updated-dependencies:
- dependency-name: ng-mocks
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 03:15:07 +00:00
dependabot[bot]
5a0e09a0eb Bump sass from 1.84.0 to 1.85.1 in the sass group across 1 directory
Bumps the sass group with 1 update in the / directory: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.84.0 to 1.85.1
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.84.0...1.85.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 03:07:47 +00:00
dependabot[bot]
b7ebd0247f Bump the angular group with 3 updates
Bumps the angular group with 3 updates: [@angular/ssr](https://github.com/angular/angular-cli), [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli).


Updates `@angular/ssr` from 18.2.14 to 18.2.15
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.14...18.2.15)

Updates `@angular-devkit/build-angular` from 18.2.14 to 18.2.15
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.14...18.2.15)

Updates `@angular/cli` from 18.2.14 to 18.2.15
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.14...18.2.15)

---
updated-dependencies:
- dependency-name: "@angular/ssr"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-devkit/build-angular"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 03:04:51 +00:00
Tim Donohue
27e9e61619 Update version tag for development of next release 2025-04-04 14:09:49 -05:00
Tim Donohue
507ecdb1dd Update version tag for release 2025-04-04 13:59:59 -05:00
Tim Donohue
eb8a960ba6 Merge pull request #4129 from tdonohue/add_release_notes
Add note with link to Release Notes on homepage (for Testathon)
2025-04-04 11:39:58 -05:00
Tim Donohue
f4dbfc2f19 Add note with link to Release Notes on homepage 2025-04-04 11:01:01 -05:00
Tim Donohue
de44252a56 Merge pull request #4125 from 4Science/task/main/DURACOM-339
[DURACOM-339] fix downloads not working when matomo is disabled
2025-04-04 09:58:42 -05:00
Joran De Braekeleer
17d7912851 127705: Cleanup input form spacing 2025-04-04 14:30:18 +02:00
Zahraa Chreim
502597aadc 127047: Fix submission-edit.component.spec.ts 2025-04-04 13:20:01 +03:00
Tim Donohue
57d5bb0359 Merge pull request #3981 from atmire/no-platform-specific-code-in-abstract-services-main
No platform specific code in abstract services main
2025-04-03 12:10:12 -05:00
Andrea Barbasso
3d36cd2e48 [DURACOM-339] fix downloads not working when matomo is disabled 2025-04-03 17:56:07 +02:00
Tim Donohue
c9654b268e Merge pull request #3994 from atmire/refactor-menu-resolvers-9.0
Refactor menu resolvers 9.0
2025-04-01 14:53:28 -05:00
Alan Orth
826ff3050b Use lodash-es instead of lodash
lodash-es supports ES modules.
2025-04-01 21:07:40 +03:00
Abel Gómez
e0393babc9 Retrieve configurable CC license fields from the back-end in DSpace 9.0 (#3165)
* Make the CC license field component configurable

* Retrieve the configuration values from the backend...

... rather than from a frontend configuration

* Remove unused imports

* Restore configurations other than uri and license fields

They were deleted by mistake

* Add missing example config

* Delete config properties that are no longer needed

* Fix lint issues

* Add missing injection token

* Fex minor changes

* Restore the Input properties that allow configuring the license URI and name fields from a template
* Update test cases using a stub configuration data service
* Fix lint issues

* Use optional chaining, in case the property is not exposed

* Reformat some code to ease code review

* Declare static constant at the beginning of the class

* Fix trailing spaces

* Initialize property in declaration

* Multiple changes

* Move all properties dependent of the CC URI field and CC name field to asyncs (since this configuration must be retrieved also asynchronously from the backend)
* Refactor the regex, and create a public static method (that may be used to externally check if a license is a CC license).
* Update test cases

* Move `ccLicense` inside the `item`configuration key

* Change `variant` to `position`

* Make variant property mandatory (since it should be set depending on where the field is placed)
* Finish moving the ccLicense config key into the item key
* Allow rendering only the icon

* Fix lint errors

* Fix lint errors

* Fix test cases to reflect new disclaimer behavior

* Fix missing comma

* Remove look & feel configuration options

* Remove unused import

* Don't subscribe multiple type to same asyncs

* Set type for non-initialiazed properties

* Refactor CC license function to a dedicated utility file

* Do not use manual subscribes

* Reorder imports

* Remove unused method

* Bugfix: check the right property
2025-04-01 09:53:23 -05:00
Yury Bondarenko
39bcaa0318 Update unit test for browse menu provider 2025-04-01 09:52:58 +02:00
Yury Bondarenko
bd0b75c315 Merge remote-tracking branch 'origin/main' into refactor-menu-resolvers-9.0 2025-04-01 09:42:32 +02:00
Alan Orth
a2690eb628 Update filesize.js dependency
Newer releases support ES modules. Also remove unneccessary eslint
skip hint.
2025-04-01 10:22:16 +03:00
dependabot[bot]
d804123b4e Bump axios from 1.8.1 to 1.8.4
Bumps [axios](https://github.com/axios/axios) from 1.8.1 to 1.8.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.8.1...v1.8.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 20:02:00 +00:00
Tim Donohue
ec6940afbe Merge pull request #3540 from kshepherd/geospatial-maps-main
Geospatial maps for item pages, search, browse
2025-03-31 14:59:53 -05:00
Yana De Pauw
b87380b07d Merge remote-tracking branch 'upstream/main' into refactor-menu-resolvers-9.0 2025-03-31 15:50:40 +02:00
Kim Shepherd
6f7f5450ca Geospatial maps: Better "no points" handling
* If no results for browse or search
  maps are available, zoom to 1 and
  show a i18n tooltip
* Added a missing i18n for point filter
* New default centre point added to
  configuration
2025-03-30 16:56:12 +02:00
Tim Donohue
9c23b4c9f9 Merge pull request #3164 from sistedes/config-default-comcol-tab
Make the default tab for browsing communities and collections configurable in DSpace 8
2025-03-28 13:41:01 -05:00
Kim Shepherd
0bd93ae1d9 Geospatial maps: Review feedback addressed
* Documentation of config
* Set bounding box to use dcterms.spatial by default
* Uncomment geospatial field and wrap in config test
* New config to 'enable' inclusion of geospatial field
* Docs for map and marker detail models
* Bounding box validation
* Fixed view mode control flow
* Tidied console output
2025-03-28 18:27:36 +01:00
Kim Shepherd
6fd36bd2b7 Geospatial maps: Test fixes
Including reverting a nice-to-have improvement
to 'hasNoContent' for field wrapper and non-text
content.
2025-03-28 18:27:36 +01:00
Kim Shepherd
d5c3f4dbe9 Geospatial maps: Remove unwanted deps from package-lock.json 2025-03-28 18:27:36 +01:00
Kim Shepherd
0c5c1e46b0 Geospatial maps: Swap out async() in tests 2025-03-28 18:27:36 +01:00
Kim Shepherd
6f6016a90d Geospatial maps: Review feedback 2025-03-28 18:27:36 +01:00
Kim Shepherd
1f760d882a Geospatial maps: Revert metadata-representation-list.component.ts changes
Note: Might interfere with some nice virtual authority compatibility
2025-03-28 18:27:36 +01:00
Kim Shepherd
d4dee96823 Geospatial maps: Angular control flow refactor 2025-03-28 18:27:36 +01:00
Kim Shepherd
0be836ad80 Geospatial maps: icon and browse page fix 2025-03-28 18:27:36 +01:00
Kim Shepherd
b6cdb7c6b1 Geospatial maps for item pages, search, browse 2025-03-28 18:27:35 +01:00
Yana De Pauw
a16ea97b53 Merge remote-tracking branch 'upstream/main' into refactor-menu-resolvers-9.0 2025-03-28 18:10:02 +01:00
Tim Donohue
8086c2242d Merge pull request #4018 from 4Science/task/main/CST-18964
Add support for Matomo
2025-03-28 11:46:05 -05:00
Andrea Barbasso
4ba9a4bf8f Merge remote-tracking branch 'lyrasis/main' into task/main/CST-18964
# Conflicts:
#	src/app/bitstream-page/bitstream-download-page/bitstream-download-page.component.ts
2025-03-28 16:59:51 +01:00
Tim Donohue
1e4864f45a Merge pull request #3722 from alexandrevryghem/w2p-119915_made-edit-metadata-tab-fields-dynamic_contribute-main
Made edit metadata tab fields dynamic and added entity type support
2025-03-28 10:17:12 -05:00
Tim Donohue
bb18278b2f Merge pull request #3984 from the-library-code/request-a-copy-secure-links_main
Request-a-copy improvements: Support access by secure link
2025-03-28 09:59:58 -05:00
Zahraa Chreim
2fc84783a5 127047: Fix submission-form.component.spec.ts 2025-03-28 15:49:37 +02:00
Yana De Pauw
dda32dd81a Implement community feedback p2 2025-03-28 14:46:14 +01:00
Zahraa Chreim
fa8ffaefd0 127047: Fix imports 2025-03-28 15:08:12 +02:00
Vincenzo Mecca
69472b27c7 [CST-18964] Restored matomo trackerUrl optional setting.
feat:
  - This configuration would be only used on the angular side, if not specified will use the backend default.
2025-03-28 11:50:53 +01:00
Yury Bondarenko
87624c7699 Fix access duration dropdown in custom theme 2025-03-28 11:48:48 +01:00
Kim Shepherd
e9cf183bbf Request-a-copy: Try to address theme compatibility of dropdown 2025-03-27 18:17:53 +01:00
Kim Shepherd
f070dee931 Request-a-copy: Error handling (review feedback)
* New accessExpired flag can be checked along with
  acceptRequest, so expired or not-granted links
  will show an error and draw 'normal' download links
  instead of doing a hard 4xx redirect
* Old ItemWithSupplementaryData component removed
* Notifications moved to sub-component of item page
  and display a warning on valid access token, or a
  danger alert if expired or not-granted, with an
  appropriate error message
* Date formatted in messages as yyyy-MM-dd
2025-03-27 18:17:53 +01:00
Yana De Pauw
51127dc513 Fix accessibility issue 2025-03-27 17:09:20 +01:00
Tim Donohue
11e02c9504 Merge pull request #3355 from 4Science/task/main/CST-15074
ORCID Login flow for private emails
2025-03-26 14:53:46 -05:00
Vincenzo Mecca
ab9cbea7c3 [CST-18964] Fixes empty trackerId for bitstream download feature 2025-03-26 20:23:21 +01:00
abhinav
2eb09b3ada SubmissionCoarNotifyWorkspaceitemModel removed
This doesn't seem to be used anywhere and was throwing some errors.
2025-03-26 18:11:16 +01:00
Kim Shepherd
58cee5fb2e Request-a-copy: Replace +1WEEK -> +7DAYS delta 2025-03-26 17:08:10 +01:00
Kim Shepherd
7671595665 Request-a-copy: Review feedback addressed
* ALTCHA updated to 0.9.0 and tested
* Alt text for fas-lock-open images
* Typedoc added
* Comments/TODOs removed
* Better expiry date display on notification panel
2025-03-26 17:08:10 +01:00
Kim Shepherd
d8fb9f1195 Request-a-copy: Test fixes 2025-03-26 17:08:10 +01:00
Kim Shepherd
a1e7d653f2 Request-a-copy: Unit tests 2025-03-26 17:08:08 +01:00
Kim Shepherd
1fff3b5b86 Request-a-copy: Changes to support access expiry as delta/date storage - psql max 2025-03-26 17:07:29 +01:00
Kim Shepherd
57b618ce34 Request-a-copy: Changes to support access expiry as delta/date storage 2025-03-26 17:07:29 +01:00
Kim Shepherd
16451807f9 Request-a-copy: Using route only in place of wrapper item 2025-03-26 17:07:28 +01:00
Kim Shepherd
80fafbf2e1 Request-a-copy: Angular flow control changes 2025-03-26 17:06:41 +01:00
Kim Shepherd
d1bcb9fb2e Request-a-copy: Use wrapped ItemWithSupp.. and base item comps, except download link 2025-03-26 17:06:41 +01:00
Kim Shepherd
58d0e7f513 Request-a-copy: Using a resolver to grab the RequestItem 2025-03-26 17:06:41 +01:00
Kim Shepherd
ce93b847d2 Request-a-copy: Code cleanup and comments 2025-03-26 17:06:41 +01:00
Kim Shepherd
c9c2a774ea Request-a-copy: Merge recaptcha headers to generic x-captcha-payload 2025-03-26 17:06:41 +01:00
Kim Shepherd
e928eab96b Request-a-copy improv: altcha fixes 2025-03-26 17:06:41 +01:00
Kim Shepherd
bff5662116 Request-a-copy improv: Add altcha dependency to package.json 2025-03-26 17:06:41 +01:00
Kim Shepherd
585347b1a2 Request-a-copy improv: English i18n 2025-03-26 17:06:41 +01:00
Kim Shepherd
e736bbb9ec Request-a-copy improv: Altcha recaptcha component and service 2025-03-26 17:06:41 +01:00
Kim Shepherd
0c58a5bf05 Request-a-copy: Refactor for angular control flow changes 2025-03-26 17:06:41 +01:00
Kim Shepherd
60bbcf3420 Request-a-copy improv: Changes to bitstream page to support tests 2025-03-26 17:06:41 +01:00
Kim Shepherd
0de6481c24 Request-a-copy improv: Routing and module changes 2025-03-26 17:06:41 +01:00
Kim Shepherd
4281267cb6 Request-a-copy improv: Secure item view comps 2025-03-26 17:06:41 +01:00
Kim Shepherd
f3bb7327dc Request-a-copy improv: Secure file section and download links 2025-03-26 17:06:41 +01:00
Kim Shepherd
aea41d74ec Request-a-copy improv: Secure media and image viewers 2025-03-26 17:06:41 +01:00
Tim Donohue
5a53cc9738 Merge pull request #3882 from nibou230/2413-bitstream-access-status
Display the access status (embargo) for the bitstream
2025-03-26 09:43:04 -05:00
abhinav
4510d18a7d 129629: Add models to provide-core.ts and remove duplicates 2025-03-26 14:36:46 +01:00
Ricardo Saraiva
cadd1520ee Update pt-PT.json5
Minor updates and addition missing translation strings.
2025-03-25 15:52:37 +00:00
Nicolas Boulay
0976147d07 Replaced the call findItemAccessStatusFor for a resolveLink 2025-03-25 10:55:55 -04:00
Nicolas Boulay
fe3ae0e8b4 Add an input to show/hide the badge on file component 2025-03-25 10:55:55 -04:00
Nicolas Boulay
2c6754a647 Improve the description of the bitsream showAccessStatuses configuration 2025-03-25 10:55:55 -04:00
Nicolas Boulay
96b596491e Add unit tests for the badge on bitstreams 2025-03-25 10:55:55 -04:00
Nicolas Boulay
de512610b4 Merge embargo badge with the existing access-status badge 2025-03-25 10:55:55 -04:00
Nicolas Boulay
61576e94d0 Insert the bitstream access status badge before the element and increase margins 2025-03-25 10:55:54 -04:00
Nicolas Boulay
d72bc0d1bb Remove findBitstreamAccessStatusFor and replace it with followLink('accessStatus') 2025-03-25 10:55:54 -04:00
Nicolas Boulay
5f83139fcd Adding the new embargo badge on the file download component
Fixed lint no-trailing-spaces
2025-03-25 10:55:21 -04:00
jeffmorin
5b7d246f68 CSV export for Filtered Items content report (#4071)
* CSV export for Filtered Items content report

* Fixed lint errors

* Fixed lint errors

* Fixed lint errors

* Make variables for CSV export null-proof

* Attempt to fix unit tests

* Fixed styling errors

* Fixed script references in unit tests

* Fixed typo in script name

* Fixed test parameterization

* Parameterization attempt

* Parameterization test

* Parameterization rollback

* Fixed predicate encoding bug

* Parameterization test

* Fixed styling error

* Fixed query predicate parameter

* Fixed collection parameterization

* Centralized string representation of a predicate

* Fixed parameterization

* Fixed second export test

* Replaced null payload by an empty non-null one

* Requested changes

* Fixed remaining bugs

* Updated Angular control flow syntax

* Improved collection parameter handling

* Fixed styling error

* Updated config.yml to match the central dspace-angular repo

* Removed repeated content

* Cleaned up a now useless import

* Fixed collections loading and added warning message about CSV export

* Fixed styling error

* Forgot to clean up old code

---------

Co-authored-by: Jean-François Morin <jean-francois.morin@bibl.ulaval.ca>
2025-03-25 09:49:46 -05:00
Art Lowel
93fff41b8d Merge remote-tracking branch 'upstream/main' into accessibility-settings-main 2025-03-25 10:11:08 +01:00
Tim Donohue
fd59ca8053 Merge pull request #4017 from 4Science/task/main/CST-18016
OpenAlex Integration
2025-03-24 17:05:28 -05:00
Vincenzo Mecca
e4e5255a46 [CST-18964] Fixes spec failure 2025-03-24 21:26:10 +01:00
Vincenzo Mecca
6bd4f04174 [CST-18964] PR review 2025-03-24 19:16:50 +01:00
dependabot[bot]
4039198a4a Bump isbot from 5.1.23 to 5.1.25
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.23 to 5.1.25.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.23...v5.1.25)

---
updated-dependencies:
- dependency-name: isbot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-24 02:18:30 +00:00
Vincenzo Mecca
1316540765 [CST-15074] Fixes cyclic dependency issue 2025-03-23 22:33:27 +01:00
Vincenzo Mecca
c1b951b18c Merge remote-tracking branch 'github/main' into task/main/CST-15074
# Conflicts:
#	src/assets/i18n/en.json5
2025-03-23 15:44:38 +01:00
Art Lowel
d3c0ef501c move intercepts to before the login, otherwise they're not always early enough 2025-03-22 11:32:17 +01:00
Art Lowel
33062214da click orejime popup accept after login 2025-03-21 17:54:23 +01:00
Andreas Awouters
99c5506d7d 119602: Move to control-flow syntax 2025-03-21 13:57:50 +01:00
Andreas Awouters
94dd8e7206 Merge remote-tracking branch 'dspace/main' into accessibility-settings-main
# Conflicts:
#	src/app/footer/footer.component.html
#	src/app/profile-page/profile-page.component.html
2025-03-21 13:03:30 +01:00
Ricardo Saraiva
88d59a2152 Merge branch 'main' into patch-4 2025-03-19 17:35:08 +00:00
Yana De Pauw
d6b674345f Implement feedback 2025-03-19 13:10:26 +01:00
Adamo
02516f2251 [CST-18016] Added OpenAlex Search by DOI label 2025-03-19 08:16:05 +01:00
Tim Donohue
a18e03d754 Merge pull request #3735 from amgciadev/fix-10053-b
#10053: Add support for PCI Endorsement workflow
2025-03-17 10:44:54 -05:00
Tim Donohue
d9c68d41bf Merge pull request #4038 from paulo-graca/translations/access_status_filter
Translations for access status filter
2025-03-17 09:29:25 -05:00
Alexandre Vryghem
41ac417543 119915: Added additional docs 2025-03-14 18:18:35 +01:00
Sascha Szott
99d72b9348 Merge branch 'main' into patch-15 2025-03-14 15:59:53 +01:00
Tim Donohue
3468ef689d Merge pull request #3980 from the-library-code/de_language_updates_main
Translation additions, fixes and updates for German message catalogue
2025-03-14 09:47:14 -05:00
Zahraa Chreim
da2c98aa32 Fix lint issues 2025-03-14 13:45:43 +02:00
Adamo
7929d8e419 [CST-18016] Added missin label. 2025-03-14 10:27:00 +01:00
Giuseppe Digilio
cfe16892ab [CST-18016] Add i18n labels 2025-03-14 09:25:23 +01:00
Abel Gómez
422a714935 Check the full URL rather than only the collection id to detect the default path 2025-03-14 01:01:52 +01:00
Abel Gómez
30b411285c Fix missing keys in language file 2025-03-14 00:18:38 +01:00
Abel Gómez
53562e5a3e Also load the default tab when navigating using the breadcrumbs 2025-03-14 00:07:26 +01:00
Abel Gómez
5d4006f753 Rework redirection using allOptions 2025-03-13 23:38:56 +01:00
Abel Gómez
262f758699 Simplify page redirection when the default route is used 2025-03-13 22:44:32 +01:00
Abel Gómez
c212b3dccd Add default route for when no page reaload is performed 2025-03-13 22:43:51 +01:00
Giuseppe Digilio
79c5d5a560 [CST-18016] Create a new page to list the suggestion sources 2025-03-13 20:47:47 +01:00
Abel Gómez
cdcd886a3a Merge remote-tracking branch 'upstream/main' into config-default-comcol-tab 2025-03-13 20:02:15 +01:00
Zahraa Chreim
681efd9f52 127047: Merge branch 'themed-SubmissionComponents_contribute-7.6' into 'themed-SubmissionComponents_contribute-main' 2025-03-13 16:17:38 +02:00
Giuseppe Digilio
2df409ca63 [CST-18016] Create suggestions folder to better organize the code relative to notifications functionalities 2025-03-13 13:41:53 +01:00
Yannick Paulsen
26f2b8c5b0 Typo corrections 2025-03-13 09:31:22 +01:00
Tim Donohue
b44b7a66c1 Merge pull request #4069 from tdonohue/fix_e2e_tests
Minor fixes to Cypress e2e tests
2025-03-12 16:33:43 -05:00
Vincenzo Mecca
d6776a8a1e [CST-15074][#3355] PR review 2025-03-12 20:15:57 +01:00
Giuseppe Digilio
117514bace [CST-18016] Create a new component to list the qa sources 2025-03-12 20:10:42 +01:00
Sascha Szott
c72af8edb5 fix typo in German translation of bitstream.edit.form.description.hint 2025-03-12 19:09:16 +01:00
Pierre Lasou
9b7ccd9dfe Adding missing french labels
Addition of french translations for Duplicate detection, ROR and Advanced search features.
2025-03-12 12:35:12 -04:00
Vincenzo Mecca
f2c5912dfa [CST-15074][#3355] Removes unused imports 2025-03-12 17:16:13 +01:00
Vincenzo Mecca
34726614f0 [CST-15074][#3355] Resolved conflicts and updated control-flow syntax 2025-03-12 17:08:07 +01:00
Vincenzo Mecca
0e56427789 Merge remote-tracking branch 'github/main' into task/main/CST-15074
# Conflicts:
#	src/app/shared/log-in/log-in.component.ts
#	src/themes/custom/app/shared/log-in/log-in.component.ts
2025-03-12 16:55:15 +01:00
Yana De Pauw
b009e0b640 Fix dropdown style issue 2025-03-12 16:27:04 +01:00
Yana De Pauw
fca8c6f418 Fix control-flow issues 2025-03-12 14:07:28 +01:00
Yana De Pauw
c53d7187c7 Merge remote-tracking branch 'upstream/main' into refactor-menu-resolvers-9.0 2025-03-12 12:42:34 +01:00
Ricardo Saraiva
ef8735e5a2 Update pt-PT.json5
Correction of trailing spaces.
2025-03-12 11:24:57 +00:00
Giuseppe Digilio
20df163444 Merge branch 'refs/heads/main' into task/main/CST-18016 2025-03-12 12:13:29 +01:00
Ricardo Saraiva
639bb3e558 Update pt-PT.json5
Revision of trailing spaces.
2025-03-12 11:09:35 +00:00
Ricardo Saraiva
a58456deab Update pt-PT.json5
Addition of missing pt_PT translation keys, improvements and minor revisions to existing translations.
2025-03-12 09:29:56 +00:00
Agustina Martinez
6467b60e65 Merge branch 'main' into fix-10053-b 2025-03-12 08:38:56 +00:00
Alexandre Vryghem
a947e8cbf6 Merge branch 'main' into w2p-119915_made-edit-metadata-tab-fields-dynamic_contribute-main
# Conflicts:
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-field-values/dso-edit-metadata-field-values.component.html
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.html
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.ts
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata.component.html
#	src/app/shared/form/builder/ds-dynamic-form-ui/models/scrollable-dropdown/dynamic-scrollable-dropdown.component.html
2025-03-11 21:11:13 +01:00
Tim Donohue
4b921a641c Merge pull request #4039 from tdonohue/date_fixes
System Wide Alerts should send countdown date to REST API in ISO-8601 format
2025-03-11 15:05:40 -05:00
Tim Donohue
15f39ea93e Merge pull request #3997 from 4Science/task/main/DURACOM-307
Migration to new Angular Control Flow syntax
2025-03-11 14:14:47 -05:00
Alexandre Vryghem
2eb34ee634 119915: Fixed bootstrap 5 issues
- Replaced the dropdown icon from DsoEditMetadataEntityFieldComponent from a triangle to an arrow again
- Fixed background color of scrollable select fields always being white, was the only field where this was hardcoded
- Added missing translate pipes on the aria-label attributes from the selectable dropdowns
2025-03-11 14:45:49 +01:00
Andrea Barbasso
601c6cd49d Merge remote-tracking branch 'lyrasis/main' into task/main/CST-18964
# Conflicts:
#	package-lock.json
#	package.json
2025-03-11 10:31:49 +01:00
Andrea Barbasso
923579e702 [CST-18964] fix double search 2025-03-11 10:22:34 +01:00
Tim Donohue
308f0751cf Fix issues in IDEs (especially VS Code) with recognizing Cypress Typescript files. 2025-03-10 14:23:05 -05:00
Tim Donohue
b6a507d2a2 Reenable accessibility test which is now fixed 2025-03-10 14:22:47 -05:00
FrancescoMolinaro
51c95de793 [DURACOM-307] apply migration script to conflicted files resolved in favor of Angular 18 update 2025-03-10 18:11:22 +01:00
FrancescoMolinaro
1aa9faeb2f [DURACOM-307] add eslint rule to enforce control flow 2025-03-10 17:40:58 +01:00
FrancescoMolinaro
b1eb4a8bf9 [DURACOM-307] fix tests 2025-03-10 17:40:56 +01:00
FrancescoMolinaro
dc70ec0ef0 [DURACOM-307] remove not migrated directives, clean up 2025-03-10 17:40:48 +01:00
FrancescoMolinaro
d1b9d4f692 [DURACOM-307] remove NgIf and NgFor imports 2025-03-10 17:40:33 +01:00
FrancescoMolinaro
c4696c9ba8 [DURACOM-307] fix lint 2025-03-10 17:40:12 +01:00
FrancescoMolinaro
069fd02517 [DURACOM-307] start migration and type fixing 2025-03-10 17:39:34 +01:00
Tim Donohue
b9e164de78 Merge pull request #3717 from atmire/w2p-120243_Upgrade-to-Angular-v18
Upgrade to angular v18
2025-03-10 11:24:59 -05:00
Alexandre Vryghem
432b6607c3 Merge branch 'main' into w2p-119915_made-edit-metadata-tab-fields-dynamic_contribute-main 2025-03-10 17:18:28 +01:00
Andreas Awouters
c90b05650a 120243: Disable 'aria-valid-attr-value' for community-list e2e test 2025-03-10 16:47:47 +01:00
Vincenzo Mecca
4d4fe529a5 [CST-15074][#3355] PR review 2025-03-10 16:39:23 +01:00
Tim Donohue
aca14117e7 Merge pull request #4061 from alexandrevryghem/restored-breadcrumbs-on-collection-pages_contribute-main
Restored breadcrumbs on collection pages
2025-03-10 09:09:50 -05:00
Vincenzo Mecca
b6fc9b5444 Merge remote-tracking branch 'github/task/main/CST-15074' into task/main/CST-15074 2025-03-10 11:38:14 +01:00
Vincenzo Mecca
af3c78cc50 [CST-15074][#3355] PR review 2025-03-10 10:21:50 +01:00
dependabot[bot]
6298724ea6 Bump core-js from 3.40.0 to 3.41.0
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.40.0 to 3.41.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.41.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 02:29:17 +00:00
Alexandre Vryghem
7d04084642 Restored breadcrumbs on collection pages 2025-03-10 00:27:03 +01:00
Vincenzo Mecca
9065f4f606 Merge branch 'main' into task/main/CST-15074 2025-03-07 21:23:23 +01:00
Vincenzo Mecca
f56b6856dd [CST-15074][#3355] PR review 2025-03-07 21:22:10 +01:00
Vincenzo Mecca
77b027a6c6 [CST-15074][#3355] PR review 2025-03-07 19:51:41 +01:00
Andreas Awouters
0567ea7a2d Merge remote-tracking branch 'dspace/main' into accessibility-settings-main
# Conflicts:
#	src/app/profile-page/profile-page.component.html
2025-03-07 13:45:37 +01:00
Andreas Awouters
a2882b0644 119602: Set all cookies before e2e specs 2025-03-07 13:09:47 +01:00
Andreas Awouters
4cea196eb2 Revert "119602: Accept cookies in specs where cookie window covers other elements"
This reverts commit c9b2717344.
2025-03-07 13:09:22 +01:00
Andreas Awouters
082018d44d Merge branch 'accessibility-settings-7.6' into accessibility-settings-main
# Conflicts:
#	src/app/accessibility/accessibility-settings.service.ts
2025-03-07 13:04:25 +01:00
Adamo
16eda4f186 [CST-18016] Updated labels. 2025-03-06 23:52:23 +01:00
Vincenzo Mecca
c2701c412c Merge remote-tracking branch 'origin/main' into task/main/CST-15074
# Conflicts:
#	src/assets/i18n/en.json5
2025-03-06 19:47:38 +01:00
Sascha Szott
e976ddb07c remove custom theme dependency in base component SuggestionListElementComponent (#4041)
* remove custom theme dependency

* remove custom theme component

* remove obsolete constructor

* fix lint error

* fix lint error
2025-03-06 10:28:12 -06:00
Tim Donohue
987e146209 Merge pull request #4035 from alanorth/citation-doi-tag
[Port main] Add citation_doi tag to head meta
2025-03-06 10:11:54 -06:00
Paulo Graça
e0e2e5affa removing trailing spaces 2025-03-06 15:40:39 +00:00
Paulo Graça
7fe155103a French translations for access_status filters 2025-03-06 15:29:14 +00:00
Sascha Szott
13ae42f217 reorganize imports 2025-03-06 14:59:41 +01:00
Yury Bondarenko
2ea32752bc Recreate lockfile 2025-03-06 14:57:52 +01:00
Yury Bondarenko
a3a2f259b2 Pin notistack v3.0.1 to avoid peer conflict with React 2025-03-06 14:57:44 +01:00
Sascha Szott
c835b215af add import 2025-03-06 14:43:41 +01:00
Sascha Szott
c0bfc3a739 apply spellCheck configuration to input model 2025-03-06 14:34:25 +01:00
Andreas Awouters
a0c9b3da91 120243: update @angular/cdk
(cherry picked from commit cd7bf4283a236ad0c899bcda5277e605ffa8ddcb)
2025-03-06 14:22:54 +01:00
Andreas Awouters
10dc73498a 120243: npm audit fix --force 2025-03-06 14:17:18 +01:00
Andreas Awouters
0f3a7ff902 120243: npm audit fix 2025-03-06 14:16:46 +01:00
Andreas Awouters
47d55ecd36 120243: Fix xsrf.interceptor tests 2025-03-06 14:16:46 +01:00
Andreas Awouters
1df73d6730 120243: Fix test without spec 2025-03-06 14:16:45 +01:00
Andreas Awouters
540cb86b2d 120243: Fix REST baseUrl in test environment 2025-03-06 14:16:45 +01:00
Andreas Awouters
8d02988da7 120243: Fix test compilation issues after upgrade 2025-03-06 14:16:45 +01:00
Andreas Awouters
2173f3956e 120243: Fix prod compilation issues after upgrade 2025-03-06 14:16:45 +01:00
Andreas Awouters
76e1a39208 120243: Fix dev compilation issues after upgrade 2025-03-06 14:16:45 +01:00
Andreas Awouters
d87b375a35 120243: Fix lint issues after upgrade 2025-03-06 14:16:45 +01:00
Andreas Awouters
ae32581d20 120243: Update overrides after upgrade 2025-03-06 14:16:45 +01:00
Andreas Awouters
c52c4542ce 120243: ng update @angular-builders/custom-webpack 2025-03-06 14:16:45 +01:00
Andreas Awouters
a0f6f4b0cc 120243: Remove @ngtools/webpack from overrides 2025-03-06 14:16:44 +01:00
Andreas Awouters
1ab022ad6c 120243: ng update @ngtools/webpack 2025-03-06 14:16:44 +01:00
Andreas Awouters
8150517f13 120243: ng update ngx-ui-switch 2025-03-06 14:16:44 +01:00
Andreas Awouters
99b3db365a 120243: ng update ngx-infinite-scroll 2025-03-06 14:16:27 +01:00
Andreas Awouters
e259cf4c13 120243: Remove ng2-file-upload from overrides 2025-03-06 14:16:27 +01:00
Andreas Awouters
8072d8f0f2 120243: ng update ng2-file-upload 2025-03-06 14:16:27 +01:00
Andreas Awouters
54e6471fa5 120243: ng update @ngrx-translate/core 2025-03-06 14:16:27 +01:00
Andreas Awouters
3a049da620 120243: ng update @ngrx/effects 2025-03-06 14:16:26 +01:00
Andreas Awouters
bb55534f2c 120243: Restore serve:ssr and build:ssr after upgrade 2025-03-06 14:16:06 +01:00
Andreas Awouters
5e7b066af1 120243: ng update @angular/core @angular/cli --force 2025-03-06 14:16:06 +01:00
Andreas Awouters
16eb620f4f 120243: ng update @angular-eslint/schematics 2025-03-06 14:15:48 +01:00
Alan Orth
9db25ec2c8 Merge pull request #3957 from saschaszott/saschaszott-patch-9
fixed deprecated import of TransferState
2025-03-06 08:23:38 +03:00
Wout-atmire
e0240259ec Upgrade to Bootstrap 5 & realign themes (#3506)
* 117631: upgraded bootstrap, ng-bootstrap and installed popper.js

* 117631: SASS to CSS variables

* 117631: Bootstrap 4 to 5 html/css fixes

* 117631: Theming fixes after bootstrap upgrade

* 117631: More theming fixes: accordions, spacing, search components etc

* 117631: Fixed tests

* 117631: Fixed offset issues

* 117631: Fixed contrast ratio issue

* 117631: Fixed variables, removed unnecessary mapping, fixed tables, upgraded to Bootstrap 5.3.3

* 118113: vertical footer deviders

* 118113: remove button shadow

* 118113: old checkboxes

* 118113: Custom icons font-family

* 118113: accordion color

* 118113: table striped customizable background-color

* 118113: revert vertical deviders in footer bs-secondary change

* 118113: modal close button

* 118113: add w-100 to btn-block elements

* 118113: border radius

* 118113: The date selector on the submission page gets squished to the side of its label fix

* 118113: adding margins to dynamic-form-control-containers

* 118113: adding gaps between sections of item submission form

* 118113: icon font-family removed !important

* 118113: removed !important from #legend_dc_date_issued

* 118113: move --bs-border-radius to $bs-border-radius

* 118113: remove new SCSS variable

* 118113: reduce size for Item type labels

* 118113: date picker border - transparent

* 118113: drag-item-container elements on same line

* 118113: specific border color for ds-number-picker buttons

* Simplify variables & styles

* 118627: html files

* Fix new SCSS compile issues, remove yarn.lock

* 118627: remove footer button shadow

* 118627: custom login button radius

* 118627: success button - white text

* 118627: table alternate colors

* Fix ghostly Bootstrap version, again

* Override (ng-)bootstrap versions for @ng-dynamic-forms

* 118627: Feedback - fix login button radius

* 118627: Feedback - fix footer button shadows

* 118627: Feedback - login border radius use $bs-border-radius-lg + change to rem

* 118627: Tooltip issue

* 118627: Metadata white authority badge

* 118627: Align Back button

* 118627: Bitstreams under Item's Metadata issue fix

* 118627: select on edit collection page "arrow icon"

* 118627: fix alignment issues

* 118627: fix admin sidebar "Managment" label

* 118627: Feedback - login button

* 118627: Line above table heads

* 118627: Remove HMTL accordion expandable arrow

* 118627: bitstream table

* 118627: notification "close button"

* 118627: faint border/shadow around the expand buttons on hierarchical browse pages

* 118627: tooltip margin

* 118627: Bootstrap 5 changed the default gutter size to 24px

* 118627: custom-aligning -> custom-alignment

* 118627: lint-fix

* 118627: lint fix

* 118627: e2e Fix with new "btn-close"

* 118627: e2e Fix heading order for access-control-form-container

* 118627: access-control-form-container mr-4 to me-4

* 118627: update mr to me & ml to ms & pr to ps & pl to ps

* 118627: Access Control "Mode" radiobuttons under Text

* 118627: Item submission Publisher select icon positioning

* 118627: resolved merge conflict with main (and npm install)

* 118627: cherrypicking 3553 commits

* Remove unused angular-idle-preload

(cherry picked from commit fef5dd72b3)

* 118627: npm install - to fix package-lock.json

* 120594: hamberger menu not showing fix

* 120594: big logo header issue

* 120594: remove faint shadow

* 120594: btn-transparent class

* 120594: badge-* to bg-*

* 120594: add padding-right & -left for rounded-pill

* 120594: update test variables to fit the new bootstrap variables

* 120594: add missing rss conditions

* 120594: fix white badges

* 118627: remove shadow on number-picker

* 120594: revert white badge fix

* 120594: re-add dropdown-button in dynamic-lookup-relation-search-tab

* 120594: remove default radio button styling

* 120594: full width radio buttons

* 120594: edit collection page alignment

* 120594: bg -> bg-primary

* 120594: revert to old info color

* 120594: revert media breakpoints

* 120594: recover PR 3227 rss

* 120594: remove login & logout from PR

* 120594: ds-filter input & label gap

* 120594: ds-filter aligning rows

* 120594: remove navbar.module.ts

* 120594: remove item-edit-bitstream.component.html

* 120594: remove item-edit-bitstream-drag-handle.component.html

* 120594: Fix vocabulary-treeview styling

* 120594: Remove unused browse-by-metadata-page.component.html

* 120594: red invalid input label

* 120594: use old link color for number-picker: #1f7293

* 120594: move $theme-colors to sass override

* 120594: spacing for upload icon

* 120594: decrease media-breakpoint-down

* 120594: PR 3227 rss

* 120594: merge in main bootstrap variable mappings

* 120594: restore all mapped variable that have a value

* 120594: fix unset variable item-edit-bitstream-bundle.component.scss

* 120594: old tooltip color

* 120594: edit bitstream render text inline with the icon

* Revert "120594: merge in main bootstrap variable mappings"

This reverts commit 4e61b5fb

* 120594: add non-default mapped variables with references

* 120594: add docs in _bootstrap_variables_mapping.scss

* 120594: use bootstrap variables instead of hardcoded values

---------

Co-authored-by: lotte <lotte_hofstede@hotmail.com>
Co-authored-by: Yura Bondarenko <yura.bondarenko@atmire.com>
Co-authored-by: Yury Bondarenko <ybnd@tuta.io>
Co-authored-by: Tim Donohue <tim.donohue@lyrasis.org>
2025-03-05 12:15:51 -06:00
Yana De Pauw
4b3215412f Move server init menus after authentication is ready 2025-03-05 16:45:45 +01:00
Alan Orth
f28dc8bf72 src/app/core: remove unnecessary comment
Remove commented out this.setCitationDOITag() since it is not used
and we use camel case with this.setCitationDoiTag() now anyway.
2025-03-05 17:01:24 +03:00
Alan Orth
0251aaa3f8 src/app/core: add citation_doi tag to head meta
This is used by harvesters like Altmetric and was present in DSpace
version 6 and previous.
2025-03-05 17:01:23 +03:00
Tim Donohue
b480317599 Merge pull request #2657 from alexandrevryghem/w2p-108608_created-search-scope-selector_contribute-main
Created new custom search scope context
2025-03-04 16:34:44 -06:00
Tim Donohue
fd7a18bfc5 Merge pull request #2937 from ray-lee/saml
Add support for SAML authentication.
2025-03-04 13:55:40 -06:00
Kristof De Langhe
261af2a2f5 126853: ThemedSubmissionFormComponent 2025-03-03 10:30:16 +01:00
Tim Donohue
97312820d6 Merge pull request #3786 from uniba-ub/issue-9636
translation keys for datacite project import
2025-02-27 17:03:22 -06:00
Tim Donohue
47bd509e75 Merge pull request #3785 from uniba-ub/issue-9404-a
change searchFilter isOpenByDefault autoserialization
2025-02-27 13:26:06 -06:00
Agustina Martinez
8402aebde7 Change label quality-assurance.event.table.event.message.serviceUrl to generic "Actor" 2025-02-27 13:37:12 +00:00
Tim Donohue
0dbae112db Use toISOString instead of toUTCString, as ISO puts it in ISO-8601 format 2025-02-26 12:25:46 -06:00
Adamo
66d9c7079b [CST-18016] Updated labels. 2025-02-26 13:47:06 +01:00
Paulo Graça
33ca20fbec remove trailing spaces 2025-02-26 11:38:12 +00:00
Paulo Graça
f7d34899a4 remove Trailing spaces 2025-02-26 11:24:40 +00:00
Paulo Graça
649f64e6e6 remove trailing space 2025-02-26 11:17:45 +00:00
Paulo Graça
52d826eaf6 search.filters.access_status 2025-02-26 11:06:50 +00:00
Paulo Graça
ce30e58c67 search.filters.access_status 2025-02-26 11:05:51 +00:00
Paulo Graça
f456af7a51 Access Status Filter PT translations 2025-02-26 11:03:33 +00:00
Paulo Graça
967a761ac1 Access Status Filter EN translations 2025-02-26 10:57:24 +00:00
Andreas Awouters
c9b2717344 119602: Accept cookies in specs where cookie window covers other elements 2025-02-25 15:51:12 +01:00
Tim Donohue
52392ab719 Merge pull request #4020 from pilasou/pilasou-translations-fr
Changes to fr.json5 following version 8.1
2025-02-24 15:06:37 -06:00
Andreas Awouters
958b3b8c05 119602: Add new cookie setting to e2e tests 2025-02-24 10:14:49 +01:00
Pierre Lasou
0437ec4c3f Addtion to the fr.json5 following version 8.1
Adding and changing parameters after upgrading to 8.1.
2025-02-21 15:43:59 -05:00
Andreas Awouters
cdbfcc7cc4 119602: Fix tests after merge 2025-02-21 16:35:10 +01:00
Andrea Barbasso
0bab79bea4 [CST-18694] add TypeDoc comments 2025-02-21 16:22:13 +01:00
Andreas Awouters
112eb7b3ce Merge branch 'main' into accessibility-settings-main 2025-02-21 15:52:34 +01:00
Andreas Awouters
08fe940e70 Merge branch 'accessibility-settings-7.6' into accessibility-settings-main
# Conflicts:
#	src/app/accessibility/accessibility-settings.service.spec.ts
#	src/app/accessibility/accessibility-settings.service.ts
#	src/app/info/accessibility-settings/accessibility-settings.component.spec.ts
#	src/app/info/accessibility-settings/accessibility-settings.component.ts
#	src/app/shared/cookies/klaro-configuration.ts
#	src/assets/i18n/en.json5
2025-02-21 15:52:24 +01:00
Yana De Pauw
43e4f9de49 Fix e2e issues 2025-02-21 14:36:04 +01:00
Yana De Pauw
4a2158a178 Merge branch 'refactor-menu-resolvers-7.6' into refactor-menu-resolvers-9.0 2025-02-21 13:36:23 +01:00
Yana De Pauw
bb02acf13e Fix id related issues and add accessibility handle 2025-02-21 13:23:54 +01:00
Adamo
4235351d74 [CST-18016] Fix on themed-create-item-parent-selector.component.ts 2025-02-21 12:50:18 +01:00
Adamo
eeec2b536d [CST-18016] Lint fix 2025-02-21 10:27:09 +01:00
Adamo
b58dd32bff [CST-18016] Added label for live import 2025-02-21 10:16:17 +01:00
Adamo
caa5b1e29a [CST-18016] Fix import suggestion 2025-02-20 19:51:22 +01:00
Kristof De Langhe
858ec87f2f 126853: Themeable SubmissionSectionContainerComponent and SubmissionFormFooterComponent 2025-02-20 14:14:03 +01:00
Yannick Paulsen
11f79a3e6b Translation corrections 2025-02-19 11:41:26 +01:00
Yana De Pauw
174d185de3 Merge branch 'refactor-menu-resolvers-7.6' into refactor-menu-resolvers-9.0 2025-02-18 15:19:46 +01:00
Yana De Pauw
8b9af3b04c Remove circulary dependency 2025-02-18 15:13:19 +01:00
Yana De Pauw
ea53111aa1 Remove circulary dependency 2025-02-17 12:57:47 +01:00
Yana De Pauw
59481abd7f Remove circulary dependency 2025-02-17 12:57:35 +01:00
Tim Donohue
81ec674f38 Merge pull request #3995 from DSpace/backport-3673-to-main
[Port main] Update fr.json5
2025-02-14 14:49:39 -06:00
Carolyn Sullivan
ead548f499 Update fr.json5
Ajouté les corrections faites par Pierre Lasou :)

(cherry picked from commit e32d9feaf5)
2025-02-14 16:29:39 +00:00
Carolyn Sullivan
5e0ae8a26e Update fr.json5
Ajouté des traductions/noté quelques étiquettes sans traductions

(cherry picked from commit 477ca5e712)
2025-02-14 16:29:39 +00:00
Tim Donohue
3437ee8420 Merge pull request #3960 from pilasou/pilasou-translations-fr
Update fr.json5 to add identifiers deposit's step translations in french
2025-02-14 08:43:24 -06:00
Yana De Pauw
0fec5395ff Fix merge issues and tests
- Migrate create-report sections to a new provider
- Fix menu component test
- Add dso option sections to com/col sub paths
- Fix issue with breadcrumbs on the collection page
2025-02-14 13:11:15 +01:00
Yana De Pauw
c19af67009 Merge remote-tracking branch 'upstream/main' into refactor-menu-resolvers-9.0 2025-02-14 11:23:32 +01:00
Yana De Pauw
4b3d7e8ef7 Merge branch 'refactor-menu-resolvers-7.6' into refactor-menu-resolvers-9.0 2025-02-14 11:20:21 +01:00
Yana De Pauw
276452e4b9 Update DSO menu to also work for subpaths of the DSO and add missing messages 2025-02-14 11:08:47 +01:00
Yana De Pauw
2c49c04819 Merge branch 'refactor-menu-resolvers-7.6' into refactor-menu-resolvers-9.0 2025-02-13 16:12:05 +01:00
Yana De Pauw
f6263f86a4 Fix tests and issue with the getID methods 2025-02-13 15:57:02 +01:00
Andreas Awouters
3197ec911e Merge branch 'no-platform-specific-code-in-abstract-services-7.6' into no-platform-specific-code-in-abstract-services-main
# Conflicts:
#	src/app/core/auth/auth.service.ts
#	src/app/core/auth/server-auth.service.ts
#	src/app/core/services/cookie.service.ts
#	src/app/core/services/server-cookie.service.ts
2025-02-13 14:38:40 +01:00
Yannick Paulsen
41001f186b Translation additions, fixes and updates for German message catalogue
Made with results of the i18n-sync tool against en.json5
2025-02-13 14:38:17 +01:00
Yannick Paulsen
51102e27a1 Translation additions, fixes and updates for German message catalogue
Made with results of the i18n-sync tool against en.json5

All non-conflicting diffs applied during rebase, and some translations
replaced (for review)
2025-02-12 15:33:36 +01:00
Tim Donohue
a01966ac44 Merge pull request #3976 from jeffmorin/main
Added missing line to enable access to Content Reports
2025-02-11 14:19:09 -06:00
Jean-François Morin
a33afbef2b Added missing line for Content Reports section 2025-02-11 14:03:00 -05:00
Tim Donohue
446f681098 Merge pull request #3970 from DSpace/dependabot/npm_and_yarn/sass-fd5fd03206
Bump sass from 1.83.4 to 1.84.0 in the sass group
2025-02-10 15:36:13 -06:00
Tim Donohue
d5ea6f563b Merge pull request #3906 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.26.7
Bump @babel/runtime from 7.26.0 to 7.26.7
2025-02-10 15:23:47 -06:00
Tim Donohue
bf20787a24 Merge pull request #3905 from DSpace/dependabot/npm_and_yarn/eslint-82f73a5bca
Bump eslint-plugin-jsonc from 2.18.2 to 2.19.1 in the eslint group
2025-02-10 12:08:07 -06:00
Tim Donohue
da05c05bb8 Merge pull request #3938 from DSpace/dependabot/npm_and_yarn/types/lodash-4.17.15
Bump @types/lodash from 4.17.14 to 4.17.15
2025-02-10 09:38:20 -06:00
Tim Donohue
8933df4184 Merge pull request #3937 from DSpace/dependabot/npm_and_yarn/isbot-5.1.22
Bump isbot from 5.1.21 to 5.1.22
2025-02-10 09:36:56 -06:00
Tim Donohue
d7c156fce9 Merge pull request #3936 from DSpace/dependabot/npm_and_yarn/testing-206d00ed14
Bump cypress-axe from 1.5.0 to 1.6.0 in the testing group
2025-02-10 09:33:10 -06:00
dependabot[bot]
7a4af88c0d Bump sass from 1.83.4 to 1.84.0 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.83.4 to 1.84.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.83.4...1.84.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 02:49:15 +00:00
dependabot[bot]
98d32bc7ad Bump cypress-axe from 1.5.0 to 1.6.0 in the testing group
Bumps the testing group with 1 update: [cypress-axe](https://github.com/component-driven/cypress-axe).


Updates `cypress-axe` from 1.5.0 to 1.6.0
- [Release notes](https://github.com/component-driven/cypress-axe/releases)
- [Commits](https://github.com/component-driven/cypress-axe/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: cypress-axe
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 02:48:29 +00:00
dependabot[bot]
5bf38231fa Bump eslint-plugin-jsonc from 2.18.2 to 2.19.1 in the eslint group
Bumps the eslint group with 1 update: [eslint-plugin-jsonc](https://github.com/ota-meshi/eslint-plugin-jsonc).


Updates `eslint-plugin-jsonc` from 2.18.2 to 2.19.1
- [Release notes](https://github.com/ota-meshi/eslint-plugin-jsonc/releases)
- [Changelog](https://github.com/ota-meshi/eslint-plugin-jsonc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/eslint-plugin-jsonc/compare/v2.18.2...v2.19.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsonc
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 02:48:25 +00:00
VictorDuranEscire
1e73fa626d Fix - Validate value on remove item for submission form only for qualdrop component 2025-02-07 21:12:03 -06:00
Tim Donohue
fc5a3843a8 Merge tag 'dspace-8.1' 2025-02-07 14:06:06 -06:00
Tim Donohue
4caa39bddb Merge tag 'dspace-7.6.3' 2025-02-07 14:05:18 -06:00
Yury Bondarenko
516dd99a26 Fix remaining lint issues 2025-02-07 18:31:01 +01:00
Yury Bondarenko
3fecbc245b Fix tests pt. 1 2025-02-07 18:02:31 +01:00
Yury Bondarenko
fbffcca945 Resolve post-merge issues
- Menu providers weren't included because main configuration is no longer a module
- Route definitions didn't get merged because they're no longer modules
- Removed old resolver & service (they're providers now)
2025-02-07 18:02:31 +01:00
Tim Donohue
f08823333f Merge pull request #3966 from tdonohue/fixup_example
Move `enablePerformanceProfiler` option to last in list in `config.example.yml`
2025-02-07 09:34:44 -06:00
Yury Bondarenko
87eee70b0a Merge remote-tracking branch 'contrib/refactor-menu-resolvers-7.6' into main_PR-menus 2025-02-07 16:15:57 +01:00
Yury Bondarenko
3f7c42c51e Menu sections should be inactive by default
If an expandable section in the navbar is acive by default, it will expand whn the page loads
2025-02-07 13:46:24 +01:00
Tim Donohue
a37bb6ade1 Move performanceprofiler option to last in list 2025-02-06 15:21:08 -06:00
Sascha Szott
be6de64fcd use translation service to determine placeholder values of date picker (#2827)
* use translation service to determine placeholder values

* added translation of date-picker placeholder values

* added German translations of date-picker placeholder values

* fix lint warning: added missing comma

* fix lint warning: removed trailing spaces

* fixed broken tests

* fixed lint warning

* try to mock TranslateService correctly

* remove TranslateService mock

* removed imports

* fixed lint warnings

* fixed lint warnings

* fixed lint warning

* fixed lint warning

* fixed lint error

* fixed lint errors

* removed TestComponent

* added imports

* removed declarations

* fixed lint error

* fix lint error (invalid sorting)

* finally fixing lint error

* use translation pipe directly in template

* move translation of placeholders into HTML template

* remove TranslateService dependency
2025-02-06 15:05:36 -06:00
Tim Donohue
8184acc480 Merge pull request #3797 from toniprieto/translate-ca-9x
Update catalan translation
2025-02-06 10:49:00 -06:00
Tim Donohue
3d6af1f8c0 Merge pull request #3358 from 4Science/task/main/DURACOM-288
Provide a setting to use a different REST url during SSR execution
2025-02-06 10:07:17 -06:00
Pierre Lasou
f721028d81 Update fr.json5 2025-02-05 16:19:49 -05:00
Tim Donohue
542e2db930 Merge pull request #3955 from alexandrevryghem/w2p-126015_synchronize-standalone-imports-main
Synchronized standalone imports in custom theme
2025-02-05 15:00:32 -06:00
Sascha Szott
4d85639f31 fixed deprecated import of TransferState 2025-02-05 17:38:57 +01:00
Andrea Barbasso
fd2120904c [CST-18964] add tests 2025-02-05 17:05:18 +01:00
Andrea Barbasso
2225c2e428 [CST-18964] add matomo integration 2025-02-05 12:13:47 +01:00
Alexandre Vryghem
fddc4936e8 126015: Sync standalone imports in custom theme 2025-02-05 10:44:33 +01:00
Tim Donohue
0649342658 Merge pull request #3948 from toniprieto/avoid-retrieve-suggestions-if-disabled
Avoid retrieving user suggestions if Researcher profiles are disabled
2025-02-04 14:09:26 -06:00
Giuseppe Digilio
7acf79370b Merge branch 'main' into task/main/DURACOM-288
# Conflicts:
#	src/environments/environment.production.ts
#	src/environments/environment.test.ts
#	src/environments/environment.ts
2025-02-03 15:12:25 +01:00
Toni Prieto
72919cd867 Avoid retrieving user suggestions if Researcher profiles are disabled 2025-02-03 12:10:51 +01:00
kshepherd
073cd079e8 Merge pull request #3935 from tdonohue/add_reload_to_ssr_paths
Ensure `/reload/` (hard reload) path is included in SSR paths.
2025-02-03 12:10:47 +01:00
Jens Vannerum
8eaff78737 119612: aria-label to also include warning message if applicable 2025-02-03 11:20:18 +01:00
Jens Vannerum
daf2dc40d9 Merge remote-tracking branch 'origin/main' into w2p-119612_export-item-limit
# Conflicts:
#	src/assets/i18n/en.json5
2025-02-03 11:13:23 +01:00
Jens Vannerum
e1b773c097 119612: Check if a warning should be shown on changes to the total elements of the search, default to 500 if no value for the configuration property was returned 2025-02-03 10:11:28 +01:00
dependabot[bot]
21f4dc5fd9 Bump @types/lodash from 4.17.14 to 4.17.15
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.14 to 4.17.15.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 02:34:13 +00:00
dependabot[bot]
65834fc86e Bump isbot from 5.1.21 to 5.1.22
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.21 to 5.1.22.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.21...v5.1.22)

---
updated-dependencies:
- dependency-name: isbot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 02:33:57 +00:00
Tim Donohue
83d24f8c21 Ensure "/reload/" (hard reload) path is included in SSR paths. 2025-01-31 14:34:35 -06:00
Giuseppe Digilio
ac3e87db05 [DURACOM-288] Add convention SSR REST environment variable 2025-01-31 19:59:33 +01:00
Tim Donohue
7e69b448d6 Merge pull request #3912 from minurmin/authPasswordDialog
Fix auth in UI with LDAP if password authentication is disabled
2025-01-30 16:11:56 -06:00
Giuseppe Digilio
bf2d12a10b Merge branch 'main' into task/main/DURACOM-288
# Conflicts:
#	config/config.example.yml
2025-01-30 20:44:26 +01:00
Giuseppe Digilio
04e5f59cdf [DURACOM-288] Change properties description 2025-01-30 20:42:20 +01:00
Giuseppe Digilio
e1fad603f0 [DURACOM-288] Enable URL replacement by default 2025-01-30 20:41:32 +01:00
AndreaBarbasso
bdac58d7fc Make reorder buttons keyboard accessible (#3372)
* [CST-15595] add keyboard drag and drop functionality

* [CST-15595] add aria live messages

* [CST-15595] fix e2e tests

* [CST-15595] fix unit tests

* [CST-15595] improve drag and drop keyboard functionality

* [CST-15595] add keydown.enter for keyboard drag and drop

---------

Co-authored-by: Andrea Barbasso <´andrea.barbasso@4science.com´>
2025-01-30 11:11:42 -06:00
Vincenzo Mecca
c8aae069f8 [DURACOM-288] Fixes undefined request in thumbnail 2025-01-30 15:42:58 +01:00
Tim Donohue
e867993bb8 Merge pull request #3920 from tdonohue/config_syntax
Fix YAML syntax in config.example.yml
2025-01-29 16:38:31 -06:00
Tim Donohue
cafe88a3b8 Fix syntax in config.example.yml 2025-01-29 15:52:39 -06:00
Tim Donohue
98832f2540 Merge pull request #3581 from alexandrevryghem/made-expandable-navbar-section-more-accessible
Made expandable navbar section more keyboard accessible
2025-01-29 13:56:31 -06:00
Giuseppe Digilio
6e7c0da68a [DURACOM-288] Add unit test to test SSR url replace 2025-01-29 20:06:02 +01:00
Giuseppe Digilio
45ee56fe8f [DURACOM-288] Add missing settings to config.example.yml 2025-01-29 20:05:51 +01:00
Giuseppe Digilio
cfba84ce31 [DURACOM-288] Refactoring configuration to transfer state 2025-01-29 20:05:29 +01:00
Yury Bondarenko
a7276b8a30 Add configuration to toggle replace/transfer 2025-01-29 20:04:09 +01:00
Giuseppe Digilio
587e1546dc [DURACOM-288] Additional test for thumbnail component 2025-01-29 19:58:52 +01:00
Giuseppe Digilio
ec9a1e22f7 [DURACOM-288] Provide a setting to use a different REST url during SSR execution 2025-01-29 19:54:34 +01:00
Alexandre Vryghem
82ed3aadff 116404: Prevent the opening from the modal using mouse interactions from automatically focussing on the first element 2025-01-29 18:17:13 +01:00
Andrea-Guevara
f262299382 Accessibility when selecting a search filter (#3385)
* Creation of a new method so that when a filter is selected a page reload message is announced to the user

* Correcting import formatting errors

* New attempt - Correcting import formatting errors

* New import fix

* New import fix

* Returning to the order of imports more like the original

* Correcting import order errors

* Resolving conflicts

* lint fixes

* Code refactoring

---------

Co-authored-by: root <root@TI-03.OHB.LOCAL>
Co-authored-by: nwoodward <woodward.nicholas@gmail.com>
2025-01-29 10:52:13 -06:00
Tim Donohue
69164837f0 Merge pull request #3915 from tdonohue/port_3818_to_main
[Port main] Changing metadata in a user profile without specifying a password brings up a success and an error panel
2025-01-29 06:49:13 -06:00
VictorDuranEscire
090dda28ad Changing metadata in a user profile without specifying a password brings up a success and an error panel (#3818)
* Agregar validador para mostrar mensaje de error solo si se escribe la contraseña actual

* Agregar validador para mostrar mensaje de error solo si se escribe la contraseña actual

* Set constant variable for valid current password in profile page
2025-01-28 17:22:31 -06:00
Miika Nurminen
83d86d7b68 Ensure that password authentication dialog is shown even if only ldap auth method is present 2025-01-29 01:07:37 +02:00
Tim Donohue
d70fa8f569 Merge pull request #3268 from atmire/w2p-117544_support-for-disabled-elements-for-screen-readers-9.0
support for disabled buttons for screen readers
2025-01-28 16:17:35 -06:00
Tim Donohue
df377804bb Merge pull request #3846 from alexandrevryghem/w2p-122357_browse-performance-fixes_contribute-main
Browse performance fixes
2025-01-28 16:08:01 -06:00
Tim Donohue
84feea9b30 Merge pull request #3909 from saschaszott/saschaszott-patch-8
removal of duplicate keys in en.json5 and de.json5
2025-01-28 09:10:25 -06:00
Sascha Szott
baf3886115 remove duplicate key 2025-01-28 11:31:33 +01:00
Sascha Szott
262723b0ca remove duplicate key 2025-01-28 11:27:36 +01:00
Alexandre Vryghem
196a8c21db Merge branch 'main' into w2p-108608_created-search-scope-selector_contribute-main 2025-01-28 01:35:05 +01:00
Jens Vannerum
920edef155 117544: use directive after latest main merge 2025-01-27 10:20:42 +01:00
dependabot[bot]
7142e66910 Bump @babel/runtime from 7.26.0 to 7.26.7
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.26.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.7/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 02:47:50 +00:00
Alexandre Vryghem
6cf62a6c61 Merge branch 'main' into w2p-122357_browse-performance-fixes_contribute-main 2025-01-25 00:12:39 +01:00
Tim Donohue
b49e6fda9a Merge pull request #3862 from DSpace/dependabot/npm_and_yarn/mirador-3.4.3
Bump mirador from 3.4.2 to 3.4.3
2025-01-24 16:18:45 -06:00
Tim Donohue
89b72b9dc1 Merge pull request #3898 from tdonohue/bump_cross-spawn
Bump cross-spawn from 7.0.3 to 7.0.6
2025-01-24 12:51:49 -06:00
Tim Donohue
65e1b8ed60 Merge pull request #3212 from autavares-dev/fix-truncatable-part-keyboard-accessibility
Fix truncatable-part keyboard accessibility
2025-01-24 12:23:53 -06:00
Tim Donohue
2cebbd9b8f Bump cross-spawn from 7.0.3 to 7.0.6 2025-01-24 12:10:18 -06:00
Tim Donohue
c5603c7be2 Merge pull request #3413 from 4Science/task/main/CST-17153
Improve descriptive labels for show/hide x more buttons for related items (Item/Entity Homepage)
2025-01-24 12:05:16 -06:00
Andrea-Guevara
8cfc61c7f3 Improving the color contrast of home news content (#3880)
* Improving the color contrast of home news content

* Improved color contrast

* Adjusting font color changes

---------

Co-authored-by: root <root@TI-03.OHB.LOCAL>
2025-01-24 09:12:45 -06:00
Jens Vannerum
2a39bd831b Merge branch 'main' into w2p-119612_export-item-limit 2025-01-24 15:59:05 +01:00
Jens Vannerum
b69b21af6c 119612: UI warning that only first part of configured items will be exported 2025-01-24 15:58:25 +01:00
Jens Vannerum
7a948f1e2a Merge remote-tracking branch 'origin/main' into w2p-117544_support-for-disabled-elements-for-screen-readers-9.0 2025-01-24 10:05:09 +01:00
Tim Donohue
d653c011fe Merge pull request #3859 from DSpace/dependabot/npm_and_yarn/jsonschema-1.5.0
Bump jsonschema from 1.4.1 to 1.5.0
2025-01-23 16:50:46 -06:00
Tim Donohue
8dec8e4315 Merge pull request #3854 from DSpace/dependabot/npm_and_yarn/express-4.21.2
Bump express from 4.21.1 to 4.21.2
2025-01-23 16:03:34 -06:00
Tim Donohue
f4bc87d327 Merge pull request #3863 from DSpace/dependabot/npm_and_yarn/core-js-3.40.0
Bump core-js from 3.39.0 to 3.40.0
2025-01-23 16:01:16 -06:00
Tim Donohue
03b4ce3e60 Merge pull request #3853 from DSpace/dependabot/npm_and_yarn/sass-d300448e1c
Bump sass from 1.83.1 to 1.83.4 in the sass group
2025-01-23 15:11:12 -06:00
Tim Donohue
87f05f428f Merge pull request #3850 from DSpace/dependabot/npm_and_yarn/postcss-3a92966d17
Bump postcss from 8.4.49 to 8.5.1 in the postcss group
2025-01-23 14:48:13 -06:00
Alexandre Vryghem
1b83f18960 Merge branch 'w2p-119276_fixed-searchservice-returning-stale-requests_contribute-7.6' 2025-01-23 20:54:05 +01:00
FrancescoMolinaro
33a091d630 Prevent request with page size of 9999 (#3694)
* [DURACOM-304] Refactored item-bitstreams.component by removing page size of 9999

* [DURACOM-304] Refactored edit-bitstream-page.component by removing page size of 9999

* [DURACOM-304] Refactored scripts-select.component by using infinite scroll instead of page size 9999

* [DURACOM-304] Refactored dynamic-list.component.ts by removing page size of 9999

* [DURACOM-304] Refactored relationship-type-data.service.ts by removing page size of 9999

* [DURACOM-304] removed unneeded selectAll method (dynamic-lookup-relation-search-tab.component)

* [DURACOM-304] Refactored submission-section-cc-licenses.component.ts by removing page size of 9999

* [DURACOM-304] lint fix

* [DURACOM-304] test fix

* [DURACOM-304] fix accessibility issue on scripts-select

* [DURACOM-304] Refactor of bundle-data.service.ts by removing page size of 9999

* [DURACOM-304] other fix related to accessibility

* [DURACOM-304] lint fix

* [DURACOM-304] resolve conflicts

* [DURACOM-304] fix lint

* [DURACOM-304] add support for findAll method in dynamic-scrollable-dropdown.component.ts

* [DURACOM-304] refactor to use lazy data provider

* [DURACOM-304] improve loading logic for cc-licenses section and dynamic-list

* [DURACOM-304] refactor, fix dynamic-list.component loading

* [DURACOM-304] remove br

---------

Co-authored-by: Alisa Ismailati <alisa.ismailati@4science.com>
2025-01-23 12:26:36 -06:00
Tim Donohue
63c98740ba Merge pull request #3886 from tdonohue/port_3709_to_main
[Port main] Exclude search and browse from Angular SSR (#3709)
2025-01-23 11:46:02 -06:00
FrancescoMolinaro
17ecc592f3 Exclude search and browse from Angular SSR (#3709)
* [DURACOM-303] prevent possibly long-lasting search and browse calls in SSR

* [DURACOM-303] implement skeleton component for search results

* [DURACOM-303] add skeleton loader for search results and filters

* [DURACOM-303] minor restyle of skeleton for mobile

* [DURACOM-303] fix lint and tests

* [DURACOM-303] adapt tests

* [DURACOM-303] restyle skeleton, add filter badge skeleton

* [DURACOM-303] add loop for filters count

* [DURACOM-303] add grid layout, make SSR enabling configurable, minor restyle of skeletons

* [DURACOM-303] refactor param, add example of configuration

* [DURACOM-303] rename variable, minor code refactor

* [DURACOM-303] add override possibility with input

* [DURACOM-303] fix SSR check on template and on components missing the environment config. Add descriptive comment for skeleton component. Fix JS error on SSR.

* [DURACOM-303] refactor thumbnail's skeleton style
2025-01-23 10:16:12 -06:00
Tim Donohue
cb8a7cd402 Merge pull request #3884 from tdonohue/port_3876_to_main
[Port main] Fix redirect URLs of bitstreams with spaces in filename (new test ONLY)
2025-01-23 06:57:30 -06:00
Andreas Awouters
888459cb56 Merge remote-tracking branch 'dspace/main' into accessibility-settings-main
# Conflicts:
#	src/app/profile-page/profile-page.component.html
#	src/app/profile-page/profile-page.component.ts
#	src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts
#	src/app/shared/notifications/notifications-board/notifications-board.component.ts
#	src/themes/custom/app/profile-page/profile-page.component.ts
2025-01-23 09:53:46 +01:00
Andreas Awouters
f0ff625b4b Merge branch 'accessibility-settings-7.6' into accessibility-settings-main
# Conflicts:
#	src/app/accessibility/accessibility-settings.service.spec.ts
2025-01-23 09:42:23 +01:00
dependabot[bot]
09d7a7f257 Bump sass from 1.83.1 to 1.83.4 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.83.1 to 1.83.4
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.83.1...1.83.4)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-22 23:45:08 +00:00
Tim Donohue
c7ae1d63b5 Merge pull request #3833 from DSpace/dependabot/npm_and_yarn/webpack-2095da29ad
Bump webpack from 5.96.1 to 5.97.1 in the webpack group
2025-01-22 17:04:37 -06:00
Mohana Sarmiento
0475c0b2d9 Add unit test 2025-01-22 16:34:24 -06:00
Tim Donohue
a5fb2e6417 Merge pull request #3344 from 4Science/task/main/CST-15078
Add orcid icon with tooltip
2025-01-22 12:38:11 -06:00
Tim Donohue
f6269a95ee Merge pull request #3883 from tdonohue/port_3875_to_main
[Port main] Stabilize e2e tests that use admin sidebar menu
2025-01-22 10:21:33 -06:00
Tim Donohue
5c50faa319 Ensure admin menu e2e tests hover over admin menu before clicking on it. Attempt to stabilize tests which open this menu. 2025-01-22 09:38:38 -06:00
Tim Donohue
b08edf1ea4 Merge pull request #3682 from alanorth/angular-ssr-sitemap-3110
Restrict Angular SSR to paths in the sitemap
2025-01-21 16:09:31 -06:00
Tim Donohue
0a5d20e236 Merge pull request #3872 from saschaszott/saschaszott-patch-6
SCSS cleanup: remove duplicated line
2025-01-21 13:20:51 -06:00
Sascha Szott
5d04e44ff3 remove duplicated line 2025-01-21 18:29:10 +01:00
Andrea Barbasso
0a7307a515 [CST-15078] improve orcid logo image alt 2025-01-20 15:28:59 +01:00
Yana De Pauw
4f1013a20d Fix small issues 2025-01-20 13:27:36 +01:00
dependabot[bot]
b65f1ee5e3 Bump core-js from 3.39.0 to 3.40.0
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.39.0 to 3.40.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.40.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 22:58:18 +00:00
dependabot[bot]
6eabe425c4 Bump mirador from 3.4.2 to 3.4.3
Bumps [mirador](https://github.com/ProjectMirador/mirador) from 3.4.2 to 3.4.3.
- [Release notes](https://github.com/ProjectMirador/mirador/releases)
- [Commits](https://github.com/ProjectMirador/mirador/compare/v3.4.2...v3.4.3)

---
updated-dependencies:
- dependency-name: mirador
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 22:57:55 +00:00
dependabot[bot]
98fd9e7182 Bump jsonschema from 1.4.1 to 1.5.0
Bumps [jsonschema](https://github.com/tdegrunt/jsonschema) from 1.4.1 to 1.5.0.
- [Commits](https://github.com/tdegrunt/jsonschema/commits)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 22:57:40 +00:00
dependabot[bot]
9708c06372 Bump express from 4.21.1 to 4.21.2
Bumps [express](https://github.com/expressjs/express) from 4.21.1 to 4.21.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.2/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.1...4.21.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 22:56:46 +00:00
dependabot[bot]
f02f8bab88 Bump postcss from 8.4.49 to 8.5.1 in the postcss group
Bumps the postcss group with 1 update: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.4.49 to 8.5.1
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.49...8.5.1)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: postcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 22:56:06 +00:00
dependabot[bot]
bb412469c7 Bump webpack from 5.96.1 to 5.97.1 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.96.1 to 5.97.1
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.96.1...v5.97.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 22:54:02 +00:00
Tim Donohue
7009cf32cc Merge pull request #3834 from DSpace/dependabot/npm_and_yarn/types/lodash-4.17.14
Bump @types/lodash from 4.17.13 to 4.17.14
2025-01-17 12:02:49 -06:00
Tim Donohue
cd2959603b Merge pull request #3835 from DSpace/dependabot/npm_and_yarn/isbot-5.1.21
Bump isbot from 5.1.17 to 5.1.21
2025-01-17 11:21:50 -06:00
Tim Donohue
3c47acf9f1 Merge pull request #3752 from DSpace/dependabot/npm_and_yarn/nanoid-3.3.8
Bump nanoid from 3.3.7 to 3.3.8
2025-01-17 10:42:21 -06:00
Tim Donohue
570d711e01 Merge pull request #3832 from DSpace/dependabot/npm_and_yarn/testing-905b8585bc
Bump ng-mocks from 14.13.1 to 14.13.2 in the testing group
2025-01-17 10:40:50 -06:00
Tim Donohue
b2a10e4ace Merge pull request #3845 from atmire/issue-3840-scoped-browse-bys
Fix issue where scoped browse by would not inititialze correct component
2025-01-17 09:11:51 -06:00
Alan Orth
5b3b3bfb9c Restrict SSR to paths in the sitemap
Because Angular SSR is not very efficient, after discussion with
the Google Scholar team we realized a compromise would be to only
use SSR for pages in the DSpace sitemap (and the home page).
2025-01-17 15:30:43 +03:00
Alexandre Vryghem
89281d7c99 Merge branch 'w2p-122357_prevent-request-urls-from-being-fired-multiple-times-7.4' into w2p-122357_browse-performance-fixes_contribute-main 2025-01-17 00:52:43 +01:00
Alexandre Vryghem
c3e635bff1 Merge branch 'refactor-comcol-pages_contribute-7.6' into w2p-122357_browse-performance-fixes_contribute-main 2025-01-17 00:47:41 +01:00
Jens Vannerum
32fae27c7a 124382: fix issue where scoped browse by would not init correct components 2025-01-16 12:28:48 +01:00
Tim Donohue
76ae286f2a Merge pull request #3783 from DSpace/dependabot/npm_and_yarn/mirador-3.4.2
Bump mirador from 3.3.0 to 3.4.2
2025-01-15 16:45:48 -06:00
Tim Donohue
0e29c09b7a Merge pull request #3663 from DSpace/dependabot/npm_and_yarn/eslint-6ac3f070f3
Bump eslint-plugin-jsonc from 2.16.0 to 2.18.2 in the eslint group across 1 directory
2025-01-15 15:55:42 -06:00
Tim Donohue
6cf05c1403 Merge pull request #3798 from DSpace/dependabot/npm_and_yarn/sass-fc80c07a3c
Bump sass from 1.80.6 to 1.83.1 in the sass group across 1 directory
2025-01-15 15:52:17 -06:00
Tim Donohue
09c11f8dbc Merge pull request #3782 from DSpace/dependabot/npm_and_yarn/fortawesome/fontawesome-free-6.7.2
Bump @fortawesome/fontawesome-free from 6.6.0 to 6.7.2
2025-01-15 15:11:29 -06:00
Tim Donohue
c20bf58b4b Merge pull request #3842 from tdonohue/test_stabilization
Attempt to stabilize a few randomly failing e2e tests
2025-01-15 12:04:40 -06:00
Tim Donohue
7feb9fc617 Ensure Item Edit page tab is visible before & after clicking it. 2025-01-15 10:37:30 -06:00
Tim Donohue
5623cc9221 Ensure Admin sidebar link is visible before clicking links 2025-01-15 10:30:46 -06:00
Tim Donohue
6dd61ca25e Merge pull request #3734 from DSpace/dependabot/npm_and_yarn/axios-1.7.9
Bump axios from 1.7.7 to 1.7.9
2025-01-14 17:01:24 -06:00
DanGastardelli
fa723c17a9 Adjust thumb text for smaller resolutions 2025-01-14 12:51:07 -03:00
dependabot[bot]
f067eb9aae Bump eslint-plugin-jsonc in the eslint group across 1 directory
Bumps the eslint group with 1 update in the / directory: [eslint-plugin-jsonc](https://github.com/ota-meshi/eslint-plugin-jsonc).


Updates `eslint-plugin-jsonc` from 2.16.0 to 2.18.2
- [Release notes](https://github.com/ota-meshi/eslint-plugin-jsonc/releases)
- [Changelog](https://github.com/ota-meshi/eslint-plugin-jsonc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/eslint-plugin-jsonc/compare/v2.16.0...v2.18.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsonc
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 03:08:41 +00:00
dependabot[bot]
d8a73c362c Bump isbot from 5.1.17 to 5.1.21
Bumps [isbot](https://github.com/omrilotan/isbot) from 5.1.17 to 5.1.21.
- [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md)
- [Commits](https://github.com/omrilotan/isbot/compare/v5.1.17...v5.1.21)

---
updated-dependencies:
- dependency-name: isbot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 03:08:38 +00:00
dependabot[bot]
e02326510f Bump @types/lodash from 4.17.13 to 4.17.14
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.13 to 4.17.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 03:08:15 +00:00
dependabot[bot]
096c5bdedd Bump ng-mocks from 14.13.1 to 14.13.2 in the testing group
Bumps the testing group with 1 update: [ng-mocks](https://github.com/help-me-mom/ng-mocks).


Updates `ng-mocks` from 14.13.1 to 14.13.2
- [Release notes](https://github.com/help-me-mom/ng-mocks/releases)
- [Changelog](https://github.com/help-me-mom/ng-mocks/blob/master/CHANGELOG.md)
- [Commits](https://github.com/help-me-mom/ng-mocks/compare/v14.13.1...v14.13.2)

---
updated-dependencies:
- dependency-name: ng-mocks
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 03:07:30 +00:00
dependabot[bot]
ccdf5498d8 Bump sass from 1.80.6 to 1.83.1 in the sass group across 1 directory
Bumps the sass group with 1 update in the / directory: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.80.6 to 1.83.1
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.80.6...1.83.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 03:07:14 +00:00
VictorHugoDuranS
c5f07daab7 Fix for User profile (/profile): only 20 group memberships shown instead of all (#3105)
* Add - groups paginated on profile page

* Add - groups paginated on profile page

* Add - groups paginated on profile page

* Add - groups paginated on profile page

* Fix UPDATE - Add pagination message error and loader

* Update BRANCH

* Fix - LINT ERRORS

* Fix: Error declaring variable for group pagination

* Fix: Remove unnecessary translations for paging groups

* Fix: Lint erros

* Fix: Remove unnecessary translations

---------

Co-authored-by: VictorDuranEscire <victor@escire.lat>
2025-01-10 15:35:41 -06:00
VictorHugoDuranS
f52aac879a Change - Metadata field selector, add infinite scroll for data paginated (#3096)
* Change - Metadata field selector add infinite scroll for data paginated

* Update change on new BRANCH

* Fix - LINT ERRORS

* Fix - LINT ERRORS
2025-01-10 15:17:08 -06:00
Tim Donohue
08800f4469 Merge pull request #3608 from toniprieto/allow-free-text-edition
Add button to allow free-text editing in the dropdown field of Edit Item
2025-01-10 13:21:09 -06:00
Andreas Awouters
5df74718b3 Merge branch 'w2p-122839_vocabulary-preloadlevel-fix' into vocabulary-preloadlevel-fix-main
# Conflicts:
#	src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.spec.ts
#	src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.ts
2025-01-10 13:26:41 +01:00
Tim Donohue
952611a3d3 Merge pull request #3814 from toniprieto/translate-es-9x
Update spanish translation
2025-01-09 16:27:42 -06:00
Toni Prieto
050cde3735 Update es.json5 2025-01-08 22:54:11 +01:00
Tim Donohue
272cb656cd Merge pull request #3631 from DSpace/dependabot/npm_and_yarn/orejime-2.3.1
Bump orejime from 2.3.0 to 2.3.1
2025-01-07 17:06:18 -06:00
Tim Donohue
cf87b905b6 Merge pull request #3662 from DSpace/dependabot/npm_and_yarn/postcss-65f8102df2
Bump postcss from 8.4.47 to 8.4.49 in the postcss group across 1 directory
2025-01-07 16:16:57 -06:00
Tim Donohue
c1fb26fe26 Merge pull request #3781 from DSpace/dependabot/npm_and_yarn/testing-4e904f02fc
Bump cypress from 13.16.0 to 13.17.0 in the testing group across 1 directory
2025-01-07 16:03:09 -06:00
Koen Pauwels
8a62deb90b Reduce browse definition requests on simple item page (#3701)
* 121561 Reduce the number of browse definition requests on Item pages by reusing the navbar request for all browse indexes

* Fix test issues.

---------

Co-authored-by: Koen Pauwels <koen.pauwels@atmire.com>
2025-01-07 15:23:48 -06:00
Tim Donohue
f24e53f1ea Merge pull request #3719 from saschaszott/saschaszott-patch-5
Remove nested span elements with duplicate content of parent elements
2025-01-07 09:08:35 -06:00
Tim Donohue
b1c507807a Merge pull request #3632 from DSpace/dependabot/npm_and_yarn/express-static-gzip-2.2.0
Bump express-static-gzip from 2.1.8 to 2.2.0
2025-01-06 16:59:43 -06:00
Tim Donohue
5bd8795262 Merge pull request #3142 from atmire/w2p-115284_add-support-for-non-repeatable-relationships_dspace-8
Add support for non repeatable relationships
2025-01-06 11:58:04 -06:00
Tim Donohue
53f46040d3 Merge pull request #3772 from saschaszott/saschaszott-patch-7
add German translation of process view related keys
2025-01-06 10:48:46 -06:00
Tim Donohue
2c22517090 Merge pull request #3192 from Neki-IT/SpanishTranslationKeys
Spanish translation keys
2025-01-06 09:29:30 -06:00
Tim Donohue
d8246f4550 Merge pull request #3792 from alanorth/node-version-readme
README.md: update Node.js and NPM versions
2025-01-06 09:16:07 -06:00
Yana De Pauw
cb4a7b31f0 Add missing provider tests 2025-01-06 14:38:19 +01:00
root
fda9330221 Advanced search translation keys 2025-01-06 08:21:04 -03:00
dependabot[bot]
9d4542c2a4 Bump cypress in the testing group across 1 directory
Bumps the testing group with 1 update in the / directory: [cypress](https://github.com/cypress-io/cypress).


Updates `cypress` from 13.16.0 to 13.17.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.16.0...v13.17.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-06 02:38:49 +00:00
dependabot[bot]
c1a1fe7443 Bump postcss in the postcss group across 1 directory
Bumps the postcss group with 1 update in the / directory: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.4.47 to 8.4.49
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.47...8.4.49)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: postcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-06 02:38:29 +00:00
Toni Prieto
e04cdef429 Update ca.json5 2025-01-03 18:02:49 +01:00
root
01cb2c7429 Fixing space error and adding new translation keys 2025-01-03 10:14:47 -03:00
Alan Orth
d1d9f2f7f9 README.md: update Node.js and NPM versions
Angular 17.x needs Node.js 18.x or 20.x, which come with NPM v10.

See: https://angular.dev/reference/versions
See: https://nodejs.org/en/about/previous-releases#looking-for-latest-release-of-a-version-branch
2025-01-03 10:25:37 +03:00
Alexandre Vryghem
2cde0d3f21 Fixed dropdown/lookup & lookup-name fields being reset when hitting enter (#3724) 2025-01-03 09:09:44 +03:00
Alan Orth
08f48d8204 Merge pull request #3737 from TexasDigitalLibrary/fix-typo-browse-metadata 2025-01-03 09:06:46 +03:00
Alan Orth
af7c095af0 Merge pull request #3718 from saschaszott/saschaszott-patch-4 2025-01-03 09:00:48 +03:00
Yana De Pauw
b8bb3ff815 Merge branch 'w2p-121550_refactor-menu-resolvers-7.6_option-1' into refactor-menu-resolvers-7.6_sketch-branch 2025-01-02 17:42:51 +01:00
Andrea-Guevara
fea109117f Merge branch 'main' into SpanishTranslationKeys 2025-01-02 11:02:58 -03:00
Yana De Pauw
4729ae950d Fix merge issues 2025-01-02 14:17:06 +01:00
Yana De Pauw
1c1bcc704a Merge branch 'refactor-menu-resolvers-7.6_basic-providers-tests' into refactor-menu-resolvers-7.6_sketch-branch 2025-01-02 11:14:56 +01:00
Alexandre Vryghem
d85d5fbd71 121550: Use IDs on the routes in order to assign AbstractRouteContextMenuProviders 2025-01-02 10:29:30 +01:00
Gantner, Florian Klaus
4dcc7c282d translation keys for datacite project import
https://github.com/DSpace/DSpace/issues/9636
2024-12-28 12:58:18 +01:00
Gantner, Florian Klaus
d61cb33f9a change search filter isOpenByDefault autoserialization
https://github.com/DSpace/DSpace/issues/9404
2024-12-27 13:14:30 +01:00
dependabot[bot]
741cf66518 Bump mirador from 3.3.0 to 3.4.2
Bumps [mirador](https://github.com/ProjectMirador/mirador) from 3.3.0 to 3.4.2.
- [Release notes](https://github.com/ProjectMirador/mirador/releases)
- [Commits](https://github.com/ProjectMirador/mirador/compare/v3.3.0...v3.4.2)

---
updated-dependencies:
- dependency-name: mirador
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 03:04:05 +00:00
dependabot[bot]
b583e17880 Bump @fortawesome/fontawesome-free from 6.6.0 to 6.7.2
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.6.0 to 6.7.2.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.6.0...6.7.2)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 03:03:54 +00:00
DanGastardelli
829d406808 Key spacing adjustment 2024-12-20 15:51:21 -03:00
DanGastardelli
e06db4cbab Adding treatment for the use of the thumb-font-2 class 2024-12-20 15:50:27 -03:00
Sascha Szott
85a120da62 add German translation of process view related keys 2024-12-20 14:28:22 +01:00
Tim Donohue
6ac922971d Merge pull request #3679 from 4Science/task/main/DURACOM-297
#3678, #3217 - Fix ordering and changing values of repeatable inputs in submission form
2024-12-19 16:25:35 -06:00
Tim Donohue
225a2b6736 Merge pull request #3367 from Andrea-Guevara/AccessibilityInVocabularyTreeview
Accessibility in vocabulary treeview
2024-12-19 12:08:37 -06:00
Tim Donohue
aba988a6a4 Merge pull request #3322 from Andrea-Guevara/TargetUrl
fix #3241: Configuring the URI link target
2024-12-19 11:44:23 -06:00
Tim Donohue
5b3da0236f Merge pull request #2972 from pcg-kk/issues/2819/linkName-in-the-link-decorator-doesnt-assign-to-the-value-on-the-correct-property
fix: linkName from decorator assign value to the correct property
2024-12-19 11:16:46 -06:00
Nathan Buckingham
d13d8860f2 RSS feed from search results (Angular) (#3227)
* Port rss to 7.6 and upgrades to search functionality

* 116466: add missing imports

* 116466: fix tests and lint issues

* 116466: rss component use activated route data

* 116466: lint fixes

* 116466: More Lint fixes

---------

Co-authored-by: Nathan Buckingham <nathan.buckingham@atmire.com>
2024-12-19 11:03:52 -06:00
Alan Orth
0ade76a99c Merge pull request #3753 from atmire/w2p-121787_Investigate-internal-server-error-on-browse-page-experiment
Get rid of unnecessary and failing REST requests when navigating between different browse indexes
2024-12-19 15:57:21 +03:00
Koen Pauwels
a105bcd6f4 121787: Get rid of multiple unnecessary requests on browse by pages 2024-12-19 11:14:46 +01:00
Tim Donohue
b454e49553 Merge pull request #3607 from DSpace/dependabot/npm_and_yarn/core-js-3.39.0
Bump core-js from 3.38.1 to 3.39.0
2024-12-18 16:51:43 -06:00
Andrea-Guevara
f16015abc2 More accessible file download link for users who use a screen reader (#3264)
* More accessible file download link for users who use a screen reader

* Refactoring implementation - More accessible file download link for users who use a screen reader

* Fixing import error

* Solving the spaces error

* Solving the spaces error

* Solving the spaces error in file pt-BR.json5

---------

Co-authored-by: andreaNeki <root@TI-03.OHB.LOCAL>
2024-12-18 14:18:24 -06:00
Giuseppe
253b2e84d1 Fix issue with submission sections visibility (#3276)
* Removing position-fixed bootstrap class so that navbar links are available again

(cherry picked from commit 351abaa5c2)

* A new approach so that the elements of the ds-file-dropzone-no-uploader component don't overlap the navbar and make it inaccessible

(cherry picked from commit 2c259f5ae9)

* [DURACOM-291] fix submission section visibility in order to rely on the configured section scope

* Removing position-fixed bootstrap class so that navbar links are available again

(cherry picked from commit 351abaa5c2)

* A new approach so that the elements of the ds-file-dropzone-no-uploader component don't overlap the navbar and make it inaccessible

(cherry picked from commit 2c259f5ae9)

---------

Co-authored-by: root <root@TI-03.OHB.LOCAL>
2024-12-18 14:13:44 -06:00
Tim Donohue
05c74123a5 Merge pull request #3224 from 4Science/task/main/CST-15590
Close user profile menu after menu entry is selected
2024-12-18 12:08:00 -06:00
Tim Donohue
f339d8bf37 Merge pull request #3464 from atmire/item-edit-bitstreams-table-main
Edit Item, Bitstreams tab: Accessibility improvements
2024-12-17 16:59:22 -06:00
Tim Donohue
c1aabf6add Merge pull request #3720 from alexandrevryghem/w2p-117573_remove-observable-function-calls-from-template_contribute-main
Embed the community/collection on the edit EPerson page
2024-12-17 16:09:07 -06:00
Tim Donohue
5a7190203a Merge pull request #3754 from tdonohue/update_docker_to_ghcr
[GitHub Actions][Docker] Update Docker scripts & GitHub Actions to use ghcr.io instead of docker.io
2024-12-16 16:03:59 -06:00
Tim Donohue
dab6b1c12e Login to GHCR in order to have access to private Docker images for e2e tests. 2024-12-16 15:09:13 -06:00
Tim Donohue
bad57def74 Update GitHub Actions for Docker & normal build to use GitHub Container Registry 2024-12-16 14:15:52 -06:00
Tim Donohue
0d516bfe9c Allow for other Docker registries to be used with all Docker compose scripts 2024-12-16 14:12:01 -06:00
Tim Donohue
4575c3d7af Use fully qualified image names in Dockerfiles. Minor syntax fixes to ENV variables 2024-12-16 14:06:50 -06:00
dependabot[bot]
494771c0da Bump nanoid from 3.3.7 to 3.3.8
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 13:34:09 +00:00
Alexandre Vryghem
44d2450543 121550: Fixed dso edit menu crashing when dso isn't resolved yet 2024-12-13 11:03:36 +01:00
root
8572bfb1b1 Addition of unit tests for the getLinkAttributes() method 2024-12-11 13:07:48 -03:00
Andreas Awouters
cc70eaa82e Merge branch 'item-edit-bitstreams-table-7.6' into item-edit-bitstreams-table-main 2024-12-11 12:02:55 +01:00
Andreas Awouters
ff7c9ba955 Merge branch 'accessibility-settings-7.6' into accessibility-settings-main
# Conflicts:
#	src/app/accessibility/accessibility-settings.service.spec.ts
#	src/app/accessibility/accessibility-settings.service.ts
#	src/app/info/accessibility-settings/accessibility-settings.component.spec.ts
#	src/app/info/accessibility-settings/accessibility-settings.component.ts
#	src/app/info/info.module.ts
#	src/app/shared/live-region/live-region.service.ts
#	src/app/shared/notifications/notifications-board/notifications-board.component.ts
2024-12-11 11:05:18 +01:00
Tim Donohue
ac00f88fe0 Merge pull request #3065 from alexandrevryghem/new-themed-components_contribute-main
Made AdminSearchPageComponent themeable
2024-12-10 09:57:31 -06:00
nwoodward
c67dc4d8e4 fixed typo in descrption 2024-12-09 11:27:00 -06:00
Agustina Martinez
f2d6f774d3 #10053: Add support for PCI Endorsement workflow 2024-12-09 16:28:17 +00:00
dependabot[bot]
1a48a6c853 Bump axios from 1.7.7 to 1.7.9
Bumps [axios](https://github.com/axios/axios) from 1.7.7 to 1.7.9.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.7...v1.7.9)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-09 02:56:11 +00:00
Alexandre Vryghem
7ca4d8f2b1 fix: ensure findListByHref correctly calls addDependency 2024-12-07 02:21:41 +01:00
Alexandre Vryghem
e4b2ebe7aa fix: replace 'any' with specific types 2024-12-06 23:29:21 +01:00
Alexandre Vryghem
2fb746f6e6 Merge branch 'main' into linkName-in-the-link-decorator-doesnt-assign-to-the-value-on-the-correct-property
# Conflicts:
#	src/app/core/data/base/base-data.service.spec.ts
2024-12-06 23:29:12 +01:00
Alexandre Vryghem
11626e22eb Merge branch 'w2p-117573_remove-observable-function-calls-from-template-7.6'
# Conflicts:
#	src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts
#	src/app/shared/object-detail/my-dspace-result-detail-element/item-detail-preview/item-detail-preview.component.ts
2024-12-06 18:36:11 +01:00
Sascha Szott
dbd67f056e fix indentation 2024-12-06 18:12:44 +01:00
Sascha Szott
acb7c9bd33 remove nested span element 2024-12-06 18:09:02 +01:00
Sascha Szott
97b5e0cc92 fix nested span element 2024-12-06 18:05:07 +01:00
Sascha Szott
e9a28c6d3d fix nested span element 2024-12-06 18:02:43 +01:00
Sascha Szott
2e174cd9e6 fix nested span element 2024-12-06 18:01:37 +01:00
Sascha Szott
15d3f257b3 fix nested span element 2024-12-06 18:00:47 +01:00
Sascha Szott
8509096c32 fix nested span element 2024-12-06 17:59:56 +01:00
Sascha Szott
84878ede67 fix nested span element 2024-12-06 17:56:50 +01:00
Sascha Szott
394ecea118 fix nested span element in templates 2024-12-06 17:47:14 +01:00
Sascha Szott
71de4b600b fix value of selector in component annotation 2024-12-06 17:34:37 +01:00
Tim Donohue
dcea3baf46 Merge pull request #3677 from alexandrevryghem/w2p-120109_fix-findByHref-and-findListByHref-skipping-their-response
Fix infinite loading on item pages and optimize menu resolver usage
2024-12-05 14:49:05 -06:00
Alexandre Vryghem
446280b59a Fixed search facet deadlock
Also fixed minor issue in MetadataService, but this doesn't cause any issues in the current code
2024-12-05 21:37:45 +01:00
Tim Donohue
37bd26ed1e Merge pull request #3693 from alexandrevryghem/w2p-121534_removed-metadata-export-search-request-for-non-admins-on-search_contribute-main
Removed unauthorized metadata-export-search request on search page
2024-12-03 12:15:45 -06:00
Alan Orth
0b3cb7906c Merge branch 'main' into w2p-121534_removed-metadata-export-search-request-for-non-admins-on-search_contribute-main 2024-12-03 12:13:19 +03:00
Tim Donohue
3ca56c3c28 Merge pull request #3689 from DSpace/dependabot/npm_and_yarn/testing-8ac0a25ce2
Bump cypress from 13.15.1 to 13.16.0 in the testing group across 1 directory
2024-12-02 08:56:41 -06:00
dependabot[bot]
9f74d45e16 Bump cypress in the testing group across 1 directory
Bumps the testing group with 1 update in the / directory: [cypress](https://github.com/cypress-io/cypress).


Updates `cypress` from 13.15.1 to 13.16.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.15.1...v13.16.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 02:40:45 +00:00
Giuseppe
67c253bbbb Merge branch 'DSpace:main' into task/main/CST-15590 2024-11-29 13:12:25 +01:00
Alan Orth
05508b63ab Merge pull request #3308 from 4Science/task/main/DURACOM-296 2024-11-28 10:56:47 +03:00
kshepherd
be2662fb92 Merge pull request #3181 from 4Science/task/main/CST-14903
Orcid Authorization / Synchronization Page Fixes
2024-11-27 15:02:38 +01:00
Alexandre Vryghem
feceb21d9c Merge remote-tracking branch 'alex/fix-scope-issues-on-search-form_contribute-7.6' into w2p-121534_removed-metadata-export-search-request-for-non-admins-on-search_contribute-main 2024-11-25 22:31:24 +01:00
Alexandre Vryghem
2011aee21e Merge remote-tracking branch 'alex/w2p-121534_removed-metadata-export-search-request-for-non-admins-on-search_contribute-7.6' into w2p-121534_removed-metadata-export-search-request-for-non-admins-on-search_contribute-main
# Conflicts:
#	src/app/shared/search/search-export-csv/search-export-csv.component.spec.ts
#	src/app/shared/search/search-export-csv/search-export-csv.component.ts
2024-11-25 22:31:04 +01:00
Alexandre Vryghem
70b855e785 121534: Removed unauthorized metadata-export-search request on search page for non-admins 2024-11-25 22:20:36 +01:00
Yury Bondarenko
b2715501b0 Update tests to match 2024-11-25 16:49:16 +01:00
Yury Bondarenko
7cd13f692e Merge remote-tracking branch 'contrib/refactor-menu-resolvers-7.6_basic-providers-tests' into refactor-menu-resolvers-7.6_sketch-branch 2024-11-25 16:38:46 +01:00
Alexandre Vryghem
e4daf2b825 120256: Ensure searchOptions$ is a SearchOptions and not a plain object 2024-11-25 15:17:34 +01:00
Tim Donohue
256d71cc1e Merge pull request #3683 from tdonohue/config_fixes
Fix incorrect example in `config.example.yml`
2024-11-22 11:16:48 -06:00
Tim Donohue
138c007f28 Fix incorrect example. The setting category is called "ssr" and not "universal" 2024-11-22 09:42:14 -06:00
Andrea Barbasso
1c9272107c [DURACOM-297] fix changing values in submission form after ordering 2024-11-21 11:11:53 +01:00
Alexandre Vryghem
5c9f494f76 120109: Updated the route configuration to only resolve the dsoEditMenuResolver on pages who use the DsoEditMenuComponent 2024-11-20 14:46:44 +01:00
Alexandre Vryghem
decacec404 120109: Fixed "no elements in sequence" sometimes being thrown on the item bitstream & relationship tabs 2024-11-20 10:55:41 +01:00
Alexandre Vryghem
0f4d71eb58 120109: Fixed BaseDataService not emitting when the request is too fast and the ResponsePending are not emitted 2024-11-20 10:55:41 +01:00
Tim Donohue
757d23e74d Merge pull request #3671 from 4Science/task/main/DURACOM-305
Fixes the display of the System Wide Alert
2024-11-18 11:01:08 -06:00
Alisa Ismailati
628ec2b6ba [DURACOM-305] Fixes the deserialization of the SystemWideAlert 2024-11-18 15:19:04 +01:00
Tim Donohue
bfefc4139e Merge pull request #3656 from 4Science/task/main/DURACOM-300
#3655 - Fixes Spacing Issue Between Email Label and Email Address on Profile Setup Form
2024-11-15 16:34:23 -06:00
Yana De Pauw
a105131b2b Finalise menu refactor, add typedocs and tests 2024-11-15 18:25:37 +01:00
Simone Ramundi
2b104183f7 [DURACOM-300] Fixed space in registration form 2024-11-15 15:33:23 +01:00
Tim Donohue
aec402e77f Merge pull request #3649 from pilasou/pilasou-translations-fr
French translations for subscriptions feature
2024-11-13 13:51:16 -06:00
Tim Donohue
0417e1de59 Merge pull request #3225 from 4Science/task/main/CST-15591
Fixed headings by their rank
2024-11-13 11:26:02 -06:00
Pierre Lasou
2c16162948 French translations for subscriptions feature
Includes all french labels for subcriptions, plus 2 or 3 other missing things.
2024-11-13 10:19:02 -05:00
Tim Donohue
e267244caa Merge pull request #3646 from alexandrevryghem/w2p-120150_fixed-authorization-tab-not-loading-in-dev-mode
Fixed authorization tab not loading in dev mode
2024-11-12 09:58:01 -06:00
Alexandre Vryghem
c062d95354 120150: Fixed authorization tab not loading in dev mode 2024-11-12 11:33:45 +01:00
Tim Donohue
f6d8446c75 Merge pull request #3585 from alexandrevryghem/w2p-117573_remove-observable-function-calls_contribute-main
Removed observable function calls from template (part 1)
2024-11-11 16:18:46 -06:00
Tim Donohue
3fda97f573 Merge pull request #3644 from pilasou/pilasou-translations-fr
French translations for COAR Notify  LDN Service
2024-11-11 14:23:46 -06:00
Pierre Lasou
60dfe056dd Fixes lint error Trailing spaces 2024-11-11 14:27:41 -05:00
Pierre Lasou
20263073c6 French translations for COAR Notify LDN Service
Contains all translations in french for new DSpace 8 COAR Notify module.
2024-11-11 13:57:43 -05:00
Tim Donohue
a0973090ee Merge pull request #3222 from dataquest-dev/dtq/update-cs-messages
[WIP] Updated `cs` messages following the lindat v5 and clarin-dspace v7 instance
2024-11-11 09:31:10 -06:00
milanmajchrak
4b6e4c60c2 Merge branch 'main' into dtq/update-cs-messages 2024-11-11 10:01:40 +01:00
dependabot[bot]
19da7bf453 Bump express-static-gzip from 2.1.8 to 2.2.0
Bumps [express-static-gzip](https://github.com/tkoenig89/express-static-gzip) from 2.1.8 to 2.2.0.
- [Release notes](https://github.com/tkoenig89/express-static-gzip/releases)
- [Commits](https://github.com/tkoenig89/express-static-gzip/compare/v2.1.8...v2.2.0)

---
updated-dependencies:
- dependency-name: express-static-gzip
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 02:18:52 +00:00
dependabot[bot]
fb55a04f70 Bump orejime from 2.3.0 to 2.3.1
Bumps [orejime](https://github.com/empreinte-digitale/orejime) from 2.3.0 to 2.3.1.
- [Changelog](https://github.com/empreinte-digitale/orejime/blob/master/CHANGELOG.md)
- [Commits](https://github.com/empreinte-digitale/orejime/commits)

---
updated-dependencies:
- dependency-name: orejime
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 02:18:07 +00:00
Tim Donohue
10ccf32435 Merge pull request #3603 from DSpace/dependabot/npm_and_yarn/sass-8323b2791b
Bump sass from 1.80.4 to 1.80.6 in the sass group
2024-11-08 16:03:04 -06:00
dependabot[bot]
bc7c086ca6 Bump core-js from 3.38.1 to 3.39.0
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.38.1 to 3.39.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.39.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-08 20:33:00 +00:00
Tim Donohue
0f850f3327 Merge pull request #3606 from DSpace/dependabot/npm_and_yarn/compression-1.7.5
Bump compression from 1.7.4 to 1.7.5
2024-11-08 14:31:54 -06:00
dependabot[bot]
a81799fd07 Bump sass from 1.80.4 to 1.80.6 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.80.4 to 1.80.6
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.80.4...1.80.6)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-08 20:29:10 +00:00
Tim Donohue
89e458a9f6 Merge pull request #3604 from DSpace/dependabot/npm_and_yarn/webpack-835be9230a
Bump webpack from 5.95.0 to 5.96.1 in the webpack group
2024-11-08 14:27:56 -06:00
dependabot[bot]
821b8ee3f0 Bump webpack from 5.95.0 to 5.96.1 in the webpack group
Bumps the webpack group with 1 update: [webpack](https://github.com/webpack/webpack).


Updates `webpack` from 5.95.0 to 5.96.1
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.95.0...v5.96.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: webpack
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-08 19:24:18 +00:00
Tim Donohue
e4cdd73294 Merge pull request #3199 from 4Science/task/main/CST-15593
[#2718] Migrate cookie consent from Klaro to Orejime
2024-11-08 13:21:09 -06:00
milanmajchrak
d819cf4396 Updated supervised by messages following NTK suggestions 2024-11-08 15:24:06 +01:00
Tim Donohue
2c7e30ce21 Merge pull request #3620 from saschaszott/patch-31
class `Metadata`: rename parameter names in JSDoc from `mapOrMaps` to `mdMapOrMaps`
2024-11-07 14:13:07 -06:00
Tim Donohue
1ccdec290a Merge pull request #3619 from saschaszott/patch-30
BitstreamAuthorizationsComponent: update selector and comment to correctly describe component's purpose
2024-11-07 14:12:11 -06:00
Sascha Szott
65d17e4784 rename parameter name in the function JSDoc from 'mapOrMaps' to 'mdMapOrMaps' 2024-11-07 20:09:05 +01:00
Sascha Szott
752951ce3b fix invalid selector 2024-11-07 20:02:39 +01:00
Sascha Szott
33dddc697f update comment to correctly describe component's purpose 2024-11-07 19:58:01 +01:00
pcg-kk
752eb4c57b fix: resolve issue with unit tests 2024-11-06 21:29:34 +01:00
Alexandre Vryghem
ded0079f24 119915: Restored functionality to hide the research profile section on the profile page 2024-11-06 14:08:42 +01:00
Andreas Awouters
ed0fcd982c Merge branch 'accessibility-settings-7.6' into accessibility-settings-main
# Conflicts:
#	src/app/core/auth/auth.service.ts
#	src/app/info/info-routing-paths.ts
#	src/app/info/info-routing.module.ts
#	src/app/info/info.module.ts
#	src/app/shared/live-region/live-region.service.spec.ts
#	src/app/shared/live-region/live-region.service.ts
#	src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts
#	src/app/shared/notifications/notifications-board/notifications-board.component.ts
#	src/config/app-config.interface.ts
#	src/config/default-app-config.ts
2024-11-06 14:06:26 +01:00
Toni Prieto
67f9623cf4 Allow free-text editing for hierarchical vocabulary fields as well 2024-11-05 22:01:05 +01:00
Tim Donohue
25d8f6e323 Merge pull request #3590 from pilasou/pilasou-translations-fr
Complete tag translations in french for ORCID and Researcher Profile
2024-11-04 14:22:31 -06:00
Tim Donohue
da2a9d3389 Merge pull request #3605 from DSpace/dependabot/npm_and_yarn/types/lodash-4.17.13
Bump @types/lodash from 4.17.12 to 4.17.13
2024-11-04 09:04:25 -06:00
milanmajchrak
1aef6ce1d6 Updated messages for the 'supervised' and 'claim' sentenses 2024-11-04 14:37:04 +01:00
Andrea Barbasso
5bd99a1216 [CST-15593] fix authenticated orejime cookie encoding 2024-11-04 12:40:45 +01:00
dependabot[bot]
1645acece4 Bump compression from 1.7.4 to 1.7.5
Bumps [compression](https://github.com/expressjs/compression) from 1.7.4 to 1.7.5.
- [Release notes](https://github.com/expressjs/compression/releases)
- [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/compression/compare/1.7.4...1.7.5)

---
updated-dependencies:
- dependency-name: compression
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 03:03:36 +00:00
dependabot[bot]
6b521e7505 Bump @types/lodash from 4.17.12 to 4.17.13
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.12 to 4.17.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 03:02:30 +00:00
Ray Lee
449c092bf9 Add support for SAML authentication. 2024-11-01 14:41:34 -04:00
Pierre Lasou
23dd7903ba Correction of 2 lint errors due to spacing. 2024-11-01 14:02:00 -04:00
Pierre Lasou
fde2db85e7 Correct small alignment errors 2024-11-01 11:35:05 -04:00
Tim Donohue
4fd3df4f8a Merge pull request #3272 from Neki-IT/AccessibilityInNewUserRegistration
Improving accessibility on the new user registration page
2024-11-01 09:37:32 -05:00
Alexandre Vryghem
33bdb69dca 119915: Extracted the authority/controlled vocabulary logic out of DsoEditMetadataValueComponent
Also:
- Converted the code to the standalone structure
- Made DsoEditMetadataValueFieldLoaderComponent extend AbstractComponentLoaderComponent
2024-10-31 22:15:55 +01:00
Toni Prieto
28c8550ef5 Add button to enable free-text editing in dropdown fields during item edition and fix error when clicking "Clear selection" option 2024-10-31 21:31:27 +01:00
andreaNeki
009da08177 Adjusting spaces in ts 2024-10-31 15:07:22 -03:00
andreaNeki
fa6e85d6db Simplifying the implementation of dynamic aria-describedby 2024-10-31 15:01:54 -03:00
Pierre Lasou
ac720033dc Complete tag translation in french for ORCID
Contains all french translations for ORCID and Researcher Profile.
2024-10-31 11:12:29 -04:00
andreaNeki
7b72a5f0c2 Resolving a wrongly declared variable error 2024-10-31 11:39:34 -03:00
andreaNeki
e629d9edf0 Dynamic aria-describedby attribute 2024-10-31 11:27:10 -03:00
Andrea Barbasso
6257718377 [CST-15593] improve tests reliability 2024-10-31 13:00:21 +01:00
Andrea Barbasso
e516ae8653 [CST-15593] go back to orejime-anonymous cookie 2024-10-31 11:32:54 +01:00
Andrea Barbasso
0ab4d903d9 [CST-15593] fix orejime cookie name, a11y issues and package-lock 2024-10-31 10:54:03 +01:00
Alexandre Vryghem
017e49aca0 Merge branch 'w2p-119915_made-edit-metadata-tab-fields-dynamic_contribute-7.6' into w2p-119915_made-edit-metadata-tab-fields-dynamic_contribute-main
# Conflicts:
#	src/app/core/shared/context.model.ts
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-field-values/dso-edit-metadata-field-values.component.ts
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.html
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.ts
#	src/app/dso-shared/dso-edit-metadata/dso-edit-metadata.component.ts
#	src/app/dso-shared/dso-shared.module.ts
#	src/app/shared/testing/entity-type-data.service.stub.ts
2024-10-30 22:52:56 +01:00
Alexandre Vryghem
77b66a57b8 119915: Changed the dspace.entity.type textarea with a select to prevent incorrect values 2024-10-30 22:43:23 +01:00
Alexandre Vryghem
2ba3f0b15e 119915: Retrieve the edit metadata field dynamically 2024-10-30 22:43:23 +01:00
Tim Donohue
f2c2fda9f2 Merge pull request #3415 from alexandrevryghem/w2p-107155_Performance-re-request-embeds-main
Added support for caching embedded objects without a self link & null responses
2024-10-30 16:02:27 -05:00
Tim Donohue
e589e95083 Merge pull request #3587 from nimabehforouz/translations-update-fr
Update fr.json5
2024-10-30 14:59:14 -05:00
Tim Donohue
54e3eeb56d Merge pull request #3378 from DanGastardelli/BitstreamTitleDoesNotBisappear
Changing the bitstream title in the submission form to use the view c…
2024-10-30 10:51:45 -05:00
Andrea Barbasso
9eaaab5dd0 Merge remote-tracking branch 'github/main' into task/main/CST-15593
# Conflicts:
#	package-lock.json
2024-10-30 15:41:07 +01:00
Nima Behforouz
8d00d435c4 Update fr.json5
Translation updates to fr.json5 file regarding the Access Control sections.
2024-10-29 15:48:53 -04:00
Alexandre Vryghem
0cb5b76159 117287: Prevent /api/eperson/epersons/undefined from being fired on the create ePerson page 2024-10-29 18:46:06 +01:00
Alexandre Vryghem
976ac7604b 117287: Fixed UI freezing on withdrawn item pages 2024-10-29 18:46:05 +01:00
Alexandre Vryghem
d3de28d909 Merge branch 'w2p-117573_remove-observable-function-calls-from-template-7.6' into w2p-117573_remove-observable-function-calls_contribute-main
# Conflicts:
#	src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html
#	src/app/access-control/group-registry/group-form/group-form.component.ts
2024-10-29 18:23:49 +01:00
Alexandre Vryghem
2581b66a18 Merge branch 'w2p-117573_remove-observable-function-calls-from-template-7.6' 2024-10-29 17:07:07 +01:00
Alexandre Vryghem
f7bb83013a 116404: Replaced ViewChild logic with a CSS selector
This change avoids triggering an additional change detection cycle
2024-10-28 00:02:25 +01:00
Alexandre Vryghem
84df67c00b 116404: Close modal on escape 2024-10-27 18:13:23 +01:00
Alexandre Vryghem
2152bab717 116404: Apply focus on first item 2024-10-27 18:13:23 +01:00
Alexandre Vryghem
05232cdf2b 116404: Added navigation with arrow keys in navbar & collapsed the expandable menu when hovering outside of it 2024-10-27 18:12:55 +01:00
Alexandre Vryghem
c08c2721ac 116404: Don't navigate in the expandable navbar section with tab
Had to move the @slide animation to prevent focus being lost when tabbing in the expandable section
2024-10-27 18:12:31 +01:00
Alexandre Vryghem
2547b1218f 116404: Fixed expandable navbar section loosing focus on expand through keyboard 2024-10-27 18:12:30 +01:00
Tim Donohue
13cbcd35ff Merge pull request #3575 from DSpace/dependabot/npm_and_yarn/testing-bd64cd6aac
Bump the testing group across 1 directory with 2 updates
2024-10-25 15:54:44 -05:00
Tim Donohue
df08276440 Merge pull request #3570 from DSpace/dependabot/npm_and_yarn/babel/runtime-7.26.0
Bump @babel/runtime from 7.25.9 to 7.26.0
2024-10-25 15:53:43 -05:00
Tim Donohue
835aa2ef87 Merge pull request #3569 from DSpace/dependabot/npm_and_yarn/sass-bcfd08c0da
Bump sass from 1.80.3 to 1.80.4 in the sass group
2024-10-25 14:42:06 -05:00
dependabot[bot]
3a5cf9c6c3 Bump the testing group across 1 directory with 2 updates
Bumps the testing group with 2 updates in the / directory: [axe-core](https://github.com/dequelabs/axe-core) and [cypress](https://github.com/cypress-io/cypress).


Updates `axe-core` from 4.10.0 to 4.10.2
- [Release notes](https://github.com/dequelabs/axe-core/releases)
- [Changelog](https://github.com/dequelabs/axe-core/blob/v4.10.2/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core/compare/v4.10.0...v4.10.2)

Updates `cypress` from 13.15.0 to 13.15.1
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.15.0...v13.15.1)

---
updated-dependencies:
- dependency-name: axe-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 19:34:22 +00:00
dependabot[bot]
efc8cad00f Bump @babel/runtime from 7.25.9 to 7.26.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.25.9 to 7.26.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 19:33:38 +00:00
Tim Donohue
993e109e1f Merge pull request #3560 from DSpace/dependabot/npm_and_yarn/angular-843071ab45
Bump the angular group with 3 updates
2024-10-25 14:31:56 -05:00
dependabot[bot]
31e2bd26ea Bump the angular group with 3 updates
Bumps the angular group with 3 updates: [@angular/ssr](https://github.com/angular/angular-cli), [@angular-devkit/build-angular](https://github.com/angular/angular-cli) and [@angular/cli](https://github.com/angular/angular-cli).


Updates `@angular/ssr` from 17.3.10 to 17.3.11
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/17.3.10...17.3.11)

Updates `@angular-devkit/build-angular` from 17.3.10 to 17.3.11
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/17.3.10...17.3.11)

Updates `@angular/cli` from 17.3.10 to 17.3.11
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/17.3.10...17.3.11)

---
updated-dependencies:
- dependency-name: "@angular/ssr"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-devkit/build-angular"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 18:00:11 +00:00
dependabot[bot]
ec4ca74a97 Bump sass from 1.80.3 to 1.80.4 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.80.3 to 1.80.4
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.80.3...1.80.4)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 17:58:20 +00:00
Tim Donohue
497f4fd8d4 Ensure "axe-*" is a member of the "testing" group, as it's only used for e2e tests 2024-10-25 12:57:26 -05:00
kshepherd
43630bb7b6 Merge pull request #3553 from tdonohue/remove_unused_deps
Remove unused dependencies
2024-10-24 22:07:03 +02:00
Tim Donohue
3832851ef4 Remove unused webpack-bundle-analyzer dev dependency 2024-10-24 12:33:58 -05:00
Tim Donohue
3b00cc1080 Remove unused rxjs-spy dev dependency 2024-10-24 12:33:58 -05:00
Tim Donohue
4c5b064cfb Remove unused react dev dependencies 2024-10-24 12:33:54 -05:00
Tim Donohue
426a0ac488 Remove unused browser-sync 2024-10-24 12:31:20 -05:00
Tim Donohue
fef5dd72b3 Remove unused angular-idle-preload 2024-10-24 12:31:20 -05:00
Tim Donohue
217b72a332 Move @types/grecaptcha to dev dependencies 2024-10-24 12:31:20 -05:00
kshepherd
b4231dcf77 Merge pull request #3550 from tdonohue/update_http-proxy-middleware
Bump http-proxy-middleware from 1.0.5 to 2.0.7
2024-10-24 16:04:24 +02:00
kshepherd
660b87355a Merge pull request #3547 from tdonohue/remove_unused_postcss_deps
Remove unused PostCSS plugins
2024-10-24 14:30:55 +02:00
kshepherd
9c4e8a3e68 Merge pull request #3524 from Andrea-Guevara/AligningTheWordBrowse
Aligning the browse button
2024-10-24 13:45:35 +02:00
Andrea Barbasso
8c70ee800b Merge branch 'main' into task/main/CST-15593
# Conflicts:
#	package-lock.json
#	package.json
#	src/assets/i18n/ar.json5
2024-10-24 10:12:18 +02:00
Tim Donohue
693adc7cfc Bump http-proxy-middleware from 1.0.5 to 2.0.7 2024-10-23 14:34:12 -05:00
Tim Donohue
39c5c755d7 Remove unused postcss-responsive-type 2024-10-23 13:39:01 -05:00
Tim Donohue
c93ed03004 Remove unused/unmaintained postcss-apply dep 2024-10-23 13:26:55 -05:00
Tim Donohue
bd43d959ab Merge pull request #3544 from tdonohue/remove_types_sanitize_html
Remove unused `@types/sanitize-html` dependency
2024-10-23 13:16:13 -05:00
Tim Donohue
abd0d696dc Merge pull request #3481 from DSpace/alert-autofix-6
Fix code scanning alert no. 6: Incomplete string escaping or encoding
2024-10-23 12:24:57 -05:00
Tim Donohue
74e85c79e7 Remove unused @types/sanitize-html 2024-10-23 11:42:09 -05:00
Tim Donohue
ea8f24d410 Fix bug where all security-updates need unique IDs 2024-10-23 11:33:28 -05:00
Tim Donohue
92ee89e8e5 Fix bug in dependabot.yml "security-updates" settings
"security-updates" configs can only be in sections where there is no "target-branch". This is because they only apply to the primary branch.
2024-10-23 11:31:16 -05:00
Tim Donohue
c7497cdf4e Merge pull request #3539 from DSpace/dependabot/npm_and_yarn/main/webpack-5.95.0
Bump webpack from 5.94.0 to 5.95.0
2024-10-23 11:01:18 -05:00
Tim Donohue
81fb382b9a Merge pull request #3536 from DSpace/dependabot/npm_and_yarn/main/babel/runtime-7.25.9
Bump @babel/runtime from 7.25.7 to 7.25.9
2024-10-23 10:58:40 -05:00
Tim Donohue
ae816815fc Merge pull request #3538 from DSpace/dependabot/npm_and_yarn/main/postcss-8.4.47
Bump postcss from 8.4.39 to 8.4.47
2024-10-23 10:43:08 -05:00
Tim Donohue
87dc6be213 Remove unnecessary @ts-expect-error, as the bug they are expecting is fixed in webpack 5.95.0. 2024-10-23 10:25:49 -05:00
dependabot[bot]
93c6ab2684 Bump webpack from 5.94.0 to 5.95.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.94.0 to 5.95.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.94.0...v5.95.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-22 21:34:52 +00:00
dependabot[bot]
2ab1472f22 Bump postcss from 8.4.39 to 8.4.47
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.39 to 8.4.47.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.39...8.4.47)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-22 21:34:01 +00:00
dependabot[bot]
280d6d92ad Bump @babel/runtime from 7.25.7 to 7.25.9
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.25.7 to 7.25.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.25.9/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-22 21:33:30 +00:00
Tim Donohue
b7c4c737c1 Update dependabot.yml 2024-10-22 16:29:48 -05:00
Tim Donohue
f3eb5b8a86 Merge pull request #3480 from DSpace/dependabot/npm_and_yarn/main/typescript-5.4.5
Bump typescript from 5.3.3 to 5.4.5
2024-10-22 13:52:32 -05:00
Tim Donohue
49809da1fb Merge pull request #3476 from DSpace/dependabot/npm_and_yarn/main/mirador-share-plugin-0.16.0
Bump mirador-share-plugin from 0.11.0 to 0.16.0
2024-10-22 12:12:11 -05:00
Tim Donohue
d98ae341fd Must also update typescript version override. 2024-10-22 11:53:20 -05:00
andreaNeki
ddafda33b8 Issue 3426 - Aligning the browse button 2024-10-22 13:29:05 -03:00
Tim Donohue
f758d6250c Merge pull request #3477 from DSpace/dependabot/npm_and_yarn/main/zone.js-0.14.10
Bump zone.js from 0.14.7 to 0.14.10
2024-10-22 11:13:40 -05:00
dependabot[bot]
f0b4a56ed5 Bump zone.js from 0.14.7 to 0.14.10
Bumps [zone.js](https://github.com/angular/angular/tree/HEAD/packages/zone.js) from 0.14.7 to 0.14.10.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/packages/zone.js/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/zone.js-0.14.10/packages/zone.js)

---
updated-dependencies:
- dependency-name: zone.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-22 13:56:15 +00:00
Tim Donohue
23bc4b286b Merge pull request #3511 from tdonohue/remove_unused_deps_main
[Port main] Remove unused dependencies (sortablejs, sanitize-html, webfontloader)
2024-10-22 08:55:00 -05:00
DanGastardelli
3cd5432034 Changed the implementation of changing the text font size when there is no thumbnail. 2024-10-22 10:37:41 -03:00
Andrea Barbasso
49b329edb1 [DSC-1847][DSC-1966] fix navbar ui error 2024-10-22 15:03:30 +02:00
Tim Donohue
beb05b26ce Remove unused webfontloader 2024-10-21 17:09:06 -05:00
Tim Donohue
2e55f4b47f Remove unused sanitize-html 2024-10-21 17:08:25 -05:00
Tim Donohue
08fe8beaf9 Remove sortablejs which is unused 2024-10-21 17:07:44 -05:00
Tim Donohue
88fd0b0094 Merge pull request #3504 from DSpace/dependabot/npm_and_yarn/main/karma-6.4.4
Bump karma from 6.4.3 to 6.4.4
2024-10-21 15:55:40 -05:00
Tim Donohue
56321e6da8 Merge pull request #3502 from DSpace/dependabot/npm_and_yarn/main/sass-25e7b4912b
Bump sass from 1.80.2 to 1.80.3 in the sass group
2024-10-21 15:54:36 -05:00
dependabot[bot]
65b8ba34e6 Bump typescript from 5.3.3 to 5.4.5
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.3.3 to 5.4.5.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.3.3...v5.4.5)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 19:57:39 +00:00
Tim Donohue
57f8660ff1 Merge pull request #3503 from DSpace/dependabot/npm_and_yarn/main/types/lodash-4.17.12
Bump @types/lodash from 4.17.6 to 4.17.12
2024-10-21 14:56:29 -05:00
Tim Donohue
f646f0a350 Merge pull request #3478 from DSpace/dependabot/npm_and_yarn/main/types/deep-freeze-0.1.5
Bump @types/deep-freeze from 0.1.2 to 0.1.5
2024-10-21 14:56:01 -05:00
dependabot[bot]
b170333030 Bump sass from 1.80.2 to 1.80.3 in the sass group
Bumps the sass group with 1 update: [sass](https://github.com/sass/dart-sass).


Updates `sass` from 1.80.2 to 1.80.3
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.80.2...1.80.3)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: sass
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 19:03:51 +00:00
Tim Donohue
ce1dc46857 Update dependabot.yml
Remove @types grouping because Dependabot already groups types with related dependencies.
2024-10-21 14:02:56 -05:00
Tim Donohue
2eaa6b8977 Merge pull request #3209 from rsaraivac/patch-3
Update pt-PT.json5
2024-10-21 13:48:24 -05:00
dependabot[bot]
95d0767137 Bump karma from 6.4.3 to 6.4.4
Bumps [karma](https://github.com/karma-runner/karma) from 6.4.3 to 6.4.4.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.4.3...v6.4.4)

---
updated-dependencies:
- dependency-name: karma
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 03:15:12 +00:00
dependabot[bot]
d0daf9cf49 Bump @types/lodash from 4.17.6 to 4.17.12
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.6 to 4.17.12.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 03:14:33 +00:00
Tim Donohue
a157f9f09f Merge pull request #3469 from DSpace/dependabot/npm_and_yarn/main/sass-1.80.2
Bump sass from 1.62.1 to 1.80.2
2024-10-18 16:56:11 -05:00
Tim Donohue
b80aad1baa Merge pull request #3472 from DSpace/dependabot/npm_and_yarn/main/pem-1.14.8
Bump pem from 1.14.7 to 1.14.8
2024-10-18 16:05:39 -05:00
dependabot[bot]
16bda200c0 Bump @types/deep-freeze from 0.1.2 to 0.1.5
Bumps [@types/deep-freeze](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/deep-freeze) from 0.1.2 to 0.1.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/deep-freeze)

---
updated-dependencies:
- dependency-name: "@types/deep-freeze"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 21:02:22 +00:00
Tim Donohue
2d44c988e4 Merge pull request #3475 from DSpace/dependabot/npm_and_yarn/main/ngtools/webpack-16.2.16
Bump @ngtools/webpack from 16.2.14 to 16.2.16
2024-10-18 16:01:15 -05:00
Tim Donohue
08e7bdebbc Merge pull request #3473 from DSpace/dependabot/npm_and_yarn/main/core-js-3.38.1
Bump core-js from 3.37.1 to 3.38.1
2024-10-18 15:56:19 -05:00
Tim Donohue
1592763f8a Merge pull request #3482 from DSpace/tdonohue-patch-1
Update dependabot.yml with new PR groups for eslint, testing dependencies, postcss, sass, webpack
2024-10-18 15:15:13 -05:00
Tim Donohue
f750259c50 Update dependabot.yml with new groups for eslint, testing, postcss, sass, webpack 2024-10-18 15:09:55 -05:00
Tim Donohue
372444c50a Fix code scanning alert no. 6: Incomplete string escaping or encoding
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2024-10-18 14:26:48 -05:00
dependabot[bot]
9e3c02e1f3 Bump mirador-share-plugin from 0.11.0 to 0.16.0
Bumps [mirador-share-plugin]() from 0.11.0 to 0.16.0.

---
updated-dependencies:
- dependency-name: mirador-share-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 19:24:43 +00:00
dependabot[bot]
20e67030a9 Bump @ngtools/webpack from 16.2.14 to 16.2.16
Bumps [@ngtools/webpack](https://github.com/angular/angular-cli) from 16.2.14 to 16.2.16.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/16.2.14...16.2.16)

---
updated-dependencies:
- dependency-name: "@ngtools/webpack"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 19:24:26 +00:00
dependabot[bot]
9e79c42a9e Bump core-js from 3.37.1 to 3.38.1
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.37.1 to 3.38.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.38.1/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 19:23:47 +00:00
dependabot[bot]
acd8cbed50 Bump pem from 1.14.7 to 1.14.8
Bumps [pem](https://github.com/Dexus/pem) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/Dexus/pem/releases)
- [Changelog](https://github.com/Dexus/pem/blob/master/HISTORY.md)
- [Commits](https://github.com/Dexus/pem/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: pem
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 19:23:27 +00:00
Yana De Pauw
5a7ebd4ba9 Continue the menu refactor and cleanup 2024-10-18 13:01:22 +02:00
dependabot[bot]
1ffb0f94a2 Bump sass from 1.62.1 to 1.80.2
Bumps [sass](https://github.com/sass/dart-sass) from 1.62.1 to 1.80.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.62.1...1.80.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-17 21:10:48 +00:00
Tim Donohue
9d6af0a538 Merge pull request #3451 from DSpace/dependabot/npm_and_yarn/main/babel/runtime-7.25.7
Bump @babel/runtime from 7.21.0 to 7.25.7
2024-10-17 16:09:39 -05:00
Tim Donohue
e713092c85 Merge pull request #3450 from DSpace/dependabot/npm_and_yarn/main/eslint-plugin-import-2.31.0
Bump eslint-plugin-import from 2.29.1 to 2.31.0
2024-10-17 14:56:57 -05:00
Tim Donohue
299693dfc3 Merge pull request #3456 from DSpace/dependabot/npm_and_yarn/main/reflect-metadata-0.2.2
Bump reflect-metadata from 0.1.14 to 0.2.2
2024-10-17 14:49:49 -05:00
Tim Donohue
5a02217b45 Merge pull request #3459 from DSpace/dependabot/npm_and_yarn/main/fortawesome/fontawesome-free-6.6.0
Bump @fortawesome/fontawesome-free from 6.5.2 to 6.6.0
2024-10-17 14:42:56 -05:00
Tim Donohue
34b9124bde Merge pull request #3461 from tdonohue/i18n_e2e_test
Add basic e2e testing for i18n
2024-10-17 10:47:02 -05:00
Andreas Awouters
6181adccae Merge branch 'item-edit-bitstreams-table-7.6' into item-edit-bitstreams-table-main
# Conflicts:
#	src/app/item-page/edit-item-page/edit-item-page.module.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-bitstreams.component.spec.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-bitstreams.component.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component.html
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component.spec.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/paginated-drag-and-drop-bitstream-list/paginated-drag-and-drop-bitstream-list.component.html
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/paginated-drag-and-drop-bitstream-list/paginated-drag-and-drop-bitstream-list.component.spec.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/paginated-drag-and-drop-bitstream-list/paginated-drag-and-drop-bitstream-list.component.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-drag-handle/item-edit-bitstream-drag-handle.component.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.spec.ts
#	src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.ts
#	src/app/shared/notifications/models/notification-options.model.ts
#	src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts
#	src/app/shared/notifications/notifications-board/notifications-board.component.ts
#	src/app/shared/pagination-drag-and-drop/abstract-paginated-drag-and-drop-list.component.spec.ts
#	src/app/shared/pagination-drag-and-drop/abstract-paginated-drag-and-drop-list.component.ts
2024-10-17 14:27:43 +02:00
Tim Donohue
a74cd848fe Add basic e2e testing for i18n 2024-10-16 16:45:43 -05:00
Tim Donohue
12d67ec315 Merge pull request #3455 from DSpace/dependabot/npm_and_yarn/main/ng-mocks-14.13.1
Bump ng-mocks from 14.13.0 to 14.13.1
2024-10-16 16:40:45 -05:00
Tim Donohue
a8115b7201 Move ng-mocks to dev dependencies. It's only for testing 2024-10-16 13:37:32 -05:00
Tim Donohue
7e19686e8d Merge pull request #3458 from DSpace/dependabot/npm_and_yarn/main/express-static-gzip-2.1.8
Bump express-static-gzip from 2.1.7 to 2.1.8
2024-10-16 12:35:35 -05:00
dependabot[bot]
72246bdc60 Bump @fortawesome/fontawesome-free from 6.5.2 to 6.6.0
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.5.2 to 6.6.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.5.2...6.6.0)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-16 16:03:28 +00:00
dependabot[bot]
9c2b12ead8 Bump @babel/runtime from 7.21.0 to 7.25.7
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.21.0 to 7.25.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.25.7/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-16 16:03:14 +00:00
Tim Donohue
b1392ff009 Merge pull request #3447 from DSpace/dependabot/npm_and_yarn/main/angular-ac94266e48
Bump the angular group with 21 updates
2024-10-16 11:02:06 -05:00
Tim Donohue
479e1be216 Add missing @angular-eslint/utils dependency. Update all @angular-eslint deps to use caret versioning 2024-10-16 10:18:55 -05:00
dependabot[bot]
696ce32ab4 Bump the angular group with 21 updates
Bumps the angular group with 21 updates:

| Package | From | To |
| --- | --- | --- |
| [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) | `17.3.11` | `17.3.12` |
| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `17.3.11` | `17.3.12` |
| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `17.3.11` | `17.3.12` |
| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `17.3.11` | `17.3.12` |
| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `17.3.11` | `17.3.12` |
| [@angular/localize](https://github.com/angular/angular) | `17.3.11` | `17.3.12` |
| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `17.3.11` | `17.3.12` |
| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `17.3.11` | `17.3.12` |
| [@angular/platform-server](https://github.com/angular/angular/tree/HEAD/packages/platform-server) | `17.3.11` | `17.3.12` |
| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `17.3.11` | `17.3.12` |
| [@angular/ssr](https://github.com/angular/angular-cli) | `17.3.8` | `17.3.10` |
| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `17.3.8` | `17.3.10` |
| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `17.2.1` | `17.5.3` |
| [@angular-eslint/bundled-angular-compiler](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/bundled-angular-compiler) | `17.2.1` | `17.5.3` |
| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `17.2.1` | `17.5.3` |
| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `17.2.1` | `17.5.3` |
| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `17.2.1` | `17.5.3` |
| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `17.2.1` | `17.5.3` |
| [@angular/cli](https://github.com/angular/angular-cli) | `17.3.8` | `17.3.10` |
| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `17.3.11` | `17.3.12` |
| [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) | `17.3.11` | `17.3.12` |


Updates `@angular/animations` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/animations)

Updates `@angular/common` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/common)

Updates `@angular/compiler` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/compiler)

Updates `@angular/core` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/core)

Updates `@angular/forms` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/forms)

Updates `@angular/localize` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/compare/17.3.11...17.3.12)

Updates `@angular/platform-browser` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/platform-browser)

Updates `@angular/platform-browser-dynamic` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/platform-browser-dynamic)

Updates `@angular/platform-server` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/platform-server)

Updates `@angular/router` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/router)

Updates `@angular/ssr` from 17.3.8 to 17.3.10
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/17.3.8...17.3.10)

Updates `@angular-devkit/build-angular` from 17.3.8 to 17.3.10
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/17.3.8...17.3.10)

Updates `@angular-eslint/builder` from 17.2.1 to 17.5.3
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/HEAD/packages/builder)

Updates `@angular-eslint/bundled-angular-compiler` from 17.2.1 to 17.5.3
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/bundled-angular-compiler/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/HEAD/packages/bundled-angular-compiler)

Updates `@angular-eslint/eslint-plugin` from 17.2.1 to 17.5.3
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/HEAD/packages/eslint-plugin)

Updates `@angular-eslint/eslint-plugin-template` from 17.2.1 to 17.5.3
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/HEAD/packages/eslint-plugin-template)

Updates `@angular-eslint/schematics` from 17.2.1 to 17.5.3
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/HEAD/packages/schematics)

Updates `@angular-eslint/template-parser` from 17.2.1 to 17.5.3
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/template-parser/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/HEAD/packages/template-parser)

Updates `@angular/cli` from 17.3.8 to 17.3.10
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/17.3.8...17.3.10)

Updates `@angular/compiler-cli` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/compiler-cli)

Updates `@angular/language-service` from 17.3.11 to 17.3.12
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/17.3.12/packages/language-service)

---
updated-dependencies:
- dependency-name: "@angular/animations"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/common"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/compiler"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/forms"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/localize"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/platform-browser"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/platform-browser-dynamic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/platform-server"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/router"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/ssr"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-devkit/build-angular"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular-eslint/builder"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: angular
- dependency-name: "@angular-eslint/bundled-angular-compiler"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: angular
- dependency-name: "@angular-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: angular
- dependency-name: "@angular-eslint/eslint-plugin-template"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: angular
- dependency-name: "@angular-eslint/schematics"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: angular
- dependency-name: "@angular-eslint/template-parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/compiler-cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/language-service"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 22:37:54 +00:00
dependabot[bot]
63a5217f6b Bump express-static-gzip from 2.1.7 to 2.1.8
Bumps [express-static-gzip](https://github.com/tkoenig89/express-static-gzip) from 2.1.7 to 2.1.8.
- [Release notes](https://github.com/tkoenig89/express-static-gzip/releases)
- [Commits](https://github.com/tkoenig89/express-static-gzip/compare/v2.1.7...v2.1.8)

---
updated-dependencies:
- dependency-name: express-static-gzip
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 22:31:55 +00:00
Tim Donohue
a1fcc2e3ba Merge pull request #3457 from tdonohue/update_all_eslint
Bump all `@typescript-eslint/*` dependencies to 7.18.0
2024-10-15 17:30:29 -05:00
Tim Donohue
77c245ae53 Ensure @typescript-eslint dependency updates are grouped by dependabot 2024-10-15 16:44:50 -05:00
Tim Donohue
9a2b794c8e Update all @typescript-eslint dependencies to 7.18.0 2024-10-15 16:41:11 -05:00
Tim Donohue
5e2809d14c Merge pull request #3449 from DSpace/dependabot/npm_and_yarn/main/axe-core-4.10.0
Bump axe-core from 4.9.1 to 4.10.0
2024-10-15 14:34:34 -05:00
Tim Donohue
cacb1f9e44 Merge pull request #3453 from DSpace/dependabot/npm_and_yarn/main/typescript-eslint/eslint-plugin-7.18.0
Bump @typescript-eslint/eslint-plugin from 7.15.0 to 7.18.0
2024-10-15 14:31:59 -05:00
dependabot[bot]
3ad1f6e69c Bump reflect-metadata from 0.1.14 to 0.2.2
Bumps [reflect-metadata](https://github.com/rbuckton/reflect-metadata) from 0.1.14 to 0.2.2.
- [Release notes](https://github.com/rbuckton/reflect-metadata/releases)
- [Changelog](https://github.com/rbuckton/reflect-metadata/blob/main/tsconfig-release.json)
- [Commits](https://github.com/rbuckton/reflect-metadata/commits)

---
updated-dependencies:
- dependency-name: reflect-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 14:05:44 +00:00
dependabot[bot]
4bb1baf638 Bump ng-mocks from 14.13.0 to 14.13.1
Bumps [ng-mocks](https://github.com/help-me-mom/ng-mocks) from 14.13.0 to 14.13.1.
- [Release notes](https://github.com/help-me-mom/ng-mocks/releases)
- [Changelog](https://github.com/help-me-mom/ng-mocks/blob/master/CHANGELOG.md)
- [Commits](https://github.com/help-me-mom/ng-mocks/compare/v14.13.0...v14.13.1)

---
updated-dependencies:
- dependency-name: ng-mocks
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 14:05:24 +00:00
dependabot[bot]
9033e020ee Bump @typescript-eslint/eslint-plugin from 7.15.0 to 7.18.0
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.15.0 to 7.18.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.18.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 14:04:47 +00:00
dependabot[bot]
68d27e59bb Bump eslint-plugin-import from 2.29.1 to 2.31.0
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.1 to 2.31.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.31.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 14:03:34 +00:00
dependabot[bot]
2044f7b2d5 Bump axe-core from 4.9.1 to 4.10.0
Bumps [axe-core](https://github.com/dequelabs/axe-core) from 4.9.1 to 4.10.0.
- [Release notes](https://github.com/dequelabs/axe-core/releases)
- [Changelog](https://github.com/dequelabs/axe-core/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core/compare/v4.9.1...v4.10.0)

---
updated-dependencies:
- dependency-name: axe-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-15 14:03:00 +00:00
Tim Donohue
47e89426d9 Merge pull request #3420 from DSpace/tdonohue-dependabot
Configure Dependabot to also attempt minor/patch updates for dependencies
2024-10-15 08:52:42 -05:00
Tim Donohue
db695d134f Merge pull request #3176 from saschaszott/patch-23
Add German translations (metadata import)
2024-10-14 17:00:48 -05:00
Tim Donohue
fa601fcbb4 Merge pull request #3144 from knowledgeWare-Tech/main
Update Arabic Translation
2024-10-14 16:48:34 -05:00
Tim Donohue
2cf3682473 Enable dependabot on 7.x and 8.x maintenance branches. 2024-10-14 15:52:50 -05:00
Tim Donohue
0d36bcec2e Fix yaml alignment 2024-10-14 12:22:53 -05:00
Tim Donohue
f9fa586060 Create dependabot.yml
Add configs for version dependency updates
2024-10-14 12:08:33 -05:00
Yana De Pauw
005936b18d Support withSubs on the menuproviders in appmenu
Adds support to define child providers for a parent menu using a .withSubs option. This parent menu will always be displayed as an expandable menu.
When no children are visible, the expandable menus will be hidden.
2024-10-11 15:51:34 +02:00
Alexandre Vryghem
1975c63ad1 Merge branch 'w2p-107155_Performance-re-request-embeds-7.6' into w2p-107155_Performance-re-request-embeds-main
# Conflicts:
#	src/app/collection-page/collection-page.component.ts
#	src/app/core/breadcrumbs/item-breadcrumb.resolver.ts
#	src/app/core/browse/browse.service.spec.ts
#	src/app/core/browse/browse.service.ts
#	src/app/core/data/relationship-data.service.spec.ts
#	src/app/core/data/relationship-data.service.ts
#	src/app/item-page/edit-item-page/abstract-item-update/abstract-item-update.component.ts
#	src/app/item-page/edit-item-page/item-relationships/edit-relationship-list/edit-relationship-list.component.spec.ts
#	src/app/item-page/edit-item-page/item-relationships/edit-relationship-list/edit-relationship-list.component.ts
#	src/app/item-page/item.resolver.ts
#	src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts
#	src/app/shared/utils/relation-query.utils.ts
2024-10-11 15:35:58 +02:00
milanmajchrak
680d6c9416 Fixed small cs localization mistakes 2024-10-11 13:37:24 +02:00
Alexandre Vryghem
ecb0de7374 Merge branch 'w2p-107155_Performance-re-request-embeds-7.6'
# Conflicts:
#	src/app/core/cache/object-cache.reducer.ts
#	src/app/core/cache/object-cache.service.ts
2024-10-11 11:05:26 +02:00
Alexandre Vryghem
86ae3e4d47 Merge branch 'fix-versioning-button-7.6' 2024-10-11 11:01:45 +02:00
Alexandre Vryghem
704cc06f16 118944: Fix hasDraftVersion$ not working for embedded payloads with no content 2024-10-11 10:59:47 +02:00
Tim Donohue
9ddfa27d0c Merge pull request #3407 from DSpace/dependabot/npm_and_yarn/multi-c0b71ba702
Bump cookie, cookie-parser and socket.io
2024-10-10 13:13:15 -05:00
Alisa Ismailati
7cd82e542b [CST-17153] improve descriptive labels for show/hide more buttons on related items lists 2024-10-10 18:13:34 +02:00
dependabot[bot]
101a3d70ce Bump cookie, cookie-parser and socket.io
Bumps [cookie](https://github.com/jshttp/cookie) to 0.7.2 and updates ancestor dependencies [cookie](https://github.com/jshttp/cookie), [cookie-parser](https://github.com/expressjs/cookie-parser) and [socket.io](https://github.com/socketio/socket.io). These dependencies need to be updated together.


Updates `cookie` from 0.4.1 to 0.7.2
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.4.1...v0.7.2)

Updates `cookie-parser` from 1.4.6 to 1.4.7
- [Release notes](https://github.com/expressjs/cookie-parser/releases)
- [Changelog](https://github.com/expressjs/cookie-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/cookie-parser/compare/1.4.6...1.4.7)

Updates `socket.io` from 4.7.5 to 4.8.0
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/socket.io@4.7.5...socket.io@4.8.0)

---
updated-dependencies:
- dependency-name: cookie
  dependency-type: indirect
- dependency-name: cookie-parser
  dependency-type: direct:production
- dependency-name: socket.io
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-10 15:09:10 +00:00
Tim Donohue
1443e5b3e1 Merge pull request #3343 from DSpace/dependabot/npm_and_yarn/multi-c9b7225f9e
Bump send, express, browser-sync and serve-static
2024-10-10 10:08:11 -05:00
Tim Donohue
e13b0e3e13 Merge pull request #3400 from aseyedia/fix-issue-3399
Fixed #3399 - minor typo
2024-10-09 13:52:58 -05:00
Arta Seyedian
c6a3794a76 Fixed #3399 - minor typo 2024-10-09 13:55:39 -04:00
Tim Donohue
d7ff9c3ec0 Merge pull request #3315 from tdonohue/upgrade_cypress
Upgrade to Cypress 13.15.0
2024-10-09 11:09:14 -05:00
dependabot[bot]
8e1736f608 Bump send, express, browser-sync and serve-static
Bumps [send](https://github.com/pillarjs/send) to 0.19.0 and updates ancestor dependencies [send](https://github.com/pillarjs/send), [express](https://github.com/expressjs/express), [browser-sync](https://github.com/BrowserSync/browser-sync) and [serve-static](https://github.com/expressjs/serve-static). These dependencies need to be updated together.


Updates `send` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/pillarjs/send/releases)
- [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md)
- [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0)

Updates `express` from 4.20.0 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.20.0...4.21.0)

Updates `browser-sync` from 3.0.2 to 3.0.3
- [Release notes](https://github.com/BrowserSync/browser-sync/releases)
- [Changelog](https://github.com/BrowserSync/browser-sync/blob/master/CHANGELOG.md)
- [Commits](https://github.com/BrowserSync/browser-sync/compare/v3.0.2...v3.0.3)

Updates `serve-static` from 1.15.0 to 1.16.2
- [Release notes](https://github.com/expressjs/serve-static/releases)
- [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md)
- [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2)

---
updated-dependencies:
- dependency-name: send
  dependency-type: indirect
- dependency-name: express
  dependency-type: direct:production
- dependency-name: browser-sync
  dependency-type: direct:development
- dependency-name: serve-static
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-09 15:30:21 +00:00
Tim Donohue
c1cc9ba2d6 Merge pull request #3395 from DSpace/dependabot/npm_and_yarn/rollup-4.24.0
Bump rollup from 4.18.0 to 4.24.0
2024-10-09 10:29:11 -05:00
Tim Donohue
b4d932a91b Bump to Cypress 13.5.0 2024-10-09 10:24:42 -05:00
Alisa Ismailati
b0356c58fb Merge branch 'main' into task/main/CST-15591
# Conflicts:
#	src/app/notifications/qa/source/quality-assurance-source.component.html
2024-10-09 16:57:16 +02:00
dependabot[bot]
75655f1bb8 Bump rollup from 4.18.0 to 4.24.0
Bumps [rollup](https://github.com/rollup/rollup) from 4.18.0 to 4.24.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.18.0...v4.24.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-09 14:52:39 +00:00
Alisa Ismailati
c2d3d8b216 Merge branch 'main' into task/main/CST-15591 2024-10-09 16:51:37 +02:00
Tim Donohue
b543b32a37 Bump cypress-axe to 1.5.0 2024-10-09 09:42:30 -05:00
Tim Donohue
a012e4cea2 Test stability fixes. Ensure Item Edit tests wait on tabs to load by testing if tab is active. Fix small bug in login-modal test. 2024-10-09 09:42:30 -05:00
Tim Donohue
968c5bda71 Simplify login CSS selectors 2024-10-09 09:42:30 -05:00
Tim Donohue
7aba69edd6 Minor changes to login-modal.cy.ts to cleanup CSS selectors 2024-10-09 09:42:30 -05:00
Tim Donohue
f9911ce5ba Ensure Cypress still creates videos in GitHub Actions 2024-10-09 09:42:30 -05:00
Tim Donohue
59ba031b1f Upgrade to Cypress 13 2024-10-09 09:42:30 -05:00
Tim Donohue
7611635ad0 Merge pull request #3213 from 4Science/task/main/CST-15592
Implement e2e accessibility tests for pages in DSpace User Interface
2024-10-09 09:20:52 -05:00
milanmajchrak
9badd4a4b6 Updated cs localization for subcommunities and subcollections 2024-10-09 16:14:04 +02:00
milanmajchrak
5e5c627b8b Fixed messages following the PR from the UFAL - f18d45ce23 2024-10-09 16:09:51 +02:00
FrancescoMolinaro
9e985cf2d4 [CST-15592] remove interceptor for edit group 2024-10-09 15:13:14 +02:00
milanmajchrak
813d644b32 Updated cs messages following review requirements 2024-10-09 15:08:31 +02:00
FrancescoMolinaro
2b466bb382 [CST-15592] add interceptor for edit group, fix landmark-unique accessibility issue in pagination component 2024-10-09 14:16:47 +02:00
FrancescoMolinaro
55ab43f132 [CST-15592] add interceptor for item edit page 2024-10-09 13:15:07 +02:00
FrancescoMolinaro
0e5b924f42 [CST-15592] add interceptor to prevent sudden timeout failure 2024-10-09 11:44:44 +02:00
FrancescoMolinaro
f131ae2f6b [CST-15592] refine health page tests 2024-10-09 11:44:44 +02:00
FrancescoMolinaro
2369b27178 [CST-15592] change health page test target for second tab 2024-10-09 11:44:44 +02:00
FrancescoMolinaro
69f618e856 [CST-15592] improve tests, add attributes for testing, fix wrong references 2024-10-09 11:44:44 +02:00
FrancescoMolinaro
4cd55d6669 [CST-15592] add accessibility tests for:
Admin Add New Modals
Admin Edit Modals
Admin Export Modals
Admin Workflow Page
End User Agreement
Feedback
Profile Page
System Wide Alert
2024-10-09 11:44:44 +02:00
FrancescoMolinaro
d12d0faf09 [CST-15592] add accessibility tests for:
Admin Curation Task
Bitstream Format
Health Page
Metadata Schema
2024-10-09 11:44:44 +02:00
FrancescoMolinaro
85e486438a [CST-15592] add accessibility tests for:
Admin Notifications Publication Claim
Admin Search Page
Bulk Access
Create Group
Metadata Registry
2024-10-09 11:44:44 +02:00
FrancescoMolinaro
a0e3c41be6 [CST-15592] add accessibility tests for:
Edit Eperson
Edit Group
Create EPerson
Epeople Registry
Groups Registry
2024-10-09 11:44:44 +02:00
FrancescoMolinaro
e6a7fb852a [CST-15592] add accessibility tests for following pages:
Metadata Import
Batch Import
Processes Overview
New Process
Quality Assurance Sources
2024-10-09 11:44:44 +02:00
Tim Donohue
b9c712c72f Merge pull request #3221 from alexandrevryghem/w2p-116728_removed-unnecessary-ngvars_contribute-main
Removed unnecessary *ngVars from ThumbnailComponent
2024-10-08 15:07:51 -05:00
Tim Donohue
035ae803e2 Merge pull request #3386 from alphapetjg/patch-1
Update fr.json5 to add capitalization
2024-10-04 10:17:49 -05:00
Julia
c5b395802c Update fr.json5 to add capitalization 2024-10-04 10:24:27 -04:00
Tim Donohue
bbc93291ea Merge pull request #3148 from Neki-IT/StatusPageAccessibility
Accessibility of the status page
2024-10-02 16:48:58 -05:00
DanGastardelli
2643a459b6 Import order adjustment 2024-10-02 09:24:46 -03:00
DanGastardelli
eeaac8965b Import order adjustment 2024-10-02 09:10:48 -03:00
DanGastardelli
62006c00ca Fix last commit 2024-10-02 09:01:56 -03:00
DanGastardelli
762bc8ce8c Adjusting spacing 2024-10-02 08:46:37 -03:00
andreaNeki
4aed1b6056 Adjusting bold text on labels 2024-10-02 08:45:52 -03:00
DanGastardelli
df24a63a46 Adjusting spacing and good rules 2024-10-02 08:38:42 -03:00
Yana De Pauw
161daffcc0 115284: Add tests for isRepeatable 2024-10-02 11:09:30 +02:00
DanGastardelli
fec4aa6df1 Changing the bitstream title in the submission form to use the view component title, avoiding disappearance with changes to the form 2024-10-01 17:15:53 -03:00
andreaNeki
f975e1da89 Edit item - making page content more responsive and accessible 2024-10-01 14:34:43 -03:00
Andrea-Guevara
dd93a10007 Merge branch 'DSpace:main' into StatusPageAccessibility 2024-10-01 12:13:09 -03:00
Tim Donohue
3d057bb1b2 Merge pull request #3375 from kshepherd/markdown_directive_force_sanitization
Always sanitize HTML passed to dsMarkdown even if markdown rendering is disabled
2024-10-01 09:52:15 -05:00
Kim Shepherd
8fb4772b6c Always sanitize HTML in dsMarkdown even if markdown disabled
Instead of setting innerHTML directly to value, sanitize
the value, even if not passing to renderMarkdown/Mathjax
2024-10-01 14:03:46 +02:00
DanGastardelli
c4dfed0e02 Adjust the font size of the 'No thumbnails available' text. 2024-09-30 12:33:00 -03:00
Andrea Barbasso
ad7bbb85cb Merge remote-tracking branch 'github/main' into task/main/CST-15593 2024-09-30 11:20:18 +02:00
andreaNeki
73d39abfe5 Trying to correct an error in the focus implementation 2024-09-27 16:18:56 -03:00
andreaNeki
3658ad1ec0 Ensuring that the message “There were no items to show” is announced to the screen reader when necessary 2024-09-27 15:08:53 -03:00
andreaNeki
e54b1ce274 Adding focus to the input after the reset button is clicked 2024-09-27 14:01:44 -03:00
andreaNeki
9565f9b9ee Adding the aria-label attribute to buttons 2024-09-27 13:44:31 -03:00
Tim Donohue
052b6a9bdd Merge pull request #3337 from atmire/live-region-main
Live Region
2024-09-27 11:09:56 -05:00
Andreas Awouters
0f5a50a868 Merge branch 'live-region-8.0' into live-region-main 2024-09-27 10:15:51 +02:00
Andrea Barbasso
a2193a186a Merge branch 'main' into task/main/CST-15593 2024-09-27 10:06:39 +02:00
Tim Donohue
cbd681d440 Merge pull request #3153 from eulereadgbe/patch-1
Fix to Mobile navbar hamburger menu for base (custom) theme
2024-09-26 13:21:53 -05:00
Tim Donohue
ff322e2ae1 Merge pull request #3340 from alphapetjg/main
DS-3330: Updated en.json5 to fixed typo for 'occurred'
2024-09-26 11:56:48 -05:00
Pascal-Nicolas Becker
af7b14851c Merge pull request #3175 from saschaszott/patch-22
minor change: added missing periods in German translations
2024-09-26 16:45:10 +02:00
Pascal-Nicolas Becker
3664512e27 Merge pull request #3149 from saschaszott/patch-21
missing German translations (500 error)
2024-09-26 16:43:07 +02:00
Alexandre Vryghem
27eeefae5f 118135: Fixed missing item page relationship labels 2024-09-25 15:42:20 +02:00
Jens Vannerum
1b17879d7a documentation file 2024-09-25 14:56:00 +02:00
Alisa Ismailati
bcaa73a161 [CST-15073][CST-15074] removed unnecessary additions 2024-09-25 10:18:32 +02:00
Alisa Ismailati
1565a1dc32 [CST-15073][CST-15074] Fixes 2024-09-25 10:18:24 +02:00
Alisa Ismailati
83615a1c90 [CST-15073][CST-15074] Adaptation with standalone components 2024-09-25 10:18:14 +02:00
Alisa Ismailati
214a77a65c [CST-14902][CST-15073][CST-15074] Adds ORCID login flow with private email 2024-09-25 10:17:53 +02:00
Andrea Barbasso
99100371b8 [CST-15078] add orcid icon with tooltip 2024-09-24 11:03:36 +02:00
Alan Orth
fca5700012 Merge pull request #3329 from TexasDigitalLibrary/update-isbot 2024-09-24 09:55:32 +03:00
Julia
ed5ac47f88 Update en.json5 - fixed typo for occurred 2024-09-23 15:53:55 -04:00
Jens Vannerum
ee83beae94 fix bug in lint rule, add docs for rule and update name so it's clear this is only for buttons currently
(cherry picked from commit 2380d4e751)
2024-09-20 16:45:48 +02:00
Andreas Awouters
debc2325cd Merge branch 'live-region-8.0' into live-region-main 2024-09-20 14:25:03 +02:00
Andrea Barbasso
e2dc89c737 [CST-15595] fix tests 2024-09-20 10:26:46 +02:00
Jens Vannerum
c249afdb3f lint rule with autofix to disallow the disabled input on button elements 2024-09-18 13:09:25 +02:00
nwoodward
c419dd608b updates isbot dependency to newest version 2024-09-16 15:07:08 -05:00
Jens Vannerum
1209b40ac9 117544: fix remaining bug 2024-09-16 16:09:41 +02:00
Andrea Barbasso
80e1daeb65 [CST-15593] allow orejime to start if privacy statement is disabled 2024-09-16 14:22:13 +02:00
Jens Vannerum
0928dc1ca9 117544: linting 2024-09-16 14:11:59 +02:00
Jens Vannerum
5a609d5bb1 117544: rename directive to be clear it should currently only be used for buttons 2024-09-16 13:45:33 +02:00
Jens Vannerum
9fd3c2d734 117544: PR feedback
- added typedocs
- changed directive to only be present for buttons
- various other small fixes
2024-09-16 13:44:06 +02:00
Andrea Barbasso
58c5d742b7 [CST-15593] fix orejime startup error
this was happening because of hidden apps not being removed from category arrays.
2024-09-16 11:44:08 +02:00
Jens Vannerum
363356b47c Merge remote-tracking branch 'upstream/main' into w2p-117544_support-for-disabled-elements-for-screen-readers-9.0 2024-09-16 10:56:09 +02:00
Andrea Barbasso
a9da80caae [CST-15593] run npm i for orejime 2024-09-16 10:23:26 +02:00
Andrea Barbasso
7966efcaf2 Merge remote-tracking branch 'origin/main' into task/main/CST-15593
# Conflicts:
#	yarn.lock
2024-09-16 10:17:06 +02:00
Tim Donohue
779ff47260 Merge pull request #3318 from DSpace/dependabot/npm_and_yarn/multi-27a054522e
Bump body-parser and express
2024-09-11 14:02:52 -05:00
igorbaptist4
d7869f408e fix identation 2024-09-11 15:15:26 -03:00
igorbaptist4
0ef2db146b Configuring the URI link target 2024-09-11 14:48:59 -03:00
Yana De Pauw
83dc069673 Make tests compile 2024-09-11 11:38:02 +02:00
dependabot[bot]
45875f13c4 Bump body-parser and express
Bumps [body-parser](https://github.com/expressjs/body-parser) to 1.20.3 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.


Updates `body-parser` from 1.20.2 to 1.20.3
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3)

Updates `express` from 4.19.2 to 4.20.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: indirect
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 21:48:08 +00:00
Tim Donohue
16943fef16 Merge pull request #3171 from pastr/remove-material-ui
Remove material-ui dependency
2024-09-10 16:47:11 -05:00
kshepherd
8f70d3da25 Merge pull request #3233 from cclauss/codespell
Fix typos discovered by codespell
2024-09-07 10:22:32 +02:00
Christian Clauss
1a9d68c260 Merge branch 'main' into codespell 2024-09-06 22:53:45 +02:00
Emmanuel Pastor
a737719468 Remove unused react dependencies 2024-09-06 22:20:17 +02:00
Tim Donohue
ba05b22fae Merge pull request #3173 from alanorth/use-npm
Use npm instead of Yarn
2024-09-06 13:38:27 -05:00
Tim Donohue
8144d1bb9e Add yarn.lock to .gitignore 2024-09-06 12:35:52 -05:00
Tim Donohue
202e765b43 Add yarn.lock to .dockerignore 2024-09-06 12:33:26 -05:00
Simone Ramundi
2def01b8c2 Merge branch 'main' into task/main/DURACOM-296 2024-09-06 17:29:41 +02:00
Simone Ramundi
4d5910981a [DURACOM-296] Enabled 'admin-div' only for Site Administrator 2024-09-06 17:10:09 +02:00
Nona Luypaert
5e24ed1fb6 117648: Add tests for basic MenuProviders 2024-09-06 16:55:25 +02:00
Alexandre Vryghem
286de02158 118135: Made the edit relationship labels unique
And fixed it for all the languages 🍞
2024-09-06 15:19:48 +02:00
Tim Donohue
b5c00dd7d9 Merge pull request #3011 from mspalti/shibboleth-fix
Fixed page and admin menu for Shibboleth auth
2024-09-05 15:54:42 -05:00
andreaNeki
f00eae6760 Code refactoring - Accessibility on the new user registration and forgotten password forms 2024-09-05 09:35:55 -03:00
Alan Orth
576aece31d README.md: use npm
Use npm instead of yarn. Mostly a search and replace, minus some
changes in terminology, for example "yarn add" vs "npm install".
2024-09-05 14:56:24 +03:00
Alan Orth
d11e4170fd .github/pull_request_template.md: use npm
Use npm instead of yarn.
2024-09-05 14:56:24 +03:00
Alan Orth
3894c87ba2 .dockerignore: remove package-lock.json
We need this now that we are using npm instead of yarn.
2024-09-05 14:56:24 +03:00
Alan Orth
fbf2aee48f package.json: fix @angular/localize version pin
This was the only Angular package not using a "^" to specify the
semver range.
2024-09-05 14:56:24 +03:00
Alan Orth
10df0ac366 Use npm instead of yarn in Dockerfile
There is a minor difference in syntax when starting the application
with `npm run serve`. We use `--` to make sure npm doesn't try to
parse the `--host 0.0.0.0` as an option, allowing it instead to be
read by Angular CLI (ng).

Also, there is no direct npm equivalent to yarn's --network-timeout
option so I will remove it. If we need something similar later we
might be able to use these config options:

    npm config set fetch-retry-mintimeout 300000
    npm config set fetch-retry-maxtimeout 300000
2024-09-05 14:56:24 +03:00
Alan Orth
f3619ff4d8 Use eslint-plugin-unused-imports v3.x.x
Fix lint error. According to the docs we should be using v3.x.x:

> * Version 3.x.x is for eslint 8 with @typescript-eslint/eslint-plugin 6 - 7
> * Version 2.x.x is for eslint 8 with @typescript-eslint/eslint-plugin 5

See: https://www.npmjs.com/package/eslint-plugin-unused-imports
2024-09-05 14:56:23 +03:00
Alan Orth
e29a6a3c0a lint/src/util: fix TS2314
Fix error in lint:

> lint/src/util/structure.ts:16:20 - error TS2314: Generic type 'RuleMetaData<MessageIds, Options>' requires 2 type argument(s).
>
> 16 export type Meta = RuleMetaData<string>;
2024-09-05 14:56:23 +03:00
Alan Orth
da1789aece .github/workflows/build.yml: use npm
Use npm instead of yarn in GitHub Actions.
2024-09-05 14:56:19 +03:00
Alan Orth
c6f984b4cb package.json: add overrides for conflicts
Add overrides for conflicting peer dependencies. In yarn these were
handled less noisily, but in npm we need to add explicit overrides
for each. This allows us to use `npm install` without forcing or
using `--legacy-peer-deps`.
2024-09-05 10:30:12 +03:00
Alan Orth
ee33b8f9cc package.json: remove resolutions
These are a yarn-specific concept that we don't need for npm.
2024-09-05 10:30:11 +03:00
Alan Orth
ce3285c1f2 .gitignore: remove package-lock.json
Now that we are using npm we need to commit this.
2024-09-05 10:30:11 +03:00
Alan Orth
74ac315b58 package.json: update scripts to use "npm run"
All scripts should use "npm run" instead of "yarn".
2024-09-05 10:30:05 +03:00
Alan Orth
84c88a118f package.json: use "file:" for local dependencies
Instead of using the Yarn link protocol, we can use npm's built-in
support for local dependencies using "file:".
2024-09-05 08:40:08 +03:00
Alan Orth
7fc54ec6f7 Remove yarn.lock 2024-09-05 08:40:07 +03:00
Tim Donohue
ab4d32a04e Merge pull request #3284 from DSpace/dependabot/npm_and_yarn/micromatch-4.0.8
Bump micromatch from 4.0.5 to 4.0.8
2024-09-04 16:51:41 -05:00
Tim Donohue
d42d275b9e Merge pull request #3289 from kshepherd/filewatcher_ignores
Ignore some paths from file watcher
2024-09-04 10:46:44 -05:00
Tim Donohue
88e145c0a9 Merge pull request #3283 from DSpace/dependabot/npm_and_yarn/webpack-5.94.0
Bump webpack from 5.90.3 to 5.94.0
2024-09-03 16:37:42 -05:00
Tim Donohue
027a4e5d41 Merge pull request #3287 from 4Science/task/main/DURACOM-265
DURACOM-265 provided label for cclicense required error
2024-09-03 16:14:13 -05:00
Kim Shepherd
8152d39ad0 Ignore some paths from file watcher
Watching all these directories can cause systems to exceed
maximum watched files / inotify limits, especially in dev
mode with IDEs etc also watching files.
2024-09-03 14:52:10 +02:00
Mattia Vianelli
b17cc5d3c3 DSC-1709 provided label for cclicense required error 2024-09-03 14:19:27 +02:00
Alexandre Vryghem
5f922c06e0 Remove webpack@5.90.3 since it causes issues with the tests
This automatically removed some old eslint dependencies, which caused some conflicts in the custom linting plugin
2024-08-30 22:42:47 +02:00
Alexandre Vryghem
7dea5f7d98 Temporarily ignore type errors from EnvironmentPlugin since type matching is currently too strict 2024-08-30 20:59:24 +02:00
dependabot[bot]
aca752a01e Bump micromatch from 4.0.5 to 4.0.8
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 17:02:42 +00:00
dependabot[bot]
81b89f5d0c Bump webpack from 5.90.3 to 5.94.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.90.3 to 5.94.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.90.3...v5.94.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 17:00:42 +00:00
Tim Donohue
1c1497422b Merge pull request #3273 from DSpace/dependabot/npm_and_yarn/axios-1.7.4
Bump axios from 1.6.7 to 1.7.4
2024-08-30 11:59:31 -05:00
Tim Donohue
c659061ff0 Merge pull request #3253 from alexandrevryghem/w2p-117287_fix-item-version-performance-issues_contribute-main
Fixed Edit Item's Version History crashing
2024-08-29 16:43:02 -05:00
Tim Donohue
843056d960 Merge pull request #3280 from DSpace/backport-3035-to-main
[Port main] Set color black on filter section for mobile
2024-08-29 15:55:15 -05:00
Victor Hugo Duran Santiago
3a5e309d38 Set color black on filter section for mobile
(cherry picked from commit 36c95db7bf)
2024-08-29 19:59:42 +00:00
Tim Donohue
27ee094310 Merge pull request #3277 from vNovski/Fix/#3259-typo-in-german-translation
Typo in German translation
2024-08-29 13:28:58 -05:00
Vlad Novski
3b4e0d51cd fix[i18n]: typo in German translation 2024-08-29 18:56:28 +02:00
kshepherd
332be2bdb2 Merge pull request #3251 from alexandrevryghem/w2p-110615_minor-accessibibity-fixes_contribute-main
Minor accessibibity fixes
2024-08-29 15:33:56 +02:00
dependabot[bot]
b22ba6f3ef Bump axios from 1.6.7 to 1.7.4
Bumps [axios](https://github.com/axios/axios) from 1.6.7 to 1.7.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.7...v1.7.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-28 16:56:56 +00:00
Yana De Pauw
297562249a Support onRoute on the menuproviders in appmenu
Adds support to define routes for which the menu providers needs to be present in appmenu
Moves menu adding away from the resolver and to the init service
Refactored statsmenu to show stats on all pages based on dso somewhere in the route
2024-08-28 11:08:56 +02:00
andreaNeki
0eb2d5ce58 Improving accessibility on the new user registration page 2024-08-27 17:02:12 -03:00
Jens Vannerum
bde12bab38 Merge branch 'w2p-117544_support-for-disabled-elements-for-screen-readers-8.0' into w2p-117544_support-for-disabled-elements-for-screen-readers-9.0 2024-08-27 10:49:28 +02:00
Yury Bondarenko
0291942613 Proof-of-concept: independent menu section providers
- Replace god-class resolvers with a service that populates the menus from lists of injectable providers
- Static menu sections are resolved at the root route ~ `resolveStatic`
- Route-dependent menu sections can be declared in the same structure, but are resolved on-demand ~ `resolveRoute`
- More and more easily customizable
  - Parts can be moved between menus, removed, replaced or extended individually
  - The dependencies of each provider are independent of each other
  - Order of providers determines the order of each menu → single source of truth for the order
2024-08-23 18:39:41 +02:00
Andrea-Guevara
c75f1f031a Merge branch 'DSpace:main' into StatusPageAccessibility 2024-08-23 11:03:33 -03:00
Alexandre Vryghem
04bbaf9cb9 117287: Simplified the if conditions on the edit/save/discard buttons on item versions 2024-08-14 23:50:28 +02:00
Alexandre Vryghem
9c2909933c Merge branch 'w2p-117287_fix-item-version-performance-issues_contribute-7.6' into w2p-117287_fix-item-version-performance-issues_contribute-main
# Conflicts:
#	src/app/item-page/versions/item-versions.component.html
#	src/app/item-page/versions/item-versions.component.ts
2024-08-14 23:04:54 +02:00
pcg-kk
d9d39b0cb5 fix: use the correct link name for find by href for findListByHref 2024-08-13 19:36:02 +02:00
pcg-kk
a862d84738 fix: use the correct link name for find by href 2024-08-13 19:34:13 +02:00
pcg-kk
973fd339da fix: add unit test for rename property case 2024-08-13 19:34:13 +02:00
pcg-kk
3351615140 fix: linkName from decorator assign value to the correct property 2024-08-13 19:34:12 +02:00
Alexandre Vryghem
f61e8652d7 Merge branch 'w2p-110615_minor-accessibibity-fixes_contribute-7.6' into w2p-110615_minor-accessibibity-fixes_contribute-main
# Conflicts:
#	src/app/item-page/simple/related-entities/tabbed-related-entities-search/tabbed-related-entities-search.component.html
#	src/app/navbar/expandable-navbar-section/expandable-navbar-section.component.html
#	src/app/shared/form/vocabulary-treeview/vocabulary-treeview.component.html
2024-08-13 13:45:10 +02:00
Tim Donohue
ee7e8358e7 Merge pull request #3243 from tdonohue/fix_lint_error
Fix lint error regarding missing interface
2024-08-09 08:58:46 -05:00
Alan Orth
fd7fb5de37 Merge pull request #3236 from 4Science/task/main/CST-15589 2024-08-08 20:27:15 -07:00
Tim Donohue
ad6a9438de Fix lint error regarding missing interface 2024-08-08 16:49:20 -05:00
Tim Donohue
7a24bf2c7f Merge pull request #3048 from saschaszott/patch-21-squashed
add import of missing Angular interfaces (squashed version)
2024-08-08 16:33:50 -05:00
Tim Donohue
84b32b70a5 Merge pull request #3235 from saschaszott/patch-26
Missing translations in de.json5 (translation key prefix workspace-item)
2024-08-07 14:18:08 -05:00
Tim Donohue
f719fde602 Merge pull request #3234 from saschaszott/patch-25
WorkspaceitemsEditPageModule: remove duplicated delete route
2024-08-07 14:14:48 -05:00
Sascha Szott
92dcffcba1 fix space issue 2024-08-07 16:57:02 +02:00
Sascha Szott
45c018f5f6 added missing translations in de.json5 (prefix workspace-item) 2024-08-07 16:50:17 +02:00
Sascha Szott
cddceadea1 remove duplicated delete route 2024-08-07 16:05:17 +02:00
Simone Ramundi
56ba23fc3d [CST-15589] Updated slider implementation in template 2024-08-07 14:30:44 +02:00
Simone Ramundi
6c2d541b89 [CST-15589] Updated slider implementation in SearchRangeFilterComponent 2024-08-07 14:30:24 +02:00
Christian Clauss
bfd61b2f19 Fix typos discovered by codespell 2024-08-06 15:52:15 +02:00
kshepherd
e7f235a90b Merge pull request #3230 from Neki-IT/FileBrowserForImportingMetadata
Improving the file browser for importing metadata
2024-08-03 17:31:25 +02:00
root
ce2abfe584 Improving the file browser for importing metadata 2024-08-01 13:04:17 -03:00
kshepherd
a6e3bc3e41 Merge pull request #3220 from Neki-IT/EnablingNavbarLinksInImportSection
Enabling navbar links in import section
2024-08-01 15:46:44 +02:00
root
2c259f5ae9 A new approach so that the elements of the ds-file-dropzone-no-uploader component don't overlap the navbar and make it inaccessible 2024-07-30 17:20:47 -03:00
milanmajchrak
7e864d27b4 Fixed linting error. 2024-07-26 15:49:37 +02:00
milanmajchrak
b10563ea53 Updated some messages following the lindat v5 and clarin-dspace v7 instance. 2024-07-26 15:32:57 +02:00
Alexandre Vryghem
7d5ae8e209 Merge branch 'w2p-116728_removed-unnecessary-ngvars_contribute-7.6' into w2p-116728_removed-unnecessary-ngvars_contribute-main
# Conflicts:
#	src/app/thumbnail/thumbnail.component.ts
2024-07-26 14:56:41 +02:00
root
351abaa5c2 Removing position-fixed bootstrap class so that navbar links are available again 2024-07-25 10:44:00 -03:00
kshepherd
6657b46a6b Merge pull request #3112 from 4Science/task/main/DURACOM-273
[#3111] fix markdown rendering applying before mathjax rendering
2024-07-25 14:42:25 +02:00
autavares-dev
6cb4faa8d3 Fix truncatable-part keyboard accessibility 2024-07-22 21:20:05 -03:00
Alisa Ismailati
fa0ec0bf0c [CST-15590] Close user profile menu after menu entry is selected 2024-07-19 16:43:39 +02:00
Alisa Ismailati
703945c804 [CST-15591] Fixed headings by their rank 2024-07-19 14:54:39 +02:00
Ricardo Saraiva
43071da3eb Update pt-PT.json5
Lint errors review.
2024-07-18 14:20:55 +01:00
Ricardo Saraiva
2c20833410 Update pt-PT.json5
Extensive revision of i18n pt-PT with the news translation strings introduced by DSpace v8.0 and other improvements > last updated 18th of july 2024.
2024-07-18 14:06:48 +01:00
Andrea Barbasso
84069055f5 [CST-15593] migrate from klaro to orejime 2024-07-18 11:51:47 +02:00
root
8c60a67e8e Fixing trailing spaces error 2024-07-17 17:09:58 -03:00
root
d252108f85 Keys for the notifications menu section translated into Spanish 2024-07-17 16:14:09 -03:00
Andrea-Guevara
3ba8019872 Merge branch 'DSpace:main' into SpanishTranslationKeys 2024-07-17 16:06:13 -03:00
Tim Donohue
1efa88641b Merge pull request #3186 from saschaszott/patch-24
Docker build: fix FromAsCasing warning
2024-07-17 11:29:28 -05:00
root
65ce727157 Issue-2913 Keys that refer to the research translated into Spanish 2024-07-17 12:46:35 -03:00
Tim Donohue
941dbe2871 Merge pull request #3172 from pastr/minor-fr-i18n-fix
Minor fix in french translation file
2024-07-17 10:22:59 -05:00
Sascha Szott
f4fe2b8632 fix FromAsCasing warning 2024-07-17 15:42:48 +02:00
root
3800021ed3 Issue-1190/PR-3148 Removing 100% height from the column containing the button text and leaving it automatic 2024-07-15 09:30:20 -03:00
Emmanuel
8eec2cdccb Fix a french translation for consistency 2024-07-12 19:37:47 +02:00
Tim Donohue
f195484674 Update pull_request_template.md
Add note that PRs should be against main, if possible.
2024-07-11 14:57:25 -05:00
root
5f4a049fdd Issue-1190/PR-3148 Improve the space between the text and the button 2024-07-11 15:51:33 -03:00
Vincenzo Mecca
4ff15ec9bb [CST-14903] Orcid Synchronization improvements
feat:
- Introduces reactive states derived from item inside orcid-sync page
- Removes unnecessary navigation
ref:
- Introduces catchError operator and handles failures with error messages
2024-07-11 14:48:00 +02:00
Tim Donohue
ddbcfa0268 Merge pull request #3166 from balmas/docker-entities-fix
fixes image path for dspace-postgres-pgcrypto
2024-07-10 16:34:37 -05:00
Tim Donohue
c6ee4a477f Merge pull request #3146 from atmire/w2p-116132_fixed-cookie-issues_contribute-8
Fixed bug when declining Google ReCaptcha cookie preferences
2024-07-10 15:23:11 -05:00
Tim Donohue
5a62342251 Merge pull request #3155 from Neki-IT/ItemEditMetadataTab
Accessibility on the Edit metadata tab
2024-07-10 14:52:59 -05:00
Tim Donohue
ef89e3a9e3 Merge tag 'dspace-7.6.2' 2024-07-09 15:00:28 -05:00
Sascha Szott
2af168bd54 add missing German translations 2024-07-09 17:56:06 +02:00
Sascha Szott
e26ab86dd3 minor change: added missing periods in German translations 2024-07-09 17:42:49 +02:00
Emmanuel Pastor
eec1071f06 Rephrase one instruction sentence to make it clearer 2024-07-07 16:05:44 +02:00
Emmanuel Pastor
ecacd14410 Fix a french translation for consistency 2024-07-07 16:04:14 +02:00
Bridget Almas
7e600bef57 fixes error in image command for dspace-postgres-pgcrypto 2024-07-05 13:00:22 -04:00
Abel Gómez
583dc1f368 Fix SubComColSectionComponent test 2024-07-04 17:25:00 +02:00
Abel Gómez
4de99ba19d Refactor condition 2024-07-04 06:03:07 +02:00
Abel Gómez
6306776f8b Simplify code detecting a navigation to the default route 2024-07-04 05:55:15 +02:00
Abel Gómez
531d328663 Fix resolving the wrong segment of the route in the comcol search component 2024-07-04 05:36:49 +02:00
Abel Gómez
6cecd0abbe Fix imports 2024-07-04 00:48:48 +02:00
Abel Gómez
b49216c173 Fix trailing spaces 2024-07-04 00:11:53 +02:00
Abel Gómez
b7f3711de1 Other minor lint fixes 2024-07-04 00:05:03 +02:00
Abel Gómez
33764f4caa Minor fixes to avoid lint errors 2024-07-03 23:55:37 +02:00
Abel Gómez
961e15fe5f Make the default tab for browsing communities and collections configurable 2024-07-03 23:33:38 +02:00
Tim Donohue
c3a26ea89e Merge pull request #3158 from pilasou/pilasou-docker-compose-syntax-change
Docker compose syntax changes
2024-07-03 13:55:26 -05:00
Tim Donohue
6695cf44fa Merge pull request #3156 from DSpace/backport-3152-to-main
[Port main] Forward client's user-agent instead of Node's
2024-07-03 13:48:00 -05:00
Pierre Lasou
da8a73ba0b Update docker command syntax docker-compose-rest.yml 2024-07-03 11:26:22 -04:00
Pierre Lasou
5e3d0fbdef Update Docker Angular README.md
Change the docker-compose syntax to V2 syntax docker compose
2024-07-03 11:22:27 -04:00
Alan Orth
c06cd98a2e src/app/core: forward client user-agent
Forward the client's user-agent instead of sending Node's.

(cherry picked from commit 5b2966cf48)
2024-07-03 05:54:45 +00:00
root
4e783e76d1 Resolution of issue #1193 - Addition of the aria-label attribute to the add, save, discard and undo buttons on the metadata editing page 2024-07-01 15:00:07 -03:00
Elvi Nemiz
a3b6aef66a Fix to Mobile navbar hamburger menu for base (custom) theme
https://github.com/DSpace/dspace-angular/pull/2444 only fixes the DSpace theme, not the base (and custom) theme.
2024-06-29 08:14:10 +08:00
Tim Donohue
77081e80c3 Merge pull request #3151 from tdonohue/update_contributing
[GitHub Config] Minor updates to Contribution docs & issue/PR templates
2024-06-27 15:21:31 -05:00
Tim Donohue
9277908f77 Minor updates to issue templates. Instead of bold text, use headers to make sections more readable. 2024-06-27 14:37:04 -05:00
Tim Donohue
9a5cbba888 Minor updates to contribution checklist / PR template. Add requirement that PRs need details on how to test them. Add requirement for accessibility & i18n. 2024-06-27 14:36:15 -05:00
Tim Donohue
f7a2e76cad Update CONTRIBUTING.md
Minor updates and linking to developer meetings
2024-06-27 11:12:21 -05:00
Tim Donohue
a0e23bd5d9 Update homepage to say DSpace 9 2024-06-26 15:22:21 -05:00
Tim Donohue
e95d5bd73e Update version tag for development of next major release 2024-06-26 14:05:49 -05:00
Sascha Szott
5f6b6ef984 added missing German translations (500 error) 2024-06-26 14:46:13 +02:00
root
e06b67fd73 Resolution of issue #1190 - Improving the accessibility of the status page using the item-operation component 2024-06-26 08:29:32 -03:00
Mohamed Ali
f5f40c3dc7 Update Arabic Translation
Update Arabic Translation

Update  ar.json5 translation
2024-06-26 00:51:14 -07:00
Yana De Pauw
105547598f 115284: Add repeatable based on relationship max cardinality 2024-06-26 08:42:07 +02:00
lotte
78e5f66144 Merge branch 'w2p-116132_fixed-cookie-issues_contribute-7.6' 2024-06-25 18:30:27 +02:00
Sascha Szott
2d9ad8e5cf add missing imports of Angular lifecycle interfaces 2024-06-13 13:46:57 +02:00
Sascha Szott
3cedeffec9 add missing comma 2024-06-13 13:12:35 +02:00
Sascha Szott
cc975bb0b5 add lint rule (use-lifecycle-interface) 2024-06-13 13:07:51 +02:00
Sascha Szott
a0e7e2c617 Merge branch 'DSpace:main' into patch-21-squashed 2024-06-13 13:05:22 +02:00
Andrea Barbasso
66e1a2488b [DURACOM-273] fix markdown rendering applying before mathjax rendering 2024-06-11 15:43:40 +02:00
Alexandre Vryghem
25e2e291cb Merge remote-tracking branch 'w2p-115051_themed-admin-search-page_contribute-7.4' into new-themed-components_contribute-main
# Conflicts:
#	src/app/admin/admin-routing.module.ts
#	src/app/admin/admin-workflow-page/admin-workflow.module.ts
#	src/themes/custom/lazy-theme.module.ts
2024-05-24 15:47:26 +02:00
Alexandre Vryghem
61e52cd2ab Fixed navbar overflowing over breadcrumbs in mobile mode in custom theme 2024-05-21 13:26:19 +02:00
Alexandre Vryghem
89e4d3b9da Merge branch 'w2p-115051_themed-admin-search-page_contribute-7.4' into new-themed-components_contribute-main
# Conflicts:
#	src/app/admin/admin-routing.module.ts
#	src/app/admin/admin-search-page/admin-search.module.ts
#	src/themes/custom/lazy-theme.module.ts
2024-05-21 13:20:24 +02:00
Sascha Szott
96748b9bac added missing interfaces 2024-05-15 10:49:05 +02:00
Michael Spalti
4a236906eb Updated browser init to update cache after external auth. 2024-05-09 12:45:03 -07:00
Alexandre Vryghem
8166c2ebfa Merge remote-tracking branch 'upstream/main' into w2p-108608_created-search-scope-selector_contribute-main
# Conflicts:
#	src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.ts
2024-03-09 04:30:31 +01:00
Sascha Szott
4ca1edfc63 added german translations 2024-01-26 14:25:39 +01:00
Sascha Szott
f12fae3865 added German translations 2024-01-26 14:04:05 +01:00
Sascha Szott
027a5ec5f0 minor translation improvement: use plural in German translation 2024-01-26 13:46:46 +01:00
Alexandre Vryghem
30aa34d1c0 Merge branch 'w2p-108608_created-search-scope-selector_contribute-7.2' into w2p-108608_created-search-scope-selector_contribute-main
# Conflicts:
#	src/app/core/shared/context.model.ts
#	src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html
#	src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.ts
2023-11-22 16:45:33 +01:00
Alexandre Vryghem
9c3e3d9c29 108608: Created new ScopeSelectorModal & ScopeSelectorModalCurrent context 2023-11-22 14:51:17 +01:00
2300 changed files with 129798 additions and 46179 deletions

View File

@@ -25,4 +25,6 @@ npm-debug.log.*
# Webpack files
webpack.records.json
package-lock.json
# Yarn no longer used
yarn.lock

View File

@@ -15,6 +15,10 @@ trim_trailing_whitespace = false
[*.ts]
quote_type = single
ij_typescript_enforce_trailing_comma = whenmultiline
[*.js]
ij_javascript_enforce_trailing_comma = whenmultiline
[*.json5]
ij_json_keep_blank_lines_in_code = 3

View File

@@ -160,6 +160,9 @@
]
}
],
"@angular-eslint/prefer-standalone": [
"error"
],
"@angular-eslint/no-attribute-decorator": "error",
"@angular-eslint/no-output-native": "warn",
"@angular-eslint/no-output-on-prefix": "warn",
@@ -250,6 +253,10 @@
"forceSingleLine": true
}
],
"import/enforce-node-protocol-usage": [
"error",
"always"
],
"unused-imports/no-unused-imports": "error",
"lodash/import-scope": [
@@ -260,9 +267,48 @@
"rxjs/no-nested-subscribe": "off", // todo: go over _all_ cases
// Custom DSpace Angular rules
"dspace-angular-ts/alias-imports": [
"error",
{
"aliases": [
{
"package": "rxjs",
"imported": "of",
"local": "of"
}
]
}
],
"dspace-angular-ts/themed-component-classes": "error",
"dspace-angular-ts/themed-component-selectors": "error",
"dspace-angular-ts/themed-component-usages": "error"
"dspace-angular-ts/themed-component-usages": "error",
"dspace-angular-ts/themed-decorators": [
"off",
{
"decorators": {
"listableObjectComponent": 3,
"rendersSectionForMenu": 2
}
}
],
"dspace-angular-ts/themed-wrapper-no-input-defaults": "error",
"dspace-angular-ts/unique-decorators": [
"off",
{
"decorators": [
"listableObjectComponent"
]
}
],
"dspace-angular-ts/sort-standalone-imports": [
"error",
{
"locale": "en-US",
"maxItems": 0,
"indent": 2,
"trailingComma": true
}
]
}
},
{
@@ -293,7 +339,8 @@
"rules": {
// Custom DSpace Angular rules
"dspace-angular-html/themed-component-usages": "error",
"dspace-angular-html/no-disabled-attribute-on-button": "error"
"dspace-angular-html/no-disabled-attribute-on-button": "error",
"@angular-eslint/template/prefer-control-flow": "error"
}
},
{

View File

@@ -7,16 +7,16 @@ assignees: ''
---
**Describe the bug**
## Describe the bug
A clear and concise description of what the bug is. Include the version(s) of DSpace where you've seen this problem & what *web browser* you were using. Link to examples if they are public.
**To Reproduce**
## To Reproduce
Steps to reproduce the behavior:
1. Do this
2. Then this...
**Expected behavior**
## Expected behavior
A clear and concise description of what you expected to happen.
**Related work**
## Related work
Link to any related tickets or PRs here.

View File

@@ -7,14 +7,14 @@ assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
## Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem or use case is. For example, I'm always frustrated when [...]
**Describe the solution you'd like**
## Describe the solution you'd like
A clear and concise description of what you want to happen.
**Describe alternatives or workarounds you've considered**
## Describe alternatives or workarounds you've considered
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
## Additional information
Add any other information, related tickets or screenshots about the feature request here.

348
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,348 @@
#-------------------
# DSpace's dependabot rules. Enables npm updates for all dependencies on a weekly basis
# for main and any maintenance branches. Security updates only apply to main.
#-------------------
version: 2
updates:
###############
## Main branch
###############
# NOTE: At this time, "security-updates" rules only apply if "target-branch" is unspecified
# So, only this first section can include "applies-to: security-updates"
- package-ecosystem: "npm"
directory: "/"
# Monthly dependency updates (NOTE: "schedule" doesn't apply to security updates)
schedule:
interval: "monthly"
time: "05:00"
# Allow up to 10 open PRs for dependencies
open-pull-requests-limit: 10
# Group together Angular package upgrades
groups:
# Group together all minor/patch version updates for Angular in a single PR
angular:
applies-to: version-updates
patterns:
- "@angular*"
- "@ngtools/webpack"
update-types:
- "minor"
- "patch"
# Group together all minor/patch version updates for NgRx in a single PR
ngrx:
applies-to: version-updates
patterns:
- "@ngrx*"
update-types:
- "minor"
- "patch"
# Group together all patch version updates for eslint in a single PR
eslint:
applies-to: version-updates
patterns:
- "@typescript-eslint*"
- "eslint*"
update-types:
- "minor"
- "patch"
# Group together any testing related version updates
testing:
applies-to: version-updates
patterns:
- "@cypress*"
- "axe-*"
- "cypress*"
- "jasmine*"
- "karma*"
- "ng-mocks"
update-types:
- "minor"
- "patch"
# Group together any postcss related version updates
postcss:
applies-to: version-updates
patterns:
- "postcss*"
update-types:
- "minor"
- "patch"
# Group together any sass related version updates
sass:
applies-to: version-updates
patterns:
- "sass*"
update-types:
- "minor"
- "patch"
# Group together any webpack related version updates
webpack:
applies-to: version-updates
patterns:
- "webpack*"
update-types:
- "minor"
- "patch"
ignore:
# Restrict zone.js updates to patch level to avoid dependency conflicts with @angular/core
- dependency-name: "zone.js"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Restrict typescript updates to patch level because that's what our package.json says
- dependency-name: "typescript"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Ignore all major version updates for all dependencies. We'll only automate minor/patch updates.
- dependency-name: "*"
update-types: ["version-update:semver-major"]
#####################
## dspace-9_x branch
#####################
- package-ecosystem: "npm"
directory: "/"
target-branch: dspace-9_x
schedule:
interval: "monthly"
time: "05:00"
# Allow up to 10 open PRs for dependencies
open-pull-requests-limit: 10
# Group together Angular package upgrades
groups:
# Group together all patch version updates for Angular in a single PR
angular:
applies-to: version-updates
patterns:
- "@angular*"
- "@ngtools/webpack"
update-types:
- "minor"
- "patch"
# Group together all minor/patch version updates for NgRx in a single PR
ngrx:
applies-to: version-updates
patterns:
- "@ngrx*"
- "@ngtools/webpack"
update-types:
- "minor"
- "patch"
# Group together all patch version updates for eslint in a single PR
eslint:
applies-to: version-updates
patterns:
- "@typescript-eslint*"
- "eslint*"
update-types:
- "minor"
- "patch"
# Group together any testing related version updates
testing:
applies-to: version-updates
patterns:
- "@cypress*"
- "axe-*"
- "cypress*"
- "jasmine*"
- "karma*"
- "ng-mocks"
update-types:
- "minor"
- "patch"
# Group together any postcss related version updates
postcss:
applies-to: version-updates
patterns:
- "postcss*"
update-types:
- "minor"
- "patch"
# Group together any sass related version updates
sass:
applies-to: version-updates
patterns:
- "sass*"
update-types:
- "minor"
- "patch"
# Group together any webpack related version updates
webpack:
applies-to: version-updates
patterns:
- "webpack*"
update-types:
- "minor"
- "patch"
ignore:
# Restrict zone.js updates to patch level to avoid dependency conflicts with @angular/core
- dependency-name: "zone.js"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Restrict typescript updates to patch level because that's what our package.json says
- dependency-name: "typescript"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Ignore all major version updates for all dependencies. We'll only automate minor/patch updates.
- dependency-name: "*"
update-types: ["version-update:semver-major"]
#####################
## dspace-8_x branch
#####################
- package-ecosystem: "npm"
directory: "/"
target-branch: dspace-8_x
schedule:
interval: "monthly"
time: "05:00"
# Allow up to 10 open PRs for dependencies
open-pull-requests-limit: 10
# Group together Angular package upgrades
groups:
# Group together all patch version updates for Angular in a single PR
angular:
applies-to: version-updates
patterns:
- "@angular*"
- "@ngtools/webpack"
update-types:
- "minor"
- "patch"
# Group together all minor/patch version updates for NgRx in a single PR
ngrx:
applies-to: version-updates
patterns:
- "@ngrx*"
update-types:
- "minor"
- "patch"
# Group together all patch version updates for eslint in a single PR
eslint:
applies-to: version-updates
patterns:
- "@typescript-eslint*"
- "eslint*"
update-types:
- "minor"
- "patch"
# Group together any testing related version updates
testing:
applies-to: version-updates
patterns:
- "@cypress*"
- "axe-*"
- "cypress*"
- "jasmine*"
- "karma*"
- "ng-mocks"
update-types:
- "minor"
- "patch"
# Group together any postcss related version updates
postcss:
applies-to: version-updates
patterns:
- "postcss*"
update-types:
- "minor"
- "patch"
# Group together any sass related version updates
sass:
applies-to: version-updates
patterns:
- "sass*"
update-types:
- "minor"
- "patch"
# Group together any webpack related version updates
webpack:
applies-to: version-updates
patterns:
- "webpack*"
update-types:
- "minor"
- "patch"
ignore:
# Restrict zone.js updates to patch level to avoid dependency conflicts with @angular/core
- dependency-name: "zone.js"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Restrict typescript updates to patch level because that's what our package.json says
- dependency-name: "typescript"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Ignore all major version updates for all dependencies. We'll only automate minor/patch updates.
- dependency-name: "*"
update-types: ["version-update:semver-major"]
#####################
## dspace-7_x branch
#####################
- package-ecosystem: "npm"
directory: "/"
target-branch: dspace-7_x
schedule:
interval: "monthly"
time: "05:00"
# Allow up to 10 open PRs for dependencies
open-pull-requests-limit: 10
# Group together Angular package upgrades
groups:
# Group together all minor/patch version updates for Angular in a single PR
angular:
applies-to: version-updates
patterns:
- "@angular*"
- "@ngtools/webpack"
update-types:
- "minor"
- "patch"
# Group together all minor/patch version updates for NgRx in a single PR
ngrx:
applies-to: version-updates
patterns:
- "@ngrx*"
update-types:
- "minor"
- "patch"
# Group together all patch version updates for eslint in a single PR
eslint:
applies-to: version-updates
patterns:
- "@typescript-eslint*"
- "eslint*"
update-types:
- "minor"
- "patch"
# Group together any testing related version updates
testing:
applies-to: version-updates
patterns:
- "@cypress*"
- "axe-*"
- "cypress*"
- "jasmine*"
- "karma*"
- "ng-mocks"
update-types:
- "minor"
- "patch"
# Group together any postcss related version updates
postcss:
applies-to: version-updates
patterns:
- "postcss*"
update-types:
- "minor"
- "patch"
# Group together any sass related version updates
sass:
applies-to: version-updates
patterns:
- "sass*"
update-types:
- "minor"
- "patch"
ignore:
# 7.x Cannot update Webpack past v5.76.1 as later versions not supported by Angular 15
# See also https://github.com/DSpace/dspace-angular/pull/3283#issuecomment-2372488489
- dependency-name: "webpack"
# Restrict zone.js updates to patch level to avoid dependency conflicts with @angular/core
- dependency-name: "zone.js"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Restrict typescript updates to patch level because that's what our package.json says
- dependency-name: "typescript"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Ignore all major version updates for all dependencies. We'll only automate minor/patch updates.
- dependency-name: "*"
update-types: ["version-update:semver-major"]

View File

@@ -1,7 +1,7 @@
## References
_Add references/links to any related issues or PRs. These may include:_
* Fixes #`issue-number` (if this fixes an issue ticket)
* Requires DSpace/DSpace#`pr-number` (if a REST API PR is required to test this)
* Fixes #issue-number (if this fixes an issue ticket)
* Requires DSpace/DSpace#pr-number (if a REST API PR is required to test this)
## Description
Short summary of changes (1-2 sentences).
@@ -16,13 +16,18 @@ List of changes in this PR:
**Include guidance for how to test or review your PR.** This may include: steps to reproduce a bug, screenshots or description of a new feature, or reasons behind specific changes.
## Checklist
_This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!_
_This checklist provides a reminder of what we are going to look for when reviewing your PR. You do not need to complete this checklist prior creating your PR (draft PRs are always welcome).
However, reviewers may request that you complete any actions in this list if you have not done so. If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!_
- [ ] 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.
- [ ] My PR passes [ESLint](https://eslint.org/) validation using `yarn lint`
- [ ] My PR doesn't introduce circular dependencies (verified via `yarn check-circ-deps`)
- [ ] My PR includes [TypeDoc](https://typedoc.org/) comments for _all new (or modified) public methods and classes_. It also includes TypeDoc for large or complex private methods.
- [ ] My PR passes all specs/tests and includes new/updated specs or tests based on the [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide).
- [ ] My PR is **created against the `main` branch** of code (unless it is a backport or is fixing an issue specific to an older branch).
- [ ] 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.
- [ ] My PR **passes [ESLint](https://eslint.org/)** validation using `npm run lint`
- [ ] My PR **doesn't introduce circular dependencies** (verified via `npm run check-circ-deps`)
- [ ] My PR **includes [TypeDoc](https://typedoc.org/) comments** for _all new (or modified) public methods and classes_. It also includes TypeDoc for large or complex private methods.
- [ ] My PR **passes all specs/tests and includes new/updated specs or tests** based on the [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide).
- [ ] My PR **aligns with [Accessibility guidelines](https://wiki.lyrasis.org/display/DSDOC9x/Accessibility)** if it makes changes to the user interface.
- [ ] My PR **uses i18n (internationalization) keys** instead of hardcoded English text, to allow for translations.
- [ ] 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.
- [ ] If my PR includes new libraries/dependencies (in `package.json`), I've made sure their licenses align with the [DSpace BSD License](https://github.com/DSpace/DSpace/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation.
- [ ] If my PR includes new features or configurations, I've provided basic technical documentation in the PR itself.
- [ ] If my PR fixes an issue ticket, I've [linked them together](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue).

View File

@@ -75,39 +75,39 @@ jobs:
fi
google-chrome --version
# https://github.com/actions/cache/blob/main/examples.md#node---yarn
- name: Get Yarn cache directory
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache Yarn dependencies
# https://github.com/actions/cache/blob/main/examples.md#node---npm
- name: Get NPM cache directory
id: npm-cache-dir
run: echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT
- name: Cache NPM dependencies
uses: actions/cache@v4
with:
# Cache entire Yarn cache directory (see previous step)
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
# Cache key is hash of yarn.lock. Therefore changes to yarn.lock will invalidate cache
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: ${{ runner.os }}-yarn-
# Cache entire NPM cache directory (see previous step)
path: ${{ steps.npm-cache-dir.outputs.dir }}
# Cache key is hash of package-lock.json. Therefore changes to package-lock.json will invalidate cache
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-npm-
- name: Install Yarn dependencies
run: yarn install --frozen-lockfile
- name: Install NPM dependencies
run: npm clean-install
- name: Build lint plugins
run: yarn run build:lint
run: npm run build:lint
- name: Run lint plugin tests
run: yarn run test:lint:nobuild
run: npm run test:lint:nobuild
- name: Run lint
run: yarn run lint:nobuild --quiet
run: npm run lint:nobuild -- --quiet
- name: Check for circular dependencies
run: yarn run check-circ-deps
run: npm run check-circ-deps
- name: Run build
run: yarn run build:prod
run: npm run build:prod
- name: Run specs (unit tests)
run: yarn run test:headless
run: npm run test:headless
# Upload code coverage report to artifact (for one version of Node only),
# so that it can be shared with the 'codecov' job (see below)
@@ -145,7 +145,7 @@ jobs:
# Run tests in Chrome, headless mode (default)
browser: chrome
# Start app before running tests (will be stopped automatically after tests finish)
start: yarn run serve:ssr
start: npm run serve:ssr
# Wait for backend & frontend to be available
# NOTE: We use the 'sites' REST endpoint to also ensure the database is ready
wait-on: http://127.0.0.1:8080/server/api/core/sites, http://127.0.0.1:4000
@@ -181,7 +181,7 @@ jobs:
# Start up the app with SSR enabled (run in background)
- name: Start app in SSR (server-side rendering) mode
run: |
nohup yarn run serve:ssr &
nohup npm run serve:ssr &
printf 'Waiting for app to start'
until curl --output /dev/null --silent --head --fail http://127.0.0.1:4000/home; do
printf '.'

4
.gitignore vendored
View File

@@ -28,12 +28,12 @@ webpack.records.json
morgan.log
# Yarn no longer used
yarn.lock
yarn-error.log
*.css
package-lock.json
.java-version
.env

View File

@@ -10,7 +10,7 @@ DSpace is a community built and supported project. We do not have a centralized
## Contribute new code via a Pull Request
We accept [GitHub Pull Requests (PRs)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) at any time from anyone.
Contributors to each release are recognized in our [Release Notes](https://wiki.lyrasis.org/display/DSDOC7x/Release+Notes).
Contributors to each release are recognized in our [Release Notes](https://wiki.lyrasis.org/display/DSDOC9x/Release+Notes).
Code Contribution Checklist
- [ ] PRs _should_ be smaller in size (ideally less than 1,000 lines of code, not including comments & tests)
@@ -18,6 +18,9 @@ Code Contribution Checklist
- [ ] PRs **must** not introduce circular dependencies (verified via `yarn check-circ-deps`)
- [ ] PRs **must** include [TypeDoc](https://typedoc.org/) comments for _all new (or modified) public methods and classes_. Large or complex private methods should also have TypeDoc.
- [ ] PRs **must** pass all automated pecs/tests and includes new/updated specs or tests based on the [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide).
- [ ] User interface changes **must** align with [Accessibility guidelines](https://wiki.lyrasis.org/display/DSDOC9x/Accessibility)
- [ ] PRs **must** use i18n (internationalization) keys instead of hardcoded English text, to allow for translations.
- [ ] Details on how to test the PR **must** be provided. Reviewers must be aware of any steps they need to take to successfully test your fix or feature.
- [ ] If a PR includes new libraries/dependencies (in `package.json`), then their software licenses **must** align with the [DSpace BSD License](https://github.com/DSpace/dspace-angular/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation.
- [ ] Basic technical documentation _should_ be provided for any new features or configuration, either in the PR itself or in the DSpace Wiki documentation.
- [ ] If a PR fixes an issue ticket, please [link them together](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue).
@@ -26,7 +29,7 @@ Additional details on the code contribution process can be found in our [Code Co
## Contribute documentation
DSpace Documentation is a collaborative effort in a shared Wiki. The latest documentation is at https://wiki.lyrasis.org/display/DSDOC7x
DSpace Documentation is a collaborative effort in a shared Wiki. The latest documentation is at https://wiki.lyrasis.org/display/DSDOC
If you find areas of the DSpace Documentation which you wish to improve, please request a Wiki account by emailing wikihelp@lyrasis.org.
Once you have an account setup, contact @tdonohue (via [Slack](https://wiki.lyrasis.org/display/DSPACE/Slack) or email) for access to edit our Documentation.
@@ -34,7 +37,7 @@ Once you have an account setup, contact @tdonohue (via [Slack](https://wiki.lyra
## Help others on mailing lists or Slack
DSpace has our own [Slack](https://wiki.lyrasis.org/display/DSPACE/Slack) community and [Mailing Lists](https://wiki.lyrasis.org/display/DSPACE/Mailing+Lists) where discussions take place and questions are answered.
Anyone is welcome to join and help others. We just ask you to follow our [Code of Conduct](https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx) (adopted via LYRASIS).
Anyone is welcome to join and help others. We just ask you to follow our [Code of Conduct](https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx) (adopted via Lyrasis).
## Join a working or interest group
@@ -42,5 +45,5 @@ Most of the work in building/improving DSpace comes via [Working Groups](https:/
All working/interest groups are open to anyone to join and participate. A few key groups to be aware of include:
* [DSpace 7 Working Group](https://wiki.lyrasis.org/display/DSPACE/DSpace+7+Working+Group) - This is the main (mostly volunteer) development team. We meet weekly to review our current development [project board](https://github.com/orgs/DSpace/projects), assigning tickets and/or PRs.
* [DSpace Community Advisory Team (DCAT)](https://wiki.lyrasis.org/display/cmtygp/DSpace+Community+Advisory+Team) - This is an interest group for repository managers/administrators. We meet monthly to discuss DSpace, share tips & provide feedback back to developers.
* [DSpace Developer Team](https://wiki.lyrasis.org/display/DSPACE/Developer+Meetings) - This is the primary, volunteer development team. We meet weekly to review our current development [project board](https://github.com/orgs/DSpace/projects), assigning tickets and/or PRs. This is also were discussions of the next release or major issues occur. Anyone is welcome to attend.
* [DSpace Community Advisory Team (DCAT)](https://wiki.lyrasis.org/display/cmtygp/DSpace+Community+Advisory+Team) - This is an interest group for repository managers/administrators. We meet monthly to discuss DSpace, share tips & provide feedback back to developers. Anyone is welcome to attend.

View File

@@ -11,9 +11,7 @@ WORKDIR /app
ADD . /app/
EXPOSE 4000
# We run yarn install with an increased network timeout (5min) to avoid "ESOCKETTIMEDOUT" errors from hub.docker.com
# See, for example https://github.com/yarnpkg/yarn/issues/5540
RUN yarn install --network-timeout 300000
RUN npm install
# When running in dev mode, 4GB of memory is required to build & launch the app.
# This default setting can be overridden as needed in your shell, via an env file or in docker-compose.
@@ -25,4 +23,4 @@ ENV NODE_OPTIONS="--max_old_space_size=4096"
# NOTE: At this time it is only possible to run Docker container in Production mode
# if you have a public URL. See https://github.com/DSpace/dspace-angular/issues/1485
ENV NODE_ENV=development
CMD yarn serve --host 0.0.0.0
CMD npm run serve -- --host 0.0.0.0

View File

@@ -2,7 +2,7 @@
# See https://github.com/DSpace/dspace-angular/tree/main/docker for usage details
# Test build:
# docker build -f Dockerfile.dist -t dspace/dspace-angular:dspace-8_x-dist .
# docker build -f Dockerfile.dist -t dspace/dspace-angular:latest-dist .
FROM docker.io/node:18-alpine AS build
@@ -11,11 +11,11 @@ FROM docker.io/node:18-alpine AS build
RUN apk add --update python3 make g++ && rm -rf /var/cache/apk/*
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --network-timeout 300000
COPY package.json package-lock.json ./
RUN npm install
ADD . /app/
RUN yarn build:prod
RUN npm run build:prod
FROM node:18-alpine
RUN npm install --global pm2

View File

@@ -10,7 +10,7 @@ Overview
DSpace open source software is a turnkey repository application used by more than
2,000 organizations and institutions worldwide to provide durable access to digital resources.
For more information, visit http://www.dspace.org/
For more information, visit https://www.dspace.org/
DSpace consists of both a Java-based backend and an Angular-based frontend.
@@ -30,12 +30,12 @@ Downloads
Documentation for each release may be viewed online or downloaded via our [Documentation Wiki](https://wiki.lyrasis.org/display/DSDOC/).
The latest DSpace Installation instructions are available at:
https://wiki.lyrasis.org/display/DSDOC7x/Installing+DSpace
https://wiki.lyrasis.org/display/DSDOC9x/Installing+DSpace
Quick start
-----------
**Ensure you're running [Node](https://nodejs.org) `v18.x` or `v20.x`, [npm](https://www.npmjs.com/) >= `v10.x` and [yarn](https://yarnpkg.com) == `v1.x`**
**Ensure you're running [Node](https://nodejs.org) `v18.x` or `v20.x`, [npm](https://www.npmjs.com/) >= `v10.x`**
```bash
# clone the repo
@@ -45,10 +45,10 @@ git clone https://github.com/DSpace/dspace-angular.git
cd dspace-angular
# install the local dependencies
yarn install
npm install
# start the server
yarn start
npm start
```
Then go to [http://localhost:4000](http://localhost:4000) in your browser
@@ -77,7 +77,7 @@ Table of Contents
- [Recommended Editors/IDEs](#recommended-editorsides)
- [Collaborating](#collaborating)
- [File Structure](#file-structure)
- [Managing Dependencies (via yarn)](#managing-dependencies-via-yarn)
- [Managing Dependencies (via npm)](#managing-dependencies-via-npm)
- [Frequently asked questions](#frequently-asked-questions)
- [License](#license)
@@ -89,15 +89,15 @@ You can find more information on the technologies used in this project (Angular.
Requirements
------------
- [Node.js](https://nodejs.org) and [yarn](https://yarnpkg.com)
- Ensure you're running node `v18.x` or `v20.x` and yarn == `v1.x`
- [Node.js](https://nodejs.org)
- Ensure you're running node `v18.x` or `v20.x`
If you have [`nvm`](https://github.com/creationix/nvm#install-script) or [`nvm-windows`](https://github.com/coreybutler/nvm-windows) installed, which is highly recommended, you can run `nvm install --lts && nvm use` to install and start using the latest Node LTS.
Installing
----------
- `yarn install` to install the local dependencies
- `npm install` to install the local dependencies
### Configuring
@@ -202,7 +202,7 @@ import { environment } from '../environment.ts';
Running the app
---------------
After you have installed all dependencies you can now run the app. Run `yarn run start:dev` to start a local server which will watch for changes, rebuild the code, and reload the server for you. You can visit it at `http://localhost:4000`.
After you have installed all dependencies you can now run the app. Run `npm run start:dev` to start a local server which will watch for changes, rebuild the code, and reload the server for you. You can visit it at `http://localhost:4000`.
### Running in production mode
@@ -211,20 +211,20 @@ When building for production we're using Ahead of Time (AoT) compilation. With A
To build the app for production and start the server (in one command) run:
```bash
yarn start
npm start
```
This will run the application in an instance of the Express server, which is included.
If you only want to build for production, without starting, run:
```bash
yarn run build:prod
npm run build:prod
```
This will build the application and put the result in the `dist` folder. You can copy this folder to wherever you need it for your application server. If you will be using the built-in Express server, you'll also need a copy of the `node_modules` folder tucked inside your copy of `dist`.
After building the app for production, it can be started by running:
```bash
yarn run serve:ssr
npm run serve:ssr
```
### Running the application with Docker
@@ -238,14 +238,14 @@ Cleaning
--------
```bash
# clean everything, including node_modules. You'll need to run yarn install again afterwards.
yarn run clean
# clean everything, including node_modules. You'll need to run npm install again afterwards.
npm run clean
# clean files generated by the production build (.ngfactory files, css files, etc)
yarn run clean:prod
npm run clean:prod
# cleans the distribution directory
yarn run clean:dist
npm run clean:dist
```
@@ -259,9 +259,9 @@ If you would like to contribute by testing a Pull Request (PR), here's how to do
1. Pull down the branch that the Pull Request was built from. Easy instructions for doing so can be found on the Pull Request itself.
* Next to the "Merge" button, you'll see a link that says "command line instructions".
* Click it, and follow "Step 1" of those instructions to checkout the pull down the PR branch.
2. `yarn run clean` (This resets your local dependencies to ensure you are up-to-date with this PR)
3. `yarn install` (Updates your local dependencies to those in the PR)
4. `yarn start` (Rebuilds the project, and deploys to localhost:4000, by default)
2. `npm run clean` (This resets your local dependencies to ensure you are up-to-date with this PR)
3. `npm install` (Updates your local dependencies to those in the PR)
4. `npm start` (Rebuilds the project, and deploys to localhost:4000, by default)
5. At this point, the code from the PR will be deployed to http://localhost:4000. Test it out, and ensure that it does what is described in the PR (or fixes the bug described in the ticket linked to the PR).
Once you have tested the Pull Request, please add a comment and/or approval to the PR to let us know whether you found it to be successful (or not). Thanks!
@@ -271,13 +271,13 @@ Once you have tested the Pull Request, please add a comment and/or approval to t
Unit tests use the [Jasmine test framework](https://jasmine.github.io/), and are run via [Karma](https://karma-runner.github.io/).
You can find the Karma configuration file at the same level of this README file:`./karma.conf.js` If you are going to use a remote test environment you need to edit the `./karma.conf.js`. Follow the instructions you will find inside it. To executing tests whenever any file changes you can modify the 'autoWatch' option to 'true' and 'singleRun' option to 'false'. A coverage report is also available at: http://localhost:9876/ after you run: `yarn run coverage`.
You can find the Karma configuration file at the same level of this README file:`./karma.conf.js` If you are going to use a remote test environment you need to edit the `./karma.conf.js`. Follow the instructions you will find inside it. To executing tests whenever any file changes you can modify the 'autoWatch' option to 'true' and 'singleRun' option to 'false'. A coverage report is also available at: http://localhost:9876/ after you run: `npm run coverage`.
The default browser is Google Chrome.
Place your tests in the same location of the application source code files that they test, e.g. ending with `*.component.spec.ts`
and run: `yarn test`
and run: `npm test`
If you run into odd test errors, see the Angular guide to debugging tests: https://angular.io/guide/test-debugging
@@ -330,9 +330,9 @@ All E2E tests must be created under the `./cypress/integration/` folder, and mus
* In the [Cypress Test Runner](https://docs.cypress.io/guides/core-concepts/test-runner), you'll Cypress automatically visit the page. This first test will succeed, as all you are doing is making sure the _page exists_.
* From here, you can use the [Selector Playground](https://docs.cypress.io/guides/core-concepts/test-runner#Selector-Playground) in the Cypress Test Runner window to determine how to tell Cypress to interact with a specific HTML element on that page.
* Most commands start by telling Cypress to [get()](https://docs.cypress.io/api/commands/get) a specific element, using a CSS or jQuery style selector
* It's generally best not to rely on attributes like `class` and `id` in tests, as those are likely to change later on. Instead, you can add a `data-test` attribute to makes it clear that it's required for a test.
* It's generally best not to rely on attributes like `class` and `id` in tests, as those are likely to change later on. Instead, you can add a `data-test` attribute to makes it clear that it's required for a test.
* Cypress can then do actions like [click()](https://docs.cypress.io/api/commands/click) an element, or [type()](https://docs.cypress.io/api/commands/type) text in an input field, etc.
* When running with server-side rendering enabled, the client first receives HTML without the JS; only once the page is rendered client-side do some elements (e.g. a button that toggles a Bootstrap dropdown) become fully interactive. This can trip up Cypress in some cases as it may try to `click` or `type` in an element that's not fully loaded yet, causing tests to fail.
* When running with server-side rendering enabled, the client first receives HTML without the JS; only once the page is rendered client-side do some elements (e.g. a button that toggles a Bootstrap dropdown) become fully interactive. This can trip up Cypress in some cases as it may try to `click` or `type` in an element that's not fully loaded yet, causing tests to fail.
* To work around this issue, define the attributes you use for Cypress selectors as `[attr.data-test]="'button' | ngBrowserOnly"`. This will only show the attribute in CSR HTML, forcing Cypress to wait until CSR is complete before interacting with the element.
* Cypress can also validate that something occurs, using [should()](https://docs.cypress.io/api/commands/should) assertions.
* Any time you save your test file, the Cypress Test Runner will reload & rerun it. This allows you can see your results quickly as you write the tests & correct any broken tests rapidly.
@@ -349,7 +349,7 @@ See our [DSpace Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code
Documentation
--------------
Official DSpace documentation is available in the DSpace wiki at https://wiki.lyrasis.org/display/DSDOC7x/
Official DSpace documentation is available in the DSpace wiki at https://wiki.lyrasis.org/display/DSDOC9x/
Some UI specific configuration documentation is also found in the [`./docs`](docs) folder of this codebase.
@@ -357,14 +357,14 @@ Some UI specific configuration documentation is also found in the [`./docs`](doc
To build the code documentation we use [TYPEDOC](http://typedoc.org). TYPEDOC is a documentation generator for TypeScript projects. It extracts information from properly formatted comments that can be written within the code files. Follow the instructions [here](http://typedoc.org/guides/doccomments/) to know how to make those comments.
Run:`yarn run docs` to produce the documentation that will be available in the 'doc' folder.
Run:`npm run docs` to produce the documentation that will be available in the 'doc' folder.
Other commands
--------------
There are many more commands in the `scripts` section of `package.json`. Most of these are executed by one of the commands mentioned above.
A command with a name that starts with `pre` or `post` will be executed automatically before or after the script with the matching name. e.g. if you type `yarn run start` the `prestart` script will run first, then the `start` script will trigger.
A command with a name that starts with `pre` or `post` will be executed automatically before or after the script with the matching name. e.g. if you type `npm run start` the `prestart` script will run first, then the `start` script will trigger.
Recommended Editors/IDEs
------------------------
@@ -456,6 +456,7 @@ dspace-angular
├── LICENSES_THIRD_PARTY *
├── nodemon.json * Nodemon (https://nodemon.io/) configuration
├── package.json * This file describes the npm package for this project, its dependencies, scripts, etc.
├── package-lock.json * npm lockfile (https://docs.npmjs.com/cli/v10/configuring-npm/package-lock-json)
├── postcss.config.js * PostCSS (http://postcss.org/) configuration
├── README.md * This document
├── SECURITY.md *
@@ -466,30 +467,29 @@ dspace-angular
├── tsconfig.spec.json * TypeScript config for tests
├── tsconfig.ts-node.json * TypeScript config for using ts-node directly
├── tslint.json * TSLint (https://palantir.github.io/tslint/) configuration
── typedoc.json * TYPEDOC configuration
└── yarn.lock * Yarn lockfile (https://yarnpkg.com/en/docs/yarn-lock)
── typedoc.json * TYPEDOC configuration
```
Managing Dependencies (via yarn)
Managing Dependencies (via npm)
-------------
This project makes use of [`yarn`](https://yarnpkg.com/en/) to ensure that the exact same dependency versions are used every time you install it.
This project makes use of [`npm`](https://docs.npmjs.com/about-npm) to ensure that the exact same dependency versions are used every time you install it.
* `yarn` creates a [`yarn.lock`](https://yarnpkg.com/en/docs/yarn-lock) to track those versions. That file is updated automatically by whenever dependencies are added/updated/removed via yarn.
* **Adding new dependencies**: To install/add a new dependency (third party library), use [`yarn add`](https://yarnpkg.com/en/docs/cli/add). For example: `yarn add some-lib`.
* If you are adding a new build tool dependency (to `devDependencies`), use `yarn add some-lib --dev`
* **Upgrading existing dependencies**: To upgrade existing dependencies, you can use [`yarn upgrade`](https://yarnpkg.com/en/docs/cli/upgrade). For example: `yarn upgrade some-lib` or `yarn upgrade some-lib@version`
* **Removing dependencies**: If a dependency is no longer needed, or replaced, use [`yarn remove`](https://yarnpkg.com/en/docs/cli/remove) to remove it.
* `npm` creates a [`package-lock.json`](https://docs.npmjs.com/cli/v10/configuring-npm/package-lock-json) to track those versions. That file is updated automatically by whenever dependencies are added/updated/removed via npm.
* **Adding new dependencies**: To install/add a new dependency (third party library), use [`npm install`](https://docs.npmjs.com/cli/v10/commands/npm-install). For example: `npm install some-lib`.
* If you are adding a new build tool dependency (to `devDependencies`), use `npm install some-lib --save--dev`
* **Upgrading existing dependencies**: To upgrade existing dependencies, you can use [`npm update`](https://docs.npmjs.com/cli/v10/commands/npm-update). For example: `npm update some-lib` or `npm update some-lib@version`
* **Removing dependencies**: If a dependency is no longer needed, or replaced, use [`npm uninstall`](https://docs.npmjs.com/cli/v10/commands/npm-uninstall) to remove it.
As you can see above, using `yarn` commandline tools means that you should never need to modify the `package.json` manually. *We recommend always using `yarn` to keep dependencies updated / in sync.*
As you can see above, using `npm` commandline tools means that you should never need to modify the `package.json` manually. *We recommend always using `npm` to keep dependencies updated / in sync.*
### Adding Typings for libraries
If the library does not include typings, you can install them using yarn:
If the library does not include typings, you can install them using npm:
```bash
yarn add d3
yarn add @types/d3 --dev
npm install d3
npm install @types/d3 --save-dev
```
If the library doesn't have typings available at `@types/`, you can still use it by manually adding typings for it:
@@ -527,13 +527,13 @@ Frequently asked questions
- What are the naming conventions for Angular?
- See [the official angular style guide](https://angular.io/styleguide)
- Why is the size of my app larger in development?
- The production build uses a whole host of techniques (ahead-of-time compilation, rollup to remove unreachable code, minification, etc.) to reduce the size, that aren't used during development in the intrest of build speed.
- node-pre-gyp ERR in yarn install (Windows)
- The production build uses a whole host of techniques (ahead-of-time compilation, rollup to remove unreachable code, minification, etc.) to reduce the size, that aren't used during development in the interest of build speed.
- node-pre-gyp ERR in npm install (Windows)
- install Python x86 version between 2.5 and 3.0 on windows. See [this issue](https://github.com/AngularClass/angular2-webpack-starter/issues/626)
- How do I handle merge conflicts in yarn.lock?
- first check out the yarn.lock file from the branch you're merging in to yours: e.g. `git checkout --theirs yarn.lock`
- now run `yarn install` again. Yarn will create a new lockfile that contains both sets of changes.
- then run `git add yarn.lock` to stage the lockfile for commit
- How do I handle merge conflicts in package-lock.json?
- first check out the package-lock.json file from the branch you're merging in to yours: e.g. `git checkout --theirs package-lock.json`
- now run `npm install` again. NPM will create a new lockfile that contains both sets of changes.
- then run `git add package-lock.json` to stage the lockfile for commit
- and `git commit` to conclude the merge
Getting Help
@@ -552,7 +552,7 @@ Additional support options are at https://wiki.lyrasis.org/display/DSPACE/Suppor
DSpace also has an active service provider network. If you'd rather hire a service provider to
install, upgrade, customize or host DSpace, then we recommend getting in touch with one of our
[Registered Service Providers](http://www.dspace.org/service-providers).
[Registered Service Providers](https://dspace.org/registered-service-providers/).
Issue Tracker
@@ -565,7 +565,7 @@ DSpace uses GitHub to track issues:
License
-------
DSpace source code is freely available under a standard [BSD 3-Clause license](https://opensource.org/licenses/BSD-3-Clause).
The full license is available in the [LICENSE](LICENSE) file or online at http://www.dspace.org/license/
The full license is available in the [LICENSE](LICENSE) file or online at https://www.dspace.org/license/
DSpace uses third-party libraries which may be distributed under different licenses. Those licenses are listed
in the [LICENSES_THIRD_PARTY](LICENSES_THIRD_PARTY) file.

View File

@@ -58,7 +58,10 @@
"input": "src/themes/dspace/styles/theme.scss",
"inject": false,
"bundleName": "dspace-theme"
}
},
"node_modules/leaflet/dist/leaflet.css",
"node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css",
"node_modules/leaflet.markercluster/dist/MarkerCluster.css"
],
"scripts": [],
"baseHref": "/"

View File

@@ -101,7 +101,7 @@ cache:
# Set to true to see all cache hits/misses/refreshes in your console logs. Useful for debugging SSR caching issues.
debug: false
# When enabled (i.e. max > 0), known bots will be sent pages from a server side cache specific for bots.
# (Keep in mind, bot detection cannot be guarranteed. It is possible some bots will bypass this cache.)
# (Keep in mind, bot detection cannot be guaranteed. It is possible some bots will bypass this cache.)
botCache:
# Maximum number of pages to cache for known bots. Set to zero (0) to disable server side caching for bots.
# Default is 1000, which means the 1000 most recently accessed public pages will be cached.
@@ -265,6 +265,9 @@ languages:
- code: es
label: Español
active: true
- code: fa
label: فارسی
active: true
- code: fi
label: Suomi
active: true
@@ -274,6 +277,9 @@ languages:
- code: gd
label: Gàidhlig
active: true
- code: gu
label: ગુજરાતી
active: true
- code: hi
label: हिंदी
active: true
@@ -289,6 +295,9 @@ languages:
- code: lv
label: Latviešu
active: true
- code: mr
label: मराठी
active: true
- code: nl
label: Nederlands
active: true
@@ -301,6 +310,9 @@ languages:
- code: pt-BR
label: Português do Brasil
active: true
- code: ru
label: Русский
active: true
- code: sr-lat
label: Srpski (lat)
active: true
@@ -364,6 +376,8 @@ item:
# Rounded to the nearest size in the list of selectable sizes on the
# settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'.
pageSize: 5
# Show the bitstream access status label on the item page
showAccessStatuses: false
# Community Page Config
community:
@@ -465,6 +479,8 @@ info:
enableEndUserAgreement: true
enablePrivacyStatement: true
enableCOARNotifySupport: true
# Whether to show the cookie consent popup and the cookie settings footer link or not.
enableCookieConsentPopup: true
# Whether to enable Markdown (https://commonmark.org/) and MathJax (https://www.mathjax.org/)
# display in supported metadata fields. By default, only dc.description.abstract is supported.
@@ -558,7 +574,6 @@ notifyMetrics:
config: 'NOTIFY.outgoing.delivered'
description: 'admin-notify-dashboard.NOTIFY.outgoing.delivered.description'
# Live Region configuration
# Live Region as defined by w3c, https://www.w3.org/TR/wai-aria-1.1/#terms:
# Live regions are perceivable regions of a web page that are typically updated as a
@@ -573,6 +588,40 @@ liveRegion:
# The visibility of the live region. Setting this to true is only useful for debugging purposes.
isVisible: false
# Geospatial Map display options
geospatialMapViewer:
# Which fields to use for parsing as geospatial points in search maps
# (note, the item page field component allows any field(s) to be used
# and is set as an input when declaring the component)
spatialMetadataFields:
- 'dcterms.spatial'
# Which discovery configuration to use for 'geospatial search', used
# in the browse map
spatialFacetDiscoveryConfiguration: 'geospatial'
# Which filter / facet name to use for faceted geospatial search
# used in the browse map
spatialPointFilterName: 'point'
# Whether item page geospatial metadata should be displayed
# (assumes they are wrapped in a test for this config in the template as
# per the default templates supplied with DSpace for untyped-item and publication)
enableItemPageFields: false
# Whether the browse map should be enabled and included in the browse menu
enableBrowseMap: false
# Whether a 'map view' mode should be included alongside list and grid views
# in search result pages
enableSearchViewMode: false
# The tile provider(s) to use for the map tiles drawn in the leaflet maps.
# (see https://leaflet-extras.github.io/leaflet-providers/preview/) for a full list
tileProviders:
- 'OpenStreetMap.Mapnik'
# Starting centre point for the map, as lat and lng coordinates. This is useful
# to set the centre of the map when the map is first loaded and if there are no
# points, shapes or markers to display.
# Defaults to the centre of Istanbul
defaultCentrePoint:
lat: 41.015137
lng: 28.979530
# Configuration for storing accessibility settings, used by the AccessibilitySettingsService
accessibility:
# The duration in days after which the accessibility settings cookie expires

View File

@@ -34,6 +34,7 @@ export default defineConfig({
DSPACE_TEST_SUBMIT_PERSON_COLLECTION_NAME: 'People',
// Account used to test basic submission process
DSPACE_TEST_SUBMIT_USER: 'dspacedemo+submit@gmail.com',
DSPACE_TEST_SUBMIT_USER_UUID: '914955b1-cf2e-4884-8af7-a166aa24cf73',
DSPACE_TEST_SUBMIT_USER_PASSWORD: 'dspace',
// Administrator users group
DSPACE_ADMINISTRATOR_GROUP: 'e59f5659-bff9-451e-b28f-439e7bd467e4'

View File

@@ -9,12 +9,12 @@ describe('Admin Add New Modals', () => {
it('Add new Community modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-new-title').should('be.visible');
cy.get('#admin-menu-section-new-title').click();
cy.get('[data-test="admin-menu-section-new-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-new-title"]').click();
cy.get('a[data-test="menu.section.new_community"]').click();
@@ -24,12 +24,12 @@ describe('Admin Add New Modals', () => {
it('Add new Collection modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-new-title').should('be.visible');
cy.get('#admin-menu-section-new-title').click();
cy.get('[data-test="admin-menu-section-new-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-new-title"]').click();
cy.get('a[data-test="menu.section.new_collection"]').click();
@@ -39,12 +39,12 @@ describe('Admin Add New Modals', () => {
it('Add new Item modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-new-title').should('be.visible');
cy.get('#admin-menu-section-new-title').click();
cy.get('[data-test="admin-menu-section-new-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-new-title"]').click();
cy.get('a[data-test="menu.section.new_item"]').click();

View File

@@ -9,12 +9,12 @@ describe('Admin Edit Modals', () => {
it('Edit Community modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-edit-title').should('be.visible');
cy.get('#admin-menu-section-edit-title').click();
cy.get('[data-test="admin-menu-section-edit-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-edit-title"]').click();
cy.get('a[data-test="menu.section.edit_community"]').click();
@@ -24,12 +24,12 @@ describe('Admin Edit Modals', () => {
it('Edit Collection modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-edit-title').should('be.visible');
cy.get('#admin-menu-section-edit-title').click();
cy.get('[data-test="admin-menu-section-edit-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-edit-title"]').click();
cy.get('a[data-test="menu.section.edit_collection"]').click();
@@ -39,12 +39,12 @@ describe('Admin Edit Modals', () => {
it('Edit Item modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-edit-title').should('be.visible');
cy.get('#admin-menu-section-edit-title').click();
cy.get('[data-test="admin-menu-section-edit-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-edit-title"]').click();
cy.get('a[data-test="menu.section.edit_item"]').click();

View File

@@ -9,12 +9,12 @@ describe('Admin Export Modals', () => {
it('Export metadata modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-export-title').should('be.visible');
cy.get('#admin-menu-section-export-title').click();
cy.get('[data-test="admin-menu-section-export-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-export-title"]').click();
cy.get('a[data-test="menu.section.export_metadata"]').click();
@@ -24,12 +24,12 @@ describe('Admin Export Modals', () => {
it('Export batch modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').trigger('mouseover');
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').trigger('mouseover');
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on entry of menu
cy.get('#admin-menu-section-export-title').should('be.visible');
cy.get('#admin-menu-section-export-title').click();
cy.get('[data-test="admin-menu-section-export-title"]').should('be.visible');
cy.get('[data-test="admin-menu-section-export-title"]').click();
cy.get('a[data-test="menu.section.export_batch"]').click();

View File

@@ -1,5 +1,4 @@
import { testA11y } from 'cypress/support/utils';
import { Options } from 'cypress-axe';
describe('Admin Sidebar', () => {
beforeEach(() => {
@@ -10,19 +9,12 @@ describe('Admin Sidebar', () => {
it('should be pinnable and pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();
cy.get('[data-test="sidebar-collapse-toggle"]').click();
// Click on every expandable section to open all menus
cy.get('ds-expandable-admin-sidebar-section').click({ multiple: true });
// Analyze <ds-admin-sidebar> for accessibility
testA11y('ds-admin-sidebar',
{
rules: {
// Currently all expandable sections have nested interactive elements
// See https://github.com/DSpace/dspace-angular/issues/2178
'nested-interactive': { enabled: false },
},
} as Options);
testA11y('ds-admin-sidebar');
});
});

View File

@@ -1,17 +1,98 @@
import { testA11y } from 'cypress/support/utils';
describe('Community List Page', () => {
function validateHierarchyLevel(currentLevel = 1): void {
// Find all <cdk-tree-node> elements with the current aria-level
cy.get(`ds-community-list cdk-tree-node.expandable-node[aria-level="${currentLevel}"]`).should('exist').then(($nodes) => {
let sublevelExists = false;
cy.wrap($nodes).each(($node) => {
// Check if the current node has an expand button and click it
if ($node.find('[data-test="expand-button"]').length) {
sublevelExists = true;
cy.wrap($node).find('[data-test="expand-button"]').click();
}
}).then(() => {
// After expanding all buttons, validate if a sublevel exists
if (sublevelExists) {
const nextLevelSelector = `ds-community-list cdk-tree-node.expandable-node[aria-level="${currentLevel + 1}"]`;
cy.get(nextLevelSelector).then(($nextLevel) => {
if ($nextLevel.length) {
// Recursively validate the next level
validateHierarchyLevel(currentLevel + 1);
}
});
}
});
});
}
it('should pass accessibility tests', () => {
beforeEach(() => {
cy.visit('/community-list');
// <ds-community-list-page> tag must be loaded
cy.get('ds-community-list-page').should('be.visible');
// <ds-community-list-list> tag must be loaded
cy.get('ds-community-list').should('be.visible');
});
it('should expand community/collection hierarchy', () => {
// Execute Hierarchy levels validation recursively
validateHierarchyLevel(1);
});
it('should display community/collections name with item count', () => {
// Open every <cdk-tree-node>
cy.get('[data-test="expand-button"]').click({ multiple: true });
cy.wait(300);
// A first <cdk-tree-node> must be found and validate that <a> tag (community name) and <span> tag (item count) exists in it
cy.get('ds-community-list').find('cdk-tree-node.expandable-node').then(($nodes) => {
cy.wrap($nodes).each(($node) => {
cy.wrap($node).find('a').should('exist');
cy.wrap($node).find('span').should('exist');
});
});
});
it('should enable "show more" button when 20 top-communities or more are presents', () => {
cy.get('ds-community-list').find('cdk-tree-node.expandable-node[aria-level="1"]').then(($nodes) => {
//Validate that there are 20 or more top-community elements
if ($nodes.length >= 20) {
//Validate that "show more" button is visible and then click on it
cy.get('[data-test="show-more-button"]').should('be.visible');
} else {
cy.get('[data-test="show-more-button"]').should('not.exist');
}
});
});
it('should show 21 or more top-communities if click "show more" button', () => {
cy.get('ds-community-list').find('cdk-tree-node.expandable-node[aria-level="1"]').then(($nodes) => {
//Validate that there are 20 or more top-community elements
if ($nodes.length >= 20) {
//Validate that "show more" button is visible and then click on it
cy.get('[data-test="show-more-button"]').click();
cy.wait(300);
cy.get('ds-community-list').find('cdk-tree-node.expandable-node[aria-level="1"]').should('have.length.at.least', 21);
} else {
cy.get('[data-test="show-more-button"]').should('not.exist');
}
});
});
it('should pass accessibility tests', () => {
// Open every expand button on page, so that we can scan sub-elements as well
cy.get('[data-test="expand-button"]').click({ multiple: true });
// Analyze <ds-community-list-page> for accessibility issues
testA11y('ds-community-list-page');
testA11y('ds-community-list-page', {
rules: {
// When expanding a cdk node on the community-list page, the 'aria-posinset' property becomes 0.
// 0 is not a valid value for 'aria-posinset' so the test fails.
// see https://github.com/DSpace/dspace-angular/issues/4068
'aria-valid-attr-value': { enabled: false },
},
});
});
});

View File

@@ -4,13 +4,14 @@ import { Options } from 'cypress-axe';
beforeEach(() => {
// Must login as an Admin to see the page
cy.intercept('GET', '/server/actuator/health').as('status');
cy.intercept('GET', '/server/actuator/info').as('info');
cy.visit('/health');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});
describe('Health Page > Status Tab', () => {
it('should pass accessibility tests', () => {
cy.intercept('GET', '/server/actuator/health').as('status');
cy.wait('@status');
cy.get('a[data-test="health-page.status-tab"]').click();
@@ -36,7 +37,6 @@ describe('Health Page > Status Tab', () => {
describe('Health Page > Info Tab', () => {
it('should pass accessibility tests', () => {
cy.intercept('GET', '/server/actuator/info').as('info');
cy.wait('@info');
cy.get('a[data-test="health-page.info-tab"]').click();

View File

@@ -17,7 +17,7 @@ describe('Site Statistics Page', () => {
cy.visit('/statistics');
// <ds-site-statistics-page> tag must be visable
// <ds-site-statistics-page> tag must be visible
cy.get('ds-site-statistics-page').should('be.visible');
// Verify / wait until "Total Visits" table's *last* label is non-empty

View File

@@ -26,6 +26,12 @@ describe('Homepage', () => {
// Wait for homepage tag to appear
cy.get('ds-home-page').should('be.visible');
// Wait for at least one loading component to show up
cy.get('ds-loading').should('exist');
// Wait until all loading components have disappeared
cy.get('ds-loading').should('not.exist');
// Analyze <ds-home-page> for accessibility issues
testA11y('ds-home-page');
});

View File

@@ -7,7 +7,7 @@ describe('Item Statistics Page', () => {
it('should load if you click on "Statistics" from an Item/Entity page', () => {
cy.visit('/entities/publication/'.concat(Cypress.env('DSPACE_TEST_ENTITY_PUBLICATION')));
cy.get('ds-navbar ds-link-menu-item a[data-test="link-menu-item.menu.section.statistics"]').click();
cy.location('pathname').should('eq', ITEMSTATISTICSPAGE);
cy.location('pathname').should('eq', '/statistics/entities/publication/'.concat(Cypress.env('DSPACE_TEST_ENTITY_PUBLICATION')));
});
it('should contain element ds-item-statistics-page when navigating to an item statistics page', () => {

View File

@@ -142,7 +142,7 @@ describe('Login Modal', () => {
page.submitLoginAndPasswordByPressingButton(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
cy.get('ds-log-in').should('not.exist');
// Open user menu, verify user menu accesibility
// Open user menu, verify user menu accessibility
page.openUserMenu();
cy.get('ds-user-menu').should('be.visible');
testA11y('ds-user-menu');

View File

@@ -84,7 +84,7 @@ describe('My DSpace page', () => {
cy.url().should('include', '/mydspace');
// Close any open notifications, to make sure they don't get in the way of next steps
cy.get('[data-dismiss="alert"]').click({ multiple: true });
cy.get('[data-bs-dismiss="alert"]').click({ multiple: true });
// This is the GET command that will actually run the search
cy.intercept('GET', '/server/api/discover/search/objects*').as('search-results');

View File

@@ -1,7 +1,7 @@
import { testA11y } from 'cypress/support/utils';
describe('PageNotFound', () => {
it('should contain element ds-pagenotfound when navigating to page that doesnt exist', () => {
it('should contain element ds-pagenotfound when navigating to page that does not exist', () => {
// request an invalid page (UUIDs at root path aren't valid)
cy.visit('/e9019a69-d4f1-4773-b6a3-bd362caa46f2', { failOnStatusCode: false });
cy.get('ds-pagenotfound').should('be.visible');

View File

@@ -34,7 +34,7 @@ describe('New Submission page', () => {
// Author & Subject fields have invalid "aria-multiline" attrs.
// See https://github.com/DSpace/dspace-angular/issues/1272
'aria-allowed-attr': { enabled: false },
// All panels are accordians & fail "aria-required-children" and "nested-interactive".
// All panels are accordions & fail "aria-required-children" and "nested-interactive".
// Seem to require updating ng-bootstrap and https://github.com/DSpace/dspace-angular/issues/2216
'aria-required-children': { enabled: false },
'nested-interactive': { enabled: false },
@@ -95,7 +95,7 @@ describe('New Submission page', () => {
// A success alert should be visible
cy.get('ds-notification div.alert-success').should('be.visible');
// Now, dismiss any open alert boxes (may be multiple, as tests run quickly)
cy.get('[data-dismiss="alert"]').click({ multiple: true });
cy.get('[data-bs-dismiss="alert"]').click({ multiple: true });
// This is the GET command that will actually run the search
cy.intercept('GET', '/server/api/discover/search/objects*').as('search-results');
@@ -192,7 +192,7 @@ describe('New Submission page', () => {
testA11y('ds-submission-edit',
{
rules: {
// All panels are accordians & fail "aria-required-children" and "nested-interactive".
// All panels are accordions & fail "aria-required-children" and "nested-interactive".
// Seem to require updating ng-bootstrap and https://github.com/DSpace/dspace-angular/issues/2216
'aria-required-children': { enabled: false },
'nested-interactive': { enabled: false },
@@ -217,7 +217,7 @@ describe('New Submission page', () => {
});
// Close popup window
cy.get('ds-dynamic-lookup-relation-modal button.close').click();
cy.get('ds-dynamic-lookup-relation-modal button.btn-close').click();
// Back on the form, click the discard button to remove new submission
// Clicking it will display a confirmation, which we will confirm with another click

View File

@@ -1,4 +1,4 @@
const fs = require('fs');
const fs = require('node:fs');
// These two global variables are used to store information about the REST API used
// by these e2e tests. They are filled out prior to running any tests in the before()

View File

@@ -54,9 +54,9 @@ before(() => {
// Runs once before the first test in each "block"
beforeEach(() => {
// Pre-agree to all Klaro cookies by setting the klaro-anonymous cookie
// Pre-agree to all Orejime cookies by setting the orejime-anonymous cookie
// This just ensures it doesn't get in the way of matching other objects in the page.
cy.setCookie('klaro-anonymous', '{%22authentication%22:true%2C%22preferences%22:true%2C%22acknowledgement%22:true%2C%22google-analytics%22:true%2C%22google-recaptcha%22:true}');
cy.setCookie('orejime-anonymous', '{"authentication":true,"preferences":true,"acknowledgement":true,"google-analytics":true,"correlation-id":true,"accessibility":true}');
// Remove any CSRF cookies saved from prior tests
cy.clearCookie(DSPACE_XSRF_COOKIE);

View File

@@ -1,10 +1,16 @@
{
"extends": "../tsconfig.json",
"include": [
"**/*.ts"
"**/*.ts",
"../cypress.config.ts"
],
"compilerOptions": {
"sourceMap": false,
"typeRoots": [
"../node_modules",
"../node_modules/@types",
"../src/typings.d.ts"
],
"types": [
"cypress",
"cypress-axe",

View File

@@ -23,14 +23,14 @@ the Docker compose scripts in this 'docker' folder.
This Dockerfile is used to build a *development* DSpace Angular UI image, published as 'dspace/dspace-angular'
```
docker build -t dspace/dspace-angular:dspace-8_x .
docker build -t dspace/dspace-angular:latest .
```
This image is built *automatically* after each commit is made to the `main` branch.
Admins to our DockerHub repo can manually publish with the following command.
```
docker push dspace/dspace-angular:dspace-8_x
docker push dspace/dspace-angular:latest
```
### Dockerfile.dist
@@ -39,7 +39,7 @@ The `Dockerfile.dist` is used to generate a *production* build and runtime envir
```bash
# build the latest image
docker build -f Dockerfile.dist -t dspace/dspace-angular:dspace-8_x-dist .
docker build -f Dockerfile.dist -t dspace/dspace-angular:latest-dist .
```
A default/demo version of this image is built *automatically*.

View File

@@ -14,14 +14,14 @@
# Therefore, it should be kept in sync with that file
networks:
# Default to using network named 'dspacenet' from docker-compose-rest.yml.
# Its full name will be prepended with the project name (e.g. "-p d8" means it will be named "d8_dspacenet")
# Its full name will be prepended with the project name (e.g. "-p d7" means it will be named "d7_dspacenet")
# If COMPOSITE_PROJECT_NAME is missing, default value will be "docker" (name of folder this file is in)
default:
name: ${COMPOSE_PROJECT_NAME:-docker}_dspacenet
external: true
services:
dspace-cli:
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-dspace-8_x}"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-latest}"
container_name: dspace-cli
environment:
# Below syntax may look odd, but it is how to override dspace.cfg settings via env variables.

View File

@@ -14,11 +14,10 @@
# # Therefore, it should be kept in sync with that file
services:
dspacedb:
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-postgres-pgcrypto:${DSPACE_VER:-dspace-8_x}-loadsql"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-postgres-loadsql:${DSPACE_VER:-latest}"
environment:
# This LOADSQL should be kept in sync with the URL in DSpace/DSpace
# This SQL is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data
# NOTE: currently there is no dspace8 version
- LOADSQL=https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-data.sql
dspace:
### OVERRIDE default 'entrypoint' in 'docker-compose-rest.yml' ####

View File

@@ -33,7 +33,7 @@ services:
# This allows us to generate statistics in e2e tests so that statistics pages can be tested thoroughly.
solr__D__statistics__P__autoCommit: 'false'
LOGGING_CONFIG: /dspace/config/log4j2-container.xml
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-8_x-test}"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-latest-test}"
depends_on:
- dspacedb
networks:
@@ -60,14 +60,15 @@ services:
# NOTE: This is customized to use our loadsql image, so that we are using a database with existing test data
dspacedb:
container_name: dspacedb
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-postgres-pgcrypto:${DSPACE_VER:-dspace-8_x}-loadsql"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-postgres-loadsql:${DSPACE_VER:-latest}"
environment:
# This LOADSQL should be kept in sync with the LOADSQL in
# https://github.com/DSpace/DSpace/blob/main/dspace/src/main/docker-compose/db.entities.yml
# This SQL is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data
# NOTE: currently there is no dspace8 version
LOADSQL: https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-data.sql
PGDATA: /pgdata
POSTGRES_DB: dspace
POSTGRES_USER: dspace
POSTGRES_PASSWORD: dspace
networks:
- dspacenet
@@ -82,7 +83,7 @@ services:
# DSpace Solr container
dspacesolr:
container_name: dspacesolr
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-solr:${DSPACE_VER:-dspace-8_x}"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-solr:${DSPACE_VER:-latest}"
networks:
- dspacenet
ports:
@@ -94,7 +95,10 @@ services:
volumes:
# Keep Solr data directory between reboots
- solr_data:/var/solr/data
# Initialize all DSpace Solr cores using the mounted configsets (see above), then start Solr
# NOTE: We are not running Solr as "root", but we need root permissions to copy our cores to the mounted
# /var/solr/data directory. Then we start Solr as the "solr" user.
user: root
# Initialize all DSpace Solr cores, then start Solr
entrypoint:
- /bin/bash
- '-c'
@@ -112,7 +116,8 @@ services:
cp -r /opt/solr/server/solr/configsets/qaevent/* qaevent
precreate-core suggestion /opt/solr/server/solr/configsets/suggestion
cp -r /opt/solr/server/solr/configsets/suggestion/* suggestion
exec solr -f
chown -R solr:solr /var/solr
runuser -u solr -- solr-foreground
volumes:
assetstore:
pgdata:

View File

@@ -26,7 +26,7 @@ services:
DSPACE_REST_HOST: sandbox.dspace.org
DSPACE_REST_PORT: 443
DSPACE_REST_NAMESPACE: /server
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-angular:${DSPACE_VER:-dspace-8_x}-dist"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-angular:${DSPACE_VER:-latest}-dist"
build:
context: ..
dockerfile: Dockerfile.dist

View File

@@ -40,7 +40,7 @@ services:
# from the host machine. This IP range MUST correspond to the 'dspacenet' subnet defined above.
proxies__P__trusted__P__ipranges: '172.23.0'
LOGGING_CONFIG: /dspace/config/log4j2-container.xml
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-8_x-test}"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-latest-test}"
depends_on:
- dspacedb
networks:
@@ -67,10 +67,12 @@ services:
# DSpace database container
dspacedb:
container_name: dspacedb
# Uses a custom Postgres image with pgcrypto installed
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-postgres-pgcrypto:${DSPACE_VER:-dspace-8_x}"
# Uses the base PostgreSQL image
image: "docker.io/postgres:${POSTGRES_VERSION:-15}"
environment:
PGDATA: /pgdata
POSTGRES_DB: dspace
POSTGRES_USER: dspace
POSTGRES_PASSWORD: dspace
networks:
- dspacenet
@@ -85,7 +87,7 @@ services:
# DSpace Solr container
dspacesolr:
container_name: dspacesolr
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-solr:${DSPACE_VER:-dspace-8_x}"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-solr:${DSPACE_VER:-latest}"
networks:
- dspacenet
ports:
@@ -97,11 +99,16 @@ services:
volumes:
# Keep Solr data directory between reboots
- solr_data:/var/solr/data
# NOTE: We are not running Solr as "root", but we need root permissions to copy our cores to the mounted
# /var/solr/data directory. Then we start Solr as the "solr" user.
user: root
# Initialize all DSpace Solr cores using the mounted local configsets (see above), then start Solr
# * First, run precreate-core to create the core (if it doesn't yet exist). If exists already, this is a no-op
# * Second, copy configsets to this core:
# Updates to Solr configs require the container to be rebuilt/restarted:
# `docker compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d --build dspacesolr`
# * Third, ensure all new folders are owned by "solr" user
# * Finally, start Solr as the "solr" user via the provided solr-foreground script
entrypoint:
- /bin/bash
- '-c'
@@ -119,7 +126,8 @@ services:
cp -r /opt/solr/server/solr/configsets/qaevent/* qaevent
precreate-core suggestion /opt/solr/server/solr/configsets/suggestion
cp -r /opt/solr/server/solr/configsets/suggestion/* suggestion
exec solr -f
chown -R solr:solr /var/solr
runuser -u solr -- solr-foreground
volumes:
assetstore:
pgdata:

View File

@@ -23,7 +23,7 @@ services:
DSPACE_REST_HOST: localhost
DSPACE_REST_PORT: 8080
DSPACE_REST_NAMESPACE: /server
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-angular:${DSPACE_VER:-dspace-8_x}"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-angular:${DSPACE_VER:-latest}"
build:
context: ..
dockerfile: Dockerfile

View File

@@ -15,7 +15,7 @@ DSPACE_APP_CONFIG_PATH=/usr/local/dspace/config/config.yml
Configuration options can be overridden by setting environment variables.
## Nodejs server
When you start dspace-angular on node, it spins up an http server on which it listens for incoming connections. You can define the ip address and port the server should bind itsself to, and if ssl should be enabled not. By default it listens on `localhost:4000`. If you want it to listen on all your network connections, configure it to bind itself to `0.0.0.0`.
When you start dspace-angular on node, it spins up an http server on which it listens for incoming connections. You can define the ip address and port the server should bind itself to, and if ssl should be enabled not. By default it listens on `localhost:4000`. If you want it to listen on all your network connections, configure it to bind itself to `0.0.0.0`.
To change this configuration, change the options `ui.host`, `ui.port` and `ui.ssl` in the appropriate configuration file (see above):

View File

@@ -9,6 +9,8 @@ _______
[Source code](../../../../lint/src/rules/html/no-disabled-attribute-on-button.ts)
### Examples
@@ -19,24 +21,28 @@ _______
```html
<button [dsBtnDisabled]="true">Submit</button>
```
##### disabled attribute is still valid on non-button elements
```html
<input disabled>
```
##### [disabled] attribute is still valid on non-button elements
```html
<input [disabled]="true">
```
##### angular dynamic attributes that use disabled are still valid
```html
<button [class.disabled]="isDisabled">Submit</button>
```
@@ -47,6 +53,9 @@ _______
```html
<button disabled>Submit</button>
```
Will produce the following error(s):
```
@@ -63,6 +72,9 @@ Result of `yarn lint --fix`:
```html
<button [disabled]="true">Submit</button>
```
Will produce the following error(s):
```

View File

@@ -11,6 +11,8 @@ _______
[Source code](../../../../lint/src/rules/html/themed-component-usages.ts)
### Examples
@@ -23,6 +25,7 @@ _______
<ds-test-themeable></ds-test-themeable>
<ds-test-themeable [test]="something"></ds-test-themeable>
```
##### use no-prefix selectors in TypeScript templates
@@ -33,6 +36,7 @@ _______
class Test {
}
```
##### use no-prefix selectors in TypeScript test templates
@@ -45,6 +49,7 @@ Filename: `lint/test/fixture/src/test.spec.ts`
class Test {
}
```
##### base selectors are also allowed in TypeScript test templates
@@ -57,6 +62,7 @@ Filename: `lint/test/fixture/src/test.spec.ts`
class Test {
}
```
@@ -69,6 +75,9 @@ class Test {
<ds-themed-test-themeable/>
<ds-themed-test-themeable></ds-themed-test-themeable>
<ds-themed-test-themeable [test]="something"></ds-themed-test-themeable>
```
Will produce the following error(s):
```
@@ -91,6 +100,9 @@ Result of `yarn lint --fix`:
<ds-base-test-themeable/>
<ds-base-test-themeable></ds-base-test-themeable>
<ds-base-test-themeable [test]="something"></ds-base-test-themeable>
```
Will produce the following error(s):
```

View File

@@ -1,6 +1,11 @@
[DSpace ESLint plugins](../../../lint/README.md) > TypeScript rules
_______
- [`dspace-angular-ts/alias-imports`](./rules/alias-imports.md): Unclear imports should be aliased for clarity
- [`dspace-angular-ts/sort-standalone-imports`](./rules/sort-standalone-imports.md): Sorts the standalone `@Component` imports alphabetically
- [`dspace-angular-ts/themed-component-classes`](./rules/themed-component-classes.md): Formatting rules for themeable component classes
- [`dspace-angular-ts/themed-component-selectors`](./rules/themed-component-selectors.md): Themeable component selectors should follow the DSpace convention
- [`dspace-angular-ts/themed-component-usages`](./rules/themed-component-usages.md): Themeable components should be used via their `ThemedComponent` wrapper class
- [`dspace-angular-ts/themed-decorators`](./rules/themed-decorators.md): Entry components with theme support should declare the correct theme
- [`dspace-angular-ts/themed-wrapper-no-input-defaults`](./rules/themed-wrapper-no-input-defaults.md): ThemedComponent wrappers should not declare input defaults (see [DSpace Angular #2164](https://github.com/DSpace/dspace-angular/pull/2164))
- [`dspace-angular-ts/unique-decorators`](./rules/unique-decorators.md): Some decorators must be called with unique arguments (e.g. when they construct a mapping based on the argument values)

View File

@@ -0,0 +1,148 @@
[DSpace ESLint plugins](../../../../lint/README.md) > [TypeScript rules](../index.md) > `dspace-angular-ts/alias-imports`
_______
Unclear imports should be aliased for clarity
_______
[Source code](../../../../lint/src/rules/ts/alias-imports.ts)
### Options
#### `aliases`
A list of all the imports that you want to alias for clarity. Every alias should be declared in the following format:
```json
{
"package": "rxjs",
"imported": "of",
"local": "observableOf"
}
```
### Examples
#### Valid code
##### correctly aliased imports
```typescript
import { of as observableOf } from 'rxjs';
```
With options:
```json
{
"aliases": [
{
"package": "rxjs",
"imported": "of",
"local": "observableOf"
}
]
}
```
##### enforce unaliased import
```typescript
import { combineLatest } from 'rxjs';
```
With options:
```json
{
"aliases": [
{
"package": "rxjs",
"imported": "combineLatest",
"local": "combineLatest"
}
]
}
```
#### Invalid code &amp; automatic fixes
##### imports without alias
```typescript
import { of } from 'rxjs';
```
Will produce the following error(s):
```
This import must be aliased
```
Result of `yarn lint --fix`:
```typescript
import { of as observableOf } from 'rxjs';
```
##### imports under the wrong alias
```typescript
import { of as ofSomething } from 'rxjs';
```
Will produce the following error(s):
```
This import uses the wrong alias (should be {{ local }})
```
Result of `yarn lint --fix`:
```typescript
import { of as observableOf } from 'rxjs';
```
##### disallow aliasing import
```typescript
import { combineLatest as observableCombineLatest } from 'rxjs';
With options:
```json
{
"aliases": [
{
"package": "rxjs",
"imported": "combineLatest",
"local": "combineLatest"
}
]
}
```
```
Will produce the following error(s):
```
This import should not use an alias
```
Result of `yarn lint --fix`:
```typescript
import { combineLatest } from 'rxjs';
```

View File

@@ -0,0 +1,245 @@
[DSpace ESLint plugins](../../../../lint/README.md) > [TypeScript rules](../index.md) > `dspace-angular-ts/sort-standalone-imports`
_______
Sorts the standalone `@Component` imports alphabetically
_______
[Source code](../../../../lint/src/rules/ts/sort-standalone-imports.ts)
### Options
#### `locale`
The locale used to sort the imports.,
#### `maxItems`
The maximum number of imports that should be displayed before each import is separated onto its own line.,
#### `indent`
The indent used for the project.,
#### `trailingComma`
Whether the last import should have a trailing comma (only applicable for multiline imports).
### Examples
#### Valid code
##### should sort multiple imports on separate lines
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
AsyncPipe,
RootComponent,
],
})
export class AppComponent {}
```
##### should not inlines singular imports when maxItems is 0
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
],
})
export class AppComponent {}
```
##### should inline singular imports when maxItems is 1
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [RootComponent],
})
export class AppComponent {}
```
With options:
```json
{
"maxItems": 1
}
```
#### Invalid code &amp; automatic fixes
##### should sort multiple imports alphabetically
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
AsyncPipe,
],
})
export class AppComponent {}
```
Will produce the following error(s):
```
Standalone imports should be sorted alphabetically
```
Result of `yarn lint --fix`:
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
AsyncPipe,
RootComponent,
],
})
export class AppComponent {}
```
##### should not put singular imports on one line when maxItems is 0
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [RootComponent],
})
export class AppComponent {}
```
Will produce the following error(s):
```
Standalone imports should be sorted alphabetically
```
Result of `yarn lint --fix`:
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
],
})
export class AppComponent {}
```
##### should not put singular imports on a separate line when maxItems is 1
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
],
})
export class AppComponent {}
With options:
```json
{
"maxItems": 1
}
```
```
Will produce the following error(s):
```
Standalone imports should be sorted alphabetically
```
Result of `yarn lint --fix`:
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [RootComponent],
})
export class AppComponent {}
```
##### should not display multiple imports on the same line
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [AsyncPipe, RootComponent],
})
export class AppComponent {}
```
Will produce the following error(s):
```
Standalone imports should be sorted alphabetically
```
Result of `yarn lint --fix`:
```typescript
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
AsyncPipe,
RootComponent,
],
})
export class AppComponent {}
```

View File

@@ -11,6 +11,8 @@ _______
[Source code](../../../../lint/src/rules/ts/themed-component-classes.ts)
### Examples
@@ -26,6 +28,7 @@ _______
class Something {
}
```
##### Base component
@@ -34,9 +37,10 @@ class Something {
selector: 'ds-base-test-themable',
standalone: true,
})
class TestThemeableTomponent {
class TestThemeableComponent {
}
```
##### Wrapper component
@@ -50,9 +54,10 @@ Filename: `lint/test/fixture/src/app/test/themed-test-themeable.component.ts`
TestThemeableComponent,
],
})
class ThemedTestThemeableTomponent extends ThemedComponent<TestThemeableComponent> {
class ThemedTestThemeableComponent extends ThemedComponent<TestThemeableComponent> {
}
```
##### Override component
@@ -66,6 +71,7 @@ Filename: `lint/test/fixture/src/themes/test/app/test/test-themeable.component.t
class Override extends BaseComponent {
}
```
@@ -80,6 +86,9 @@ class Override extends BaseComponent {
})
class TestThemeableComponent {
}
```
Will produce the following error(s):
```
@@ -107,6 +116,9 @@ Filename: `lint/test/fixture/src/app/test/themed-test-themeable.component.ts`
})
class ThemedTestThemeableComponent extends ThemedComponent<TestThemeableComponent> {
}
```
Will produce the following error(s):
```
@@ -137,6 +149,9 @@ Filename: `lint/test/fixture/src/app/test/themed-test-themeable.component.ts`
})
class ThemedTestThemeableComponent extends ThemedComponent<TestThemeableComponent> {
}
```
Will produce the following error(s):
```
@@ -171,6 +186,9 @@ import { SomethingElse } from './somewhere-else';
})
class ThemedTestThemeableComponent extends ThemedComponent<TestThemeableComponent> {
}
```
Will produce the following error(s):
```
@@ -207,6 +225,9 @@ import { Something, SomethingElse } from './somewhere-else';
})
class ThemedTestThemeableComponent extends ThemedComponent<TestThemeableComponent> {
}
```
Will produce the following error(s):
```
@@ -237,6 +258,9 @@ Filename: `lint/test/fixture/src/themes/test/app/test/test-themeable.component.t
})
class Override extends BaseComponent {
}
```
Will produce the following error(s):
```

View File

@@ -17,6 +17,8 @@ _______
[Source code](../../../../lint/src/rules/ts/themed-component-selectors.ts)
### Examples
@@ -31,6 +33,7 @@ _______
class Something {
}
```
##### Themeable component selector should replace the original version, unthemed version should be changed to ds-base-
@@ -53,6 +56,7 @@ class ThemedSomething extends ThemedComponent<Something> {
class OverrideSomething extends Something {
}
```
##### Other themed component wrappers should not interfere
@@ -69,6 +73,7 @@ class Something {
class ThemedSomethingElse extends ThemedComponent<SomethingElse> {
}
```
@@ -85,6 +90,9 @@ Filename: `lint/test/fixture/src/app/test/test-themeable.component.ts`
})
class TestThemeableComponent {
}
```
Will produce the following error(s):
```
@@ -111,6 +119,9 @@ Filename: `lint/test/fixture/src/app/test/themed-test-themeable.component.ts`
})
class ThemedTestThemeableComponent extends ThemedComponent<TestThemeableComponent> {
}
```
Will produce the following error(s):
```
@@ -137,6 +148,9 @@ Filename: `lint/test/fixture/src/themes/test/app/test/test-themeable.component.t
})
class TestThememeableComponent extends BaseComponent {
}
```
Will produce the following error(s):
```

View File

@@ -15,6 +15,8 @@ _______
[Source code](../../../../lint/src/rules/ts/themed-component-usages.ts)
### Examples
@@ -30,6 +32,7 @@ const config = {
b: ChipsComponent,
}
```
##### allow base class in class declaration
@@ -37,6 +40,7 @@ const config = {
export class TestThemeableComponent {
}
```
##### allow inheriting from base class
@@ -46,6 +50,7 @@ import { TestThemeableComponent } from './app/test/test-themeable.component';
export class ThemedAdminSidebarComponent extends ThemedComponent<TestThemeableComponent> {
}
```
##### allow base class in ViewChild
@@ -56,6 +61,7 @@ export class Something {
@ViewChild(TestThemeableComponent) test: TestThemeableComponent;
}
```
##### allow wrapper selectors in test queries
@@ -65,6 +71,7 @@ Filename: `lint/test/fixture/src/app/test/test.component.spec.ts`
By.css('ds-themeable');
By.css('#test > ds-themeable > #nest');
```
##### allow wrapper selectors in cypress queries
@@ -74,6 +81,7 @@ Filename: `lint/test/fixture/src/app/test/test.component.cy.ts`
By.css('ds-themeable');
By.css('#test > ds-themeable > #nest');
```
@@ -90,6 +98,9 @@ const config = {
a: TestThemeableComponent,
b: TestComponent,
}
```
Will produce the following error(s):
```
@@ -120,6 +131,9 @@ const config = {
b: TestComponent,
c: Something,
}
```
Will produce the following error(s):
```
@@ -150,6 +164,9 @@ const DECLARATIONS = [
Something,
ThemedTestThemeableComponent,
];
```
Will produce the following error(s):
```
@@ -173,6 +190,9 @@ Filename: `lint/test/fixture/src/app/test/test.component.spec.ts`
```typescript
By.css('ds-themed-themeable');
By.css('#test > ds-themed-themeable > #nest');
```
Will produce the following error(s):
```
@@ -194,6 +214,9 @@ Filename: `lint/test/fixture/src/app/test/test.component.spec.ts`
```typescript
By.css('ds-base-themeable');
By.css('#test > ds-base-themeable > #nest');
```
Will produce the following error(s):
```
@@ -215,6 +238,9 @@ Filename: `lint/test/fixture/src/app/test/test.component.cy.ts`
```typescript
cy.get('ds-themed-themeable');
cy.get('#test > ds-themed-themeable > #nest');
```
Will produce the following error(s):
```
@@ -236,6 +262,9 @@ Filename: `lint/test/fixture/src/app/test/test.component.cy.ts`
```typescript
cy.get('ds-base-themeable');
cy.get('#test > ds-base-themeable > #nest');
```
Will produce the following error(s):
```
@@ -266,6 +295,9 @@ import { TestThemeableComponent } from '../../../../app/test/test-themeable.comp
})
export class UsageComponent {
}
```
Will produce the following error(s):
```
@@ -306,6 +338,9 @@ import { ThemedTestThemeableComponent } from '../../../../app/test/themed-test-t
})
export class UsageComponent {
}
```
Will produce the following error(s):
```

View File

@@ -0,0 +1,183 @@
[DSpace ESLint plugins](../../../../lint/README.md) > [TypeScript rules](../index.md) > `dspace-angular-ts/themed-decorators`
_______
Entry components with theme support should declare the correct theme
_______
[Source code](../../../../lint/src/rules/ts/themed-decorators.ts)
### Options
#### `decorators`
A mapping for all the existing themeable decorators, with the decorator name as the key and the index of the `theme` argument as the value.
### Examples
#### Valid code
##### theme file declares the correct theme in @listableObjectComponent
Filename: `lint/test/fixture/src/themes/test/app/dynamic-component/dynamic-component.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined, 'test')
export class Something extends SomethingElse {
}
```
##### plain file declares no theme in @listableObjectComponent
Filename: `lint/test/fixture/src/app/dynamic-component/dynamic-component.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined)
export class Something extends SomethingElse {
}
```
##### plain file declares explicit undefined theme in @listableObjectComponent
Filename: `lint/test/fixture/src/app/dynamic-component/dynamic-component.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined, undefined)
export class Something extends SomethingElse {
}
```
##### test file declares theme outside of theme directory
Filename: `lint/test/fixture/src/app/dynamic-component/dynamic-component.spec.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined, 'test')
export class Something extends SomethingElse {
}
```
##### only track configured decorators
Filename: `lint/test/fixture/src/app/dynamic-component/dynamic-component.ts`
```typescript
@something('test')
export class Something extends SomethingElse {
}
```
#### Invalid code &amp; automatic fixes
##### theme file declares the wrong theme in @listableObjectComponent
Filename: `lint/test/fixture/src/themes/test/app/dynamic-component/dynamic-component.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
```
Will produce the following error(s):
```
Wrong theme declaration in decorator
```
Result of `yarn lint --fix`:
```typescript
@listableObjectComponent(something, somethingElse, undefined, 'test')
export class Something extends SomethingElse {
}
```
##### plain file declares a theme in @listableObjectComponent
Filename: `lint/test/fixture/src/app/dynamic-component/dynamic-component.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
```
Will produce the following error(s):
```
There is a theme declaration in decorator, but this file is not part of a theme
```
Result of `yarn lint --fix`:
```typescript
@listableObjectComponent(something, somethingElse, undefined)
export class Something extends SomethingElse {
}
```
##### theme file declares no theme in @listableObjectComponent
Filename: `lint/test/fixture/src/themes/test-2/app/dynamic-component/dynamic-component.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined)
export class Something extends SomethingElse {
}
```
Will produce the following error(s):
```
No theme declaration in decorator
```
Result of `yarn lint --fix`:
```typescript
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
```
##### theme file declares explicit undefined theme in @listableObjectComponent
Filename: `lint/test/fixture/src/themes/test-2/app/dynamic-component/dynamic-component.ts`
```typescript
@listableObjectComponent(something, somethingElse, undefined, undefined)
export class Something extends SomethingElse {
}
```
Will produce the following error(s):
```
No theme declaration in decorator
```
Result of `yarn lint --fix`:
```typescript
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
```

View File

@@ -0,0 +1,92 @@
[DSpace ESLint plugins](../../../../lint/README.md) > [TypeScript rules](../index.md) > `dspace-angular-ts/themed-wrapper-no-input-defaults`
_______
ThemedComponent wrappers should not declare input defaults (see [DSpace Angular #2164](https://github.com/DSpace/dspace-angular/pull/2164))
_______
[Source code](../../../../lint/src/rules/ts/themed-wrapper-no-input-defaults.ts)
### Examples
#### Valid code
##### ThemedComponent wrapper defines an input without a default value
```typescript
export class TTest extends ThemedComponent<Test> {
@Input()
test;
}
```
##### Regular class defines an input with a default value
```typescript
export class Test {
@Input()
test = 'test';
}
```
#### Invalid code
##### ThemedComponent wrapper defines an input with a default value
```typescript
export class TTest extends ThemedComponent<Test> {
@Input()
test1 = 'test';
@Input()
test2 = true;
@Input()
test2: number = 123;
@Input()
test3: number[] = [1,2,3];
}
```
Will produce the following error(s):
```
ThemedComponent wrapper declares inputs with defaults
ThemedComponent wrapper declares inputs with defaults
ThemedComponent wrapper declares inputs with defaults
ThemedComponent wrapper declares inputs with defaults
```
##### ThemedComponent wrapper defines an input with an undefined default value
```typescript
export class TTest extends ThemedComponent<Test> {
@Input()
test = undefined;
}
```
Will produce the following error(s):
```
ThemedComponent wrapper declares inputs with defaults
```

View File

@@ -0,0 +1,86 @@
[DSpace ESLint plugins](../../../../lint/README.md) > [TypeScript rules](../index.md) > `dspace-angular-ts/unique-decorators`
_______
Some decorators must be called with unique arguments (e.g. when they construct a mapping based on the argument values)
_______
[Source code](../../../../lint/src/rules/ts/unique-decorators.ts)
### Options
#### `decorators`
The list of all the decorators for which you want to enforce this behavior.
### Examples
#### Valid code
##### checked decorator, no repetitions
```typescript
@listableObjectComponent(a)
export class A {
}
@listableObjectComponent(a, 'b')
export class B {
}
@listableObjectComponent(a, 'b', 3)
export class C {
}
@listableObjectComponent(a, 'b', 3, Enum.TEST1)
export class C {
}
@listableObjectComponent(a, 'b', 3, Enum.TEST2)
export class C {
}
```
##### unchecked decorator, some repetitions
```typescript
@something(a)
export class A {
}
@something(a)
export class B {
}
```
#### Invalid code
##### checked decorator, some repetitions
```typescript
@listableObjectComponent(a)
export class A {
}
@listableObjectComponent(a)
export class B {
}
```
Will produce the following error(s):
```
Duplicate decorator call
```

View File

@@ -12,8 +12,8 @@ import {
readFileSync,
rmSync,
writeFileSync,
} from 'fs';
import { join } from 'path';
} from 'node:fs';
import { join } from 'node:path';
import { default as htmlPlugin } from './src/rules/html';
import { default as tsPlugin } from './src/rules/ts';

View File

@@ -33,6 +33,7 @@ export const info = {
[Message.USE_DSBTN_DISABLED]: 'Buttons should use the `dsBtnDisabled` directive instead of the `disabled` attribute.',
},
},
optionDocs: [],
defaultOptions: [],
} as DSpaceESLintRuleInfo;

View File

@@ -45,6 +45,7 @@ The only exception to this rule are unit tests, where we may want to use the bas
[Message.WRONG_SELECTOR]: 'Themeable components should be used via their ThemedComponent wrapper\'s selector',
},
},
optionDocs: [],
defaultOptions: [],
} as DSpaceESLintRuleInfo;

View File

@@ -0,0 +1,304 @@
import {
AST_NODE_TYPES,
ESLintUtils,
TSESLint,
TSESTree,
} from '@typescript-eslint/utils';
import { Scope } from '@typescript-eslint/utils/ts-eslint';
import {
DSpaceESLintRuleInfo,
NamedTests,
OptionDoc,
} from '../../util/structure';
export enum Message {
MISSING_ALIAS = 'missingAlias',
WRONG_ALIAS = 'wrongAlias',
MULTIPLE_ALIASES = 'multipleAliases',
UNNECESSARY_ALIAS = 'unnecessaryAlias',
}
interface AliasImportOptions {
aliases: AliasImportOption[];
}
interface AliasImportOption {
package: string;
imported: string;
local: string;
}
interface AliasImportDocOptions {
aliases: OptionDoc;
}
export const info: DSpaceESLintRuleInfo<[AliasImportOptions], [AliasImportDocOptions]> = {
name: 'alias-imports',
meta: {
docs: {
description: 'Unclear imports should be aliased for clarity',
},
messages: {
[Message.MISSING_ALIAS]: 'This import must be aliased',
[Message.WRONG_ALIAS]: 'This import uses the wrong alias (should be {{ local }})',
[Message.MULTIPLE_ALIASES]: 'This import was used twice with a different alias (should be {{ local }})',
[Message.UNNECESSARY_ALIAS]: 'This import should not use an alias',
},
fixable: 'code',
type: 'problem',
schema: {
type: 'array',
items: {
type: 'object',
properties: {
package: { type: 'string' },
imported: { type: 'string' },
local: { type: 'string' },
},
},
},
},
optionDocs: [
{
aliases: {
title: '`aliases`',
description: `A list of all the imports that you want to alias for clarity. Every alias should be declared in the following format:
\`\`\`json
{
"package": "rxjs",
"imported": "of",
"local": "observableOf"
}
\`\`\``,
},
},
],
defaultOptions: [
{
aliases: [
{
package: 'rxjs',
imported: 'of',
local: 'observableOf',
},
],
},
],
};
export const rule = ESLintUtils.RuleCreator.withoutDocs({
...info,
create(context: TSESLint.RuleContext<Message, unknown[]>, options: any) {
return (options[0] as AliasImportOptions).aliases.reduce((selectors: any, option: AliasImportOption) => {
selectors[`ImportDeclaration[source.value = "${option.package}"] > ImportSpecifier[imported.name = "${option.imported}"][local.name != "${option.local}"]`] = (node: TSESTree.ImportSpecifier) => handleUnaliasedImport(context, option, node);
return selectors;
}, {});
},
});
export const tests: NamedTests = {
plugin: info.name,
valid: [
{
name: 'correctly aliased imports',
code: `
import { of as observableOf } from 'rxjs';
`,
options: [
{
aliases: [
{
package: 'rxjs',
imported: 'of',
local: 'observableOf',
},
],
},
],
},
{
name: 'enforce unaliased import',
code: `
import { combineLatest } from 'rxjs';
`,
options: [
{
aliases: [
{
package: 'rxjs',
imported: 'combineLatest',
local: 'combineLatest',
},
],
},
],
},
],
invalid: [
{
name: 'imports without alias',
code: `
import { of } from 'rxjs';
`,
errors: [
{
messageId: 'missingAlias',
},
],
output: `
import { of as observableOf } from 'rxjs';
`,
},
{
name: 'imports under the wrong alias',
code: `
import { of as ofSomething } from 'rxjs';
`,
errors: [
{
messageId: 'wrongAlias',
},
],
output: `
import { of as observableOf } from 'rxjs';
`,
},
{
name: 'disallow aliasing import',
code: `
import { combineLatest as observableCombineLatest } from 'rxjs';
`,
errors: [
{
messageId: 'unnecessaryAlias',
},
],
output: `
import { combineLatest } from 'rxjs';
`,
options: [
{
aliases: [
{
package: 'rxjs',
imported: 'combineLatest',
local: 'combineLatest',
},
],
},
],
},
],
};
/**
* Replaces the incorrectly aliased imports with the ones defined in the defaultOptions
*
* @param context The current {@link TSESLint.RuleContext}
* @param option The current {@link AliasImportOption} that needs to be handled
* @param node The incorrect import node that should be fixed
*/
function handleUnaliasedImport(context: TSESLint.RuleContext<Message, unknown[]>, option: AliasImportOption, node: TSESTree.ImportSpecifier): void {
const hasCorrectAliasedImport: boolean = (node.parent as TSESTree.ImportDeclaration).specifiers.find((specifier: TSESTree.ImportClause) => specifier.local.name === option.local && specifier.type === AST_NODE_TYPES.ImportSpecifier && (specifier as TSESTree.ImportSpecifier).imported.name === option.imported) !== undefined;
if (option.imported === option.local) {
if (hasCorrectAliasedImport) {
context.report({
messageId: Message.MULTIPLE_ALIASES,
data: { local: option.local },
node: node,
fix(fixer: TSESLint.RuleFixer) {
const fixes: TSESLint.RuleFix[] = [];
const commaAfter = context.sourceCode.getTokenAfter(node, {
filter: (token: TSESTree.Token) => token.value === ',',
});
if (commaAfter) {
fixes.push(fixer.removeRange([node.range[0], commaAfter.range[1]]));
} else {
fixes.push(fixer.remove(node));
}
fixes.push(...retrieveUsageReplacementFixes(context, fixer, node, option.local));
return fixes;
},
});
} else {
context.report({
messageId: Message.UNNECESSARY_ALIAS,
data: { local: option.local },
node: node,
fix(fixer: TSESLint.RuleFixer) {
const fixes: TSESLint.RuleFix[] = [];
fixes.push(fixer.replaceText(node, option.imported));
fixes.push(...retrieveUsageReplacementFixes(context, fixer, node, option.local));
return fixes;
},
});
}
} else {
if (hasCorrectAliasedImport) {
context.report({
messageId: Message.MULTIPLE_ALIASES,
data: { local: option.local },
node: node,
fix(fixer: TSESLint.RuleFixer) {
const fixes: TSESLint.RuleFix[] = [];
const commaAfter = context.sourceCode.getTokenAfter(node, {
filter: (token: TSESTree.Token) => token.value === ',',
});
if (commaAfter) {
fixes.push(fixer.removeRange([node.range[0], commaAfter.range[1]]));
} else {
fixes.push(fixer.remove(node));
}
fixes.push(...retrieveUsageReplacementFixes(context, fixer, node, option.local));
return fixes;
},
});
} else if (node.local.name === node.imported.name) {
context.report({
messageId: Message.MISSING_ALIAS,
node: node,
fix(fixer: TSESLint.RuleFixer) {
const fixes: TSESLint.RuleFix[] = [];
fixes.push(fixer.replaceText(node.local, `${option.imported} as ${option.local}`));
fixes.push(...retrieveUsageReplacementFixes(context, fixer, node, option.local));
return fixes;
},
});
} else {
context.report({
messageId: Message.WRONG_ALIAS,
data: { local: option.local },
node: node,
fix(fixer: TSESLint.RuleFixer) {
const fixes: TSESLint.RuleFix[] = [];
fixes.push(fixer.replaceText(node.local, option.local));
fixes.push(...retrieveUsageReplacementFixes(context, fixer, node, option.local));
return fixes;
},
});
}
}
}
/**
* Generates the {@link TSESLint.RuleFix}s for all the usages of the incorrect import.
*
* @param context The current {@link TSESLint.RuleContext}
* @param fixer The instance {@link TSESLint.RuleFixer}
* @param node The node which needs to be replaced
* @param newAlias The new import name
*/
function retrieveUsageReplacementFixes(context: TSESLint.RuleContext<Message, unknown[]>, fixer: TSESLint.RuleFixer, node: TSESTree.ImportSpecifier, newAlias: string): TSESLint.RuleFix[] {
return context.sourceCode.getDeclaredVariables(node)[0].references.map((reference: Scope.Reference) => fixer.replaceText(reference.identifier, newAlias));
}

View File

@@ -10,14 +10,24 @@ import {
RuleExports,
} from '../../util/structure';
/* eslint-disable import/no-namespace */
import * as aliasImports from './alias-imports';
import * as sortStandaloneImports from './sort-standalone-imports';
import * as themedComponentClasses from './themed-component-classes';
import * as themedComponentSelectors from './themed-component-selectors';
import * as themedComponentUsages from './themed-component-usages';
import * as themedDecorators from './themed-decorators';
import * as themedWrapperNoInputDefaults from './themed-wrapper-no-input-defaults';
import * as uniqueDecorators from './unique-decorators';
const index = [
aliasImports,
sortStandaloneImports,
themedComponentClasses,
themedComponentSelectors,
themedComponentUsages,
themedDecorators,
themedWrapperNoInputDefaults,
uniqueDecorators,
] as unknown as RuleExports[];
export = {

View File

@@ -0,0 +1,306 @@
import {
ASTUtils as TSESLintASTUtils,
ESLintUtils,
TSESLint,
TSESTree,
} from '@typescript-eslint/utils';
import {
DSpaceESLintRuleInfo,
NamedTests,
OptionDoc,
} from '../../util/structure';
const DEFAULT_LOCALE = 'en-US';
const DEFAULT_MAX_SIZE = 0;
const DEFAULT_SPACE_INDENT_AMOUNT = 2;
const DEFAULT_TRAILING_COMMA = true;
export enum Message {
SORT_STANDALONE_IMPORTS_ARRAYS = 'sortStandaloneImportsArrays',
}
export interface UniqueDecoratorsOptions {
locale: string;
maxItems: number;
indent: number;
trailingComma: boolean;
}
export interface UniqueDecoratorsDocOptions {
locale: OptionDoc;
maxItems: OptionDoc;
indent: OptionDoc;
trailingComma: OptionDoc;
}
export const info: DSpaceESLintRuleInfo<[UniqueDecoratorsOptions], [UniqueDecoratorsDocOptions]> = {
name: 'sort-standalone-imports',
meta: {
docs: {
description: 'Sorts the standalone `@Component` imports alphabetically',
},
messages: {
[Message.SORT_STANDALONE_IMPORTS_ARRAYS]: 'Standalone imports should be sorted alphabetically',
},
fixable: 'code',
type: 'problem',
schema: [
{
type: 'object',
properties: {
locale: {
type: 'string',
},
maxItems: {
type: 'number',
},
indent: {
type: 'number',
},
trailingComma: {
type: 'boolean',
},
},
additionalProperties: false,
},
],
},
optionDocs: [
{
locale: {
title: '`locale`',
description: 'The locale used to sort the imports.',
},
maxItems: {
title: '`maxItems`',
description: 'The maximum number of imports that should be displayed before each import is separated onto its own line.',
},
indent: {
title: '`indent`',
description: 'The indent used for the project.',
},
trailingComma: {
title: '`trailingComma`',
description: 'Whether the last import should have a trailing comma (only applicable for multiline imports).',
},
},
],
defaultOptions: [
{
locale: DEFAULT_LOCALE,
maxItems: DEFAULT_MAX_SIZE,
indent: DEFAULT_SPACE_INDENT_AMOUNT,
trailingComma: DEFAULT_TRAILING_COMMA,
},
],
};
export const rule = ESLintUtils.RuleCreator.withoutDocs({
...info,
create(context: TSESLint.RuleContext<Message, unknown[]>, [{ locale, maxItems, indent, trailingComma }]: any) {
return {
['ClassDeclaration > Decorator > CallExpression[callee.name="Component"] > ObjectExpression > Property[key.name="imports"] > ArrayExpression']: (node: TSESTree.ArrayExpression) => {
const elements = node.elements.filter((element) => element !== null && (TSESLintASTUtils.isIdentifier(element) || element?.type === TSESTree.AST_NODE_TYPES.CallExpression));
const sortedNames: string[] = elements
.map((element) => context.sourceCode.getText(element!))
.sort((a: string, b: string) => a.localeCompare(b, locale));
const isSorted: boolean = elements.every((identifier, index) => context.sourceCode.getText(identifier!) === sortedNames[index]);
const requiresMultiline: boolean = maxItems < node.elements.length;
const isMultiline: boolean = /\n/.test(context.sourceCode.getText(node));
const incorrectFormat: boolean = requiresMultiline !== isMultiline;
if (isSorted && !incorrectFormat) {
return;
}
context.report({
node: node.parent,
messageId: Message.SORT_STANDALONE_IMPORTS_ARRAYS,
fix: (fixer: TSESLint.RuleFixer) => {
if (requiresMultiline) {
const multilineImports: string = sortedNames
.map((name: string) => `${' '.repeat(2 * indent)}${name}${trailingComma ? ',' : ''}`)
.join(trailingComma ? '\n' : ',\n');
return fixer.replaceText(node, `[\n${multilineImports}\n${' '.repeat(indent)}]`);
} else {
return fixer.replaceText(node, `[${sortedNames.join(', ')}]`);
}
},
});
},
};
},
});
export const tests: NamedTests = {
plugin: info.name,
valid: [
{
name: 'should sort multiple imports on separate lines',
code: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
AsyncPipe,
RootComponent,
],
})
export class AppComponent {}`,
},
{
name: 'should not inlines singular imports when maxItems is 0',
code: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
],
})
export class AppComponent {}`,
},
{
name: 'should inline singular imports when maxItems is 1',
options: [{ maxItems: 1 }],
code: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [RootComponent],
})
export class AppComponent {}`,
},
],
invalid: [
{
name: 'should sort multiple imports alphabetically',
code: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
AsyncPipe,
],
})
export class AppComponent {}`,
errors: [
{
messageId: Message.SORT_STANDALONE_IMPORTS_ARRAYS,
},
],
output: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
AsyncPipe,
RootComponent,
],
})
export class AppComponent {}`,
},
{
name: 'should not put singular imports on one line when maxItems is 0',
code: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [RootComponent],
})
export class AppComponent {}`,
errors: [
{
messageId: Message.SORT_STANDALONE_IMPORTS_ARRAYS,
},
],
output: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
],
})
export class AppComponent {}`,
},
{
name: 'should not put singular imports on a separate line when maxItems is 1',
options: [{ maxItems: 1 }],
code: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
RootComponent,
],
})
export class AppComponent {}`,
errors: [
{
messageId: Message.SORT_STANDALONE_IMPORTS_ARRAYS,
},
],
output: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [RootComponent],
})
export class AppComponent {}`,
},
{
name: 'should not display multiple imports on the same line',
code: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [AsyncPipe, RootComponent],
})
export class AppComponent {}`,
errors: [
{
messageId: Message.SORT_STANDALONE_IMPORTS_ARRAYS,
},
],
output: `
@Component({
selector: 'ds-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
standalone: true,
imports: [
AsyncPipe,
RootComponent,
],
})
export class AppComponent {}`,
},
],
};

View File

@@ -52,6 +52,7 @@ export const info = {
[Message.WRAPPER_IMPORTS_BASE]: 'Themed component wrapper classes must only import the base class',
},
},
optionDocs: [],
defaultOptions: [],
} as DSpaceESLintRuleInfo;
@@ -180,7 +181,7 @@ class Something {
selector: 'ds-base-test-themable',
standalone: true,
})
class TestThemeableTomponent {
class TestThemeableComponent {
}
`,
},
@@ -195,7 +196,7 @@ class TestThemeableTomponent {
TestThemeableComponent,
],
})
class ThemedTestThemeableTomponent extends ThemedComponent<TestThemeableComponent> {
class ThemedTestThemeableComponent extends ThemedComponent<TestThemeableComponent> {
}
`,
},

View File

@@ -53,6 +53,7 @@ Unit tests are exempt from this rule, because they may redefine components using
[Message.THEMED]: 'Theme override of themeable component should have a selector starting with \'ds-themed-\'',
},
},
optionDocs: [],
defaultOptions: [],
} as DSpaceESLintRuleInfo;

View File

@@ -63,6 +63,7 @@ There are a few exceptions where the base class can still be used:
[Message.BASE_IN_MODULE]: 'Base themeable components shouldn\'t be declared in modules',
},
},
optionDocs: [],
defaultOptions: [],
} as DSpaceESLintRuleInfo;

View File

@@ -0,0 +1,280 @@
import {
AST_NODE_TYPES,
ESLintUtils,
TSESLint,
TSESTree,
} from '@typescript-eslint/utils';
import { fixture } from '../../../test/fixture';
import { isTestFile } from '../../util/filter';
import {
DSpaceESLintRuleInfo,
NamedTests,
OptionDoc,
} from '../../util/structure';
import { getFileTheme } from '../../util/theme-support';
export enum Message {
NO_THEME_DECLARED_IN_THEME_FILE = 'noThemeDeclaredInThemeFile',
THEME_DECLARED_IN_NON_THEME_FILE = 'themeDeclaredInNonThemeFile',
WRONG_THEME_DECLARED_IN_THEME_FILE = 'wrongThemeDeclaredInThemeFile',
}
interface ThemedDecoratorsOption {
decorators: { [name: string]: number };
}
interface ThemedDecoratorsDocsOption {
decorators: OptionDoc;
}
export const info: DSpaceESLintRuleInfo<[ThemedDecoratorsOption], [ThemedDecoratorsDocsOption]> = {
name: 'themed-decorators',
meta: {
docs: {
description: 'Entry components with theme support should declare the correct theme',
},
fixable: 'code',
messages: {
[Message.NO_THEME_DECLARED_IN_THEME_FILE]: 'No theme declaration in decorator',
[Message.THEME_DECLARED_IN_NON_THEME_FILE]: 'There is a theme declaration in decorator, but this file is not part of a theme',
[Message.WRONG_THEME_DECLARED_IN_THEME_FILE]: 'Wrong theme declaration in decorator',
},
type: 'problem',
schema: [
{
type: 'object',
properties: {
decorators: {
type: 'object',
},
},
},
],
},
optionDocs: [
{
decorators: {
title: '`decorators`',
description: 'A mapping for all the existing themeable decorators, with the decorator name as the key and the index of the `theme` argument as the value.',
},
},
],
defaultOptions: [
{
decorators: {
listableObjectComponent: 3,
rendersSectionForMenu: 2,
},
},
],
};
export const rule = ESLintUtils.RuleCreator.withoutDocs({
...info,
create(context: TSESLint.RuleContext<Message, unknown[]>, options: any) {
return {
[`ClassDeclaration > Decorator > CallExpression[callee.name=/^(${Object.keys(options[0].decorators).join('|')})$/]`]: (node: TSESTree.CallExpression) => {
if (isTestFile(context)) {
return;
}
if (node.callee.type !== AST_NODE_TYPES.Identifier) {
// We only support regular method identifiers
return;
}
const fileTheme = getFileTheme(context);
const themeDeclaration = getDeclaredTheme(options, node as TSESTree.CallExpression);
if (themeDeclaration === undefined) {
if (fileTheme !== undefined) {
context.report({
messageId: Message.NO_THEME_DECLARED_IN_THEME_FILE,
node: node,
fix(fixer) {
return fixer.insertTextAfter(node.arguments[node.arguments.length - 1], `, '${fileTheme as string}'`);
},
});
}
} else if (themeDeclaration?.type === AST_NODE_TYPES.Literal) {
if (fileTheme === undefined) {
context.report({
messageId: Message.THEME_DECLARED_IN_NON_THEME_FILE,
node: themeDeclaration,
fix(fixer) {
const idx = node.arguments.findIndex((v) => v.range === themeDeclaration.range);
if (idx === 0) {
return fixer.remove(themeDeclaration);
} else {
const previousArgument = node.arguments[idx - 1];
return fixer.removeRange([previousArgument.range[1], themeDeclaration.range[1]]); // todo: comma?
}
},
});
} else if (fileTheme !== themeDeclaration?.value) {
context.report({
messageId: Message.WRONG_THEME_DECLARED_IN_THEME_FILE,
node: themeDeclaration,
fix(fixer) {
return fixer.replaceText(themeDeclaration, `'${fileTheme as string}'`);
},
});
}
} else if (themeDeclaration?.type === AST_NODE_TYPES.Identifier && themeDeclaration.name === 'undefined') {
if (fileTheme !== undefined) {
context.report({
messageId: Message.NO_THEME_DECLARED_IN_THEME_FILE,
node: node,
fix(fixer) {
return fixer.replaceText(node.arguments[node.arguments.length - 1], `'${fileTheme as string}'`);
},
});
}
} else {
throw new Error('Unexpected theme declaration');
}
},
};
},
});
export const tests: NamedTests = {
plugin: info.name,
valid: [
{
name: 'theme file declares the correct theme in @listableObjectComponent',
code: `
@listableObjectComponent(something, somethingElse, undefined, 'test')
export class Something extends SomethingElse {
}
`,
filename: fixture('src/themes/test/app/dynamic-component/dynamic-component.ts'),
},
{
name: 'plain file declares no theme in @listableObjectComponent',
code: `
@listableObjectComponent(something, somethingElse, undefined)
export class Something extends SomethingElse {
}
`,
filename: fixture('src/app/dynamic-component/dynamic-component.ts'),
},
{
name: 'plain file declares explicit undefined theme in @listableObjectComponent',
code: `
@listableObjectComponent(something, somethingElse, undefined, undefined)
export class Something extends SomethingElse {
}
`,
filename: fixture('src/app/dynamic-component/dynamic-component.ts'),
},
{
name: 'test file declares theme outside of theme directory',
code: `
@listableObjectComponent(something, somethingElse, undefined, 'test')
export class Something extends SomethingElse {
}
`,
filename: fixture('src/app/dynamic-component/dynamic-component.spec.ts'),
},
{
name: 'only track configured decorators',
code: `
@something('test')
export class Something extends SomethingElse {
}
`,
filename: fixture('src/app/dynamic-component/dynamic-component.ts'),
},
],
invalid: [
{
name: 'theme file declares the wrong theme in @listableObjectComponent',
code: `
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
`,
filename: fixture('src/themes/test/app/dynamic-component/dynamic-component.ts'),
errors: [
{
messageId: 'wrongThemeDeclaredInThemeFile',
},
],
output: `
@listableObjectComponent(something, somethingElse, undefined, 'test')
export class Something extends SomethingElse {
}
`,
},
{
name: 'plain file declares a theme in @listableObjectComponent',
code: `
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
`,
filename: fixture('src/app/dynamic-component/dynamic-component.ts'),
errors: [
{
messageId: 'themeDeclaredInNonThemeFile',
},
],
output: `
@listableObjectComponent(something, somethingElse, undefined)
export class Something extends SomethingElse {
}
`,
},
{
name: 'theme file declares no theme in @listableObjectComponent',
code: `
@listableObjectComponent(something, somethingElse, undefined)
export class Something extends SomethingElse {
}
`,
filename: fixture('src/themes/test-2/app/dynamic-component/dynamic-component.ts'),
errors: [
{
messageId: 'noThemeDeclaredInThemeFile',
},
],
output: `
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
`,
},
{
name: 'theme file declares explicit undefined theme in @listableObjectComponent',
code: `
@listableObjectComponent(something, somethingElse, undefined, undefined)
export class Something extends SomethingElse {
}
`,
filename: fixture('src/themes/test-2/app/dynamic-component/dynamic-component.ts'),
errors: [
{
messageId: 'noThemeDeclaredInThemeFile',
},
],
output: `
@listableObjectComponent(something, somethingElse, undefined, 'test-2')
export class Something extends SomethingElse {
}
`,
},
],
};
function getDeclaredTheme(options: [ThemedDecoratorsOption], decoratorCall: TSESTree.CallExpression): TSESTree.Node | undefined {
const index: number = options[0].decorators[(decoratorCall.callee as TSESTree.Identifier).name];
if (decoratorCall.arguments.length >= index + 1) {
return decoratorCall.arguments[index];
}
return undefined;
}

View File

@@ -0,0 +1,158 @@
import {
ESLintUtils,
TSESTree,
} from '@typescript-eslint/utils';
import { RuleContext } from '@typescript-eslint/utils/ts-eslint';
import {
DSpaceESLintRuleInfo,
NamedTests,
} from '../../util/structure';
import { isThemedComponentWrapper } from '../../util/theme-support';
export enum Message {
WRAPPER_HAS_INPUT_DEFAULTS = 'wrapperHasInputDefaults',
}
export const info: DSpaceESLintRuleInfo = {
name: 'themed-wrapper-no-input-defaults',
meta: {
docs: {
description: 'ThemedComponent wrappers should not declare input defaults (see [DSpace Angular #2164](https://github.com/DSpace/dspace-angular/pull/2164))',
},
messages: {
[Message.WRAPPER_HAS_INPUT_DEFAULTS]: 'ThemedComponent wrapper declares inputs with defaults',
},
type: 'problem',
schema: [],
},
optionDocs: [],
defaultOptions: [],
};
export const rule = ESLintUtils.RuleCreator.withoutDocs({
...info,
create(context: RuleContext<any, any>, options: any) {
return {
'ClassBody > PropertyDefinition > Decorator > CallExpression[callee.name=\'Input\']': (node: TSESTree.CallExpression) => {
const classDeclaration = (node?.parent?.parent?.parent as TSESTree.Decorator); // todo: clean this up
if (!isThemedComponentWrapper(classDeclaration)) {
return;
}
const propertyDefinition: TSESTree.PropertyDefinition = (node.parent.parent as any); // todo: clean this up
if (propertyDefinition.value !== null) {
context.report({
messageId: Message.WRAPPER_HAS_INPUT_DEFAULTS,
node: propertyDefinition.value,
// fix(fixer) {
// // todo: don't strip type annotations!
// // todo: replace default with appropriate type annotation if not present!
// return fixer.removeRange([propertyDefinition.key.range[1], (propertyDefinition.value as any).range[1]]);
// }
});
}
},
};
},
});
export const tests: NamedTests = {
plugin: info.name,
valid: [
{
name: 'ThemedComponent wrapper defines an input without a default value',
code: `
export class TTest extends ThemedComponent<Test> {
@Input()
test;
}
`,
},
{
name: 'Regular class defines an input with a default value',
code: `
export class Test {
@Input()
test = 'test';
}
`,
},
],
invalid: [
{
name: 'ThemedComponent wrapper defines an input with a default value',
code: `
export class TTest extends ThemedComponent<Test> {
@Input()
test1 = 'test';
@Input()
test2 = true;
@Input()
test2: number = 123;
@Input()
test3: number[] = [1,2,3];
}
`,
errors: [
{
messageId: 'wrapperHasInputDefaults',
},
{
messageId: 'wrapperHasInputDefaults',
},
{
messageId: 'wrapperHasInputDefaults',
},
{
messageId: 'wrapperHasInputDefaults',
},
],
// output: `
// export class TTest extends ThemedComponent<Test> {
//
// @Input()
// test1: string;
//
// @Input()
// test2: boolean;
//
// @Input()
// test2: number;
//
// @Input()
// test3: number[];
// }
// `,
},
{
name: 'ThemedComponent wrapper defines an input with an undefined default value',
code: `
export class TTest extends ThemedComponent<Test> {
@Input()
test = undefined;
}
`,
errors: [
{
messageId: 'wrapperHasInputDefaults',
},
],
// output: `
// export class TTest extends ThemedComponent<Test> {
//
// @Input()
// test;
// }
// `,
},
],
};

View File

@@ -0,0 +1,226 @@
import {
AST_NODE_TYPES,
ESLintUtils,
TSESLint,
TSESTree,
} from '@typescript-eslint/utils';
import { isTestFile } from '../../util/filter';
import {
DSpaceESLintRuleInfo,
NamedTests,
OptionDoc,
} from '../../util/structure';
export enum Message {
DUPLICATE_DECORATOR_CALL = 'duplicateDecoratorCall',
}
/**
* Saves the decorators by decoratorName → file → Set<String>
*/
const decoratorCalls: Map<string, Map<string, Set<string>>> = new Map();
/**
* Keep a list of the files wo contain a decorator. This is done in order to prevent the `Program` selector from being
* run for every file.
*/
const fileWithDecorators: Set<string> = new Set();
export interface UniqueDecoratorsOptions {
decorators: string[];
}
export interface UniqueDecoratorsDocOptions {
decorators: OptionDoc;
}
export const info: DSpaceESLintRuleInfo<[UniqueDecoratorsOptions], [UniqueDecoratorsDocOptions]> = {
name: 'unique-decorators',
meta: {
docs: {
description: 'Some decorators must be called with unique arguments (e.g. when they construct a mapping based on the argument values)',
},
messages: {
[Message.DUPLICATE_DECORATOR_CALL]: 'Duplicate decorator call',
},
type: 'problem',
schema: [
{
type: 'object',
properties: {
decorators: {
type: 'array',
items: {
type: 'string',
},
},
},
},
],
},
optionDocs: [
{
decorators: {
title: '`decorators`',
description: 'The list of all the decorators for which you want to enforce this behavior.',
},
},
],
defaultOptions: [
{
decorators: [
'listableObjectComponent', // todo: must take default arguments into account!
],
},
],
};
export const rule = ESLintUtils.RuleCreator.withoutDocs({
...info,
create(context: TSESLint.RuleContext<Message, unknown[]>, options: any) {
return {
['Program']: () => {
if (fileWithDecorators.has(context.physicalFilename)) {
for (const decorator of options[0].decorators) {
decoratorCalls.get(decorator)?.get(context.physicalFilename)?.clear();
}
}
},
[`ClassDeclaration > Decorator > CallExpression[callee.name=/^(${options[0].decorators.join('|')})$/]`]: (node: TSESTree.CallExpression) => {
if (isTestFile(context)) {
return;
}
if (node.callee.type !== AST_NODE_TYPES.Identifier) {
// We only support regular method identifiers
return;
}
fileWithDecorators.add(context.physicalFilename);
if (!isUnique(node, context.physicalFilename)) {
context.report({
messageId: Message.DUPLICATE_DECORATOR_CALL,
node: node,
});
}
},
};
},
});
export const tests: NamedTests = {
plugin: info.name,
valid: [
{
name: 'checked decorator, no repetitions',
code: `
@listableObjectComponent(a)
export class A {
}
@listableObjectComponent(a, 'b')
export class B {
}
@listableObjectComponent(a, 'b', 3)
export class C {
}
@listableObjectComponent(a, 'b', 3, Enum.TEST1)
export class C {
}
@listableObjectComponent(a, 'b', 3, Enum.TEST2)
export class C {
}
`,
},
{
name: 'unchecked decorator, some repetitions',
code: `
@something(a)
export class A {
}
@something(a)
export class B {
}
`,
},
],
invalid: [
{
name: 'checked decorator, some repetitions',
code: `
@listableObjectComponent(a)
export class A {
}
@listableObjectComponent(a)
export class B {
}
`,
errors: [
{
messageId: 'duplicateDecoratorCall',
},
],
},
],
};
function callKey(node: TSESTree.CallExpression): string {
let key = '';
for (const arg of node.arguments) {
switch ((arg as TSESTree.Node).type) {
// todo: can we make this more generic somehow?
case AST_NODE_TYPES.Identifier:
key += (arg as TSESTree.Identifier).name;
break;
case AST_NODE_TYPES.Literal:
// eslint-disable-next-line @typescript-eslint/no-base-to-string
key += (arg as TSESTree.Literal).value;
break;
case AST_NODE_TYPES.MemberExpression:
key += (arg as any).object.name + '.' + (arg as any).property.name;
break;
default:
throw new Error(`Unrecognized decorator argument type: ${arg.type}`);
}
key += ', ';
}
return key;
}
function isUnique(node: TSESTree.CallExpression, filePath: string): boolean {
const decorator = (node.callee as TSESTree.Identifier).name;
if (!decoratorCalls.has(decorator)) {
decoratorCalls.set(decorator, new Map());
}
if (!decoratorCalls.get(decorator)!.has(filePath)) {
decoratorCalls.get(decorator)!.set(filePath, new Set());
}
const key = callKey(node);
let unique = true;
for (const decoratorCallsByFile of decoratorCalls.get(decorator)!.values()) {
if (decoratorCallsByFile.has(key)) {
unique = !unique;
break;
}
}
decoratorCalls.get(decorator)?.get(filePath)?.add(key);
return unique;
}

10
lint/src/util/filter.ts Normal file
View File

@@ -0,0 +1,10 @@
import { RuleContext } from '@typescript-eslint/utils/ts-eslint';
/**
* Determine whether the current file is a test file
* @param context the current ESLint rule context
*/
export function isTestFile(context: RuleContext<any, any>): boolean {
// note: shouldn't use plain .filename (doesn't work in DSpace Angular 7.4)
return context.getFilename()?.endsWith('.spec.ts') ;
}

View File

@@ -17,10 +17,16 @@ export type Meta = RuleMetaData<string, unknown[]>;
export type Valid = ValidTestCase<unknown[]>;
export type Invalid = InvalidTestCase<string, unknown[]>;
export interface DSpaceESLintRuleInfo {
export interface DSpaceESLintRuleInfo<T = unknown[], D = unknown[]> {
name: string;
meta: Meta,
defaultOptions: unknown[],
optionDocs: D,
defaultOptions: T,
}
export interface OptionDoc {
title: string;
description: string;
}
export interface NamedTests {

View File

@@ -7,6 +7,11 @@ _______
[Source code](../../../../lint/src/rules/<%- plugin.name.replace('dspace-angular-', '') %>/<%- rule.name %>.ts)
<% if (rule.optionDocs?.length > 0) { %>
### Options
<%- rule.optionDocs.map(optionDoc => Object.keys(optionDoc).map(option => '\n#### ' + optionDoc[option].title + '\n\n' + optionDoc[option].description)) %>
<% } %>
### Examples
<% if (tests.valid) {%>
@@ -19,6 +24,13 @@ Filename: `<%- test.filename %>`
```<%- plugin.language.toLowerCase() %>
<%- test.code.trim() %>
```
<% if (test?.options?.length > 0) { %>
With options:
```json
<%- JSON.stringify(test.options[0], null, 2) %>
```
<% }%>
<% }) %>
<% } %>
@@ -31,6 +43,15 @@ Filename: `<%- test.filename %>`
<% } %>
```<%- plugin.language.toLowerCase() %>
<%- test.code.trim() %>
<% if (test?.options?.length > 0) { %>
With options:
```json
<%- JSON.stringify(test.options[0], null, 2) %>
```
<% }%>
```
Will produce the following error(s):
```

View File

@@ -6,9 +6,11 @@
* http://www.dspace.org/license/
*/
import { readFileSync } from 'node:fs';
import { basename } from 'node:path';
import { TSESTree } from '@typescript-eslint/utils';
import { readFileSync } from 'fs';
import { basename } from 'path';
import { RuleContext } from '@typescript-eslint/utils/ts-eslint';
import ts, { Identifier } from 'typescript';
import {
@@ -263,3 +265,18 @@ export const DISALLOWED_THEME_SELECTORS = 'ds-(base|themed)-';
export function fixSelectors(text: string): string {
return text.replaceAll(/ds-(base|themed)-/g, 'ds-');
}
/**
* Determine the theme of the current file based on its path in the project.
* @param context the current ESLint rule context
*/
export function getFileTheme(context: RuleContext<any, any>): string | undefined {
// note: shouldn't use plain .filename (doesn't work in DSpace Angular 7.4)
const m = context.getFilename()?.match(/\/src\/themes\/([^/]+)\//);
if (m?.length === 2) {
return m[1];
}
return undefined;
}

View File

@@ -6,6 +6,8 @@
* http://www.dspace.org/license/
*/
import { RuleMetaData } from '@typescript-eslint/utils/ts-eslint';
import { default as html } from '../src/rules/html';
import { default as ts } from '../src/rules/ts';
@@ -69,6 +71,16 @@ describe('plugin structure', () => {
expect(ruleExports.tests.valid.length).toBeGreaterThan(0);
expect(ruleExports.tests.invalid.length).toBeGreaterThan(0);
});
it('should contain a valid ESLint rule', () => {
// we don't have a better way to enforce this, but it's something at least
expect((ruleExports.rule as any).name).toBeUndefined(
'Rules should be passed to RuleCreator, omitting info.name since it is not part of the RuleWithMeta interface',
);
expect(ruleExports.rule.create).toBeTruthy();
expect(ruleExports.rule.meta).toEqual(ruleExports.info.meta as RuleMetaData<string, []>);
});
});
}
});

23339
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,30 +1,30 @@
{
"name": "dspace-angular",
"version": "8.3.0-next",
"version": "10.0.0-next",
"scripts": {
"ng": "ng",
"config:watch": "nodemon",
"test:rest": "ts-node --project ./tsconfig.ts-node.json scripts/test-rest.ts",
"start": "yarn run start:prod",
"start:dev": "nodemon --exec \"cross-env NODE_ENV=development yarn run serve\"",
"start:prod": "yarn run build:prod && cross-env NODE_ENV=production yarn run serve:ssr",
"start:mirador:prod": "yarn run build:mirador && yarn run start:prod",
"preserve": "yarn base-href",
"start": "npm run start:prod",
"start:dev": "cross-env NODE_ENV=development npm run serve --watch",
"start:prod": "npm run build:prod && cross-env NODE_ENV=production npm run serve:ssr",
"start:mirador:prod": "npm run build:mirador && npm run start:prod",
"preserve": "npm run base-href",
"serve": "ts-node --project ./tsconfig.ts-node.json scripts/serve.ts",
"serve:ssr": "node dist/server/main",
"analyze": "webpack-bundle-analyzer dist/browser/stats.json",
"build": "ng build --configuration development",
"build:stats": "ng build --stats-json",
"build:prod": "cross-env NODE_ENV=production yarn run build:ssr",
"build:prod": "cross-env NODE_ENV=production npm run build:ssr",
"build:ssr": "ng build --configuration production && ng run dspace-angular:server:production",
"build:lint": "rimraf 'lint/dist/**/*.js' 'lint/dist/**/*.js.map' && tsc -b lint/tsconfig.json",
"test": "ng test --source-map=true --watch=false --configuration test",
"test:watch": "nodemon --exec \"ng test --source-map=true --watch=true --configuration test\"",
"test:watch": "ng test --source-map=true --watch=true --configuration test",
"test:headless": "ng test --source-map=true --watch=false --configuration test --browsers=ChromeHeadless --code-coverage",
"test:lint": "yarn build:lint && yarn test:lint:nobuild",
"test:lint": "npm run build:lint && npm run test:lint:nobuild",
"test:lint:nobuild": "jasmine --config=lint/jasmine.json",
"lint": "yarn build:lint && yarn lint:nobuild",
"lint": "npm run build:lint && npm run lint:nobuild",
"lint:nobuild": "ng lint",
"lint-fix": "yarn build:lint && ng lint --fix=true",
"lint-fix": "npm run build:lint && ng lint --fix=true",
"docs:lint": "ts-node --project ./lint/tsconfig.json ./lint/generate-docs.ts",
"e2e": "cross-env NODE_ENV=production ng e2e",
"clean:dev:config": "rimraf src/assets/config.json",
@@ -35,8 +35,8 @@
"clean:json": "rimraf *.records.json",
"clean:node": "rimraf node_modules",
"clean:cli": "rimraf .angular/cache",
"clean:prod": "yarn run clean:dist && yarn run clean:log && yarn run clean:doc && yarn run clean:coverage && yarn run clean:json",
"clean": "yarn run clean:prod && yarn run clean:dev:config && yarn run clean:cli && yarn run clean:node",
"clean:prod": "npm run clean:dist && npm run clean:log && npm run clean:doc && npm run clean:coverage && npm run clean:json",
"clean": "npm run clean:prod && npm run clean:dev:config && npm run clean:cli && npm run clean:node",
"sync-i18n": "ts-node --project ./tsconfig.ts-node.json scripts/sync-i18n-files.ts",
"build:mirador": "webpack --config webpack/webpack.mirador.config.ts",
"merge-i18n": "ts-node --project ./tsconfig.ts-node.json scripts/merge-i18n-files.ts",
@@ -45,7 +45,7 @@
"env:yaml": "ts-node --project ./tsconfig.ts-node.json scripts/env-to-yaml.ts",
"base-href": "ts-node --project ./tsconfig.ts-node.json scripts/base-href.ts",
"check-circ-deps": "npx madge --exclude '(bitstream|bundle|collection|config-submission-form|eperson|item|version)\\.model\\.ts$' --circular --extensions ts ./",
"postinstall": "yarn build:lint || echo 'Skipped DSpace ESLint plugins.'"
"postinstall": "npm run build:lint || echo 'Skipped DSpace ESLint plugins.'"
},
"browser": {
"fs": false,
@@ -54,32 +54,67 @@
"https": false
},
"private": true,
"overrides": {
"@kolkov/ngx-gallery": {
"@angular/animations": "^18.2.12",
"@angular/common": "^18.2.12",
"@angular/core": "^18.2.12"
},
"@ng-bootstrap/ng-bootstrap": {
"@angular/common": "^18.2.12",
"@angular/core": "^18.2.12",
"@angular/forms": "^18.2.12",
"@angular/localize": "^18.2.12"
},
"@ng-dynamic-forms/core": {
"@angular/common": "^18.2.12",
"@angular/core": "^18.2.12",
"@angular/forms": "^18.2.12"
},
"@ng-dynamic-forms/ui-ng-bootstrap": {
"ngx-mask": "14.2.4",
"@ng-bootstrap/ng-bootstrap": "^12.0.0",
"bootstrap": "^5.3"
},
"@nicky-lenaers/ngx-scroll-to": {
"@angular/common": "^18.2.12",
"@angular/core": "^18.2.12"
},
"eslint-plugin-unused-imports": {
"@typescript-eslint/eslint-plugin": "^7.2.0"
},
"ngx-infinite-scroll": {
"@angular/common": "^18.2.12",
"@angular/core": "^18.2.12"
},
"notistack": "3.0.1"
},
"dependencies": {
"@angular/animations": "^17.3.11",
"@angular/cdk": "^17.3.10",
"@angular/common": "^17.3.11",
"@angular/compiler": "^17.3.11",
"@angular/core": "^17.3.11",
"@angular/forms": "^17.3.11",
"@angular/localize": "17.3.12",
"@angular/platform-browser": "^17.3.11",
"@angular/platform-browser-dynamic": "^17.3.11",
"@angular/platform-server": "^17.3.11",
"@angular/router": "^17.3.11",
"@angular/ssr": "^17.3.17",
"@babel/runtime": "7.28.4",
"@angular/animations": "^18.2.14",
"@angular/cdk": "^18.2.12",
"@angular/common": "^18.2.14",
"@angular/compiler": "^18.2.14",
"@angular/core": "^18.2.14",
"@angular/forms": "^18.2.14",
"@angular/localize": "^18.2.14",
"@angular/platform-browser": "^18.2.14",
"@angular/platform-browser-dynamic": "^18.2.14",
"@angular/platform-server": "^18.2.14",
"@angular/router": "^18.2.14",
"@angular/ssr": "^18.2.21",
"@kolkov/ngx-gallery": "^2.0.1",
"@ng-bootstrap/ng-bootstrap": "^11.0.0",
"@ng-bootstrap/ng-bootstrap": "^12.0.0",
"@ng-dynamic-forms/core": "^16.0.0",
"@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0",
"@ngrx/effects": "^17.1.1",
"@ngrx/router-store": "^17.1.1",
"@ngrx/store": "^17.1.1",
"@ngx-translate/core": "^14.0.0",
"@ngrx/effects": "^18.1.1",
"@ngrx/router-store": "^18.1.1",
"@ngrx/store": "^18.1.1",
"@ngx-translate/core": "^16.0.3",
"@nicky-lenaers/ngx-scroll-to": "^14.0.0",
"@terraformer/wkt": "^2.2.1",
"altcha": "^0.9.0",
"angulartics2": "^12.2.0",
"axios": "^1.11.0",
"bootstrap": "^4.6.1",
"bootstrap": "^5.3",
"cerialize": "0.1.18",
"cli-progress": "^3.12.0",
"colors": "^1.4.0",
@@ -93,7 +128,7 @@
"express": "^4.21.2",
"express-rate-limit": "^5.1.3",
"fast-json-patch": "^3.1.1",
"filesize": "^6.1.0",
"filesize": "^10.1.6",
"http-proxy-middleware": "^2.0.9",
"http-terminator": "^3.2.0",
"isbot": "^5.1.30",
@@ -102,69 +137,70 @@
"json5": "^2.2.3",
"jsonschema": "1.5.0",
"jwt-decode": "^3.1.2",
"klaro": "^0.7.18",
"lodash": "^4.17.21",
"leaflet": "^1.9.4",
"leaflet-providers": "^2.0.0",
"leaflet.markercluster": "^1.5.3",
"lodash-es": "^4.17.21",
"lru-cache": "^7.14.1",
"markdown-it": "^13.0.1",
"mirador": "^3.4.3",
"mirador-dl-plugin": "^0.13.0",
"mirador-share-plugin": "^0.16.0",
"morgan": "^1.10.1",
"ng2-file-upload": "5.0.0",
"ng2-file-upload": "7.0.1",
"ng2-nouislider": "^2.0.0",
"ngx-infinite-scroll": "^16.0.0",
"ngx-infinite-scroll": "^18.0.0",
"ngx-matomo-client": "^6.4.1",
"ngx-pagination": "6.0.3",
"ngx-skeleton-loader": "^9.0.0",
"ngx-ui-switch": "^14.1.0",
"ngx-ui-switch": "^15.0.0",
"nouislider": "^15.7.1",
"orejime": "^2.3.1",
"pem": "1.14.8",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.2",
"rxjs": "^7.8.0",
"uuid": "^8.3.2",
"zone.js": "~0.14.0"
"zone.js": "~0.14.10"
},
"devDependencies": {
"@angular-builders/custom-webpack": "~17.0.2",
"@angular-devkit/build-angular": "^17.3.17",
"@angular-eslint/builder": "17.5.3",
"@angular-eslint/bundled-angular-compiler": "17.5.3",
"@angular-eslint/eslint-plugin": "17.5.3",
"@angular-eslint/eslint-plugin-template": "17.5.3",
"@angular-eslint/schematics": "17.5.3",
"@angular-eslint/template-parser": "17.5.3",
"@angular/cli": "^17.3.17",
"@angular/compiler-cli": "^17.3.11",
"@angular/language-service": "^17.3.11",
"@angular-builders/custom-webpack": "~18.0.0",
"@angular-devkit/build-angular": "^18.2.20",
"@angular-eslint/builder": "^18.4.1",
"@angular-eslint/bundled-angular-compiler": "^18.4.1",
"@angular-eslint/eslint-plugin": "^18.4.1",
"@angular-eslint/eslint-plugin-template": "^18.4.1",
"@angular-eslint/schematics": "^18.4.1",
"@angular-eslint/template-parser": "^18.4.1",
"@angular-eslint/utils": "^18.4.1",
"@angular/cli": "^18.2.21",
"@angular/compiler-cli": "^18.2.12",
"@cypress/schematic": "^1.5.0",
"@fortawesome/fontawesome-free": "^6.7.2",
"@material-ui/core": "^4.12.4",
"@material-ui/icons": "^4.11.3",
"@ngrx/store-devtools": "^17.1.1",
"@ngtools/webpack": "^16.2.16",
"@ngrx/store-devtools": "^18.1.1",
"@ngtools/webpack": "^18.2.20",
"@types/deep-freeze": "0.1.5",
"@types/ejs": "^3.1.2",
"@types/express": "^4.17.17",
"@types/grecaptcha": "^3.0.9",
"@types/jasmine": "~3.6.0",
"@types/js-cookie": "2.2.6",
"@types/lodash": "^4.17.20",
"@types/node": "^14.14.9",
"@typescript-eslint/eslint-plugin": "^7.2.0",
"@typescript-eslint/parser": "^7.2.0",
"@typescript-eslint/rule-tester": "^7.2.0",
"@typescript-eslint/utils": "^7.2.0",
"axe-core": "^4.10.3",
"@types/lodash-es": "^4.17.12",
"@types/node": "^18.19.124",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"@typescript-eslint/rule-tester": "^7.18.0",
"@typescript-eslint/utils": "^7.18.0",
"axe-core": "^4.10.2",
"compression-webpack-plugin": "^9.2.0",
"copy-webpack-plugin": "^6.4.1",
"cross-env": "^7.0.3",
"csstype": "^3.1.3",
"cypress": "^13.17.0",
"cypress-axe": "^1.7.0",
"deep-freeze": "0.0.1",
"eslint": "^8.39.0",
"eslint-plugin-deprecation": "^1.4.1",
"eslint-plugin-dspace-angular-html": "link:./lint/dist/src/rules/html",
"eslint-plugin-dspace-angular-ts": "link:./lint/dist/src/rules/ts",
"eslint-plugin-dspace-angular-html": "file:./lint/dist/src/rules/html",
"eslint-plugin-dspace-angular-ts": "file:./lint/dist/src/rules/ts",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-import-newlines": "^1.3.1",
"eslint-plugin-jsdoc": "^45.0.0",
@@ -177,7 +213,7 @@
"jasmine": "^3.8.0",
"jasmine-core": "^3.8.0",
"jasmine-marbles": "0.9.2",
"karma": "^6.4.2",
"karma": "^6.4.4",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage-istanbul-reporter": "~3.0.3",
"karma-jasmine": "~4.0.0",
@@ -185,23 +221,17 @@
"karma-mocha-reporter": "2.2.5",
"ng-mocks": "^14.13.5",
"ngx-mask": "14.2.4",
"nodemon": "^2.0.22",
"postcss": "^8.5",
"postcss-import": "^14.0.0",
"postcss-loader": "^4.0.3",
"postcss-preset-env": "^7.4.2",
"prop-types": "^15.8.1",
"react": "^16.14.0",
"react-copy-to-clipboard": "^5.1.0",
"react-dom": "^16.14.0",
"rimraf": "^3.0.2",
"sass": "~1.92.1",
"sass-loader": "^12.6.0",
"sass-resources-loader": "^2.2.5",
"ts-node": "^8.10.2",
"typescript": "~5.4.5",
"webpack": "5.101.0",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^5.2.2"
"webpack": "^5.54.0",
"webpack-cli": "^6.0.1"
}
}

View File

@@ -38,7 +38,7 @@ parseCliInput();
function parseCliInput() {
program
.option('-d, --output-dir <output-dir>', 'output dir when running script on all language files', projectRoot(LANGUAGE_FILES_LOCATION))
.option('-s, --source-dir <source-dir>', 'source dir of transalations to be merged')
.option('-s, --source-dir <source-dir>', 'source dir of translations to be merged')
.usage('(-s <source-dir> [-d <output-dir>])')
.parse(process.argv);

View File

@@ -20,12 +20,11 @@ import 'reflect-metadata';
/* eslint-disable import/no-namespace */
import * as morgan from 'morgan';
import * as express from 'express';
import express from 'express';
import * as ejs from 'ejs';
import * as compression from 'compression';
import * as expressStaticGzip from 'express-static-gzip';
import expressStaticGzip from 'express-static-gzip';
/* eslint-enable import/no-namespace */
import axios from 'axios';
import LRU from 'lru-cache';
import { isbot } from 'isbot';
import { createCertificate } from 'pem';
@@ -103,7 +102,7 @@ export function app() {
* If production mode is enabled in the environment file:
* - Enable Angular's production mode
* - Initialize caching of SSR rendered pages (if enabled in config.yml)
* - Enable compression for SSR reponses. See [compression](https://github.com/expressjs/compression)
* - Enable compression for SSR responses. See [compression](https://github.com/expressjs/compression)
*/
if (environment.production) {
enableProdMode();
@@ -269,6 +268,12 @@ function serverSideRender(req, res, next, sendToUser: boolean = true) {
],
})
.then((html) => {
// If headers were already sent, then do nothing else, it is probably a
// redirect response
if (res.headersSent) {
return;
}
if (hasValue(html)) {
// Replace REST URL with UI URL
if (environment.ssr.replaceRestUrl && REST_BASE_URL !== environment.rest.baseUrl) {
@@ -437,7 +442,7 @@ function checkCacheForRequest(cacheName: string, cache: LRU<string, any>, req, r
if (environment.cache.serverSide.debug) { console.log(`CACHE EXPIRED FOR ${key} in ${cacheName} cache. Re-rendering...`); }
// Update cached copy by rerendering server-side
// NOTE: In this scenario the currently cached copy will be returned to the current user.
// This re-render is peformed behind the scenes to update cached copy for next user.
// This re-render is performed behind the scenes to update cached copy for next user.
serverSideRender(req, res, next, false);
}
} else {
@@ -648,9 +653,9 @@ function isExcludedFromSsr(path: string, excludePathPattern: SsrExcludePatterns[
*/
function healthCheck(req, res) {
const baseUrl = `${REST_BASE_URL}${environment.actuators.endpointPath}`;
axios.get(baseUrl)
fetch(baseUrl)
.then((response) => {
res.status(response.status).send(response.data);
res.status(response.status).send(response);
})
.catch((error) => {
res.status(error.response.status).send({

View File

@@ -1,19 +1,13 @@
<ngb-accordion #acc="ngbAccordion" [activeIds]="'browse'">
<ngb-panel [id]="'browse'">
<ng-template ngbPanelHeader>
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" ngbPanelToggle (click)="acc.toggle('browse')"
data-test="browse">
<ng-template ngbPanelTitle>
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" (click)="acc.toggle('browse')"
data-test="browse">
<button type="button" class="btn btn-link p-0" (click)="$event.preventDefault()"
[attr.aria-expanded]="acc.isExpanded('browse')"
aria-controls="bulk-access-browse-panel-content">
[attr.aria-expanded]="acc.isExpanded('browse')"
aria-controls="bulk-access-browse-panel-content">
{{ 'admin.access-control.bulk-access-browse.header' | translate }}
</button>
<div class="text-right d-flex gap-2">
<div class="d-flex my-auto">
<span *ngIf="acc.isExpanded('browse')" class="fas fa-chevron-up fa-fw"></span>
<span *ngIf="!acc.isExpanded('browse')" class="fas fa-chevron-down fa-fw"></span>
</div>
</div>
</div>
</ng-template>
<ng-template ngbPanelContent>
@@ -22,11 +16,11 @@
<li [ngbNavItem]="'search'" role="presentation">
<a ngbNavLink>{{'admin.access-control.bulk-access-browse.search.header' | translate}}</a>
<ng-template ngbNavContent>
<div class="mx-n3">
<div class="bulk-access-search">
<ds-search [configuration]="'administrativeBulkAccess'"
[selectable]="true"
[selectionConfig]="{ repeatable: true, listId: listId }"
[showThumbnails]="false"></ds-search>
[selectable]="true"
[selectionConfig]="{ repeatable: true, listId: listId }"
[showThumbnails]="false"></ds-search>
</div>
</ng-template>
</li>
@@ -42,21 +36,25 @@
[showPaginator]="false"
(prev)="pagePrev()"
(next)="pageNext()">
<ul *ngIf="(objectsSelected$|async)?.hasSucceeded" class="list-unstyled ml-4">
<li *ngFor='let object of (objectsSelected$|async)?.payload?.page | paginate: { itemsPerPage: (paginationOptions$ | async).pageSize,
currentPage: (paginationOptions$ | async).currentPage, totalItems: (objectsSelected$|async)?.payload?.page.length }; let i = index; let last = last '
class="mt-4 mb-4 d-flex"
[attr.data-test]="'list-object' | dsBrowserOnly">
<ds-selectable-list-item-control [index]="i"
[object]="object"
[selectionConfig]="{ repeatable: true, listId: listId }"></ds-selectable-list-item-control>
<ds-listable-object-component-loader [listID]="listId"
[index]="i"
[object]="object"
[showThumbnails]="false"
[viewMode]="'list'"></ds-listable-object-component-loader>
</li>
</ul>
@if ((objectsSelected$|async)?.hasSucceeded) {
<ul class="list-unstyled ms-4">
@for (object of (objectsSelected$|async)?.payload?.page | paginate: { itemsPerPage: (paginationOptions$ | async).pageSize,
currentPage: (paginationOptions$ | async).currentPage, totalItems: (objectsSelected$|async)?.payload?.page.length }; track object; let i = $index; let last = $last) {
<li
class="mt-4 mb-4 d-flex"
[attr.data-test]="'list-object' | dsBrowserOnly">
<ds-selectable-list-item-control [index]="i"
[object]="object"
[selectionConfig]="{ repeatable: true, listId: listId }"></ds-selectable-list-item-control>
<ds-listable-object-component-loader [listID]="listId"
[index]="i"
[object]="object"
[showThumbnails]="false"
[viewMode]="'list'"></ds-listable-object-component-loader>
</li>
}
</ul>
}
</ds-pagination>
</ng-template>
</li>

View File

@@ -0,0 +1,4 @@
.bulk-access-search {
margin-right: calc(var(--bs-gutter-x, 1.5rem) / -2);
margin-left: calc(var(--bs-gutter-x, 1.5rem) / -2);
}

View File

@@ -1,8 +1,4 @@
import {
AsyncPipe,
NgForOf,
NgIf,
} from '@angular/common';
import { AsyncPipe } from '@angular/common';
import {
Component,
Input,
@@ -55,18 +51,16 @@ import { BrowserOnlyPipe } from '../../../shared/utils/browser-only.pipe';
},
],
imports: [
PaginationComponent,
AsyncPipe,
NgbAccordionModule,
TranslateModule,
NgIf,
NgbNavModule,
ThemedSearchComponent,
BrowserOnlyPipe,
NgForOf,
NgxPaginationModule,
SelectableListItemControlComponent,
ListableObjectComponentLoaderComponent,
NgbAccordionModule,
NgbNavModule,
NgxPaginationModule,
PaginationComponent,
SelectableListItemControlComponent,
ThemedSearchComponent,
TranslateModule,
],
standalone: true,
})

View File

@@ -7,7 +7,7 @@
<hr>
<div class="d-flex justify-content-end">
<button class="btn btn-outline-primary mr-3" (click)="reset()">
<button class="btn btn-outline-primary me-3" (click)="reset()">
{{ 'access-control-cancel' | translate }}
</button>
<button class="btn btn-primary" [dsBtnDisabled]="!canExport()" (click)="submit()">

View File

@@ -26,10 +26,10 @@ import { BulkAccessSettingsComponent } from './settings/bulk-access-settings.com
templateUrl: './bulk-access.component.html',
styleUrls: ['./bulk-access.component.scss'],
imports: [
TranslateModule,
BulkAccessSettingsComponent,
BulkAccessBrowseComponent,
BtnDisabledDirective,
BulkAccessBrowseComponent,
BulkAccessSettingsComponent,
TranslateModule,
],
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,

View File

@@ -1,17 +1,11 @@
<ngb-accordion #acc="ngbAccordion" [activeIds]="'settings'">
<ngb-panel [id]="'settings'">
<ng-template ngbPanelHeader>
<ng-template ngbPanelTitle>
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" ngbPanelToggle (click)="acc.toggle('settings')" data-test="settings">
<button type="button" class="btn btn-link p-0" (click)="$event.preventDefault()" [attr.aria-expanded]="acc.isExpanded('settings')"
aria-controls="bulk-access-settings-panel-content">
{{ 'admin.access-control.bulk-access-settings.header' | translate }}
</button>
<div class="text-right d-flex gap-2">
<div class="d-flex my-auto">
<span *ngIf="acc.isExpanded('settings')" class="fas fa-chevron-up fa-fw"></span>
<span *ngIf="!acc.isExpanded('settings')" class="fas fa-chevron-down fa-fw"></span>
</div>
</div>
</div>
</ng-template>
<ng-template ngbPanelContent>

View File

@@ -1,4 +1,4 @@
import { NgIf } from '@angular/common';
import {
Component,
ViewChild,
@@ -14,10 +14,9 @@ import { AccessControlFormContainerComponent } from '../../../shared/access-cont
styleUrls: ['./bulk-access-settings.component.scss'],
exportAs: 'dsBulkSettings',
imports: [
AccessControlFormContainerComponent,
NgbAccordionModule,
TranslateModule,
NgIf,
AccessControlFormContainerComponent,
],
standalone: true,
})

View File

@@ -5,10 +5,10 @@
<h1 id="header" class="pb-2">{{labelPrefix + 'head' | translate}}</h1>
<div>
<button class="mr-auto btn btn-success addEPerson-button"
[routerLink]="'create'">
<button class="me-auto btn btn-success addEPerson-button"
[routerLink]="'create'">
<i class="fas fa-plus"></i>
<span class="d-none d-sm-inline ml-1">{{labelPrefix + 'button.add' | translate}}</span>
<span class="d-none d-sm-inline ms-1">{{labelPrefix + 'button.add' | translate}}</span>
</button>
</div>
</div>
@@ -18,77 +18,84 @@
</h2>
<form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between">
<div>
<select name="scope" id="scope" formControlName="scope" class="form-control" aria-label="Search scope">
<select name="scope" id="scope" formControlName="scope" class="form-select" aria-label="Search scope">
<option value="metadata">{{labelPrefix + 'search.scope.metadata' | translate}}</option>
<option value="email">{{labelPrefix + 'search.scope.email' | translate}}</option>
</select>
</div>
<div class="flex-grow-1 mr-3 ml-3">
<div class="form-group input-group">
<div class="flex-grow-1 me-3 ms-3">
<div class="mb-3 input-group">
<input type="text" name="query" id="query" formControlName="query"
class="form-control" [attr.aria-label]="labelPrefix + 'search.placeholder' | translate"
[placeholder]="(labelPrefix + 'search.placeholder' | translate)">
class="form-control" [attr.aria-label]="labelPrefix + 'search.placeholder' | translate"
[placeholder]="(labelPrefix + 'search.placeholder' | translate)">
<span class="input-group-append">
<button type="submit" class="search-button btn btn-primary">
<i class="fas fa-search"></i> {{ labelPrefix + 'search.button' | translate }}
</button>
</span>
<button type="submit" class="search-button btn btn-primary">
<i class="fas fa-search"></i> {{ labelPrefix + 'search.button' | translate }}
</button>
</span>
</div>
</div>
<div>
<button (click)="clearFormAndResetResult();"
class="search-button btn btn-secondary">{{labelPrefix + 'button.see-all' | translate}}</button>
class="search-button btn btn-secondary">{{labelPrefix + 'button.see-all' | translate}}</button>
</div>
</form>
<ds-loading *ngIf="searching$ | async"></ds-loading>
<ds-pagination
*ngIf="(pageInfoState$ | async)?.totalElements > 0 && (searching$ | async) !== true"
[paginationOptions]="config"
[collectionSize]="(pageInfoState$ | async)?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="epeople" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col">{{labelPrefix + 'table.id' | translate}}</th>
<th scope="col">{{labelPrefix + 'table.name' | translate}}</th>
<th scope="col">{{labelPrefix + 'table.email' | translate}}</th>
<th>{{labelPrefix + 'table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let epersonDto of (ePeopleDto$ | async)?.page"
[ngClass]="{'table-primary' : (activeEPerson$ | async) === epersonDto.eperson}">
<td>{{epersonDto.eperson.id}}</td>
<td>{{ dsoNameService.getName(epersonDto.eperson) }}</td>
<td>{{epersonDto.eperson.email}}</td>
<td>
<div class="btn-group edit-field">
<button [routerLink]="getEditEPeoplePage(epersonDto.eperson.id)"
@if (searching$ | async) {
<ds-loading></ds-loading>
}
@if ((pageInfoState$ | async)?.totalElements > 0 && (searching$ | async) !== true) {
<ds-pagination
[paginationOptions]="config"
[collectionSize]="(pageInfoState$ | async)?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="epeople" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col">{{labelPrefix + 'table.id' | translate}}</th>
<th scope="col">{{labelPrefix + 'table.name' | translate}}</th>
<th scope="col">{{labelPrefix + 'table.email' | translate}}</th>
<th>{{labelPrefix + 'table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
@for (epersonDto of (ePeopleDto$ | async)?.page; track epersonDto) {
<tr
[ngClass]="{'table-primary' : (activeEPerson$ | async) === epersonDto.eperson}">
<td>{{epersonDto.eperson.id}}</td>
<td>{{ dsoNameService.getName(epersonDto.eperson) }}</td>
<td>{{epersonDto.eperson.email}}</td>
<td>
<div class="btn-group edit-field">
<button [routerLink]="getEditEPeoplePage(epersonDto.eperson.id)"
class="btn btn-outline-primary btn-sm access-control-editEPersonButton"
title="{{labelPrefix + 'table.edit.buttons.edit' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}">
<i class="fas fa-edit fa-fw"></i>
</button>
<button *ngIf="epersonDto.ableToDelete" (click)="deleteEPerson(epersonDto.eperson)"
class="delete-button btn btn-outline-danger btn-sm access-control-deleteEPersonButton"
title="{{labelPrefix + 'table.edit.buttons.remove' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}">
<i class="fas fa-trash-alt fa-fw"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
<i class="fas fa-edit fa-fw"></i>
</button>
@if (epersonDto.ableToDelete) {
<button (click)="deleteEPerson(epersonDto.eperson)"
class="delete-button btn btn-outline-danger btn-sm access-control-deleteEPersonButton"
title="{{labelPrefix + 'table.edit.buttons.remove' | translate: { name: dsoNameService.getName(epersonDto.eperson) } }}">
<i class="fas fa-trash-alt fa-fw"></i>
</button>
}
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</ds-pagination>
}
@if ((pageInfoState$ | async)?.totalElements === 0) {
<div class="alert alert-info w-100 mb-2" role="alert">
{{labelPrefix + 'no-items' | translate}}
</div>
</ds-pagination>
<div *ngIf="(pageInfoState$ | async)?.totalElements === 0" class="alert alert-info w-100 mb-2" role="alert">
{{labelPrefix + 'no-items' | translate}}
</div>
}
</div>
</div>
</div>

View File

@@ -27,7 +27,7 @@ import {
import { TranslateModule } from '@ngx-translate/core';
import {
Observable,
of as observableOf,
of,
} from 'rxjs';
import { AuthorizationDataService } from '../../core/data/feature-authorization/authorization-data.service';
@@ -85,7 +85,7 @@ describe('EPeopleRegistryComponent', () => {
}), this.allEpeople));
},
getActiveEPerson(): Observable<EPerson> {
return observableOf(this.activeEPerson);
return of(this.activeEPerson);
},
searchByScope(scope: string, query: string, options: FindListOptions = {}): Observable<RemoteData<PaginatedList<EPerson>>> {
if (scope === 'email') {
@@ -129,7 +129,7 @@ describe('EPeopleRegistryComponent', () => {
this.allEpeople = this.allEpeople.filter((ePerson2: EPerson) => {
return (ePerson2.uuid !== ePerson.uuid);
});
return observableOf(true);
return of(true);
},
editEPerson(ePerson: EPerson) {
this.activeEPerson = ePerson;
@@ -145,7 +145,7 @@ describe('EPeopleRegistryComponent', () => {
},
};
authorizationService = jasmine.createSpyObj('authorizationService', {
isAuthorized: observableOf(true),
isAuthorized: of(true),
});
builderService = getMockFormBuilderService();
@@ -180,7 +180,7 @@ describe('EPeopleRegistryComponent', () => {
fixture = TestBed.createComponent(EPeopleRegistryComponent);
component = fixture.componentInstance;
modalService = TestBed.inject(NgbModal);
spyOn(modalService, 'open').and.returnValue(Object.assign({ componentInstance: Object.assign({ response: observableOf(true) }) }));
spyOn(modalService, 'open').and.returnValue(Object.assign({ componentInstance: Object.assign({ response: of(true) }) }));
fixture.detectChanges();
});
@@ -261,7 +261,7 @@ describe('EPeopleRegistryComponent', () => {
it('should hide delete EPerson button when the isAuthorized returns false', () => {
spyOn(authorizationService, 'isAuthorized').and.returnValue(observableOf(false));
spyOn(authorizationService, 'isAuthorized').and.returnValue(of(false));
component.initialisePage();
fixture.detectChanges();

View File

@@ -1,8 +1,6 @@
import {
AsyncPipe,
NgClass,
NgForOf,
NgIf,
} from '@angular/common';
import {
Component,
@@ -69,16 +67,14 @@ import { EPersonFormComponent } from './eperson-form/eperson-form.component';
selector: 'ds-epeople-registry',
templateUrl: './epeople-registry.component.html',
imports: [
TranslateModule,
RouterModule,
AsyncPipe,
NgIf,
EPersonFormComponent,
ReactiveFormsModule,
ThemedLoadingComponent,
PaginationComponent,
NgClass,
NgForOf,
PaginationComponent,
ReactiveFormsModule,
RouterModule,
ThemedLoadingComponent,
TranslateModule,
],
standalone: true,
})

View File

@@ -2,97 +2,111 @@
<div class="group-form row">
<div class="col-12">
<div *ngIf="activeEPerson$ | async; then editHeader; else createHeader"></div>
<ng-template #createHeader>
<h1 class="border-bottom pb-2">{{messagePrefix + '.create' | translate}}</h1>
</ng-template>
<ng-template #editHeader>
@if (activeEPerson$ | async) {
<h1 class="border-bottom pb-2">{{messagePrefix + '.edit' | translate}}</h1>
</ng-template>
} @else {
<h1 class="border-bottom pb-2">{{messagePrefix + '.create' | translate}}</h1>
}
<ds-form [formId]="formId"
[formModel]="formModel"
[formGroup]="formGroup"
[formLayout]="formLayout"
[displayCancel]="false"
[submitLabel]="submitLabel"
(submitForm)="onSubmit()">
[formModel]="formModel"
[formGroup]="formGroup"
[formLayout]="formLayout"
[displayCancel]="false"
[submitLabel]="submitLabel"
(submitForm)="onSubmit()">
<div before class="btn-group">
<button (click)="onCancel()" type="button" class="btn btn-outline-secondary">
<i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}
</button>
</div>
<div *ngIf="displayResetPassword" between class="btn-group">
<button class="btn btn-primary" [dsBtnDisabled]="(canReset$ | async) !== true" type="button" (click)="resetPassword()">
<i class="fa fa-key"></i> {{'admin.access-control.epeople.actions.reset' | translate}}
@if (displayResetPassword) {
<div between class="btn-group">
<button class="btn btn-primary" [dsBtnDisabled]="(canReset$ | async) !== true" type="button" (click)="resetPassword()">
<i class="fa fa-key"></i> {{'admin.access-control.epeople.actions.reset' | translate}}
</button>
</div>
}
@if (canImpersonate$ | async) {
<div between class="btn-group">
@if (!isImpersonated) {
<button class="btn btn-primary" type="button" (click)="impersonate()">
<i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}}
</button>
}
@if (isImpersonated) {
<button class="btn btn-primary" type="button" (click)="stopImpersonating()">
<i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.stop-impersonating' | translate}}
</button>
}
</div>
}
@if (canDelete$ | async) {
<button after class="btn btn-danger delete-button" type="button" (click)="delete()">
<i class="fas fa-trash"></i> {{'admin.access-control.epeople.actions.delete' | translate}}
</button>
</div>
<div *ngIf="canImpersonate$ | async" between class="btn-group">
<button *ngIf="!isImpersonated" class="btn btn-primary" type="button" (click)="impersonate()">
<i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}}
</button>
<button *ngIf="isImpersonated" class="btn btn-primary" type="button" (click)="stopImpersonating()">
<i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.stop-impersonating' | translate}}
</button>
</div>
<button *ngIf="canDelete$ | async" after class="btn btn-danger delete-button" type="button" (click)="delete()">
<i class="fas fa-trash"></i> {{'admin.access-control.epeople.actions.delete' | translate}}
</button>
}
</ds-form>
<ds-loading [showMessage]="false" *ngIf="!formGroup"></ds-loading>
@if (!formGroup) {
<ds-loading [showMessage]="false"></ds-loading>
}
<div *ngIf="activeEPerson$ | async">
<h2>{{messagePrefix + '.groupsEPersonIsMemberOf' | translate}}</h2>
<ds-loading [showMessage]="false" *ngIf="groups$ | async | dsHasNoValue"></ds-loading>
<ds-pagination
*ngIf="(groups$ | async)?.payload?.totalElements > 0"
[paginationOptions]="config"
[collectionSize]="(groups$ | async)?.payload?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true"
(pageChange)="onPageChange($event)">
<div class="table-responsive">
<table id="groups" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let group of (groups$ | async)?.payload?.page">
<td class="align-middle">{{group.id}}</td>
<td class="align-middle">
<a (click)="groupsDataService.startEditingNewGroup(group)"
[routerLink]="[groupsDataService.getGroupEditPageRouterLink(group)]">
{{ dsoNameService.getName(group) }}
</a>
</td>
<td class="align-middle">
{{ dsoNameService.getName((group.object | async)?.payload) }}
</td>
</tr>
</tbody>
</table>
</div>
</ds-pagination>
<div *ngIf="(groups$ | async)?.payload?.totalElements === 0" class="alert alert-info w-100 mb-2" role="alert">
<div>{{messagePrefix + '.memberOfNoGroups' | translate}}</div>
<div>
<button [routerLink]="[groupsDataService.getGroupRegistryRouterLink()]"
class="btn btn-primary">{{messagePrefix + '.goToGroups' | translate}}</button>
</div>
@if (activeEPerson$ | async) {
<div>
<h2>{{messagePrefix + '.groupsEPersonIsMemberOf' | translate}}</h2>
@if (groups$ | async | dsHasNoValue) {
<ds-loading [showMessage]="false"></ds-loading>
}
@if ((groups$ | async)?.payload?.totalElements > 0) {
<ds-pagination
[paginationOptions]="config"
[collectionSize]="(groups$ | async)?.payload?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true"
(pageChange)="onPageChange($event)">
<div class="table-responsive">
<table id="groups" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th>
</tr>
</thead>
<tbody>
@for (group of (groups$ | async)?.payload?.page; track group) {
<tr>
<td class="align-middle">{{group.id}}</td>
<td class="align-middle">
<a (click)="groupsDataService.startEditingNewGroup(group)"
[routerLink]="[groupsDataService.getGroupEditPageRouterLink(group)]">
{{ dsoNameService.getName(group) }}
</a>
</td>
<td class="align-middle">
{{ dsoNameService.getName((group.object | async)?.payload) }}
</td>
</tr>
}
</tbody>
</table>
</div>
</ds-pagination>
}
@if ((groups$ | async)?.payload?.totalElements === 0) {
<div class="alert alert-info w-100 mb-2" role="alert">
<div>{{messagePrefix + '.memberOfNoGroups' | translate}}</div>
<div>
<button [routerLink]="[groupsDataService.getGroupRegistryRouterLink()]"
class="btn btn-primary">{{messagePrefix + '.goToGroups' | translate}}</button>
</div>
</div>
}
</div>
</div>
}
</div>
</div>
</div>

View File

@@ -25,7 +25,7 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { TranslateModule } from '@ngx-translate/core';
import {
Observable,
of as observableOf,
of,
} from 'rxjs';
import { AuthService } from '../../../core/auth/auth.service';
@@ -91,7 +91,7 @@ describe('EPersonFormComponent', () => {
activeEPerson: null,
allEpeople: mockEPeople,
getActiveEPerson(): Observable<EPerson> {
return observableOf(this.activeEPerson);
return of(this.activeEPerson);
},
searchByScope(scope: string, query: string, options: FindListOptions = {}): Observable<RemoteData<PaginatedList<EPerson>>> {
if (scope === 'email') {
@@ -115,7 +115,7 @@ describe('EPersonFormComponent', () => {
this.allEpeople = this.allEpeople.filter((ePerson2: EPerson) => {
return (ePerson2.uuid !== ePerson.uuid);
});
return observableOf(true);
return of(true);
},
create(ePerson: EPerson): Observable<RemoteData<EPerson>> {
this.allEpeople = [...this.allEpeople, ePerson];
@@ -210,7 +210,7 @@ describe('EPersonFormComponent', () => {
});
authService = new AuthServiceStub();
authorizationService = jasmine.createSpyObj('authorizationService', {
isAuthorized: observableOf(true),
isAuthorized: of(true),
});
groupsDataService = jasmine.createSpyObj('groupsDataService', {
@@ -389,7 +389,7 @@ describe('EPersonFormComponent', () => {
});
describe('without active EPerson', () => {
beforeEach(() => {
spyOn(ePersonDataServiceStub, 'getActiveEPerson').and.returnValue(observableOf(undefined));
spyOn(ePersonDataServiceStub, 'getActiveEPerson').and.returnValue(of(undefined));
component.onSubmit();
fixture.detectChanges();
});
@@ -429,7 +429,7 @@ describe('EPersonFormComponent', () => {
},
},
});
spyOn(ePersonDataServiceStub, 'getActiveEPerson').and.returnValue(observableOf(expectedWithId));
spyOn(ePersonDataServiceStub, 'getActiveEPerson').and.returnValue(of(expectedWithId));
component.ngOnInit();
component.onSubmit();
fixture.detectChanges();
@@ -485,10 +485,10 @@ describe('EPersonFormComponent', () => {
spyOn(authService, 'impersonate').and.callThrough();
eperson = EPersonMock;
component.epersonInitial = eperson;
component.canDelete$ = observableOf(true);
spyOn(component.epersonService, 'getActiveEPerson').and.returnValue(observableOf(eperson));
component.canDelete$ = of(true);
spyOn(component.epersonService, 'getActiveEPerson').and.returnValue(of(eperson));
modalService = (component as any).modalService;
spyOn(modalService, 'open').and.returnValue(Object.assign({ componentInstance: Object.assign({ response: observableOf(true) }) }));
spyOn(modalService, 'open').and.returnValue(Object.assign({ componentInstance: Object.assign({ response: of(true) }) }));
component.ngOnInit();
fixture.detectChanges();
});
@@ -499,7 +499,7 @@ describe('EPersonFormComponent', () => {
});
it('the delete button should be hidden if the ePerson cannot be deleted', () => {
component.canDelete$ = observableOf(false);
component.canDelete$ = of(false);
fixture.detectChanges();
const deleteButton = fixture.debugElement.query(By.css('.delete-button'));
expect(deleteButton).toBeNull();

View File

@@ -1,8 +1,4 @@
import {
AsyncPipe,
NgFor,
NgIf,
} from '@angular/common';
import { AsyncPipe } from '@angular/common';
import {
ChangeDetectorRef,
Component,
@@ -31,7 +27,7 @@ import {
import {
combineLatest as observableCombineLatest,
Observable,
of as observableOf,
of,
Subscription,
} from 'rxjs';
import {
@@ -82,16 +78,14 @@ import { ValidateEmailNotTaken } from './validators/email-taken.validator';
selector: 'ds-eperson-form',
templateUrl: './eperson-form.component.html',
imports: [
FormComponent,
NgIf,
NgFor,
AsyncPipe,
TranslateModule,
ThemedLoadingComponent,
BtnDisabledDirective,
FormComponent,
HasNoValuePipe,
PaginationComponent,
RouterLink,
HasNoValuePipe,
BtnDisabledDirective,
ThemedLoadingComponent,
TranslateModule,
],
standalone: true,
})
@@ -363,7 +357,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy {
this.groups$ = this.activeEPerson$.pipe(
switchMap((eperson) => {
return observableCombineLatest([observableOf(eperson), this.paginationService.getFindListOptions(this.config.id, {
return observableCombineLatest([of(eperson), this.paginationService.getFindListOptions(this.config.id, {
currentPage: 1,
elementsPerPage: this.config.pageSize,
})]);
@@ -372,7 +366,7 @@ export class EPersonFormComponent implements OnInit, OnDestroy {
if (eperson != null) {
return this.groupsDataService.findListByHref(eperson._links.groups.href, findListOptions, true, true, followLink('object'));
}
return observableOf(undefined);
return of(undefined);
}),
);
@@ -385,14 +379,14 @@ export class EPersonFormComponent implements OnInit, OnDestroy {
if (hasValue(eperson)) {
return this.authorizationService.isAuthorized(FeatureID.LoginOnBehalfOf, eperson.self);
} else {
return observableOf(false);
return of(false);
}
}),
);
this.canDelete$ = this.activeEPerson$.pipe(
switchMap((eperson) => this.authorizationService.isAuthorized(FeatureID.CanDelete, hasValue(eperson) ? eperson.self : undefined)),
);
this.canReset$ = observableOf(true);
this.canReset$ = of(true);
}
/**
@@ -546,16 +540,16 @@ export class EPersonFormComponent implements OnInit, OnDestroy {
take(1),
switchMap((confirm: boolean) => {
if (confirm && hasValue(eperson.id)) {
this.canDelete$ = observableOf(false);
this.canDelete$ = of(false);
return this.epersonService.deleteEPerson(eperson).pipe(
getFirstCompletedRemoteData(),
map((restResponse: RemoteData<NoContent>) => ({ restResponse, eperson })),
);
} else {
return observableOf(null);
return of(null);
}
}),
finalize(() => this.canDelete$ = observableOf(true)),
finalize(() => this.canDelete$ = of(true)),
);
}),
).subscribe(({ restResponse, eperson }: { restResponse: RemoteData<NoContent> | null, eperson: EPerson }) => {

View File

@@ -2,13 +2,7 @@
<div class="group-form row">
<div class="col-12">
<div *ngIf="activeGroup$ | async; then editHeader; else createHeader"></div>
<ng-template #createHeader>
<h1 class="border-bottom pb-2">{{messagePrefix + '.head.create' | translate}}</h1>
</ng-template>
<ng-template #editHeader>
@if (activeGroup$ | async) {
<h1 class="border-bottom pb-2">
<span
*dsContextHelp="{
@@ -17,47 +11,61 @@
iconPlacement: 'right',
tooltipPlacement: ['right', 'bottom']
}"
>
>
{{messagePrefix + '.head.edit' | translate}}
</span>
</h1>
</ng-template>
} @else {
<h1 class="border-bottom pb-2">{{messagePrefix + '.head.create' | translate}}</h1>
}
<ng-container *ngIf="(activeGroup$ | async) as groupBeingEdited">
<ds-alert *ngIf="groupBeingEdited?.permanent" [type]="AlertType.Warning"
[content]="messagePrefix + '.alert.permanent'"></ds-alert>
<ng-container *ngIf="(activeGroupLinkedDSO$ | async) as activeGroupLinkedDSO">
<ds-alert *ngIf="(canEdit$ | async) !== true" [type]="AlertType.Warning"
[content]="(messagePrefix + '.alert.workflowGroup' | translate:{ name: dsoNameService.getName(activeGroupLinkedDSO), comcol: activeGroupLinkedDSO.type, comcolEditRolesRoute: (linkedEditRolesRoute$ | async) })">
</ds-alert>
</ng-container>
</ng-container>
@if ((activeGroup$ | async); as groupBeingEdited) {
@if (groupBeingEdited?.permanent) {
<ds-alert [type]="AlertType.Warning"
[content]="messagePrefix + '.alert.permanent'"></ds-alert>
}
@if ((activeGroupLinkedDSO$ | async); as activeGroupLinkedDSO) {
@if ((canEdit$ | async) !== true) {
<ds-alert [type]="AlertType.Warning"
[content]="(messagePrefix + '.alert.workflowGroup' | translate:{ name: dsoNameService.getName(activeGroupLinkedDSO), comcol: activeGroupLinkedDSO.type, comcolEditRolesRoute: (linkedEditRolesRoute$ | async) })">
</ds-alert>
}
}
}
<ds-form [formId]="formId"
[formModel]="formModel"
[formGroup]="formGroup"
[formLayout]="formLayout"
[displayCancel]="false"
(submitForm)="onSubmit()">
[formModel]="formModel"
[formGroup]="formGroup"
[formLayout]="formLayout"
[displayCancel]="false"
(submitForm)="onSubmit()">
<div before class="btn-group">
<button (click)="onCancel()" type="button"
class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}</button>
</div>
<div after *ngIf="(canEdit$ | async) && !(activeGroup$ | async)?.permanent" class="btn-group">
<button (click)="delete()" class="btn btn-danger delete-button" type="button">
<i class="fa fa-trash"></i> {{ messagePrefix + '.actions.delete' | translate}}
</button>
</div>
</ds-form>
class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}</button>
</div>
@if ((canEdit$ | async) && !(activeGroup$ | async)?.permanent) {
<div after class="btn-group">
<button (click)="delete()" class="btn btn-danger delete-button" type="button">
<i class="fa fa-trash"></i> {{ messagePrefix + '.actions.delete' | translate}}
</button>
</div>
}
</ds-form>
<ng-container *ngIf="(activeGroup$ | async) as groupBeingEdited">
<div class="mb-5">
<ds-members-list *ngIf="groupBeingEdited !== undefined"
[messagePrefix]="messagePrefix + '.members-list'"></ds-members-list>
</div>
<ds-subgroups-list *ngIf="groupBeingEdited !== undefined"
[messagePrefix]="messagePrefix + '.subgroups-list'"></ds-subgroups-list>
</ng-container>
@if ((activeGroup$ | async); as groupBeingEdited) {
<div class="mb-5">
@if (groupBeingEdited !== undefined) {
<ds-members-list
[messagePrefix]="messagePrefix + '.members-list'"></ds-members-list>
}
</div>
@if (groupBeingEdited !== undefined) {
<ds-subgroups-list
[messagePrefix]="messagePrefix + '.subgroups-list'"></ds-subgroups-list>
}
}
</div>
</div>
</div>
</div>

View File

@@ -27,7 +27,7 @@ import { TranslateModule } from '@ngx-translate/core';
import { Operation } from 'fast-json-patch';
import {
Observable,
of as observableOf,
of,
} from 'rxjs';
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
@@ -116,7 +116,7 @@ describe('GroupFormComponent', () => {
activeGroup: null,
createdGroup: null,
getActiveGroup(): Observable<Group> {
return observableOf(this.activeGroup);
return of(this.activeGroup);
},
getGroupRegistryRouterLink(): string {
return '/access-control/groups';
@@ -137,7 +137,7 @@ describe('GroupFormComponent', () => {
this.activeGroup = null;
},
findById(id: string) {
return observableOf({ payload: null, hasSucceeded: true });
return of({ payload: null, hasSucceeded: true });
},
findByHref(href: string) {
return createSuccessfulRemoteDataObject$(this.createdGroup);
@@ -164,7 +164,7 @@ describe('GroupFormComponent', () => {
},
};
authorizationService = jasmine.createSpyObj('authorizationService', {
isAuthorized: observableOf(true),
isAuthorized: of(true),
});
dsoDataServiceStub = {
findByHref(href: string): Observable<RemoteData<DSpaceObject>> {
@@ -330,7 +330,7 @@ describe('GroupFormComponent', () => {
},
},
});
spyOn(groupsDataServiceStub, 'getActiveGroup').and.returnValue(observableOf(expected));
spyOn(groupsDataServiceStub, 'getActiveGroup').and.returnValue(of(expected));
spyOn(groupsDataServiceStub, 'patch').and.returnValue(createSuccessfulRemoteDataObject$(expected2));
component.ngOnInit();
});
@@ -417,7 +417,7 @@ describe('GroupFormComponent', () => {
},
});
spyOn(component.submitForm, 'emit');
spyOn(dsoDataServiceStub, 'findByHref').and.returnValue(observableOf(expected));
spyOn(dsoDataServiceStub, 'findByHref').and.returnValue(of(expected));
fixture.detectChanges();
component.initialisePage();
@@ -471,11 +471,11 @@ describe('GroupFormComponent', () => {
beforeEach(async () => {
spyOn(groupsDataServiceStub, 'delete').and.callThrough();
component.activeGroup$ = observableOf({
component.activeGroup$ = of({
id: 'active-group',
permanent: false,
} as Group);
component.canEdit$ = observableOf(true);
component.canEdit$ = of(true);
component.initialisePage();

View File

@@ -1,7 +1,4 @@
import {
AsyncPipe,
NgIf,
} from '@angular/common';
import { AsyncPipe } from '@angular/common';
import {
ChangeDetectorRef,
Component,
@@ -90,14 +87,13 @@ import { ValidateGroupExists } from './validators/group-exists.validator';
selector: 'ds-group-form',
templateUrl: './group-form.component.html',
imports: [
FormComponent,
AlertComponent,
NgIf,
AsyncPipe,
TranslateModule,
ContextHelpDirective,
FormComponent,
MembersListComponent,
SubgroupsListComponent,
TranslateModule,
],
standalone: true,
})
@@ -504,7 +500,7 @@ export class GroupFormComponent implements OnInit, OnDestroy {
this.groupDataService.cancelEditGroup();
this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe());
if (hasValue(this.groupNameValueChangeSubscribe)) {
if ( hasValue(this.groupNameValueChangeSubscribe) ) {
this.groupNameValueChangeSubscribe.unsubscribe();
}

View File

@@ -3,63 +3,70 @@
<h3>{{messagePrefix + '.headMembers' | translate}}</h3>
<ds-pagination *ngIf="(ePeopleMembersOfGroup | async)?.totalElements > 0"
[paginationOptions]="config"
[collectionSize]="(ePeopleMembersOfGroup | async)?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
@if ((ePeopleMembersOfGroup | async)?.totalElements > 0) {
<ds-pagination
[paginationOptions]="config"
[collectionSize]="(ePeopleMembersOfGroup | async)?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="ePeopleMembersOfGroup" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.identity' | translate}}</th>
<th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
@for (epersonDTO of (ePeopleMembersOfGroup | async)?.page; track epersonDTO) {
<tr>
<td class="align-middle">{{epersonDTO.eperson.id}}</td>
<td class="align-middle">
<a [routerLink]="getEPersonEditRoute(epersonDTO.eperson.id)">
{{ dsoNameService.getName(epersonDTO.eperson) }}
</a>
</td>
<td class="align-middle">
{{messagePrefix + '.table.email' | translate}}: {{ epersonDTO.eperson.email ? epersonDTO.eperson.email : '-' }}<br/>
{{messagePrefix + '.table.netid' | translate}}: {{ epersonDTO.eperson.netid ? epersonDTO.eperson.netid : '-' }}
</td>
<td class="align-middle">
<div class="btn-group edit-field">
@if (epersonDTO.ableToDelete) {
<button (click)="deleteMemberFromGroup(epersonDTO.eperson)"
[dsBtnDisabled]="actionConfig.remove.disabled"
[ngClass]="['btn btn-sm', actionConfig.remove.css]"
title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(epersonDTO.eperson) } }}">
<i [ngClass]="actionConfig.remove.icon"></i>
</button>
}
@if (!epersonDTO.ableToDelete) {
<button
(click)="addMemberToGroup(epersonDTO.eperson)"
[dsBtnDisabled]="actionConfig.add.disabled"
[ngClass]="['btn btn-sm', actionConfig.add.css]"
title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(epersonDTO.eperson) } }}">
<i [ngClass]="actionConfig.add.icon"></i>
</button>
}
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</ds-pagination>
}
<div class="table-responsive">
<table id="ePeopleMembersOfGroup" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.identity' | translate}}</th>
<th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let epersonDTO of (ePeopleMembersOfGroup | async)?.page">
<td class="align-middle">{{epersonDTO.eperson.id}}</td>
<td class="align-middle">
<a [routerLink]="getEPersonEditRoute(epersonDTO.eperson.id)">
{{ dsoNameService.getName(epersonDTO.eperson) }}
</a>
</td>
<td class="align-middle">
{{messagePrefix + '.table.email' | translate}}: {{ epersonDTO.eperson.email ? epersonDTO.eperson.email : '-' }}<br/>
{{messagePrefix + '.table.netid' | translate}}: {{ epersonDTO.eperson.netid ? epersonDTO.eperson.netid : '-' }}
</td>
<td class="align-middle">
<div class="btn-group edit-field">
<button (click)="deleteMemberFromGroup(epersonDTO.eperson)"
*ngIf="epersonDTO.ableToDelete"
[dsBtnDisabled]="actionConfig.remove.disabled"
[ngClass]="['btn btn-sm', actionConfig.remove.css]"
title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(epersonDTO.eperson) } }}">
<i [ngClass]="actionConfig.remove.icon"></i>
</button>
<button *ngIf="!epersonDTO.ableToDelete"
(click)="addMemberToGroup(epersonDTO.eperson)"
[dsBtnDisabled]="actionConfig.add.disabled"
[ngClass]="['btn btn-sm', actionConfig.add.css]"
title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(epersonDTO.eperson) } }}">
<i [ngClass]="actionConfig.add.icon"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
@if ((ePeopleMembersOfGroup | async) === undefined || (ePeopleMembersOfGroup | async)?.totalElements === 0) {
<div class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-members-yet' | translate}}
</div>
</ds-pagination>
<div *ngIf="(ePeopleMembersOfGroup | async) === undefined || (ePeopleMembersOfGroup | async)?.totalElements === 0" class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-members-yet' | translate}}
</div>
}
<h3 id="search" class="border-bottom pb-2">
<span
@@ -69,77 +76,81 @@
iconPlacement: 'right',
tooltipPlacement: ['top', 'right', 'bottom']
}"
>
>
{{messagePrefix + '.search.head' | translate}}
</span>
</h3>
<form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between">
<div class="flex-grow-1 mr-3">
<div class="form-group input-group mr-3">
<div class="flex-grow-1 me-3">
<div class="mb-3 input-group me-3">
<input type="text" name="query" id="query" formControlName="query"
class="form-control" aria-label="Search input">
class="form-control" aria-label="Search input">
<span class="input-group-append">
<button type="submit" class="search-button btn btn-primary">
<i class="fas fa-search"></i> {{ messagePrefix + '.search.button' | translate }}</button>
</span>
<button type="submit" class="search-button btn btn-primary">
<i class="fas fa-search"></i> {{ messagePrefix + '.search.button' | translate }}</button>
</span>
</div>
</div>
</div>
<div>
<button (click)="clearFormAndResetResult();"
class="btn btn-secondary">{{messagePrefix + '.button.see-all' | translate}}</button>
</div>
</form>
<div>
<button (click)="clearFormAndResetResult();"
class="btn btn-secondary">{{messagePrefix + '.button.see-all' | translate}}</button>
</div>
</form>
<ds-pagination *ngIf="(ePeopleSearch | async)?.totalElements > 0"
[paginationOptions]="configSearch"
[collectionSize]="(ePeopleSearch | async)?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
@if ((ePeopleSearch | async)?.totalElements > 0) {
<ds-pagination
[paginationOptions]="configSearch"
[collectionSize]="(ePeopleSearch | async)?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="epersonsSearch" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.identity' | translate}}</th>
<th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
@for (eperson of (ePeopleSearch | async)?.page; track eperson) {
<tr>
<td class="align-middle">{{eperson.id}}</td>
<td class="align-middle">
<a [routerLink]="getEPersonEditRoute(eperson.id)">
{{ dsoNameService.getName(eperson) }}
</a>
</td>
<td class="align-middle">
{{messagePrefix + '.table.email' | translate}}: {{ eperson.email ? eperson.email : '-' }}<br/>
{{messagePrefix + '.table.netid' | translate}}: {{ eperson.netid ? eperson.netid : '-' }}
</td>
<td class="align-middle">
<div class="btn-group edit-field">
<button (click)="addMemberToGroup(eperson)"
[dsBtnDisabled]="actionConfig.add.disabled"
[ngClass]="['btn btn-sm', actionConfig.add.css]"
title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(eperson) } }}">
<i [ngClass]="actionConfig.add.icon"></i>
</button>
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</ds-pagination>
}
<div class="table-responsive">
<table id="epersonsSearch" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.identity' | translate}}</th>
<th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let eperson of (ePeopleSearch | async)?.page">
<td class="align-middle">{{eperson.id}}</td>
<td class="align-middle">
<a [routerLink]="getEPersonEditRoute(eperson.id)">
{{ dsoNameService.getName(eperson) }}
</a>
</td>
<td class="align-middle">
{{messagePrefix + '.table.email' | translate}}: {{ eperson.email ? eperson.email : '-' }}<br/>
{{messagePrefix + '.table.netid' | translate}}: {{ eperson.netid ? eperson.netid : '-' }}
</td>
<td class="align-middle">
<div class="btn-group edit-field">
<button (click)="addMemberToGroup(eperson)"
[dsBtnDisabled]="actionConfig.add.disabled"
[ngClass]="['btn btn-sm', actionConfig.add.css]"
title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(eperson) } }}">
<i [ngClass]="actionConfig.add.icon"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@if ((ePeopleSearch | async)?.totalElements === 0 && searchDone) {
<div
class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-items' | translate}}
</div>
}
</ds-pagination>
<div *ngIf="(ePeopleSearch | async)?.totalElements === 0 && searchDone"
class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-items' | translate}}
</div>
</ng-container>
</ng-container>

View File

@@ -32,7 +32,7 @@ import {
} from '@ngx-translate/core';
import {
Observable,
of as observableOf,
of,
} from 'rxjs';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
@@ -113,7 +113,7 @@ describe('MembersListComponent', () => {
epersonMembers: epersonMembers,
epersonNonMembers: epersonNonMembers,
getActiveGroup(): Observable<Group> {
return observableOf(activeGroup);
return of(activeGroup);
},
getEPersonMembers() {
return this.epersonMembers;
@@ -127,7 +127,7 @@ describe('MembersListComponent', () => {
this.epersonNonMembers.splice(index, 1);
}
});
return observableOf(new RestResponse(true, 200, 'Success'));
return of(new RestResponse(true, 200, 'Success'));
},
clearGroupsRequests() {
// empty
@@ -147,7 +147,7 @@ describe('MembersListComponent', () => {
});
// Add eperson to list of non-members
this.epersonNonMembers = [...this.epersonNonMembers, epersonToDelete];
return observableOf(new RestResponse(true, 200, 'Success'));
return of(new RestResponse(true, 200, 'Success'));
},
};
builderService = getMockFormBuilderService();

View File

@@ -1,8 +1,6 @@
import {
AsyncPipe,
NgClass,
NgForOf,
NgIf,
} from '@angular/common';
import {
Component,
@@ -27,7 +25,7 @@ import {
combineLatest as observableCombineLatest,
Observable,
ObservedValueOf,
of as observableOf,
of,
Subscription,
} from 'rxjs';
import {
@@ -105,16 +103,14 @@ export interface EPersonListActionConfig {
selector: 'ds-members-list',
templateUrl: './members-list.component.html',
imports: [
TranslateModule,
ContextHelpDirective,
ReactiveFormsModule,
PaginationComponent,
NgIf,
AsyncPipe,
RouterLink,
NgClass,
NgForOf,
BtnDisabledDirective,
ContextHelpDirective,
NgClass,
PaginationComponent,
ReactiveFormsModule,
RouterLink,
TranslateModule,
],
standalone: true,
})
@@ -264,7 +260,7 @@ export class MembersListComponent implements OnInit, OnDestroy {
* @param possibleMember EPerson that is a possible member (being tested) of the group currently being edited
*/
isMemberOfGroup(possibleMember: EPerson): Observable<boolean> {
return observableOf(true);
return of(true);
}
/**

View File

@@ -3,51 +3,56 @@
<h4>{{messagePrefix + '.headSubgroups' | translate}}</h4>
<ds-pagination *ngIf="(subGroups$ | async)?.payload?.totalElements > 0"
[paginationOptions]="config"
[collectionSize]="(subGroups$ | async)?.payload?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="subgroupsOfGroup" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th>
<th>{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let group of (subGroups$ | async)?.payload?.page">
<td class="align-middle">{{group.id}}</td>
<td class="align-middle">
<a (click)="groupDataService.startEditingNewGroup(group)"
[routerLink]="[groupDataService.getGroupEditPageRouterLink(group)]">
{{ dsoNameService.getName(group) }}
</a>
</td>
<td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload)}}</td>
<td class="align-middle">
<div class="btn-group edit-field">
<button (click)="deleteSubgroupFromGroup(group)"
@if ((subGroups$ | async)?.payload?.totalElements > 0) {
<ds-pagination
[paginationOptions]="config"
[collectionSize]="(subGroups$ | async)?.payload?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="subgroupsOfGroup" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th>
<th>{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
@for (group of (subGroups$ | async)?.payload?.page; track group) {
<tr>
<td class="align-middle">{{group.id}}</td>
<td class="align-middle">
<a (click)="groupDataService.startEditingNewGroup(group)"
[routerLink]="[groupDataService.getGroupEditPageRouterLink(group)]">
{{ dsoNameService.getName(group) }}
</a>
</td>
<td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload)}}</td>
<td class="align-middle">
<div class="btn-group edit-field">
<button (click)="deleteSubgroupFromGroup(group)"
class="btn btn-outline-danger btn-sm deleteButton"
title="{{messagePrefix + '.table.edit.buttons.remove' | translate: { name: dsoNameService.getName(group) } }}">
<i class="fas fa-trash-alt fa-fw"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</ds-pagination>
<i class="fas fa-trash-alt fa-fw"></i>
</button>
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</ds-pagination>
}
<div *ngIf="(subGroups$ | async)?.payload?.totalElements === 0" class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-subgroups-yet' | translate}}
</div>
@if ((subGroups$ | async)?.payload?.totalElements === 0) {
<div class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-subgroups-yet' | translate}}
</div>
}
<h4 id="search" class="border-bottom pb-2">
<span *dsContextHelp="{
@@ -56,75 +61,80 @@
iconPlacement: 'right',
tooltipPlacement: ['top', 'right', 'bottom']
}"
>
>
{{messagePrefix + '.search.head' | translate}}
</span>
</h4>
<form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between">
<div class="flex-grow-1 mr-3">
<div class="form-group input-group mr-3">
<div class="flex-grow-1 me-3">
<div class="mb-3 input-group me-3">
<input type="text" name="query" id="query" formControlName="query"
class="form-control" aria-label="Search input">
class="form-control" aria-label="Search input">
<span class="input-group-append">
<button type="submit" class="search-button btn btn-primary">
<i class="fas fa-search"></i> {{ messagePrefix + '.search.button' | translate }}
</button>
<button type="submit" class="search-button btn btn-primary">
<i class="fas fa-search"></i> {{ messagePrefix + '.search.button' | translate }}
</button>
</span>
</div>
</div>
<div>
<button (click)="clearFormAndResetResult();" class="btn btn-secondary float-right">
<button (click)="clearFormAndResetResult();" class="btn btn-secondary float-end">
{{messagePrefix + '.button.see-all' | translate}}
</button>
</div>
</form>
<ds-pagination *ngIf="(searchResults$ | async)?.payload?.totalElements > 0"
[paginationOptions]="configSearch"
[collectionSize]="(searchResults$ | async)?.payload?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="groupsSearch" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th>
<th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let group of (searchResults$ | async)?.payload?.page">
<td class="align-middle">{{group.id}}</td>
<td class="align-middle">
<a (click)="groupDataService.startEditingNewGroup(group)"
[routerLink]="[groupDataService.getGroupEditPageRouterLink(group)]">
{{ dsoNameService.getName(group) }}
</a>
</td>
<td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload) }}</td>
<td class="align-middle">
<div class="btn-group edit-field">
<button (click)="addSubgroupToGroup(group)"
@if ((searchResults$ | async)?.payload?.totalElements > 0) {
<ds-pagination
[paginationOptions]="configSearch"
[collectionSize]="(searchResults$ | async)?.payload?.totalElements"
[hideGear]="true"
[hidePagerWhenSinglePage]="true">
<div class="table-responsive">
<table id="groupsSearch" class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col" class="align-middle">{{messagePrefix + '.table.id' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.name' | translate}}</th>
<th scope="col" class="align-middle">{{messagePrefix + '.table.collectionOrCommunity' | translate}}</th>
<th class="align-middle">{{messagePrefix + '.table.edit' | translate}}</th>
</tr>
</thead>
<tbody>
@for (group of (searchResults$ | async)?.payload?.page; track group) {
<tr>
<td class="align-middle">{{group.id}}</td>
<td class="align-middle">
<a (click)="groupDataService.startEditingNewGroup(group)"
[routerLink]="[groupDataService.getGroupEditPageRouterLink(group)]">
{{ dsoNameService.getName(group) }}
</a>
</td>
<td class="align-middle">{{ dsoNameService.getName((group.object | async)?.payload) }}</td>
<td class="align-middle">
<div class="btn-group edit-field">
<button (click)="addSubgroupToGroup(group)"
class="btn btn-outline-primary btn-sm addButton"
title="{{messagePrefix + '.table.edit.buttons.add' | translate: { name: dsoNameService.getName(group) } }}">
<i class="fas fa-plus fa-fw"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</ds-pagination>
<i class="fas fa-plus fa-fw"></i>
</button>
</div>
</td>
</tr>
}
</tbody>
</table>
</div>
</ds-pagination>
}
<div *ngIf="(searchResults$ | async)?.payload?.totalElements === 0 && searchDone" class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-items' | translate}}
</div>
@if ((searchResults$ | async)?.payload?.totalElements === 0 && searchDone) {
<div class="alert alert-info w-100 mb-2"
role="alert">
{{messagePrefix + '.no-items' | translate}}
</div>
}
</ng-container>

View File

@@ -31,7 +31,7 @@ import {
} from '@ngx-translate/core';
import {
Observable,
of as observableOf,
of,
} from 'rxjs';
import { EPersonMock2 } from 'src/app/shared/testing/eperson.mock';
@@ -108,7 +108,7 @@ describe('SubgroupsListComponent', () => {
subgroups: subgroups,
groupNonMembers: groupNonMembers,
getActiveGroup(): Observable<Group> {
return observableOf(this.activeGroup);
return of(this.activeGroup);
},
getSubgroups(): Group {
return this.subgroups;
@@ -138,7 +138,7 @@ describe('SubgroupsListComponent', () => {
this.groupNonMembers.splice(index, 1);
}
});
return observableOf(new RestResponse(true, 200, 'Success'));
return of(new RestResponse(true, 200, 'Success'));
},
clearGroupsRequests() {
// empty
@@ -155,7 +155,7 @@ describe('SubgroupsListComponent', () => {
});
// Add group to list of non-members
this.groupNonMembers = [...this.groupNonMembers, subgroupToDelete];
return observableOf(new RestResponse(true, 200, 'Success'));
return of(new RestResponse(true, 200, 'Success'));
},
};
routerStub = new RouterMock();

View File

@@ -1,8 +1,4 @@
import {
AsyncPipe,
NgForOf,
NgIf,
} from '@angular/common';
import { AsyncPipe } from '@angular/common';
import {
Component,
Input,
@@ -63,14 +59,12 @@ enum SubKey {
selector: 'ds-subgroups-list',
templateUrl: './subgroups-list.component.html',
imports: [
RouterLink,
AsyncPipe,
NgForOf,
ContextHelpDirective,
TranslateModule,
ReactiveFormsModule,
PaginationComponent,
NgIf,
ReactiveFormsModule,
RouterLink,
TranslateModule,
],
standalone: true,
})

View File

@@ -9,7 +9,7 @@ import {
} from '@angular/router';
import {
Observable,
of as observableOf,
of,
} from 'rxjs';
import { AuthService } from '../../core/auth/auth.service';
@@ -37,7 +37,7 @@ describe('GroupPageGuard', () => {
function init() {
halEndpointService = jasmine.createSpyObj(['getEndpoint']);
( halEndpointService as any ).getEndpoint.and.returnValue(observableOf(groupsEndpointUrl));
( halEndpointService as any ).getEndpoint.and.returnValue(of(groupsEndpointUrl));
authorizationService = jasmine.createSpyObj(['isAuthorized']);
// NOTE: value is set in beforeEach
@@ -46,7 +46,7 @@ describe('GroupPageGuard', () => {
( router as any ).parseUrl.and.returnValue = {};
authService = jasmine.createSpyObj(['isAuthenticated']);
( authService as any ).isAuthenticated.and.returnValue(observableOf(true));
( authService as any ).isAuthenticated.and.returnValue(of(true));
TestBed.configureTestingModule({
providers: [
@@ -69,7 +69,7 @@ describe('GroupPageGuard', () => {
describe('canActivate', () => {
describe('when the current user can manage the group', () => {
beforeEach(() => {
( authorizationService as any ).isAuthorized.and.returnValue(observableOf(true));
( authorizationService as any ).isAuthorized.and.returnValue(of(true));
});
it('should return true', (done) => {
@@ -89,7 +89,7 @@ describe('GroupPageGuard', () => {
describe('when the current user can not manage the group', () => {
beforeEach(() => {
(authorizationService as any).isAuthorized.and.returnValue(observableOf(false));
(authorizationService as any).isAuthorized.and.returnValue(of(false));
});
it('should not return true', (done) => {

View File

@@ -6,7 +6,7 @@ import {
} from '@angular/router';
import {
Observable,
of as observableOf,
of,
} from 'rxjs';
import { map } from 'rxjs/operators';
@@ -33,6 +33,6 @@ export const groupPageGuard = (
getObjectUrl = defaultGroupPageGetObjectUrl,
getEPersonUuid?: StringGuardParamFn,
): CanActivateFn => someFeatureAuthorizationGuard(
() => observableOf([FeatureID.CanManageGroup]),
() => of([FeatureID.CanManageGroup]),
getObjectUrl,
getEPersonUuid);

Some files were not shown because too many files have changed in this diff Show More