Skip to content

Conversation

@jr-rk
Copy link

@jr-rk jr-rk commented Mar 20, 2025

Phases MP MM MB MR JM Total
ETA 0 0 0 0 0 0
Developing 0 0 0 0 0 0
Review 0 0 0 0 0 0
Total - - - - - 0
ETA est. 0
ETA cust. - - - - - 0

Problem description

Summary by CodeRabbit

  • Refactor
    • The header navigation has been updated with new link targets for improved browsing. Navigation items now direct to revised paths for sections like community services, education, projects, tools, and more, resulting in a more straightforward and consistent user experience.
  • New Features
    • Enhanced localization support in the header component, allowing for language-specific content handling with new methods for retrieving language codes and translating slugs.
  • Tests
    • Added a mock service for localization in the test setup of the header component to facilitate testing language-dependent scenarios.

@jr-rk jr-rk requested a review from milanmajchrak March 20, 2025 13:54
@jr-rk jr-rk self-assigned this Mar 20, 2025
@coderabbitai
Copy link

coderabbitai bot commented Mar 20, 2025

Walkthrough

The changes update the header component's navigation by replacing Angular's routerLink directives with standard href attributes. This modification alters the routing mechanism for several links, updating their targets to either in-page anchors or different URL paths. Additionally, a new dependency on the LocaleService is introduced, with new methods added to handle language-specific content. The test setup is enhanced with a mock of the LocaleService. No public entities were altered.

Changes

File(s) Change Summary
src/themes/dspace/app/header/header.component.html Replaced Angular routerLink with standard href attributes for navigation. Updated links: "community-list" → "services/catalog", "education" → "#education", "projects" → "#projects", "tools" → "#tools", "services" → "en/services", "about" dropdown → "#", "partners" → "partners", "mission statement" → "files/mission-en.pdf", "service integrations" → "integration", "project partnership" → "partnership".
src/app/header/header.component.ts Introduced LocaleService dependency in HeaderComponent. Added methods: getLangCode(), getLangCodeIfCzech(), and translateSlug(slug: string). Updated constructor to include localeService.
src/app/header/header.component.spec.ts Added mock service for LocaleService in tests. Included a method getCurrentLanguageCode returning 'en'. Updated test setup to include the new mock service.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Header
    participant Browser

    User->>Header: Clicks on navigation link
    Header->>Browser: Provides href URL
    Browser->>Browser: Navigates to the specified URL
Loading

Poem

In the code garden, I hop with glee,
From Angular paths to anchors free.
routerLink leaves for href delight,
Guiding clicks with a fresher sight.
Cheers from this bunny, on a starlit byte!

Warning

There were issues while running some tools. Please review the errors and either fix the tool’s configuration or disable the tool if it’s a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
error [email protected]: The engine "node" is incompatible with this module. Expected version "^14 || ^16 || ^17 || ^18 || ^19". Got "22.9.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 879e356 and 94a1907.

