Skip to content

Conversation

@Junjiequan
Copy link
Member

Description

Short description of the pull request

Motivation

Background on use case, changes needed

Fixes:

Please provide a list of the fixes implemented in this PR

  • Items added

Changes:

Please provide a list of the changes implemented by this PR

  • changes made

Tests included

  • Included for each change/fix?
  • Passing? (Merge will not be approved unless this is checked)

Documentation

  • swagger documentation updated [required]
  • official documentation updated [nice-to-have]

official documentation info

If you have updated the official documentation, please provide PR # and URL of the pages where the updates are included

Backend version

  • Does it require a specific version of the backend
  • which version of the backend is required:

martin-trajanovski and others added 30 commits August 25, 2025 10:59
…to SWAP-4889-configurable-action-buttons
## Description
This is a big PR that introduces two changes. 
1. This is a big change and it introduces many new components and a
dependency on another backend. This, however, can be turned off in the
`config.json` file by setting:
```
  "ingestorComponent": {
    "ingestorEnabled": false,
    }
```    
2. At the SciCatCon 2025, we discussed a new [project to simplify
ingestion](https://github.com/orgs/SciCatProject/projects/20/). This PR
also introduces a change to how the button "Create Dataset" below the
filter side bar at the Dataset page behaves according to #1912 . (
Option to control it already present in config - `addDatasetEnabled`)

