Skip to content

syncing datquest-dev/dtq-dev#111

Merged
kosarko merged 26 commits intoclarin-v7from
dataquest/conflict-resolved-dtq-dev
Mar 13, 2026
Merged

syncing datquest-dev/dtq-dev#111
kosarko merged 26 commits intoclarin-v7from
dataquest/conflict-resolved-dtq-dev

Conversation

@kosarko
Copy link
Member

@kosarko kosarko commented Mar 10, 2026

Paurikova2 and others added 26 commits February 12, 2026 12:16
…on (DSpace#1209)

* renamed dspace-import to dspace-import-clarin

* removed unwanted changes
* Preserve parameters when creating similar process

* Extract duplicate deep copy logic into helper

* Fix redundant parameter logic prevent empty accumulation
* Override pagesize and display all versions

* Changed hardcoded variable

---------

Co-authored-by: Matus Kasak <matus.kasak@dataquest.sk>
(cherry picked from commit 21521d1)
(cherry picked from commit c296d87)
…Space#1189)

* Rewrite OAI links in static page HTML with rest.baseUrl

Updated StaticPageComponent to rewrite OAI links in loaded HTML content to use the configured rest.baseUrl, ensuring correct API endpoint references. Added comprehensive tests to verify link rewriting, handling of missing baseUrl, avoidance of double slashes, and cases with no OAI links.

* Remove unused ComponentFixture import in test

Cleaned up the static-page.component.spec.ts file by removing the unused ComponentFixture import to improve code clarity.

* Fix OAI URL construction and improve test coverage

Corrects the construction of the OAI URL in StaticPageComponent to avoid double slashes by removing the extra slash in the base URL. Also updates the unit test to properly instantiate the component and check its creation.

(cherry picked from commit cb86d07)

Co-authored-by: Amad Ul Hassan <hassan@ufal.mff.cuni.cz>
Use dspace-import-clarin path instead of dspace-import
Removed unnecessary comments and improved logging for volume removal.
DSpace#1222)

* Use `dspace:dspace` permissions for the assetstore - not ubuntu:ubuntu

* Change permissions as root
…dpoint (DSpace#1215)

* fix: generate correct curl download URLs using backend handle endpoint

Updates the curl command generation to use the new backend endpoint
GET /api/core/bitstreams/handle/{prefix}/{suffix}/{filename} instead
of the non-existent /api/bitstream/{handle}/{seq}/{filename}.

Key changes:
- Uses correct backend endpoint path: /core/bitstreams/handle/{handle}/
- Removes unnecessary sequence index from URLs (uses filename only)
- Quotes the URL to prevent shell brace expansion
- For single file, uses -o with explicit filename

Fixes: DSpace#1210

* Fixed formatting of the file names

* fix: use -o with real filename to avoid percent-encoded names from curl -O

curl -O uses the URL path as the saved filename, so percent-encoded
characters (e.g. %20, %2B, %28) stay encoded in the output file.

Now generates separate 'curl -o realname url' for each file joined
with &&, ensuring files are saved with their actual names.

* fix: use curl -OJ with brace expansion for compact download command

* removed duplicates logic

* fix: use curl -o instead of -OJ to fix non-ASCII filenames on Windows

curl -J (Content-Disposition) cannot create files with non-ASCII characters
on Windows because it interprets the header bytes using the console code page.
Changed to curl -o filename url format where the shell passes the
filename directly to the OS, correctly handling Unicode on all platforms.
Also added tests for UTF-8 filenames and double-quote escaping.

* fix: use inline encodeURIComponent instead of encodeRFC3986URIComponent

encodeRFC3986URIComponent calls decodeURIComponent first, which throws
URIError on filenames containing a literal percent sign (e.g. '100% done.txt')
because '%' followed by non-hex chars is not a valid escape sequence.

Replaced with inline encodeURIComponent() + parentheses encoding directly
on the raw filename. Added test for literal percent sign in filenames.

* fix: restore brace expansion {} in curl URL with -o for filenames

curl command now uses brace expansion for compact URL:
  curl -o file1 -o file2 baseUrl{/encoded1,/encoded2}

This combines:
- {} brace expansion in the URL (compact, one URL for all files)
- -o flags with real filenames (handles UTF-8 correctly via shell)

* test: add complex filename test (diacritics, plus, hash, unmatched paren)

New FE test for 'Media (+)#9) ano' verifying correct URL encoding in brace
expansion and real filename in -o flag.

* fix: use separate -o url pairs instead of curl brace expansion

curl URL globbing ({}) does NOT support per-file -o flags. When using
  curl -o f1 -o f2 url{/a,/b}
curl maps the -o flags to URL arguments, not to globbed expansions,
resulting in 'Got more output options than URLs' and only one file saved.

Changed to separate -o + URL pairs per file:
  curl -o file1 url/file1 -o file2 url/file2

Updated all 12 test expectations to match.

* feat: show curl command in modal dialog with copy button

Replace inline command display with a centered NgbModal (size: lg) that
shows the curl command in a scrollable pre block. Includes a copy-to-clipboard
button with visual feedback (checkmark + 'Copied!' for 2s).

- Added NgbModal injection and openCommandModal()/copyCommand() methods
- Removed old isCommandLineVisible toggle and #command-div hover styles
- Added i18n keys for en, cs, de (copy/copied/close)
- Updated spec to import NgbModalModule

* Revert unnecessary changes

* Address Copilot review suggestions: accessibility, security, test fixes

- Reset canShowCurlDownload at start of generateCurlCommand()
- Add aria-labelledby to modal for screen reader accessibility
- Add .catch() to navigator.clipboard.writeText() for error handling
- Escape dollar signs and backticks in filenames for shell safety
- Fix ConfigurationDataService mock to return RemoteData-shaped object
- Add tests for canShowCurlDownload reset and shell injection protection

* fix: add fakeAsync/tick to CC license test for debounced getCcLicenseLink

---------

Co-authored-by: Paurikova2 <michaela.paurikova@dataquest.sk>
* fix: resolve duplicate HTML element IDs across pages

* fix: use [attr.*] binding syntax for aria-* attributes in templates

* fix: revert dynamic form ID changes to fix e2e test failures

Reverts DsDynamicFormLayoutService and all form template changes that
were appending _N suffixes to form element IDs, breaking Cypress e2e
selectors like input#dc_title and label[for=local_hasCMDI].

Only static HTML duplicate ID fixes are retained (pagination, ds-select,
epeople-registry, etc.) along with aria-* attribute binding fixes.

* fix: address Copilot review comments - sanitize bundleName for IDs, remove invalid file-tree ID, fix conditional aria-describedby

---------

Co-authored-by: Matus Kasak <matus.kasak@dataquest.sk>
…ding (DSpace#1231)

* Force fresh bitstream fetch to avoid stale SSR 404s

* Separate bundle follow links to prevent invalid bundle/item/primaryBitstream path

* removed unwanted changes
* Resolve duplicate HTML IDs in submission form.

* refactor for unique ID registry

* fix: remove unused baseId param from release in UniqueIdRegistry

* fix: propagate unique ID from container to child form controls for accessibility

* fix: recycle released suffixes in UniqueIdRegistry to preserve stable IDs across re-renders

* refactor: deduplicate UniqueIdRegistry usage, store instanceKey, and add unit tests

* Refactored the code to make this fix more simple

* Updated components to make IT pass

* refactor: replace UniqueIdRegistry with inline static counter for unique form IDs

* Add tests to verify _idState cleanup and reuse of base id after ngOnDestroy

---------

Co-authored-by: Matus Kasak <matus.kasak@dataquest.sk>
Co-authored-by: milanmajchrak <milan.majchrak@dataquest.sk>
…sts-calling

UFAL/Refactor running rest tests in deploy
* fix: include dc_identifier in ViewTrackerResolverService event properties for Matomo custom dimensions

* Fixed linting error
@kosarko kosarko merged commit 14857aa into clarin-v7 Mar 13, 2026
5 checks passed
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.

5 participants