📒 Files selected for processing (2)
  • src/app/header/header.component.spec.ts (2 hunks)
  • src/app/item-page/clarin-license-info/clarin-license-info.component.ts (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/app/item-page/clarin-license-info/clarin-license-info.component.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/app/header/header.component.spec.ts
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: dspace-angular / docker-build (linux/amd64, ubuntu-latest, true)
  • GitHub Check: tests (18.x)
  • GitHub Check: tests (16.x)

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
src/themes/dspace/app/header/header.component.html (2)

37-40: Review Dropdown Toggle Behavior for 'About' Menu
The dropdown toggle for the "about" section now uses href="/" instead of a routerLink. Although the onclick handler returns false to prevent navigation, this could lead to an unintended page reload if JavaScript fails. You might consider using a non-navigational value (e.g., href="javascript:void(0);" or #) to more clearly express its role as a UI control.


20-48: Ensure Consistency in Navigation Attributes
Note that while several top-level menu options now use href for navigation, some dropdown items still utilize routerLink. Please confirm that mixing these navigation strategies is deliberate and that it does not lead to an inconsistent user experience between full page reloads and single-page application routing.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 92f7b6c and 4df83c8.

📒 Files selected for processing (1)
  • src/themes/dspace/app/header/header.component.html (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: dspace-angular / docker-build (linux/amd64, ubuntu-latest, true)
  • GitHub Check: tests (18.x)
  • GitHub Check: tests (16.x)
🔇 Additional comments (5)
src/themes/dspace/app/header/header.component.html (5)

20-20: Verify 'community-list' Navigation Target Change
The routerLink for the community list was replaced with an href attribute pointing to services/catalog. Please verify that this change is intentional and that the target URL is constructed correctly (consider if an absolute path like /services/catalog is more appropriate).


26-26: Check In-Page Anchor for 'Education'
Switching from routerLink to href="#education" implies navigation to an in-page anchor. Ensure that an element with the corresponding id="education" exists and that any required smooth-scrolling behavior is implemented if desired.


29-29: Validate 'Project' Link as In-Page Navigation
The change from routerLink="projects" to href="#projects" directs users to an inline anchor. Confirm that an element with id="projects" is present on the page and that this behavior aligns with the intended user experience.


32-32: Confirm Anchor Reference for 'Tools'
Changing the navigation for the tools section to href="#tools" indicates in-page navigation. Please verify that the tools anchor exists and functions as expected within the page context.


35-35: Assess Relative Navigation Target for 'Services'
Replacing routerLink="en/services" with href="en/services" switches to a standard hyperlink. Verify that this relative link correctly resolves in the application context. Consider if using an absolute path (e.g., /en/services) might provide more predictable behavior.

Copy link
Collaborator

@milanmajchrak milanmajchrak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When you

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5126c5f and 42fba1c.

📒 Files selected for processing (2)
  • src/app/header/header.component.ts (3 hunks)
  • src/themes/dspace/app/header/header.component.html (1 hunks)
🧰 Additional context used
🪛 GitHub Check: tests (18.x)
src/app/header/header.component.ts

[failure] 45-45:
Strings must use singlequote


[failure] 45-45:
Strings must use singlequote


[failure] 49-49:
Strings must use singlequote


[failure] 49-49:
Expected { after 'if' condition


[failure] 51-51:
Strings must use singlequote


[failure] 52-52:
Strings must use singlequote


[failure] 53-53:
Strings must use singlequote


[failure] 54-54:
Strings must use singlequote


[failure] 55-55:
Strings must use singlequote


[failure] 56-56:
Strings must use singlequote

🪛 GitHub Check: tests (16.x)
src/app/header/header.component.ts

[failure] 45-45:
Strings must use singlequote


[failure] 45-45:
Strings must use singlequote


[failure] 49-49:
Strings must use singlequote


[failure] 49-49:
Expected { after 'if' condition


[failure] 51-51:
Strings must use singlequote


[failure] 52-52:
Strings must use singlequote


[failure] 53-53:
Strings must use singlequote


[failure] 54-54:
Strings must use singlequote


[failure] 55-55:
Strings must use singlequote


[failure] 56-56:
Strings must use singlequote

🪛 GitHub Actions: Build
src/app/header/header.component.ts

[error] 45-45: Strings must use singlequote @typescript-eslint/quotes

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: dspace-angular / docker-build (linux/amd64, ubuntu-latest, true)
🔇 Additional comments (11)
src/app/header/header.component.ts (3)

6-6: Good addition of LocaleService import

The import of LocaleService provides necessary internationalization capabilities for the header navigation links.


28-28: LGTM: Proper injection of LocaleService

The constructor correctly injects the LocaleService as a private dependency.


40-42: LGTM: Clean implementation of language code retrieval

This helper method is a simple wrapper that makes the template code cleaner.

src/themes/dspace/app/header/header.component.html (8)

20-20: Good migration from routerLink to href for catalog

You've correctly updated the community-list link to use href instead of routerLink, pointing to the services/catalog path.


35-35: Good use of language-aware routing for services page

The implementation correctly uses both the current language code and translation for the services slug.


38-39: Home page navigation with language support

You've correctly implemented the about dropdown toggle to support language-prefixed URLs when the language is Czech.


42-43: Good migration for about dropdown links

The partners link correctly uses the language code and translated slug, while the mission statement link correctly remains a direct file reference.


46-47:

Details

✅ Verification successful

Check about dropdown link translations

The implementation for the integration and partnership links looks good. However, ensure these pages exist with the translated slugs for the Czech version.


🏁 Script executed:

#!/bin/bash
# Check if Czech versions of these pages exist
echo "Checking for Czech language route handlers..."
rg -l "integrace|partnerstvi" src/

Length of output: 172


Verified: Czech dropdown link translations are correctly implemented.
The shell script confirmed that Czech route handlers exist (found in src/app/header/header.component.ts), ensuring that the translated slugs for the integration and partnership pages are supported.

No further changes are necessary.


29-29:

Details

❓ Verification inconclusive

Check in-page anchor navigation

You've replaced the projects route with an in-page anchor link. Ensure that there's an element with id="projects" on the target page when a user is redirected.


🏁 Script executed:

#!/bin/bash
# Check if projects anchor exists on the landing page
echo "Checking for projects anchor ID in relevant files..."
rg -l "id=['\"]projects['\"]" src/

Length of output: 155


Ensure the "projects" Anchor Exists on the Target Page

The updated link now navigates to an in-page anchor (#projects). However, our automated search did not return any matches for an element having id="projects" within the repository. This could mean that the target element might be missing or is being added dynamically (e.g., via Angular logic).

Please verify manually that the landing page (or the component rendering the landing content) includes an element with id="projects". If this anchor is not present, you may need to add it or adjust the navigation link accordingly.


26-26:

Details

❓ Verification inconclusive

Check in-page anchor navigation

You've replaced the education route with an in-page anchor link. Ensure that there's an element with id="education" on the target page when a user is redirected.


🏁 Script executed:

#!/bin/bash
# Check if education anchor exists on the landing page
echo "Checking for education anchor ID in relevant files..."
rg -l "id=['\"]education['\"]" src/

Length of output: 158


Manual Verification of In-Page Anchor Navigation

The change now uses an in-page anchor (#education) instead of a dedicated route. Our initial automated search (using rg -l "id=['\"]education['\"]" src/) did not find any instance of an element with id="education". Please manually verify that the target page (likely the landing page) includes an element with id="education" so that the in-page navigation works correctly.


32-32:

Details

❓ Verification inconclusive

Check in-page anchor navigation

You've replaced the tools route with an in-page anchor link. Ensure that there's an element with id="tools" on the target page when a user is redirected.


🏁 Script executed:

#!/bin/bash
# Check if tools anchor exists on the landing page
echo "Checking for tools anchor ID in relevant files..."
rg -l "id=['\"]tools['\"]" src/

Length of output: 146


Action Required: Confirm Existence of the "#tools" Anchor

The current implementation links to an in-page anchor (#tools) via

<a href="{{ getLangCodeIfCzech() + '#tools' }}" class="lindat-nav-link ">{{'navbar.tools' | translate}}</a>

Our automated search in the repository didn’t identify any element with id="tools". Please manually verify that the landing page (or the target page of this link) includes an element with id="tools". If it’s missing, consider updating the target template or adjusting the link as needed.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (4)
src/app/header/header.component.ts (4)

40-42: Add JSDoc comment for better documentation

The method implementation is correct, but it would benefit from JSDoc documentation explaining its purpose and return value.

+/**
+ * Returns the current language code from the locale service
+ * @returns {string} The current language code
+ */
 getLangCode(): string {
   return this.localeService.getCurrentLanguageCode();
 }

44-46: Add JSDoc comment for better documentation

The method correctly checks for Czech language and returns the appropriate value. Consider adding JSDoc documentation.

+/**
+ * Returns the current language code only if it's Czech ('cs'), otherwise returns an empty string
+ * @returns {string} The language code if Czech, empty string otherwise
+ */
 getLangCodeIfCzech(): string {
   return this.localeService.getCurrentLanguageCode() === 'cs' ? this.localeService.getCurrentLanguageCode() : '';
 }

48-61: Well-implemented translation method with good maintainability

The method effectively translates slugs based on the current language, using an object mapping pattern for better maintainability as previously suggested. Consider adding JSDoc documentation.

+/**
+ * Translates English slugs to their Czech equivalents when the current language is Czech
+ * @param {string} slug - The English slug to translate
+ * @returns {string} The translated slug if in Czech, the original slug if in English, or empty string if translation not found
+ */
 translateSlug(slug: string): string {
   if (this.localeService.getCurrentLanguageCode() === 'en') {
     return slug;
   }

   const translations = {
     'partners': 'partneri',
     'integration': 'integrace',
     'partnership': 'partnerstvi',
     'services': 'sluzby'
   };

   return translations[slug] || '';
 }

48-61: Consider caching the language check for better performance

Since getCurrentLanguageCode() is called multiple times, consider storing its result in a local variable.

 translateSlug(slug: string): string {
-  if (this.localeService.getCurrentLanguageCode() === 'en') {
+  const currentLang = this.localeService.getCurrentLanguageCode();
+  if (currentLang === 'en') {
     return slug;
   }

   const translations = {
     'partners': 'partneri',
     'integration': 'integrace',
     'partnership': 'partnerstvi',
     'services': 'sluzby'
   };

   return translations[slug] || '';
 }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e49c3f8 and dfc5e45.

📒 Files selected for processing (1)
  • src/app/header/header.component.ts (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: dspace-angular / docker-build (linux/amd64, ubuntu-latest, true)
  • GitHub Check: tests (18.x)
  • GitHub Check: tests (16.x)
🔇 Additional comments (2)
src/app/header/header.component.ts (2)

6-6: Import looks correct

The import of LocaleService is correctly implemented and necessary for the new language-related functionality.


28-28: Constructor parameter properly added

The LocaleService is correctly injected as a private member, following Angular's dependency injection pattern.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
src/app/header/header.component.spec.ts (2)

23-26: Clarify the comment on mock implementation.

The comment on line 25 states "returns false language code" which is confusing as 'en' is a valid language code. Consider updating the comment to better reflect what the mock is actually doing, such as "returns default language code 'en'" or remove the comment if unnecessary.

  // Mock LocaleService
  const localeServiceMock = {
-    getCurrentLanguageCode: () => 'en' // returns false language code
+    getCurrentLanguageCode: () => 'en' // returns default language code
  };

20-69: Add tests for the new locale-dependent functionality.

While you've added the LocaleService mock to the test setup, there are no tests that verify the behavior of the new methods in HeaderComponent that use this service. Consider adding tests for getLangCode(), getLangCodeIfCzech(), and translateSlug(slug: string) to ensure they work as expected.

🧰 Tools
🪛 Biome (1.9.4)

[error] 47-54: Disallow duplicate setup and teardown hooks.

Disallow beforeEach duplicacy inside the describe function.

(lint/suspicious/noDuplicateTestHooks)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 219209c and 879e356.

📒 Files selected for processing (1)
  • src/app/header/header.component.spec.ts (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: dspace-angular / docker-build (linux/amd64, ubuntu-latest, true)
  • GitHub Check: tests (18.x)
  • GitHub Check: tests (16.x)
🔇 Additional comments (1)
src/app/header/header.component.spec.ts (1)

15-15:

Details

✅ Verification successful

Verify mock service implementation completeness.

The mock for LocaleService only implements the getCurrentLanguageCode() method. Based on the AI summary, the HeaderComponent also contains methods like getLangCodeIfCzech() and translateSlug(slug: string) that might require additional methods from LocaleService. Make sure the mock implementation covers all methods used by the component.

Also applies to: 23-26, 39-39


🏁 Script executed:

#!/bin/bash
# Check what methods from LocaleService are used in HeaderComponent

echo "Checking LocaleService usage in HeaderComponent..."
rg "localeService\." src/app/header/header.component.ts

Length of output: 409


LocaleService Mock Implementation Verified

After inspecting the usage in HeaderComponent, only calls to getCurrentLanguageCode() were found. There are no indications that getLangCodeIfCzech() or translateSlug(slug: string) — or any other methods — are utilized by the component. Thus, the current mock (which implements only getCurrentLanguageCode()) is sufficient for the component's needs.

  • File Reviewed: src/app/header/header.component.ts
  • Observation: Only this.localeService.getCurrentLanguageCode() is called.

@jr-rk jr-rk requested a review from milanmajchrak March 25, 2025 06:04
@milanmajchrak milanmajchrak requested a review from vidiecan March 28, 2025 09:33
@milanmajchrak milanmajchrak merged commit 34a1b64 into dtq-dev Apr 4, 2025
6 checks passed
milanmajchrak added a commit that referenced this pull request Apr 4, 2025
* Start the handle server before tomcat

* Edit item - fixed license redirect

* Add custom dimension (handle) to pageTrack of matomo (#823)

* Change menu options redirects (#816)

* Preview - fixed loading files (#825)

* Handle table issues - Fixed table responsivity and searching (#822)
kosarko added a commit to ufal/dspace-angular that referenced this pull request Apr 10, 2025
Merging latest dataquest-dev/dspace-angular:dtq-dev

contains the following commits:

Added a new workflow which runs a build workflow in every customer
Fixed copying of the import logs to the dev machine (dataquest-dev#786)
Call the import every week (dataquest-dev#787)
UFAL/Use namespace in the redirect URL (dataquest-dev#794)
Use current activated route as a parameter to the `createUrlTree` to compose correct redirect url (dataquest-dev#796)
UFAL/Copy the refbox content correctly (dataquest-dev#801)
UFAL/The current version redirect - get the base href using the DOCUMENT (dataquest-dev#800)
UFAL/Start the handle server before tomca
UFAL/Preview - fixed loading files (dataquest-dev#825)
UFAL/Handle table issues - Fixed table responsivity and searching (dataquest-dev#822)
UFAL/Redirect to `/lindat` after clicking on the Lindat icon in the home page (dataquest-dev#828)

UFAL/Fixed editing the license - required info is removed/added following the checked checkbox
UFAL/Edit item - fixed license redirect
UFAL/Change menu options redirects (dataquest-dev#816)

Sync with ufal main (dataquest-dev#799)
Add custom dimension (handle) to pageTrack of matomo (dataquest-dev#823)

UFAL/Fixed CMD download command - added name (dataquest-dev#798)
@coderabbitai coderabbitai bot mentioned this pull request Apr 10, 2025
@coderabbitai coderabbitai bot mentioned this pull request Jun 11, 2025
milanmajchrak added a commit that referenced this pull request Jul 10, 2025
* Removed dynamic overflow because every content must be scrollable.. (#716)

* add tar for preview (#713)

* add tar for preview

* UFAL/Enhanced type-bind feature (#714)

* The type-bind is loaded from the cfg and correctly rendered

* Done some refactoring

* Update tests following the type-bind enhancement

* Fixed linting error.

* Removed unwanted changes and fixed wrong refactored code.

* Updated error message when tests failed

* Update README.md

* UFAL/Show sesznam license on approval page (#722)

* Added static files from the SEZNAM license.

* Refactored fetching html content from the static files. The logic was moved into the common service.

* Show Seznam static license on approval page.

* Updated constant name LICENSE_NAME_SEZNAM - added the _CZ to make it more clear that is Czech license

* UFAL/share submission by email (#720)

* Added share submission button into workspaceitem actions page.

* Added notification about the success of the sharing the submission.

* Created share submission module, page with routing. That page could access only the administrator.

* WIP - created a new page `change-submitter-page`.

* Created page when the user could take the workspace item as its own.

* Pretified the code and added some docs

* Updated tests following the new feature

* Fixed unwanted changes, updated docs

* UFAL/Autocomplete enhancement (#718)

* Added support for searching results from specific solr indexes.

Updated autocomplete component to search values from custom solr index. The autocomplete component could have attribute for resolving the custom index from the submission-forms definition.

* Show suggestions for `solr-handle_title_ac` and `solr-subject_ac`

* Fixed tests

* Formatted language suggestions, added docs and fixed tests.

* Refactored the code following the review requirements.

* Fixed type in the word pretify

* UFAL/License page - wrong layout in Firefox (#721)

* Removed flex class and used width style instead of col

* Removed unsued class

* Changed style in the html into classes

* Migrated Vanilla cs messages into clarin 7.6.1. cs messages (#669)

* Migrated Vanilla cs messages into clarin 7.6.1. cs messages

* updated translation

* Updated cs localization for subcommunities and subcollections

* Changed `prispeveku` to `prispevku`

* Updated messages for the 'supervised' and 'claim' sentenses

---------

Co-authored-by: Ondrej Kosarko <[email protected]>

* UFAL/Share submission with user not only admin (#728)

* The submitter information cannot be displayed in some cases, but show a few information about the Item

* Added missing trailing comma

* Fixed docs

* Updated messages following last commit to upstream. (#731)

* Updated dspace prefix to lindat (#734)

* Added notification when the shibboleth authentication is failed (#732)

* Removed two IT: (#737)

1. Author does not have a two input fields.
2. Test for checking the notice step will be transformed into UI test, because we do not want to keep such specific collection for generic IT.

* Update all static licenses (#726)

* added licenses from ufal commit dcbe87e02931dee78b13c4b3995a6cef3aeacd32

* added missing static licenses

* remove static from licenses path

* no_static_ as const

* checkstyle

* Use NAMESPACES from the .env (#727)

* Use NAMESPACES from the .env

* Created symbolic link for the tomcat folder

* Updated docker compose files - can load more properties from the `.env`

* Update deploy.yml to increase timeout (#738)

Because some tests were canceled during processing.

* Use only 4000, not the {UI_PORT} from the .env because in the container it is always 4000 (#740)

* Update docker-compose-rest.yml

Uncommented /repository/ namespace in the docker-compose.yml.
It is only for one deploy.

* Update docker-compose-rest.yml

Undo exposing server on the /repository/ path

* Use only / and /server namespaces, not the values from the .env because in the container it is always `/` and `/server` (#741)

* Expose tomcat `/server` on `/repository/server`

* Take a customized docker-compose-rest.yml which exposes the server on /repository/server

* Updated a path to take right docker-compose files

* Undo using only default namespaced `/` and `/server`

* Use custom `docker-compose.yml` from the testing server

* UFAL/Shibboleth fixed wrong redirect after login with verification token (#733)

* Used hardredirect instead of the standard router.redirect because the user could be stucked on the loading page

* Added doc why

* Added missing whitespace

* Use path `./assets` instead of `/assets` (#742)

* new download instruction for cmd using zip from backend (#739)

* Get UI base URL from BE (#744)

* Check that the custom type bind field in configured in the `submission-forms` when it is configured in the cfg property (#745)

* Searching by type is changed to 'type' instead of 'itemtype' because it was changed in the autocomplete enhnancement (#749)

* Use `autoLogin` method (#747)

* UFAL/Matomo statistics using angulartics2 (#748)

* Modified matomo tracking in footer component

* Do not use routerless Matomo because we want to track view on every page redirect

* The Matomo statistics are tracked properly.

* Prettyfied the code

* Fix linting error

* Fixed unit tests following the matomo statistics update

* Fixed linting error

* Added a document title in the footer

* Added category to the eventTrack because it is required for the Matomo.

* Refactored using matomo statistics - added into browser init service, because the Matomo statistics wasn't rendered on production

* Changed matomo-settings location

---------

Co-authored-by: Matus Kasak <[email protected]>

* Update db-import action

Try a commit when the import worked.

* Update import-db action - use main branch

* Added a translation for the searching filter `subjectFirstValue` (redirect from home page). (#752)

* Ensure the redirect URL starts with a slash (#753)

* Added volume into docker-compose (#754)

* UFAL/Load the matomo configuration from the environment (#755)

* Added volume into docker-compose

* Take a matomo configuration from the environment

* Fetch the matomo properties from the config, not from the environment (#756)

* Load the szn license in oninit method (#757)

* UFAL/Temporary fix for the type-bind. The form automatically refreshes after the type is changed. (#761)

* The Save action is automatically dispatched when the type is changed

* Updated the handleFormSave method name to `dispatchFormSaveAndReinitialize`

* Added missing function to mock object

* Execute autoregistration component only in client side (#762)

* The Autocomplete Component is dynamically loaded as a standalone component only in the browser using the Loader component. (#763)

* UFAL/footer header images (#760)

* Footer images upload to assets/images/footer/ and change of images src attributes

* Changed src paths to start with ./

---------

Co-authored-by: Juraj Roka <[email protected]>

* ufal/customize the footer (#759)

* Footer details update by Lindat live instance's footer

* Copied UI tests fix from the dtq-dev

---------

Co-authored-by: Juraj Roka <[email protected]>
Co-authored-by: milanmajchrak <[email protected]>

* Copied fixes from the lindat branch (#770)

* Copied PR 769

* Used root URL to compose download URL with namespace (#768)

* Cherry-picked docker compose rest

* The dtq-dev is run on /repository branch

* Waiting for the http://dev-5.pc:8$INSTANCE/server/api changed to http://dev-5.pc:8$INSTANCE/repository/server/api

* Added `repository` namespace to discojuice

* Run UI integration tests every hour

* Update actions/upload-artifact@v3 to v4

Because it was deprecated and UI tests cannot be run

* Run build CRON every 4 hours

* Update deploy.yml - changed runner

* Update deploy.yml - updated runner everywhere

* Update deploy.yml - use `dspace-dep-1` runner again

* Fixed failing Integration tests (#773)

* Commented out sometimes failing accessibility tests and added wait method to the submission ui test

* Cherry picked fix for unique artifact name.

---------

Co-authored-by: Tim Donohue <[email protected]>

* Update import action.yml - use `/repository` namespace in the import action

* Merge pull request DSpace#2694 from hutattedonmyarm/dspace-7_x (#777)

[Port dspace-7_x]  Enable type-bind for checkbox inputs during submission

Co-authored-by: Tim Donohue <[email protected]>

* Update build.yml - added a option to manually run build action

* save logs

* missing $

* print log file name for check

* removed superfluous space

* renamed log file -> added 'log' at the end of the name

* Ufal/License issues (#779)

* Fixed pagination when searching licenses by the name.

* Fixed Editing license: 1. wrong checked checkboxes for the required info and extended license labels and removed errors from the console.

* Update action.yml - defined log_file

* Update action.yml - log import into a specific path

* Update action.yml - continuously copy logs from the import into another file

* Update action.yml - import logging - show path info

* Update action.yml - log import - copy logs after they are created

* Update action.yml - Start appending when the first file is added to the __logs folder

* Added a new workflow which runs a build workflow in every customer

* Fixed copying of the import logs to the dev machine (#786)

* The copying of the import logs are not creating a new `tail` job every 2s

* Call the import every week (#787)

* UFAL/Use namespace in the redirect URL (#794)

* Use current activated route as a parameter to the `createUrlTree` to compose correct redirect url (#796)

* UFAL/Fixed CMD download command - added name (#798)

* UFAL/Fixed editing the license - required info is removed/added following the checked checkbox

Co-authored-by: Juraj Roka <[email protected]>

* UFAL/Copy the refbox content correctly (#801)

* Copy the refbox content correctly

* Added missing parts of the modal

* UFAL/The current version redirect - get the base href using the DOCUMENT (#800)

* Get the base href using the DOCUMENT

* UFAL/Start the handle server before tomca

* Sync with ufal main (#799)

* Merge pull request #7 from uib-ub/fix-warnings

Address warnings in dockerfiles and composer files

* Show resource id (not handle id) in manage handles (ufal#22)

* show the resourceId in handle-table

* show the resourceId and handle id in edit-handle

---------

Co-authored-by: Marvin <[email protected]>

* use i18n

---------

Co-authored-by: Marvin <[email protected]>

* UFAL/Edit item - fixed license redirect

Co-authored-by: Juraj Roka <[email protected]>

* Add custom dimension (handle) to pageTrack of matomo (#823)

* Add custom dimension (handle) to pageTrack of matomo

This extends/overrides the pageTrack/eventTrack methods of angulartics
matomo plugin and hooks into the event tracking (view-tracker.component)
that's there for DSpace internal statistics.

* Fix linting issues and PR review comments

* Fix tests - misconfigured test env

* UFAL/Change menu options redirects (#816)

* Change menu options redirects

* Fix some menu options redirects by Coderabbit's nitpick comments

* Adding cs/en by current language and translating slugs in About-menu

* Unit tests - Edit of component.spec file

* Typos in comments

* UFAL/Preview - fixed loading files (#825)

* Show loading icon when loading the files with a asking to contant the administrator when it took so long

* The (listOfFiles | async) could be null add a `?` check after it.

* UFAL/Handle table issues - Fixed table responsivity and searching (#822)

* Fixed table responsivity and searching

* Move `table-responsive` to div because it ensures more consistent responsiveness across browsers

* Use `combineLatest` because it is more common for RxJS, refactor if condition

* UFAL/Redirect to `/lindat` after clicking on the Lindat icon in the home page (#828)

* Redirect to `/lindat` after clicking on the Lindat icon in the home page

* Update deploy.yml - use correct deploy action for the weekly import

* UFAL/Menu options links edit (#832)

* Changed the getLangCodeIfCzech links

* Changed the dropdown-menu and services links

* Ufal dtq sync (#836)

* Creating docker-compose file useful for building clarin-dspace on MAC computers

(cherry picked from commit 7de4761)

* Add link to communities and collections on home page

(cherry picked from commit 4673e39)

---------

Co-authored-by: Milan Kuchtiak <[email protected]>

* UFAL/Updated the no file preview message and refactored some code (#837)

* Updated the no file preview message and refactored some code.

* Added a non null check when accessing the object properties and the message is refactored.

* Run Python import weekly

* UFAL/Added spacing between clarin & dspace logo (#848)

* Added spacing between clarin & dspace logo

* Spacing is prettier and when clarin logo is removed, dspace logo is centered

* Ufal/seznam license request (#844)

* Fix of unwanted Seznam Dataset License request while using other licenses

* ZCU-PUB/Fixed encoding of the filename from the URL (#838) (#851)

* Added an URL serializer to fix encoding of the special characters from the URL e.g., `[`, `(` because the filename wasn't properly parsed

* Added some unit tests for encoding the bitstream filename url

* UFAL/Do not mount the Solr configs; copy them each time instead. (#850)

* UFAL/Fix the bulk access (#852)

* Do not use the clarin item view box for the bulk access

* Removed unused import

* Clarify the `showClarinViewBox` is boolean

* Use the constant for the hardcoded bulk access list id

* Ufal dtq sync 2025 05 14 (#855)

* Create Acknowledgment-ReadMe.md

Acnkowledgment of NRP project

(cherry picked from commit ad889b2)

* Video files previews

This uses the thumbnail as poster (if available) and correctly sets the
source of the video

currently only works for anonymously accessible files.

(cherry picked from commit 4832c2f)

* Handle video previews for restricted items

append a shortlived token at the right time (error, seeking, stalled)

(cherry picked from commit 2c12d7d)

* Display only ORIGINAL bitstreams

Thumbnails, when available, should be shown istead of the generic
MIME_TYPE_IMAGE.

Content of the TEXT bundle should not be shown at all this is usually
automatically extracted "text layer" of a PDF, useful for indexing, but
don't want people downloading it.

(cherry picked from commit 3862442)

* fix linter and test errors

(cherry picked from commit f852096)

* Code review follow up

the listOfFiles should really not contain files from "TEXT" or
"THUMBNAIL" bundles.

* code review

unsubscribe error$, seeking$ and $stalled

* code review - thumbnail might be undefined

* code review - consistent formatting

* UFAL/Do not add `dtoken` into the URL if it is null (#860) (#861)

* UFAL/Added same spacing styles via bootstrap as in login page (#862)

* UFAL/Fixed editing of extended license labels

* UFAL/License agreement page component errors (#867)

* Design fix - added spaces between links

* Fix of firstMedataValue null properties

* UFAL/Ask Only Once license not downloading bitstream without page reload after agreeing (#874)

* Changed logic (condition) of retrieving file download link

* Saved the original logic, but changed caching parameter

* The filename wasn't properly encoded when it has ?sequence...&isAllowed in the URL, because that query part of the URL was encoded as the filename. (#873)

* UI tests for each customer (#865)

* Playright after deploy running here

* Using different token

* Corrected path in copying json file

* Checkout only branch in UI tests not master

* Added copilot changes

---------

Co-authored-by: Matus Kasak <[email protected]>

* Ufal dtq sync062025 (#877)

* use `$DSPACE_REST_NAMESPACE` for the webapps symlink

(cherry picked from commit 9ea936e)

* Licenses sync

(cherry picked from commit 4ee2f1c)

* update header/footer

based on latest lindat-common 3.5.0

(cherry picked from commit 7b2f299)

* expose both tcp & udp ports of the handle server

(cherry picked from commit 46bc936)

* Update docker-compose-rest.yml

replace ../webapps with /usr/local/tomcat/webapps

---------

Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>

* UFAL/License Administration Labels & Required Info checkboxes should work properly (#881)

* hotfix - finding index of unchecked box properly to formName arg

* UFAL/Searching problems in Manage Handles table (#882)

* locked searchbar when searchOption is not picked

* edited Resource Type search option to not be case-sensitive

* edited Resource Type search option to show nothing when there is no match

* try to set lowercase constants without toLowerCase method

* Added full list of handles for empty Resource Type search option

* refactored empty searchQueries handling and added comment for invalid resourcetype search inputs

* Updating UI tests after import (#887)

Co-authored-by: Matus Kasak <[email protected]>

* UFAL/Show openaire input field every time the EU funding type is selected (#897)

* Show openaire input field every time the EU type is selected

* UFAL/Publisher search redirect not work #880 (#904)

Co-authored-by: milanmajchrak <[email protected]>

* Ufal/commits from ok lindat (#903)

* copied static content

that was not already in cs/.

Otherwise license page (when without .html) might show an error when UI
is in Czech and there's no translation.

(cherry picked from commit 9e7eea0)

* Update header.component.html

I'm expecting the image to take me to lindat.cz. There's no other obvious way to navigate out of the repository

* This is the change from ufal/clarin-dspace@5fc2414

but applied on v7

* Adding a note about the proprietor change

---------

Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Michal Kren <[email protected]>

* UFAL/show-no-spinner-when-item-has-no-files (#902)

* show msg about no files when item has no files, show no spinenr

* check if files are array

* check files size

* fix error

* optimize template with hasNoFiles flag

* used behaviourSubject for hasNoFiles / aynchronous

* Trigger automated ui tests (#905)

* Created trigger for running UI tests for each customer daily

* Corrected spaces

* Changed name of the tests

---------

Co-authored-by: Matus Kasak <[email protected]>

* UFAL/License agreement loading spinner after submitting (#892)

* Added loading spinner icon after 'I agree' button is clicked

* Removed type annotation and rephrased comment

* Changes isLoading to async object

* Edited loading spinner visibility method - consistency fix

* UFAL/User cannot see his submission (#910)

* The user always see it's submissions page

---------

Co-authored-by: Paurikova2 <[email protected]>

---------

Co-authored-by: Paurikova2 <[email protected]>
Co-authored-by: Jozef Misutka <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Matus Kasak <[email protected]>
Co-authored-by: jurinecko <[email protected]>
Co-authored-by: Juraj Roka <[email protected]>
Co-authored-by: Tim Donohue <[email protected]>
Co-authored-by: Paurikova2 <[email protected]>
Co-authored-by: Ondřej Košarko <[email protected]>
Co-authored-by: Marvin <[email protected]>
Co-authored-by: Milan Kuchtiak <[email protected]>
Co-authored-by: Kasinhou <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Michal Kren <[email protected]>
milanmajchrak added a commit that referenced this pull request Jul 24, 2025
* Removed dynamic overflow because every content must be scrollable.. (#716)

* add tar for preview (#713)

* add tar for preview

* UFAL/Enhanced type-bind feature (#714)

* The type-bind is loaded from the cfg and correctly rendered

* Done some refactoring

* Update tests following the type-bind enhancement

* Fixed linting error.

* Removed unwanted changes and fixed wrong refactored code.

* Updated error message when tests failed

* Update README.md

* UFAL/Show sesznam license on approval page (#722)

* Added static files from the SEZNAM license.

* Refactored fetching html content from the static files. The logic was moved into the common service.

* Show Seznam static license on approval page.

* Updated constant name LICENSE_NAME_SEZNAM - added the _CZ to make it more clear that is Czech license

* UFAL/share submission by email (#720)

* Added share submission button into workspaceitem actions page.

* Added notification about the success of the sharing the submission.

* Created share submission module, page with routing. That page could access only the administrator.

* WIP - created a new page `change-submitter-page`.

* Created page when the user could take the workspace item as its own.

* Pretified the code and added some docs

* Updated tests following the new feature

* Fixed unwanted changes, updated docs

* UFAL/Autocomplete enhancement (#718)

* Added support for searching results from specific solr indexes.

Updated autocomplete component to search values from custom solr index. The autocomplete component could have attribute for resolving the custom index from the submission-forms definition.

* Show suggestions for `solr-handle_title_ac` and `solr-subject_ac`

* Fixed tests

* Formatted language suggestions, added docs and fixed tests.

* Refactored the code following the review requirements.

* Fixed type in the word pretify

* UFAL/License page - wrong layout in Firefox (#721)

* Removed flex class and used width style instead of col

* Removed unsued class

* Changed style in the html into classes

* Migrated Vanilla cs messages into clarin 7.6.1. cs messages (#669)

* Migrated Vanilla cs messages into clarin 7.6.1. cs messages

* updated translation

* Updated cs localization for subcommunities and subcollections

* Changed `prispeveku` to `prispevku`

* Updated messages for the 'supervised' and 'claim' sentenses

---------

Co-authored-by: Ondrej Kosarko <[email protected]>

* UFAL/Share submission with user not only admin (#728)

* The submitter information cannot be displayed in some cases, but show a few information about the Item

* Added missing trailing comma

* Fixed docs

* Updated messages following last commit to upstream. (#731)

* Updated dspace prefix to lindat (#734)

* Added notification when the shibboleth authentication is failed (#732)

* Removed two IT: (#737)

1. Author does not have a two input fields.
2. Test for checking the notice step will be transformed into UI test, because we do not want to keep such specific collection for generic IT.

* Update all static licenses (#726)

* added licenses from ufal commit dcbe87e02931dee78b13c4b3995a6cef3aeacd32

* added missing static licenses

* remove static from licenses path

* no_static_ as const

* checkstyle

* Use NAMESPACES from the .env (#727)

* Use NAMESPACES from the .env

* Created symbolic link for the tomcat folder

* Updated docker compose files - can load more properties from the `.env`

* Update deploy.yml to increase timeout (#738)

Because some tests were canceled during processing.

* Use only 4000, not the {UI_PORT} from the .env because in the container it is always 4000 (#740)

* Update docker-compose-rest.yml

Uncommented /repository/ namespace in the docker-compose.yml.
It is only for one deploy.

* Update docker-compose-rest.yml

Undo exposing server on the /repository/ path

* Use only / and /server namespaces, not the values from the .env because in the container it is always `/` and `/server` (#741)

* Expose tomcat `/server` on `/repository/server`

* Take a customized docker-compose-rest.yml which exposes the server on /repository/server

* Updated a path to take right docker-compose files

* Undo using only default namespaced `/` and `/server`

* Use custom `docker-compose.yml` from the testing server

* UFAL/Shibboleth fixed wrong redirect after login with verification token (#733)

* Used hardredirect instead of the standard router.redirect because the user could be stucked on the loading page

* Added doc why

* Added missing whitespace

* Use path `./assets` instead of `/assets` (#742)

* new download instruction for cmd using zip from backend (#739)

* Get UI base URL from BE (#744)

* Check that the custom type bind field in configured in the `submission-forms` when it is configured in the cfg property (#745)

* Searching by type is changed to 'type' instead of 'itemtype' because it was changed in the autocomplete enhnancement (#749)

* Use `autoLogin` method (#747)

* UFAL/Matomo statistics using angulartics2 (#748)

* Modified matomo tracking in footer component

* Do not use routerless Matomo because we want to track view on every page redirect

* The Matomo statistics are tracked properly.

* Prettyfied the code

* Fix linting error

* Fixed unit tests following the matomo statistics update

* Fixed linting error

* Added a document title in the footer

* Added category to the eventTrack because it is required for the Matomo.

* Refactored using matomo statistics - added into browser init service, because the Matomo statistics wasn't rendered on production

* Changed matomo-settings location

---------

Co-authored-by: Matus Kasak <[email protected]>

* Update db-import action

Try a commit when the import worked.

* Update import-db action - use main branch

* Added a translation for the searching filter `subjectFirstValue` (redirect from home page). (#752)

* Ensure the redirect URL starts with a slash (#753)

* Added volume into docker-compose (#754)

* UFAL/Load the matomo configuration from the environment (#755)

* Added volume into docker-compose

* Take a matomo configuration from the environment

* Fetch the matomo properties from the config, not from the environment (#756)

* Load the szn license in oninit method (#757)

* UFAL/Temporary fix for the type-bind. The form automatically refreshes after the type is changed. (#761)

* The Save action is automatically dispatched when the type is changed

* Updated the handleFormSave method name to `dispatchFormSaveAndReinitialize`

* Added missing function to mock object

* Execute autoregistration component only in client side (#762)

* The Autocomplete Component is dynamically loaded as a standalone component only in the browser using the Loader component. (#763)

* UFAL/footer header images (#760)

* Footer images upload to assets/images/footer/ and change of images src attributes

* Changed src paths to start with ./

---------

Co-authored-by: Juraj Roka <[email protected]>

* ufal/customize the footer (#759)

* Footer details update by Lindat live instance's footer

* Copied UI tests fix from the dtq-dev

---------

Co-authored-by: Juraj Roka <[email protected]>
Co-authored-by: milanmajchrak <[email protected]>

* Copied fixes from the lindat branch (#770)

* Copied PR 769

* Used root URL to compose download URL with namespace (#768)

* Cherry-picked docker compose rest

* The dtq-dev is run on /repository branch

* Waiting for the http://dev-5.pc:8$INSTANCE/server/api changed to http://dev-5.pc:8$INSTANCE/repository/server/api

* Added `repository` namespace to discojuice

* Run UI integration tests every hour

* Update actions/upload-artifact@v3 to v4

Because it was deprecated and UI tests cannot be run

* Run build CRON every 4 hours

* Update deploy.yml - changed runner

* Update deploy.yml - updated runner everywhere

* Update deploy.yml - use `dspace-dep-1` runner again

* Fixed failing Integration tests (#773)

* Commented out sometimes failing accessibility tests and added wait method to the submission ui test

* Cherry picked fix for unique artifact name.

---------

Co-authored-by: Tim Donohue <[email protected]>

* Update import action.yml - use `/repository` namespace in the import action

* Merge pull request DSpace#2694 from hutattedonmyarm/dspace-7_x (#777)

[Port dspace-7_x]  Enable type-bind for checkbox inputs during submission

Co-authored-by: Tim Donohue <[email protected]>

* Update build.yml - added a option to manually run build action

* save logs

* missing $

* print log file name for check

* removed superfluous space

* renamed log file -> added 'log' at the end of the name

* Ufal/License issues (#779)

* Fixed pagination when searching licenses by the name.

* Fixed Editing license: 1. wrong checked checkboxes for the required info and extended license labels and removed errors from the console.

* Update action.yml - defined log_file

* Update action.yml - log import into a specific path

* Update action.yml - continuously copy logs from the import into another file

* Update action.yml - import logging - show path info

* Update action.yml - log import - copy logs after they are created

* Update action.yml - Start appending when the first file is added to the __logs folder

* Added a new workflow which runs a build workflow in every customer

* Fixed copying of the import logs to the dev machine (#786)

* The copying of the import logs are not creating a new `tail` job every 2s

* Call the import every week (#787)

* UFAL/Use namespace in the redirect URL (#794)

* Use current activated route as a parameter to the `createUrlTree` to compose correct redirect url (#796)

* UFAL/Fixed CMD download command - added name (#798)

* UFAL/Fixed editing the license - required info is removed/added following the checked checkbox

Co-authored-by: Juraj Roka <[email protected]>

* UFAL/Copy the refbox content correctly (#801)

* Copy the refbox content correctly

* Added missing parts of the modal

* UFAL/The current version redirect - get the base href using the DOCUMENT (#800)

* Get the base href using the DOCUMENT

* UFAL/Start the handle server before tomca

* Sync with ufal main (#799)

* Merge pull request #7 from uib-ub/fix-warnings

Address warnings in dockerfiles and composer files

* Show resource id (not handle id) in manage handles (ufal#22)

* show the resourceId in handle-table

* show the resourceId and handle id in edit-handle

---------

Co-authored-by: Marvin <[email protected]>

* use i18n

---------

Co-authored-by: Marvin <[email protected]>

* UFAL/Edit item - fixed license redirect

Co-authored-by: Juraj Roka <[email protected]>

* Add custom dimension (handle) to pageTrack of matomo (#823)

* Add custom dimension (handle) to pageTrack of matomo

This extends/overrides the pageTrack/eventTrack methods of angulartics
matomo plugin and hooks into the event tracking (view-tracker.component)
that's there for DSpace internal statistics.

* Fix linting issues and PR review comments

* Fix tests - misconfigured test env

* UFAL/Change menu options redirects (#816)

* Change menu options redirects

* Fix some menu options redirects by Coderabbit's nitpick comments

* Adding cs/en by current language and translating slugs in About-menu

* Unit tests - Edit of component.spec file

* Typos in comments

* UFAL/Preview - fixed loading files (#825)

* Show loading icon when loading the files with a asking to contant the administrator when it took so long

* The (listOfFiles | async) could be null add a `?` check after it.

* UFAL/Handle table issues - Fixed table responsivity and searching (#822)

* Fixed table responsivity and searching

* Move `table-responsive` to div because it ensures more consistent responsiveness across browsers

* Use `combineLatest` because it is more common for RxJS, refactor if condition

* UFAL/Redirect to `/lindat` after clicking on the Lindat icon in the home page (#828)

* Redirect to `/lindat` after clicking on the Lindat icon in the home page

* Update deploy.yml - use correct deploy action for the weekly import

* UFAL/Menu options links edit (#832)

* Changed the getLangCodeIfCzech links

* Changed the dropdown-menu and services links

* Ufal dtq sync (#836)

* Creating docker-compose file useful for building clarin-dspace on MAC computers

(cherry picked from commit 7de4761)

* Add link to communities and collections on home page

(cherry picked from commit 4673e39)

---------

Co-authored-by: Milan Kuchtiak <[email protected]>

* UFAL/Updated the no file preview message and refactored some code (#837)

* Updated the no file preview message and refactored some code.

* Added a non null check when accessing the object properties and the message is refactored.

* Run Python import weekly

* UFAL/Added spacing between clarin & dspace logo (#848)

* Added spacing between clarin & dspace logo

* Spacing is prettier and when clarin logo is removed, dspace logo is centered

* Ufal/seznam license request (#844)

* Fix of unwanted Seznam Dataset License request while using other licenses

* ZCU-PUB/Fixed encoding of the filename from the URL (#838) (#851)

* Added an URL serializer to fix encoding of the special characters from the URL e.g., `[`, `(` because the filename wasn't properly parsed

* Added some unit tests for encoding the bitstream filename url

* UFAL/Do not mount the Solr configs; copy them each time instead. (#850)

* UFAL/Fix the bulk access (#852)

* Do not use the clarin item view box for the bulk access

* Removed unused import

* Clarify the `showClarinViewBox` is boolean

* Use the constant for the hardcoded bulk access list id

* Ufal dtq sync 2025 05 14 (#855)

* Create Acknowledgment-ReadMe.md

Acnkowledgment of NRP project

(cherry picked from commit ad889b2)

* Video files previews

This uses the thumbnail as poster (if available) and correctly sets the
source of the video

currently only works for anonymously accessible files.

(cherry picked from commit 4832c2f)

* Handle video previews for restricted items

append a shortlived token at the right time (error, seeking, stalled)

(cherry picked from commit 2c12d7d)

* Display only ORIGINAL bitstreams

Thumbnails, when available, should be shown istead of the generic
MIME_TYPE_IMAGE.

Content of the TEXT bundle should not be shown at all this is usually
automatically extracted "text layer" of a PDF, useful for indexing, but
don't want people downloading it.

(cherry picked from commit 3862442)

* fix linter and test errors

(cherry picked from commit f852096)

* Code review follow up

the listOfFiles should really not contain files from "TEXT" or
"THUMBNAIL" bundles.

* code review

unsubscribe error$, seeking$ and $stalled

* code review - thumbnail might be undefined

* code review - consistent formatting

* UFAL/Do not add `dtoken` into the URL if it is null (#860) (#861)

* UFAL/Added same spacing styles via bootstrap as in login page (#862)

* UFAL/Fixed editing of extended license labels

* UFAL/License agreement page component errors (#867)

* Design fix - added spaces between links

* Fix of firstMedataValue null properties

* UFAL/Ask Only Once license not downloading bitstream without page reload after agreeing (#874)

* Changed logic (condition) of retrieving file download link

* Saved the original logic, but changed caching parameter

* The filename wasn't properly encoded when it has ?sequence...&isAllowed in the URL, because that query part of the URL was encoded as the filename. (#873)

* UI tests for each customer (#865)

* Playright after deploy running here

* Using different token

* Corrected path in copying json file

* Checkout only branch in UI tests not master

* Added copilot changes

---------

Co-authored-by: Matus Kasak <[email protected]>

* Ufal dtq sync062025 (#877)

* use `$DSPACE_REST_NAMESPACE` for the webapps symlink

(cherry picked from commit 9ea936e)

* Licenses sync

(cherry picked from commit 4ee2f1c)

* update header/footer

based on latest lindat-common 3.5.0

(cherry picked from commit 7b2f299)

* expose both tcp & udp ports of the handle server

(cherry picked from commit 46bc936)

* Update docker-compose-rest.yml

replace ../webapps with /usr/local/tomcat/webapps

---------

Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>

* UFAL/License Administration Labels & Required Info checkboxes should work properly (#881)

* hotfix - finding index of unchecked box properly to formName arg

* UFAL/Searching problems in Manage Handles table (#882)

* locked searchbar when searchOption is not picked

* edited Resource Type search option to not be case-sensitive

* edited Resource Type search option to show nothing when there is no match

* try to set lowercase constants without toLowerCase method

* Added full list of handles for empty Resource Type search option

* refactored empty searchQueries handling and added comment for invalid resourcetype search inputs

* Updating UI tests after import (#887)

Co-authored-by: Matus Kasak <[email protected]>

* UFAL/Show openaire input field every time the EU funding type is selected (#897)

* Show openaire input field every time the EU type is selected

* UFAL/Publisher search redirect not work #880 (#904)

Co-authored-by: milanmajchrak <[email protected]>

* Ufal/commits from ok lindat (#903)

* copied static content

that was not already in cs/.

Otherwise license page (when without .html) might show an error when UI
is in Czech and there's no translation.

(cherry picked from commit 9e7eea0)

* Update header.component.html

I'm expecting the image to take me to lindat.cz. There's no other obvious way to navigate out of the repository

* This is the change from ufal/clarin-dspace@5fc2414

but applied on v7

* Adding a note about the proprietor change

---------

Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Michal Kren <[email protected]>

* UFAL/show-no-spinner-when-item-has-no-files (#902)

* show msg about no files when item has no files, show no spinenr

* check if files are array

* check files size

* fix error

* optimize template with hasNoFiles flag

* used behaviourSubject for hasNoFiles / aynchronous

* Trigger automated ui tests (#905)

* Created trigger for running UI tests for each customer daily

* Corrected spaces

* Changed name of the tests

---------

Co-authored-by: Matus Kasak <[email protected]>

* UFAL/License agreement loading spinner after submitting (#892)

* Added loading spinner icon after 'I agree' button is clicked

* Removed type annotation and rephrased comment

* Changes isLoading to async object

* Edited loading spinner visibility method - consistency fix

* UFAL/User cannot see his submission (#910)

* The user always see it's submissions page

---------

Co-authored-by: Paurikova2 <[email protected]>

* Changed runner in playwright tests (#914)

Co-authored-by: Matus Kasak <[email protected]>

* Skipping some customer branches in trigger playwright tests (#918)

Co-authored-by: Matus Kasak <[email protected]>

* UFAL/Return to pool issue (#922)

* UFAL/Shibboleth redirect to item without permission - not login page but 403  (#920)

* Updated retrieving the dso object - redirect to 403 instead of login page. Check if the user is signed in.

* Updated commend and fixed eslint warning

* UFAL/The editor cannot download the workflows bitstream (#924)

* Added `authorization-token` to the request, so the user could be identified in the BE context

* Added notification error when downloading has failed

* UFAL/Cherry-pick - update the static licenses

were missing an update in the czech translation.

Co-authored-by: Ondrej Kosarko <[email protected]>

* UFAL/Upgrade the refbox component - the content is fetched from the BE (#930)

* Fetch the refbox content from the BE

* Show an error that the refbox content wasn't properly fetched when some error

* Sanitize the code from the BE. Show errors and proper messages when something has failed

* Load item name in on init

* Secure the refbox content using SafeHtml

* Make refbox variable name consistent

* Refactor fetching refbox string from the SafeHtml

---------

Co-authored-by: Paurikova2 <[email protected]>
Co-authored-by: Jozef Misutka <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Matus Kasak <[email protected]>
Co-authored-by: jurinecko <[email protected]>
Co-authored-by: Juraj Roka <[email protected]>
Co-authored-by: Tim Donohue <[email protected]>
Co-authored-by: Paurikova2 <[email protected]>
Co-authored-by: Ondřej Košarko <[email protected]>
Co-authored-by: Marvin <[email protected]>
Co-authored-by: Milan Kuchtiak <[email protected]>
Co-authored-by: Kasinhou <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Ondrej Kosarko <[email protected]>
Co-authored-by: Michal Kren <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UFAL/Change Catalog menu option to redirect to services/catalog/

4 participants