## Motivation
At PSI with OpenEM we have been working on a new ingestor backend that
will allow data ingestion from sites different from the host of SciCat
Catalog. This is represented by Point 1. An addition of the Ingestor
backend repo into SciCatProject [is
planned](https://github.com/orgs/SciCatProject/projects/20/views/1?pane=issue&itemId=117173574&issue=SciCatProject%7Cscicat-backend-next%7C2014)
as well.

## Changes:
__For point 2__: 
* when user wants to ingest dataset into SciCat from frontend, the
dialog opens, where user enters dataset-specific information.
* User can provide a url to json schema for scientific metadata. We only
check if provided JSON is a valid object.
* If user provided schema, an additional set of questions is created
based on that schema ( with Json forms) and user can specify the
scientific metadata details based on it
* Conformation page where user can review entered metadata
* Dataset is being added after the submission of the form

__For point 1__: 
* `config.json` changes include this new object: 
```
"ingestorComponent": {
    "ingestorEnabled": true,
    "ingestorAutodiscoveryOptions": [
      {
        "mailDomain": "university.org",
        "description": "University/facility of Choice",
        "facilityBackend": "https://facility-ingestor.facility.org"
      }
    ]
  },
  ```
  * The main option to turn off the component entirely is controlled by the `ingestorEnabled` value. This will redirect call to ingestor to 404. When turned on, the ingestor component is available at `/ingestor/` with a link in the hamburger menu. 
  * `ingestorAutodiscoveryOptions` is an optional argument and constitutes an array of available facilities running ingestor software. 
  * `facilityBackend` is a reachable backend of the ingestor service.
  *  `mailDomain` is used to match the email of logged-in user against the `mailDomain` value as a regular expression and in case of success, automatically connect to the respective backend. A regular expression is used to connect to the email of form "staff.university.org" or similar.
  * `description` is optional, but in case of the match with  `mailDomain` will prefill the creationLocation property in the dataset schema
  * Ingestor component  ( when used with the backend ) looks similar to the __Point 2__ and represents a set of dialogs for SciCat dataset and scientific metadata ingestion, with most of the information prefilled. For this, it interacts with ingestor backend, which does all the hard work such as: 

    * loading set of available methods, which correspond to the available metadata extractors. 
    * upon method selction, extraction of the metadata into a newly generated json object, that is used in the `scientificMetadata`
    * creation of a dataset on SciCat
    * creation of a transferring job to the tape.

## Tests included
- [ ] Included for each change/fix?
- [ ] Passing? (Merge will not be approved unless this is checked) 

## Documentation
- [ ] swagger documentation updated \[required\]
- [ ] official documentation updated \[nice-to-have\]

### official documentation info
If you have updated the official documentation, please provide PR # and URL of the pages where the updates are included

## Backend version
- [ ] Does it require a specific version of the backend
- which version of the backend is required: 

## Ingestor backend:
  https://github.com/SwissOpenEM/Ingestor

---------

Co-authored-by: martintrajanovski <[email protected]>
Co-authored-by: Jay <[email protected]>
Co-authored-by: Max Novelli <[email protected]>
Co-authored-by: Spencer Bliven <[email protected]>
Co-authored-by: Despina <[email protected]>
Co-authored-by: David Wiessner <[email protected]>
Co-authored-by: dwiessner-unibe <[email protected]>
Co-authored-by: consolethinks <[email protected]>
Co-authored-by: Philipp Wissmann <[email protected]>
Co-authored-by: Philipp Wissmann <[email protected]>
Co-authored-by: phwissmann <[email protected]>
nitrosx and others added 9 commits December 5, 2025 12:40
## Description
Removed unnecessary fileList array and directly assigned an empty array
to fileObj.files.

## Motivation
Reset needs to reset all files, thus no reason to pass the file list


## Tests included
- [ ] Included for each change/fix?
- [ ] Passing? (Merge will not be approved unless this is checked) 

## Documentation
- [ ] swagger documentation updated \[required\]
- [ ] official documentation updated \[nice-to-have\]

### official documentation info
If you have updated the official documentation, please provide PR # and
URL of the pages where the updates are included

## Backend version
- [ ] Does it require a specific version of the backend
- which version of the backend is required:

## Summary by Sourcery

Bug Fixes:
- Ensure reset jobs no longer include previous datablock archive IDs by
clearing the files list during reset.
## Description
This PR fixes flaky test of ConfigurableActionsComponent 0060 



## Motivation
Karma/Jasmine runs tests in a random order, which causes failures in
tests that rely on a specific execution sequence.


## Fixes:
Please provide a list of the fixes implemented in this PR

* Items added


## Changes:
Please provide a list of the changes implemented by this PR

* changes made


## Tests included
- [ ] Included for each change/fix?
- [ ] Passing? (Merge will not be approved unless this is checked) 

## Documentation
- [ ] swagger documentation updated \[required\]
- [ ] official documentation updated \[nice-to-have\]

### official documentation info
If you have updated the official documentation, please provide PR # and
URL of the pages where the updates are included

## Backend version
- [ ] Does it require a specific version of the backend
- which version of the backend is required:

## Summary by Sourcery

Bug Fixes:
- Fix a flaky unit test by waiting for the component fixture to become
stable and refreshing the DOM before checking the number of actions.
## Description
first draft of theme doc 


## Motivation
Background on use case, changes needed


## Fixes:
Please provide a list of the fixes implemented in this PR

* Items added


## Changes:
Please provide a list of the changes implemented by this PR

* changes made


## Tests included
- [ ] Included for each change/fix?
- [ ] Passing? (Merge will not be approved unless this is checked) 

## Documentation
- [ ] swagger documentation updated \[required\]
- [ ] official documentation updated \[nice-to-have\]

### official documentation info
If you have updated the official documentation, please provide PR # and
URL of the pages where the updates are included

## Backend version
- [ ] Does it require a specific version of the backend
- which version of the backend is required:

## Summary by Sourcery

Introduce documentation for the front-end CSS variable–based theme
system and newly added theme variables.

Documentation:
- Add a technical overview of the CSS variable–based theming system used
by the SciCat front-end.
- Document newly introduced theme variables for side panel and table
borders and shadows, including defaults, fallbacks, and usage notes.
@Junjiequan Junjiequan requested a review from a team as a code owner December 5, 2025 14:18
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

We failed to fetch the diff for pull request #2145

You can try again by commenting this pull request with @sourcery-ai review, or contact us for help.

## Description
This PR includes the second draft of the configurable actions. The files
are saved under the docs folder

## Motivation
The configurable actions have been updated since the first draft of the
documentation. Also the documentation should be all located under the
docs folder

## Fixes:
Please provide a list of the fixes implemented in this PR
* configurable actions documentation

## Changes:
Please provide a list of the changes implemented by this PR
* configurable actions documentation folder

## Tests included
- [ ] Included for each change/fix?
- [ ] Passing? (Merge will not be approved unless this is checked) 

## Documentation
- [ ] swagger documentation updated \[required\]
- [ ] official documentation updated \[nice-to-have\]

### official documentation info
If you have updated the official documentation, please provide PR # and
URL of the pages where the updates are included

## Backend version
- [ ] Does it require a specific version of the backend
- which version of the backend is required:

## Summary by Sourcery

Document configurable actions for datasets and mark legacy datafiles
action docs as deprecated.

Documentation:
- Add technical documentation for configurable actions targeted at
contributors.
- Add user-focused documentation describing configurable actions and
common use cases.
- Mark the legacy datafiles action configuration documentation as
deprecated in favor of configurable actions.
## Description
If editDatasetEnabled is true but editMetadataEnabled is false the Edit
tab still shows.
This PR fixes that.

## Changes:
- remove [hidden] attribute
- put both conditions in ngIf

## Tests included
- [ ] Included for each change/fix?
- [ ] Passing? (Merge will not be approved unless this is checked) 

## Documentation
- [ ] swagger documentation updated \[required\]
- [ ] official documentation updated \[nice-to-have\]

### official documentation info
If you have updated the official documentation, please provide PR # and
URL of the pages where the updates are included

## Backend version
- [ ] Does it require a specific version of the backend
- which version of the backend is required:

## Summary by Sourcery

Bug Fixes:
- Prevent the Edit tab from being shown when metadata editing is
disabled in the application configuration.
## Description
Following from
[here](https://github.com/SciCatProject/scicat-backend-next/blob/203cca8b81f4c72b6c27011e895a991f46a2eba1/src/config/configuration.ts#L202),
this PR relies on the BE default status code. This allows different
facilities to use different status codes by setting them in the BE and
have no explicit dependency in the FE

## Tests included
- [ ] Included for each change/fix?
- [ ] Passing? (Merge will not be approved unless this is checked) 

## Documentation
- [ ] swagger documentation updated \[required\]
- [ ] official documentation updated \[nice-to-have\]

### official documentation info
If you have updated the official documentation, please provide PR # and
URL of the pages where the updates are included

## Backend version
- [ ] Does it require a specific version of the backend
- which version of the backend is required:

## Summary by Sourcery

Enhancements:
- Remove the hard-coded job status message from admin dataset reset jobs
to defer to backend-configured defaults.
@Junjiequan
Copy link
Member Author

Junjiequan commented Dec 8, 2025

The current action version SciCatProject/docs-template/.github/actions/[email protected] installs lxml==5.4.0, which doesn’t provide corresponding dependencies for Python 3.12 and it causes error Error: Please make sure the libxml2 and libxslt development packages are installed.

This release needs to be stall until action v0.0.2 or open a new one when the issue is resolved

dependabot bot and others added 2 commits December 8, 2025 18:01
Bumps the eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser).


Updates `@typescript-eslint/eslint-plugin` from 8.48.1 to 8.49.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/v8.49.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.48.1 to 8.49.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.49.0/packages/parser)

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

