diff --git a/scripts/generate-nestjs-sdk.bash b/scripts/generate-nestjs-sdk.bash index 3c6b81f2e..c2a264ce5 100755 --- a/scripts/generate-nestjs-sdk.bash +++ b/scripts/generate-nestjs-sdk.bash @@ -1,6 +1,28 @@ #!/bin/bash # -# + +# Note: This script is meant to be run from the project root, e.g. +# ./scripts/generate-nestjs-sdk.bash +if [ ! -d "node_modules" ]; then + echo "Error: No node_modules folder found. This script is means to be run from the project root." + exit 1 +fi + +# This default is for when developing with a backend running directly on localhost +SWAGGER_API_URL="http://localhost:3000/explorer-json" +while [[ "$#" -gt 0 ]]; do + case "$1" in + --swagger-url) + shift + SWAGGER_API_URL=$1 + shift + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac +done USER=`who am i | cut -d\ -f1` echo -e "\nUser running the script: ${USER}" @@ -8,6 +30,10 @@ echo -e "\nUser running the script: ${USER}" echo -e "\nCleanup old files..." rm -rf node_modules/@scicatproject/scicat-sdk-ts-angular rm -rf @scicatproject/scicat-sdk-ts-angular +rm local-api-for-generator.json + +echo -e "\nFetching the Swagger API from the back end..." +curl ${SWAGGER_API_URL} > local-api-for-generator.json echo -e "\nGenerating the new sdk..." @@ -17,14 +43,25 @@ echo -e "\nGenerating the new sdk..." ## docker run \ --rm \ - --add-host host.docker.internal:host-gateway \ -v "`pwd`:/local" \ - openapitools/openapi-generator-cli:v7.13.0 generate \ - -i http://host.docker.internal:3000/explorer-json \ + openapitools/openapi-generator-cli:v7.14.0 generate \ + -i /local/local-api-for-generator.json \ -g typescript-angular \ -o local/@scicatproject/scicat-sdk-ts-angular \ --additional-properties=ngVersion=19.0.0,npmName=@scicatproject/scicat-sdk-ts-angular,supportsES6=true,withInterfaces=true --skip-validate-spec +rm local-api-for-generator.json + +# Check if the docker command resulted in any output. +# If we don't do this, we'll try to cd into a missing folder, +# and then we'd be invoking 'npm run build' as root in the main project folder, +# which would create a bunch of stuff in ./dist belonging to root, +# causing problems for things like SciCat Live. +if [ ! -d "@scicatproject/scicat-sdk-ts-angular" ]; then + echo "Error: OpenApi output not found." + exit 1 +fi + REMOVE_NPM_LINK=0 if ! command -v npm 2>&1 1>/dev/null then @@ -46,17 +83,23 @@ echo -e "\nInstalling dependencies and building the sdk..." cd @scicatproject/scicat-sdk-ts-angular npm install npm run build - -echo -e "\nCopying the build files in node_modules..." cd ../.. -cp -rv @scicatproject/scicat-sdk-ts-angular/dist node_modules/@scicatproject/scicat-sdk-ts-angular + +if [ ! -d "@scicatproject/scicat-sdk-ts-angular/dist" ]; then + echo "Error: Build ouput not found." + exit 1 +fi + +echo -e "\nCopying the build files into node_modules..." +mkdir -p node_modules/@scicatproject/scicat-sdk-ts-angular +cp -rv @scicatproject/scicat-sdk-ts-angular/dist/ node_modules/@scicatproject/scicat-sdk-ts-angular/ echo -e "\nAdjusting ownership to user ${USER}" chown -Rv ${USER} node_modules/@scicatproject/scicat-sdk-ts-angular echo -e "\nFinal cleanup..." echo -e "Removing sdk folder" -rm -rfv @scicatproject +rm -rf @scicatproject if [ $REMOVE_NPM_LINK -eq 1 ]; then @@ -65,3 +108,4 @@ then rm -fv "/usr/local/bin/node" fi +echo -e "\nDone." \ No newline at end of file diff --git a/src/app/datasets/datafiles-actions/datafiles-action.component.ts b/src/app/datasets/datafiles-actions/datafiles-action.component.ts index e710dc544..c9f5c9a21 100644 --- a/src/app/datasets/datafiles-actions/datafiles-action.component.ts +++ b/src/app/datasets/datafiles-actions/datafiles-action.component.ts @@ -101,6 +101,8 @@ export class DatafilesActionComponent implements OnInit, OnChanges { this.prepare_disabled_condition(); const expr = this.disabled_condition; + // Note: 'with' has been deprecated and is considered harmful. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with const fn = new Function("ctx", `with (ctx) { return (${expr}); }`); return fn({ diff --git a/src/app/datasets/dataset-detail/dataset-detail-dynamic/dataset-detail-dynamic.component.ts b/src/app/datasets/dataset-detail/dataset-detail-dynamic/dataset-detail-dynamic.component.ts index 394ec88a5..bf803d56f 100644 --- a/src/app/datasets/dataset-detail/dataset-detail-dynamic/dataset-detail-dynamic.component.ts +++ b/src/app/datasets/dataset-detail/dataset-detail-dynamic/dataset-detail-dynamic.component.ts @@ -7,6 +7,7 @@ import { Subscription } from "rxjs"; import { showMessageAction } from "state-management/actions/user.actions"; import { selectCurrentAttachments, + selectCurrentDatasetExternalLinks, selectCurrentDataset, selectCurrentDatasetWithoutFileInfo, } from "state-management/selectors/datasets.selectors"; @@ -57,6 +58,7 @@ export class DatasetDetailDynamicComponent implements OnInit, OnDestroy { dataset$ = this.store.select(selectCurrentDataset); datasetWithout$ = this.store.select(selectCurrentDatasetWithoutFileInfo); attachments$ = this.store.select(selectCurrentAttachments); + externalLinks$ = this.store.select(selectCurrentDatasetExternalLinks); loading$ = this.store.select(selectIsLoading); show = false; diff --git a/src/app/datasets/dataset-detail/dataset-detail/_dataset-detail-theme.scss b/src/app/datasets/dataset-detail/dataset-detail/_dataset-detail-theme.scss index c38b8e686..2f9a59563 100644 --- a/src/app/datasets/dataset-detail/dataset-detail/_dataset-detail-theme.scss +++ b/src/app/datasets/dataset-detail/dataset-detail/_dataset-detail-theme.scss @@ -10,29 +10,33 @@ $header-3: map.get($color-config, "header-3"); $header-4: map.get($color-config, "header-4"); mat-card { - .general-header { + .dataset-general-header { background-color: mat.m2-get-color-from-palette($primary, "lighter"); } - .creator-header { + .dataset-creator-header { background-color: mat.m2-get-color-from-palette($header-1, "lighter"); } - .file-header { - background-color: mat.m2-get-color-from-palette($accent, "lighter"); + .dataset-file-header { + background-color: mat.m2-get-color-from-palette($header-2, "lighter"); } - .related-header { - background-color: mat.m2-get-color-from-palette($header-2, "lighter"); + .dataset-related-header { + background-color: mat.m2-get-color-from-palette($accent, "lighter"); } - .derived-header { + .dataset-derived-header { background-color: mat.m2-get-color-from-palette($header-3, "lighter"); } - .scientific-header { + .dataset-links-header { background-color: mat.m2-get-color-from-palette($header-4, "lighter"); } + + .dataset-scientific-header { + background-color: mat.m2-get-color-from-palette($header-1, "lighter"); + } } } diff --git a/src/app/datasets/dataset-detail/dataset-detail/dataset-detail.component.html b/src/app/datasets/dataset-detail/dataset-detail/dataset-detail.component.html index 7fe0851b5..1e7a2369d 100644 --- a/src/app/datasets/dataset-detail/dataset-detail/dataset-detail.component.html +++ b/src/app/datasets/dataset-detail/dataset-detail/dataset-detail.component.html @@ -26,7 +26,7 @@
{{ externalLink.title }} | ++ {{ externalLink.description }} + | +
---|