Signed-off-by: dependabot[bot] <[email protected]>
Bumps the eslint group with 2 updates:
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)
and
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser).

Updates `@typescript-eslint/eslint-plugin` from 8.48.1 to 8.49.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases"><code>@​typescript-eslint/eslint-plugin</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v8.49.0</h2>
<h2>8.49.0 (2025-12-08)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>eslint-plugin:</strong> use <code>Intl.Segmenter</code>
instead of <code>graphemer</code> (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11804">#11804</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>deps:</strong> update dependency prettier to v3.7.2 (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11820">#11820</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Justin McBride</li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md"><code>@​typescript-eslint/eslint-plugin</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>8.49.0 (2025-12-08)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>eslint-plugin:</strong> use <code>Intl.Segmenter</code>
instead of <code>graphemer</code> (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11804">#11804</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>deps:</strong> update dependency prettier to v3.7.2 (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11820">#11820</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Justin McBride</li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/864595a44b56beb9870bf0f41d59cf7f8f48276a"><code>864595a</code></a>
chore(release): publish 8.49.0</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/32b7e891bd60ae993e85018ceefa2a0c07590688"><code>32b7e89</code></a>
chore(deps): update dependency <code>@​vitest/eslint-plugin</code> to
v1.5.1 (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11816">#11816</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/56149a2839838cbf623d172361123870e435d2d4"><code>56149a2</code></a>
feat(eslint-plugin): use <code>Intl.Segmenter</code> instead of
<code>graphemer</code> (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11804">#11804</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/34a49a4f92a22f35c844dfe00567bd59a6075804"><code>34a49a4</code></a>
fix(deps): update dependency prettier to v3.7.2 (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11820">#11820</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/d2d7ace4e52bedf07482fd879d8e31a52b38fc26"><code>d2d7ace</code></a>
docs: fixes bad link to jest docs in unbound-method rule page (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11823">#11823</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.49.0/packages/eslint-plugin">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/parser` from 8.48.1 to 8.49.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases"><code>@​typescript-eslint/parser</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v8.49.0</h2>
<h2>8.49.0 (2025-12-08)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>eslint-plugin:</strong> use <code>Intl.Segmenter</code>
instead of <code>graphemer</code> (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11804">#11804</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>deps:</strong> update dependency prettier to v3.7.2 (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11820">#11820</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Justin McBride</li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md"><code>@​typescript-eslint/parser</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>8.49.0 (2025-12-08)</h2>
<p>This was a version bump only for parser to align it with other
projects, there were no code changes.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/864595a44b56beb9870bf0f41d59cf7f8f48276a"><code>864595a</code></a>
chore(release): publish 8.49.0</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/32b7e891bd60ae993e85018ceefa2a0c07590688"><code>32b7e89</code></a>
chore(deps): update dependency <code>@​vitest/eslint-plugin</code> to
v1.5.1 (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/11816">#11816</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.49.0/packages/parser">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>
@Junjiequan Junjiequan added this pull request to the merge queue Dec 9, 2025
Merged via the queue into release with commit baedbd8 Dec 9, 2025
3 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.