diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 487500a0f..506b1e29e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -21,49 +21,44 @@ version: 2 updates: # NPM - - - package-ecosystem: "npm" - target-branch: dev + - package-ecosystem: 'npm' directory: / labels: - - "dependabot" - - "dependencies" + - 'dependabot' + - 'dependencies' schedule: - interval: "weekly" + interval: 'weekly' # restrict to patch updates (due to the big amount of dependencies) ignore: - - dependency-name: "*" - update-types: ["version-update:semver-major", "version-update:semver-minor"] + - dependency-name: '*' + update-types: + ['version-update:semver-major', 'version-update:semver-minor'] groups: production-dependencies: - dependency-type: "production" + dependency-type: 'production' development-dependencies: - dependency-type: "development" + dependency-type: 'development' # Github Actions - - - package-ecosystem: "github-actions" - target-branch: dev + - package-ecosystem: 'github-actions' directory: / labels: - - "dependabot" - - "github-actions" + - 'dependabot' + - 'github-actions' schedule: - interval: "weekly" + interval: 'weekly' groups: dependencies: - dependency-type: "production" + dependency-type: 'production' # Docker - - - package-ecosystem: "docker" - target-branch: dev + - package-ecosystem: 'docker' directory: ./.conf/ labels: - - "dependabot" - - "docker" + - 'dependabot' + - 'docker' schedule: - interval: "weekly" + interval: 'weekly' groups: dependencies: - dependency-type: "production" + dependency-type: 'production' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 03f76f514..949dfca27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,16 +24,16 @@ name: build on: push: branches: - - 'dev' + - 'main' workflow_dispatch: env: - IMAGE_NAMESPACE: "tractusx" - IMAGE_NAME: "portal-frontend" + IMAGE_NAMESPACE: 'tractusx' + IMAGE_NAME: 'portal-frontend' # variables needed for scripts/legal-notice.sh - SERVER_URL: "${{ github.server_url }}" - REPOSITORY: "${{ github.repository }}" - REF_NAME: "${{ github.ref_name }}" + SERVER_URL: '${{ github.server_url }}' + REPOSITORY: '${{ github.repository }}' + REF_NAME: '${{ github.ref_name }}' jobs: build-and-push-image: @@ -43,7 +43,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup Node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -54,6 +54,9 @@ jobs: - name: Install Dependencies run: yarn + - name: Prettier Checks + run: yarn pretty:check + - name: Linter Checks run: yarn lint @@ -67,7 +70,7 @@ jobs: run: yarn test:ci - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 + uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # v3.4.0 - name: Login to DockerHub if: github.event_name != 'pull_request' @@ -82,11 +85,11 @@ jobs: with: images: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} tags: | - type=raw,value=dev + type=raw,value=main type=raw,value=${{ github.sha }} - name: Build and push Docker image - uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 + uses: docker/build-push-action@1a162644f9a7e87d8f4b053101d1d9a712edc18c # v6.3.0 with: context: . file: .conf/Dockerfile.prebuilt @@ -103,7 +106,7 @@ jobs: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} - readme-filepath: ".conf/docker-notice-portal.md" + readme-filepath: '.conf/docker-notice-portal.md' auth-and-dispatch: needs: build-and-push-image @@ -127,5 +130,5 @@ jobs: --url https://api.github.com/repos/eclipse-tractusx/portal/actions/workflows/portal-image-update.yml/dispatches \ --header "authorization: Bearer $TOKEN" \ --header "Accept: application/vnd.github.v3+json" \ - --data '{"ref":"dev", "inputs": { "new-image":"${{ github.sha }}" }}' \ + --data '{"ref":"main", "inputs": { "new-image":"${{ github.sha }}" }}' \ --fail diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index c329c7715..ef9f70af8 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -31,10 +31,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup Node - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: node-version: 20 registry-url: https://registry.npmjs.org/ @@ -42,7 +42,10 @@ jobs: - name: Install Dependencies run: yarn - - name: linter checks + - name: Prettier Checks + run: yarn pretty:check + + - name: Linter checks run: yarn lint - name: Unit Tests diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e963c198f..2aa6d64d2 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -29,7 +29,7 @@ # supported CodeQL languages. # -name: "CodeQL" +name: 'CodeQL' on: push: @@ -42,7 +42,7 @@ on: - 'src/**' - 'public/**' schedule: - - cron: "0 0 * * *" + - cron: '0 0 * * *' workflow_dispatch: jobs: @@ -63,7 +63,7 @@ jobs: strategy: fail-fast: false matrix: - language: ["javascript"] + language: ['javascript'] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ] # Use only 'java' to analyze code written in Java, Kotlin or both # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both @@ -71,11 +71,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@9fdb3e49720b44c48891d036bb502feb25684276 # v2.227 + uses: github/codeql-action/init@b611370bb5703a7efb587f9d136a52ea24c5c38c # v2.227 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -89,7 +89,7 @@ jobs: # Automates dependency installation for Python, Ruby, and JavaScript, optimizing the CodeQL analysis setup. # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@9fdb3e49720b44c48891d036bb502feb25684276 # v2.227 + uses: github/codeql-action/autobuild@b611370bb5703a7efb587f9d136a52ea24c5c38c # v2.227 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -102,6 +102,6 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@9fdb3e49720b44c48891d036bb502feb25684276 # v2.227 + uses: github/codeql-action/analyze@b611370bb5703a7efb587f9d136a52ea24c5c38c # v2.227 with: - category: "/language:${{matrix.language}}" + category: '/language:${{matrix.language}}' diff --git a/.github/workflows/dependencies.yaml b/.github/workflows/dependencies.yaml index 035af3a44..14c53e9e5 100644 --- a/.github/workflows/dependencies.yaml +++ b/.github/workflows/dependencies.yaml @@ -21,18 +21,16 @@ name: Check Dependencies on: push: - branches: [main, dev] + branches: [main] pull_request: types: [opened, synchronize, reopened] workflow_dispatch: jobs: check-dependencies: - runs-on: ubuntu-latest steps: - - name: Set up JDK 17 uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: @@ -40,7 +38,7 @@ jobs: java-version: '17' - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Generate Dependencies file run: java -jar ./scripts/download/org.eclipse.dash.licenses-1.1.1.jar yarn.lock -project automotive.tractusx -summary DEPENDENCIES || true @@ -67,7 +65,7 @@ jobs: if: steps.dependencies-changed.outputs.changed == 'true' - name: Upload DEPENDENCIES file - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 with: path: DEPENDENCIES if: steps.dependencies-changed.outputs.changed == 'true' diff --git a/.github/workflows/kics.yml b/.github/workflows/kics.yml index 8294c03f2..2cbdea938 100644 --- a/.github/workflows/kics.yml +++ b/.github/workflows/kics.yml @@ -17,11 +17,11 @@ # SPDX-License-Identifier: Apache-2.0 ############################################################### -name: "KICS" +name: 'KICS' on: push: - branches: [main, dev] + branches: [main] # pull_request: # The branches below must be a subset of the branches above # branches: [main, master] @@ -29,7 +29,7 @@ on: # - "**/*.md" # - "**/*.txt" schedule: - - cron: "0 0 * * *" + - cron: '0 0 * * *' workflow_dispatch: jobs: @@ -42,13 +42,13 @@ jobs: security-events: write steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: KICS scan - uses: checkmarx/kics-github-action@d1b692d84c536f4e8696954ce7aab6818f95f5bc # v2.0.0 + uses: checkmarx/kics-github-action@252e73959bd4809a14863cbfbb42d7a90d5a4860 # v2.1.1 with: # Scanning directory . - path: "." + path: '.' # Fail on HIGH severity results fail_on: high # when provided with a directory on output_path @@ -57,7 +57,7 @@ jobs: # - results-dir/results.json # - results-dir/results.sarif output_path: kicsResults/ - output_formats: "json,sarif" + output_formats: 'json,sarif' # If you want KICS to ignore the results and return exit status code 0 unless a KICS engine error happens # ignore_on_exit: results # GITHUB_TOKEN enables this github action to access github API and post comments in a pull request @@ -67,7 +67,6 @@ jobs: # Upload findings to GitHub Advanced Security Dashboard - name: Upload SARIF file for GitHub Advanced Security Dashboard if: always() - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: sarif_file: kicsResults/results.sarif - diff --git a/.github/workflows/pullRequest-lint.yaml b/.github/workflows/pullRequest-lint.yaml index f52da4e18..af0a3c3ae 100644 --- a/.github/workflows/pullRequest-lint.yaml +++ b/.github/workflows/pullRequest-lint.yaml @@ -17,7 +17,7 @@ # SPDX-License-Identifier: Apache-2.0 # ############################################################################# -name: "Lint PullRequest" +name: 'Lint PullRequest' on: pull_request_target: @@ -31,7 +31,7 @@ jobs: name: Validate PR title runs-on: ubuntu-latest steps: - - uses: amannn/action-semantic-pull-request@cfb60706e18bc85e8aec535e3c577abe8f70378e # v5.5.2 + - uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3 id: lint_pr_title env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -44,11 +44,11 @@ jobs: header: pr-title-lint-error message: | Hey there and thank you for opening this pull request! 👋🏼 - + We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted. Details: - + ``` ${{ steps.lint_pr_title.outputs.error_message }} ``` diff --git a/.github/workflows/release-release_candidate.yml b/.github/workflows/release-release_candidate.yml index 0550e7db4..8d8ea0a5f 100644 --- a/.github/workflows/release-release_candidate.yml +++ b/.github/workflows/release-release_candidate.yml @@ -28,12 +28,12 @@ on: workflow_dispatch: env: - IMAGE_NAMESPACE: "tractusx" - IMAGE_NAME: "portal-frontend" - REF_NAME: "${{ github.ref_name }}" + IMAGE_NAMESPACE: 'tractusx' + IMAGE_NAME: 'portal-frontend' + REF_NAME: '${{ github.ref_name }}' # variables needed for scripts/legal-notice.sh - SERVER_URL: "${{ github.server_url }}" - REPOSITORY: "${{ github.repository }}" + SERVER_URL: '${{ github.server_url }}' + REPOSITORY: '${{ github.repository }}' jobs: build-and-push-release: @@ -43,7 +43,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup Node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -86,7 +86,7 @@ jobs: run: yarn test:ci - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 + uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # v3.4.0 - name: Login to DockerHub if: github.event_name != 'pull_request' @@ -99,9 +99,10 @@ jobs: id: meta uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1 with: - images: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} - # Automatically prepare image tags; - # semver patter will generate tags like these for example :v1 :v1.2 v1.2.3 + images: + ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + # Automatically prepare image tags; + # semver patter will generate tags like these for example :v1 :v1.2 v1.2.3 tags: | type=raw,value=latest type=raw,value=${{ env.REF_NAME }} @@ -110,7 +111,7 @@ jobs: type=semver,pattern=v{{major}}.{{minor}} - name: Build and push Docker image - uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 + uses: docker/build-push-action@1a162644f9a7e87d8f4b053101d1d9a712edc18c # v6.3.0 with: context: . file: .conf/Dockerfile.prebuilt @@ -127,7 +128,7 @@ jobs: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} - readme-filepath: ".conf/docker-notice-portal.md" + readme-filepath: '.conf/docker-notice-portal.md' auth-and-dispatch: needs: build-and-push-release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bf676b8ea..d9be363cc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,12 +29,12 @@ on: workflow_dispatch: env: - IMAGE_NAMESPACE: "tractusx" - IMAGE_NAME: "portal-frontend" - REF_NAME: "${{ github.ref_name }}" + IMAGE_NAMESPACE: 'tractusx' + IMAGE_NAME: 'portal-frontend' + REF_NAME: '${{ github.ref_name }}' # variables needed for scripts/legal-notice.sh - SERVER_URL: "${{ github.server_url }}" - REPOSITORY: "${{ github.repository }}" + SERVER_URL: '${{ github.server_url }}' + REPOSITORY: '${{ github.repository }}' jobs: build-and-push-release: @@ -44,7 +44,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup Node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -87,7 +87,7 @@ jobs: run: yarn test:ci - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 + uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # v3.4.0 - name: Login to DockerHub if: github.event_name != 'pull_request' @@ -100,9 +100,10 @@ jobs: id: meta uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1 with: - images: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} - # Automatically prepare image tags; - # semver patter will generate tags like these for example :v1 :v1.2 v1.2.3 + images: + ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + # Automatically prepare image tags; + # semver patter will generate tags like these for example :v1 :v1.2 v1.2.3 tags: | type=raw,value=latest type=raw,value=${{ env.REF_NAME }} @@ -111,7 +112,7 @@ jobs: type=semver,pattern=v{{major}}.{{minor}} - name: Build and push Docker image - uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 + uses: docker/build-push-action@1a162644f9a7e87d8f4b053101d1d9a712edc18c # v6.3.0 with: context: . file: .conf/Dockerfile.prebuilt @@ -128,7 +129,7 @@ jobs: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} - readme-filepath: ".conf/docker-notice-portal.md" + readme-filepath: '.conf/docker-notice-portal.md' auth-and-dispatch: needs: build-and-push-release @@ -139,7 +140,7 @@ jobs: run: echo "RELEASE_VERSION=${{ env.REF_NAME }}" >> $GITHUB_ENV - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Check for hotfix version id: hf-check @@ -172,7 +173,7 @@ jobs: if [[ ${{ steps.rc-check.outputs.rc }} == 'true' ]]; then echo "branch=release-candidate" >> $GITHUB_OUTPUT else - echo "branch=dev" >> $GITHUB_OUTPUT + echo "branch=main" >> $GITHUB_OUTPUT fi if: steps.hf-check.outputs.hf == 'false' diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index 1f4aeff7c..a3804dde7 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -28,12 +28,12 @@ on: workflow_dispatch: env: - IMAGE_NAMESPACE: "tractusx" - IMAGE_NAME: "portal-frontend" + IMAGE_NAMESPACE: 'tractusx' + IMAGE_NAME: 'portal-frontend' # variables needed for scripts/legal-notice.sh - SERVER_URL: "${{ github.server_url }}" - REPOSITORY: "${{ github.repository }}" - REF_NAME: "${{ github.ref_name }}" + SERVER_URL: '${{ github.server_url }}' + REPOSITORY: '${{ github.repository }}' + REF_NAME: '${{ github.ref_name }}' jobs: build-and-push-image: @@ -43,7 +43,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup Node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -67,7 +67,7 @@ jobs: run: yarn test:ci - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 + uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # v3.4.0 - name: Login to DockerHub if: github.event_name != 'pull_request' @@ -86,7 +86,7 @@ jobs: type=raw,value=${{ github.sha }} - name: Build and push Docker image - uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 + uses: docker/build-push-action@1a162644f9a7e87d8f4b053101d1d9a712edc18c # v6.3.0 with: context: . file: .conf/Dockerfile.prebuilt @@ -103,7 +103,7 @@ jobs: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} - readme-filepath: ".conf/docker-notice-portal.md" + readme-filepath: '.conf/docker-notice-portal.md' auth-and-dispatch: needs: build-and-push-image diff --git a/.github/workflows/trivy-dev.yml b/.github/workflows/trivy-main.yml similarity index 68% rename from .github/workflows/trivy-dev.yml rename to .github/workflows/trivy-main.yml index 7332f6629..5b55d3abf 100644 --- a/.github/workflows/trivy-dev.yml +++ b/.github/workflows/trivy-main.yml @@ -20,11 +20,11 @@ # Depending on the location of your Docker container # you need to change the path to the specific Docker registry. # -name: "Trivy Dev" +name: 'Trivy Main' on: push: - branches: [ dev ] + branches: [main] # pull_request: # The branches below must be a subset of the branches above # branches: [ main ] @@ -33,13 +33,13 @@ on: # - "**/*.txt" schedule: # Once a day - - cron: "0 0 * * *" + - cron: '0 0 * * *' workflow_dispatch: # Trigger manually env: - IMAGE_NAMESPACE: "tractusx" - IMAGE_NAME: "portal-frontend" + IMAGE_NAMESPACE: 'tractusx' + IMAGE_NAME: 'portal-frontend' jobs: analyze-config: @@ -51,22 +51,22 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Run Trivy vulnerability scanner in repo mode - uses: aquasecurity/trivy-action@fd25fed6972e341ff0007ddb61f77e88103953c2 # v0.21.0 + uses: aquasecurity/trivy-action@7c2007bcb556501da015201bcba5aa14069b74e2 # v0.23.0 with: - scan-type: "config" + scan-type: 'config' hide-progress: false - format: "sarif" - output: "trivy-results1.sarif" - vuln-type: "os,library" + format: 'sarif' + output: 'trivy-results1.sarif' + vuln-type: 'os,library' - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 if: always() with: - sarif_file: "trivy-results1.sarif" + sarif_file: 'trivy-results1.sarif' analyze-portal-frontend: runs-on: ubuntu-latest @@ -77,7 +77,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 # It's also possible to scan your private registry with Trivy's built-in image scan. # All you have to do is set ENV vars. @@ -86,16 +86,16 @@ jobs: # For public images, no ENV vars must be set. - name: Run Trivy vulnerability scanner if: always() - uses: aquasecurity/trivy-action@fd25fed6972e341ff0007ddb61f77e88103953c2 # v0.21.0 + uses: aquasecurity/trivy-action@7c2007bcb556501da015201bcba5aa14069b74e2 # v0.23.0 with: # Path to Docker image - image-ref: "${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:dev" - format: "sarif" - output: "trivy-results2.sarif" - vuln-type: "os,library" + image-ref: '${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:main' + format: 'sarif' + output: 'trivy-results2.sarif' + vuln-type: 'os,library' - name: Upload Trivy scan results to GitHub Security tab if: always() - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: - sarif_file: "trivy-results2.sarif" + sarif_file: 'trivy-results2.sarif' diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml index f76179a27..d80163843 100644 --- a/.github/workflows/trivy.yml +++ b/.github/workflows/trivy.yml @@ -20,11 +20,11 @@ # Depending on the location of your Docker container # you need to change the path to the specific Docker registry. # -name: "Trivy Stable" +name: 'Trivy Stable' on: push: - branches: [ main ] + branches: [main] # pull_request: # The branches below must be a subset of the branches above # branches: [ main ] @@ -33,13 +33,13 @@ on: # - "**/*.txt" schedule: # Once a day - - cron: "0 0 * * *" + - cron: '0 0 * * *' workflow_dispatch: # Trigger manually env: - IMAGE_NAMESPACE: "tractusx" - IMAGE_NAME: "portal-frontend" + IMAGE_NAMESPACE: 'tractusx' + IMAGE_NAME: 'portal-frontend' jobs: analyze-config: @@ -51,22 +51,22 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Run Trivy vulnerability scanner in repo mode - uses: aquasecurity/trivy-action@fd25fed6972e341ff0007ddb61f77e88103953c2 # v0.21.0 + uses: aquasecurity/trivy-action@7c2007bcb556501da015201bcba5aa14069b74e2 # v0.23.0 with: - scan-type: "config" + scan-type: 'config' hide-progress: false - format: "sarif" - output: "trivy-results1.sarif" - vuln-type: "os,library" + format: 'sarif' + output: 'trivy-results1.sarif' + vuln-type: 'os,library' - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 if: always() with: - sarif_file: "trivy-results1.sarif" + sarif_file: 'trivy-results1.sarif' analyze-portal-frontend: runs-on: ubuntu-latest @@ -77,7 +77,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 # It's also possible to scan your private registry with Trivy's built-in image scan. # All you have to do is set ENV vars. @@ -86,16 +86,16 @@ jobs: # For public images, no ENV vars must be set. - name: Run Trivy vulnerability scanner if: always() - uses: aquasecurity/trivy-action@fd25fed6972e341ff0007ddb61f77e88103953c2 # v0.21.0 + uses: aquasecurity/trivy-action@7c2007bcb556501da015201bcba5aa14069b74e2 # v0.23.0 with: # Path to Docker image - image-ref: "${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:latest" - format: "sarif" - output: "trivy-results2.sarif" - vuln-type: "os,library" + image-ref: '${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:latest' + format: 'sarif' + output: 'trivy-results2.sarif' + vuln-type: 'os,library' - name: Upload Trivy scan results to GitHub Security tab if: always() - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 with: - sarif_file: "trivy-results2.sarif" + sarif_file: 'trivy-results2.sarif' diff --git a/.husky/pre-commit b/.husky/pre-commit index 80a0720a5..2312dc587 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,5 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm run pretty -npm run lint --fix +npx lint-staged diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c8d5d4b9..009942bd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## Unreleased + +### Change + +- Page headers + - harmonization and standardization of page headers, added consistent headers and removed unused code + +### Feature + +- Use scroll to top button from shared components + +### Bugfixes + +- Fixed incorrect usage of pre-commit hook +- Fix consistency issue in constants file. Use camel case for all page paths. Update corresponding usage in other files + ## 2.1.0-RC2 ### Feature diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dc5c97409..879c398af 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,6 +16,19 @@ Catena-X alliance focusing on parts traceability. - https://projects.eclipse.org/projects/automotive.tractusx +## Project licenses + +The Tractus-X project uses the following licenses: + +- Apache-2.0 for code +- CC-BY-4.0 for non-code + +## Terms of Use + +This repository is subject to the Terms of Use of the Eclipse Foundation + +- https://www.eclipse.org/legal/termsofuse.php + ## Developer resources Information regarding source code management, builds, coding standards, and @@ -23,9 +36,18 @@ more. - https://projects.eclipse.org/projects/automotive.tractusx/developer -The project maintains the source code repositories in the following GitHub organization: +Getting started: + +- https://eclipse-tractusx.github.io/docs/developer + +The project maintains the source code repositories -- https://github.com/eclipse-tractusx/ +- https://github.com/eclipse-tractusx/portal-frontend +- https://github.com/eclipse-tractusx/portal-frontend-registration +- https://github.com/eclipse-tractusx/portal-shared-components +- https://github.com/eclipse-tractusx/portal-backend +- https://github.com/eclipse-tractusx/portal-assets +- https://github.com/eclipse-tractusx/portal-iam ## Eclipse Development Process diff --git a/LICENSES/CC-BY-4.0.txt b/LICENSE_non-code similarity index 99% rename from LICENSES/CC-BY-4.0.txt rename to LICENSE_non-code index 4ea99c213..52665ed2a 100644 --- a/LICENSES/CC-BY-4.0.txt +++ b/LICENSE_non-code @@ -1,4 +1,4 @@ -Attribution 4.0 International +Creative Commons Attribution 4.0 International ======================================================================= @@ -392,4 +392,4 @@ understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. -Creative Commons may be contacted at creativecommons.org. +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/NOTICE.md b/NOTICE.md index 79ab19850..0b2989a9a 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -12,12 +12,19 @@ source code repository logs. ## Declared Project Licenses -This program and the accompanying materials are made available under the terms -of the Apache License, Version 2.0 which is available at -https://www.apache.org/licenses/LICENSE-2.0. +The Tractus-X project uses the following licenses: +- Apache-2.0 for code +- CC-BY-4.0 for non-code + +Apache-2.0: +This program and the accompanying materials are made available under the terms of the Apache License, Version 2.0 which is available at https://www.apache.org/licenses/LICENSE-2.0. SPDX-License-Identifier: Apache-2.0 +CC-BY-4.0: +The materials in this repository are made available under the terms of the Creative Commons Attribution 4.0 International License, which is available at https://spdx.org/licenses/CC-BY-4.0.html. +SPDX-License-Identifier: CC-BY-4.0 + ## Source Code The project maintains the following source code repositories in the GitHub organization https://github.com/eclipse-tractusx: diff --git a/README.md b/README.md index 940045976..13d07e386 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,82 @@ yarn start Note: if you'd like to run the complete frontend application, follow the `Run frontend on localhost.md` guide available within the technical documentation of [portal-assets](https://github.com/eclipse-tractusx/portal-assets). +## Coding guidelines + +### Naming conventions for custom components + +Folder, File and component name to be in Camel Case\ +Scss files to be in Camel Case\ +RTK folders and files to be in small case + +### Import Components + +Always use components from [portal-shared-components library](https://github.com/eclipse-tractusx/portal-shared-components)\ +Do not import components directly from mui + +### Allowed imports from mui + +Box, useMediaQuery + +### Guidelines for consistent styling and theming + +Do not use useTheme from mui\ +Use theme from the [portal-shared-components library](https://github.com/eclipse-tractusx/portal-shared-components)\ +Use custom class names to override default or mui styles\ +Use appropriate `Typography` for the text and do not override font family of it + +### Create new text locale file + +Create a new file in the respective `language` folder with the module name in `assets/locales`\ +Use small cases for the `json` file\ + +ex: notifications.json + +### Add new text values in locale file + +Keys inside `json` file should be in Camel Case\ + +ex: notificationTitle + +### Read text values from locale file + +Import `useTranslation` from `react-i18next`\ +Declare translation object using the specific module\ + +``` +const { t } = useTranslation('notification') +``` + +Empty in the usetransation() will pull the data from `main.json` file + +``` +const { t } = useTranslation() +``` + +Usage ex: + +``` +t('header.title') +``` + +### Code formatting and linting + +Before committing your changes, + +s1. Remove all the disabled linter rules from `.eslintrc.json` and run `yarn lint` on your newly created file or folder to see the results 2. Disable linter rules is allowd only for the exceptional cases. Code comments with proper reason is mandatory + +### Handling of API responses and error states + +1. All the api call has to be addressed with a throbber in the UI +2. Empty response to be shown with a proper message to the user +3. API error has to be shown in a component with appropriate action\ + a. Error code 4xx needs to show error component with message\ + b. Error code 5xx should allow user to refetch the api once again. + +### State Managment + +URL path names to be in Camel Case + ## Known Issues and Limitations See [Known Knowns](/CHANGELOG.md#known-knowns). diff --git a/package.json b/package.json index 703cc85ec..b64f09216 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,16 @@ "last 1 safari version" ] }, - "lint:staged": { - "**/*.{js,jsx,ts,tsx}": [ - "yarn test:ci" + "lint-staged": { + "*.{js,jsx,ts,tsx}": [ + "prettier --write --ignore-unknown", + "eslint --quiet --fix" + ], + "*.{json,css,sass,scss,xml,yml,yaml,md}": [ + "prettier --write --ignore-unknown" + ], + "*.test.{js,jsx,ts,tsx}": [ + "jest" ] }, "dependencies": { @@ -99,7 +106,8 @@ }, "scripts": { "prepare": "husky", - "pretty": "prettier --write \"**/*.{ts,tsx,js,jsx,json,css,sass,scss,xml,md}\"", + "pretty": "prettier --write \"**/*.{ts,tsx,js,jsx,json,css,sass,scss,xml,yml,yaml,md}\"", + "pretty:check": "prettier --check \"**/*.{ts,tsx,js,jsx,json,css,sass,scss,xml,yml,yaml,md}\"", "lint": "eslint \"./src/**/*.{ts,tsx,js,jsx}\" --report-unused-disable-directives --max-warnings 0", "start": "vite --host --port 3001", "build": "yarn build:copy-legal-info && tsc && vite build", diff --git a/src/assets/locales/de/main.json b/src/assets/locales/de/main.json index 5fa1a3c13..6c271492c 100644 --- a/src/assets/locales/de/main.json +++ b/src/assets/locales/de/main.json @@ -6,21 +6,21 @@ "swagger": "Swagger OpenAPI Definition", "storybook": "Storybook Shared Component Library", "marketplace": "Marketplace", - "appmarketplace": "App Marketplace", - "servicemarketplace": "Service Marketplace", + "appMarketplace": "App Marketplace", + "serviceMarketplace": "Service Marketplace", "appdetails": "App Details", - "datamanagement": "Datenmanagement", + "dataManagement": "Datenmanagement", "semantichub": "Semantische Modelle", "connector": "Konnektor", - "partnernetwork": "Partner Network", + "partnerNetwork": "Partner Network", "account": "Mein CX Account", "organization": "Meine Company", "notifications": "Benachrichtigungen", - "usermanagement": "Benutzerverwaltung", - "idpmanagement": "Identitätsprovider (IDP)", - "technicalsetup": "Technische Integration", - "connectormanagement": "Connector-Management", - "applicationrequests": "Beitrittsanträge", + "userManagement": "Benutzerverwaltung", + "idpManagement": "Identitätsprovider (IDP)", + "technicalSetup": "Technische Integration", + "connectorManagement": "Connector-Management", + "applicationRequests": "Beitrittsanträge", "admin": "Verwaltung", "developer": "Entwicklung", "invite": "Einladung CX Teilnehmer", @@ -30,51 +30,51 @@ "imprint": "Impressum", "privacy": "Privatsphäre", "terms": "Nutzungsbedingungen", - "cookiepolicy": "Cookies", + "cookiePolicy": "Cookies", "3rdpartylicenses": "Drittanbieterlizenzen", "logout": "Abmelden", - "notfound": "Seite nicht gefunden", - "appmanagement": "App Management", - "appoverview": "App-Übersicht", + "notFound": "Seite nicht gefunden", + "appManagement": "App Management", + "appOverview": "App-Übersicht", "deactivate": "Deactivate", - "appreleaseprocess": "App Release Process", - "appsubscription": "App Subscription MGT", + "appReleaseProcess": "App Release Process", + "appSubscription": "App Subscription MGT", "adminboard": "Admin Board", - "appusermanagement": "App Benutzer Verwaltung", + "appUserManagement": "App Benutzer Verwaltung", "userdetails": "Benutzer Details", - "technicaluser": "Technische Benutzer Verwaltung", - "techuserdetails": "Technischer Benutzer Details", - "companyroles": "Company Roles", - "companyrolesparticipant": "Participant", - "companyrolesappprovider": "App Provider", - "companyrolesserviceprovider": "Service Provider", - "companyrolesconformitybody": "Conformity Body", - "companyrolesonboardingserviceprovider": "Onboarding Service Provider", - "usecase": "Use Case", - "usecasetraceablity": "Traceablity", - "servicemanagement": "Service Management", - "serviceoverview": "Service Overview", - "servicereleaseprocess": "Service Release Process", - "serviceadminboard": "Admin Board", - "servicesubscription": "Service Subscription Mgt", - "servicedetail": "Service Details", - "company-role": "Config - Company Role", - "usecase-participation": "Config - Use Case Participation", - "certificate-credential": "Config - Certificates", + "technicalUserManagement": "Technische Benutzer Verwaltung", + "techUserDetails": "Technischer Benutzer Details", + "companyRoles": "Company Roles", + "companyRolesParticipant": "Participant", + "companyRolesAppProvider": "App Provider", + "companyRolesServiceProvider": "Service Provider", + "companyRolesConformityBody": "Conformity Body", + "companyRolesOnboardingServiceProvider": "Onboarding Service Provider", + "useCase": "Use Case", + "useCaseTraceablity": "Traceablity", + "serviceManagement": "Service Management", + "serviceOverview": "Service Overview", + "serviceReleaseProcess": "Service Release Process", + "serviceAdminBoard": "Admin Board", + "serviceSubscription": "Service Subscription Mgt", + "serviceDetail": "Service Details", + "companyRole": "Config - Company Role", + "useCaseParticipation": "Config - Use Case Participation", + "certificateCredential": "Config - Certificates", "about": "About", - "dataspace": "Data Space", - "admin-credential": "Credential Requests", + "dataSpace": "Data Space", + "adminCredential": "Credential Requests", "companyCertificate": "Company Certificates", "companyWallet": "Company Wallet", - "company-subscriptions": "Firmenabonnements", + "companySubscriptions": "Firmenabonnements", "mycompany": "My Company", "mynotifications": "My Notifications", - "company_data": "Company Data" + "companyData": "Company Data" }, "overlays": { "invite": "Neuen Geschäftspartner einladen", - "add_user": "Neuen Benutzer hinzufügen", - "add_techuser": "Neuen technischen Benutzer hinzufügen", + "addUser": "Neuen Benutzer hinzufügen", + "addTechuser": "Neuen technischen Benutzer hinzufügen", "idp_delete_info_title": "Löschung des Identitätsanbieters.", "idp_delete_info_intro": "Bitte beachten Sie, dass alle Benutzer, die nicht auf das neue iDP migriert werden, unwiderruflich gelöscht werden.", "idp_delete_success_title": "Identitätsanbieter {{name}} wurde erfolgreich gelöscht.", @@ -259,13 +259,13 @@ "title": "Catena-X", "subtitle": "das Tor zum digitalen Automotive-Netzwerk", "buttonName": "Meine Apps", - "navigation": "/appmanagement" + "navigation": "/appManagement" }, "slider2": { "title": "Use Case Introduction", "subtitle": "Lernen Sie die unterstützten Anwendungsfälle, zugehörigen semantischen Modelle und Apps kennen, um Ihre anwendungsfallgesteuerte Onboarding-Reise zu beginnen.", "buttonName": "Use Case Introduction", - "navigation": "/usecase" + "navigation": "/useCase" }, "slider3": { "title": "Marktplätze", @@ -463,7 +463,7 @@ "showAll": "zeige alles" } }, - "appoverview": { + "appOverview": { "headerTitle": "Meine Applikationen", "title": "App-Übersicht", "inputPlaceholder": "Suchen Sie nach Apps", @@ -552,7 +552,7 @@ "deleteIconTooltip": "Mindestens ein Dokument ist obligatorisch. Laden Sie ein neues Dokument hoch, bevor Sie das Bild entfernen können.", "uploadButtonTooltip": "Maximale Anzahl zulässiger Dokumente erreicht. Bitte löschen Sie ein Dokument, bevor Sie ein neues hochladen." }, - "appreleaseprocess": { + "appReleaseProcess": { "message": "App Release Process Message" }, "connector": { @@ -615,10 +615,7 @@ }, "configurationDetails": { "title": "So konfigurieren Sie Ihren Connector", - "description1": "Diese Beschreibung enthält Schritt-für-Schritt-Anleitungen zur Konfiguration Ihres Connectors.", - "description2": "Bitte befolgen Sie die nachstehenden Anweisungen, um die erforderlichen Konfigurationswerte festzulegen.", - "description3": "Stellen Sie sicher, dass Sie für jede Konfigurationseinstellung die richtigen Werte eingeben.", - "description4": "Sobald Sie diese Werte festgelegt haben, ist Ihr Connector ordnungsgemäß konfiguriert und einsatzbereit.", + "description": "Diese Beschreibung enthält Schritt-für-Schritt-Anleitungen zur Konfiguration Ihres Connectors.
Bitte befolgen Sie die nachstehenden Anweisungen, um die erforderlichen Konfigurationswerte festzulegen.
Stellen Sie sicher, dass Sie für jede Konfigurationseinstellung die richtigen Werte eingeben.
Sobald Sie diese Werte festgelegt haben, ist Ihr Connector ordnungsgemäß konfiguriert und einsatzbereit.", "learnMore": "Lern mehr", "clientId": "Client-ID Ihres technischen Benutzers", "secret": "Geheimnis", @@ -662,12 +659,12 @@ "company": { "title": "Connector registrieren", "intro": "Um mit Ihrem Connector innerhalb des Datenraums kommunizieren zu können, muss der Connector-Endpunkt registriert werden. Für den Connector ist zwingend ein technischer Benutzer erforderlich. Dieser Benutzer wird verwendet, um die Kommunikation zwischen Ihrem Connector und dem Firmen-Wallet (Identitätsmanagement) zu ermöglichen. Wenn der technische Benutzer noch nicht erstellt wurde, erstellen Sie bitte zuerst den technischen Benutzer und fahren Sie anschließend mit der Connector-Registrierung fort. Beachten Sie, dass die technische Benutzererstellung ein asynchroner Prozess ist und bis zu 5 Minuten dauern kann.", - "disableDescription": "Diese Option ist nur verfügbar, wenn Ihr Unternehmen aktiver Teilnehmer ist. Unternehmensrollen können vom Unternehmensadministrator /company-role geändert werden" + "disableDescription": "Diese Option ist nur verfügbar, wenn Ihr Unternehmen aktiver Teilnehmer ist. Unternehmensrollen können vom Unternehmensadministrator /companyRole geändert werden" }, "managed": { "title": "Register Managed Connector", "intro": "Register a managed connector of your customer / 3rd party provided. This selection is mainly service provider relevant, which offers managed connectors to data provider/consumer. If you want to register your own connector, please use the selection above.", - "disableDescription": "Diese Option ist nur verfügbar, wenn Ihr Unternehmen App-Anbieter oder Dienstanbieter ist. Unternehmensrollen können vom Unternehmensadministrator /company-role geändert werden" + "disableDescription": "Diese Option ist nur verfügbar, wenn Ihr Unternehmen App-Anbieter oder Dienstanbieter ist. Unternehmensrollen können vom Unternehmensadministrator /companyRole geändert werden" }, "companyconnectorlabel": "Verbinden Sie den Unternehmenskonnektor", "connectorasaservice": "Connector-as-a-service", @@ -1148,7 +1145,7 @@ "further": "Wenn Sie denken, dass hier etwas sein sollte kontaktieren Sie bitte Ihren Administrator." }, "appdetail": { - "usecase": "Use Case", + "useCase": "Use Case", "language": "Verfügbare App Sprachen", "subscribe": "Abonnieren", "subscribed": "Abonniert", @@ -1553,7 +1550,7 @@ } }, "adminboardDetail": { - "usecase": "Use Case", + "useCase": "Use Case", "language": "Language", "price": "Price", "longDescriptionTitleEN": "[Long Description - EN] ", @@ -1778,7 +1775,6 @@ "tab2": "Role Comparison" }, "companyRolesUpdate": { - "headerTitle": "Roles", "heading": "Change Company Role", "description": "Below you can manage the roles your company takes in Catena-X.", "step1": "You can change your current role by deselecting it and selecting another role.", @@ -1817,9 +1813,8 @@ } }, "usecaseParticipation": { - "headerTitle": "Use Case Participation Overview", "heading": "Use Case Participation", - "description": "Below you can manage your use case participation in Catena-X.
Please note - the selection of the usecase participatiance is relevant for data provider and data consumer.", + "description": "Below you can manage your use case participation in Catena-X.
Please note - the selection of the useCase participatiance is relevant for data provider and data consumer.", "step1": "You can view your current signed use case participation", "step2": "You can sign additional use cases by selecting the document download, signing the document and upload the same", "note": "Please note: ", diff --git a/src/assets/locales/de/notification.json b/src/assets/locales/de/notification.json index c5ed5d754..e9fc8600a 100644 --- a/src/assets/locales/de/notification.json +++ b/src/assets/locales/de/notification.json @@ -94,24 +94,24 @@ } }, "link": { - "appmarketplace": "Zum App Marketplace", + "appMarketplace": "Zum App Marketplace", "technicalsetup": "Zur Connector Registrierung", "home": "Zur Startseite", "app": "Zur App", "user": "Zum Benutzer", - "usecase": "Zu den Use Case", + "useCase": "Zu den Use Case", "serviceprovider": "Go to service provider", "appmanagementboard": "App Management Board öffnen", "servicemanagementboard": "Service Management Board öffnen", - "appoverview": "Get there", + "appOverview": "Get there", "appsubscription": "Get there", "adminboard": "Get there", "technicaluser": "Get there", - "companyrolesserviceprovider": "Get there", + "companyRolesServiceProvider": "Get there", "usermanagement": "Get there", - "servicesubscription": "Get there", - "serviceadminboard": "Get there", - "role-details": "Open Role Matrix", + "serviceSubscription": "Get there", + "serviceAdminBoard": "Get there", + "roleDetails": "Open Role Matrix", "servicemarketplace": "Get there" }, "due": "fällig", diff --git a/src/assets/locales/de/servicerelease.json b/src/assets/locales/de/servicerelease.json index 27b8561e2..e7810fd66 100644 --- a/src/assets/locales/de/servicerelease.json +++ b/src/assets/locales/de/servicerelease.json @@ -119,7 +119,7 @@ "conformityDocumentsDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", "documentsDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." }, - "serviceoverview": { + "serviceOverview": { "filter": { "all": "Alle", "active": "Aktiv", diff --git a/src/assets/locales/en/main.json b/src/assets/locales/en/main.json index 845d48eda..cd9b3a1f9 100644 --- a/src/assets/locales/en/main.json +++ b/src/assets/locales/en/main.json @@ -6,21 +6,21 @@ "swagger": "Swagger OpenAPI Definition", "storybook": "Storybook Shared Component Library", "marketplace": "Marketplace", - "appmarketplace": "App Marketplace", - "servicemarketplace": "Service Marketplace", + "appMarketplace": "App Marketplace", + "serviceMarketplace": "Service Marketplace", "appdetails": "App Details", - "datamanagement": "Data Management", + "dataManagement": "Data Management", "semantichub": "Semantic Hub", - "partnernetwork": "Partner Network", + "partnerNetwork": "Partner Network", "connector": "Connector", "account": "My CX Account", "organization": "My Company", "notifications": "Notifications", - "usermanagement": "User Management", - "idpmanagement": "Identity Provider Config", - "technicalsetup": "Technical Integration", - "connectormanagement": "Connector Management", - "applicationrequests": "Application Requests", + "userManagement": "User Management", + "idpManagement": "Identity Provider Config", + "technicalSetup": "Technical Integration", + "connectorManagement": "Connector Management", + "applicationRequests": "Application Requests", "admin": "Administration", "developer": "Development", "invite": "Invite Business Partner", @@ -30,50 +30,50 @@ "imprint": "Imprint", "privacy": "Privacy", "terms": "Terms of Service", - "cookiepolicy": "Cookies", + "cookiePolicy": "Cookies", "logout": "Sign Out", - "notfound": "Page not found", - "appmanagement": "App Management", - "appoverview": "App Overview", + "notFound": "Page not found", + "appManagement": "App Management", + "appOverview": "App Overview", "deactivate": "Deactivate", - "appreleaseprocess": "App Release Process", - "appsubscription": "App Subscription MGT", + "appReleaseProcess": "App Release Process", + "appSubscription": "App Subscription MGT", "adminboard": "Admin Board", - "appusermanagement": "App User Management", + "appUserManagement": "App User Management", "userdetails": "User Details", - "technicaluser": "Technical User Management", - "techuserdetails": "Technical User Details", - "companyroles": "Company Roles", - "companyrolesparticipant": "Participant", - "companyrolesappprovider": "App Provider", - "companyrolesserviceprovider": "Service Provider", - "companyrolesconformitybody": "Conformity Body", - "companyrolesonboardingserviceprovider": "Onboarding Service Provider", - "usecase": "Use Case", - "usecasetraceablity": "Traceablity", - "servicemanagement": "Service Management", - "serviceoverview": "Service Overview", - "servicereleaseprocess": "Service Release Process", - "serviceadminboard": "Admin Board", - "servicesubscription": "Service Subscription Mgt", - "servicedetail": "Service Details", - "company-role": "Config - Company Role", - "usecase-participation": "Config - Use Case Participation", - "certificate-credential": "Config - Certificates", + "technicalUserManagement": "Technical User Management", + "techUserDetails": "Technical User Details", + "companyRoles": "Company Roles", + "companyRolesParticipant": "Participant", + "companyRolesAppProvider": "App Provider", + "companyRolesServiceProvider": "Service Provider", + "companyRolesConformityBody": "Conformity Body", + "companyRolesOnboardingServiceProvider": "Onboarding Service Provider", + "useCase": "Use Case", + "useCaseTraceablity": "Traceablity", + "serviceManagement": "Service Management", + "serviceOverview": "Service Overview", + "serviceReleaseProcess": "Service Release Process", + "serviceAdminBoard": "Admin Board", + "serviceSubscription": "Service Subscription Mgt", + "serviceDetail": "Service Details", + "companyRole": "Config - Company Role", + "useCaseParticipation": "Config - Use Case Participation", + "certificateCredential": "Config - Certificates", "about": "About", - "dataspace": "Data Space", - "admin-credential": "Credential Requests", + "dataSpace": "Data Space", + "adminCredential": "Credential Requests", "companyCertificate": "Company Certificates", "companyWallet": "Company Wallet", - "company-subscriptions": "Company Subscriptions", + "companySubscriptions": "Company Subscriptions", "mycompany": "My Company", "mynotifications": "My Notifications", - "company_data": "Company Data" + "companyData": "Company Data" }, "overlays": { "invite": "Invite new Business Partner", - "add_user": "Add new user", - "add_techuser": "Add new technical user", + "addUser": "Add new user", + "addTechuser": "Add new technical user", "idp_delete_info_title": "Deletion of the identity provider.", "idp_delete_info_intro": "Please note, all users which are not migrated to the new iDP wii get irreversible deleted.", "idp_delete_success_title": "Identity provider {{name}} was successfully deleted.", @@ -258,13 +258,13 @@ "title": "Catena-X", "subtitle": "the gateway to the automotive digital network", "buttonName": "My Apps", - "navigation": "/appmanagement" + "navigation": "/appManagement" }, "slider2": { "title": "Use Case Introduction", "subtitle": "Get to know the supported use cases, related semantic models and apps to start your use case driven onboarding journey.", "buttonName": "Use Case Introduction", - "navigation": "/usecase" + "navigation": "/useCase" }, "slider3": { "title": "Marketplaces", @@ -462,7 +462,7 @@ "datamanagement": { "message": "Contents of Data Management" }, - "appoverview": { + "appOverview": { "headerTitle": "My Apps", "title": "App Overview", "inputPlaceholder": "Search for Apps", @@ -551,7 +551,7 @@ "deleteIconTooltip": "At least one document is mandatory. Upload a new document before being able to remove the image.", "uploadButtonTooltip": "Maximum number of allowed documents reached. Please delete one document before uploading a new one." }, - "appreleaseprocess": { + "appReleaseProcess": { "message": "App Release Process Message" }, "connector": { @@ -614,10 +614,7 @@ }, "configurationDetails": { "title": "How to Configure Your Connector", - "description1": "This description provides step-by-step instructions on how to configure your connector.", - "description2": "Please follow the instructions below to set the necessary configuration values.", - "description3": "Ensure that you enter the correct values for each configuration setting.", - "description4": "Once you have set these values, your connector will be properly configured and ready to use.", + "description": "This description provides step-by-step instructions on how to configure your connector.
Please follow the instructions below to set the necessary configuration values.
Ensure that you enter the correct values for each configuration setting.
Once you have set these values, your connector will be properly configured and ready to use.", "learnMore": "learn more", "clientId": "Client ID of your technical user", "secret": "Secret", @@ -666,12 +663,12 @@ "company": { "title": "Register Connector", "intro": "To be able to communicate with your connector inside the dataspace, the connector endpoint needs to get registered. For the connector, a technical user is mandatorily needed. This user is used to enable the communication between your connector and the company wallet (identity management). If the technical user is not created already, please create the technical user first and proceed with the connector registration afterwards. Note, the technical user creation is a asynchrony process and might take up to 5 minutes.", - "disableDescription": "This option is only available if your company is Active Participant. Company roles can get changed by the company admin /company-role" + "disableDescription": "This option is only available if your company is Active Participant. Company roles can get changed by the company admin /companyRole" }, "managed": { "title": "Register Managed Connector", "intro": "Register a managed connector of your customer / 3rd party provided. This selection is mainly service provider relevant, which offers managed connectors to data provider/consumer. If you want to register your own connector, please use the selection above.", - "disableDescription": "This option is only available if your company is App Provider or Service Provider. Company roles can get changed by the company admin /company-role" + "disableDescription": "This option is only available if your company is App Provider or Service Provider. Company roles can get changed by the company admin /companyRole" }, "companyconnectorlabel": "Connect company connector", "connectorasaservice": "Connector-as-a-service", @@ -1114,7 +1111,7 @@ "further": "If you think there should be content please contact your administrator." }, "appdetail": { - "usecase": "Use Case", + "useCase": "Use Case", "language": "Language", "subscribe": "Subscribe", "subscribed": "Subscribed", @@ -1520,7 +1517,7 @@ } }, "adminboardDetail": { - "usecase": "Use Case", + "useCase": "Use Case", "language": "Language", "price": "Price", "longDescriptionTitleEN": "[Long Description - EN] ", @@ -1745,7 +1742,6 @@ "tab2": "Role Comparison" }, "companyRolesUpdate": { - "headerTitle": "Roles", "heading": "Change Company Role", "description": "Below you can manage the roles your company takes in Catena-X.", "step1": "You can change your current role by selecting and deselecting the resepctive available roles.", @@ -1784,9 +1780,8 @@ } }, "usecaseParticipation": { - "headerTitle": "Use Case Participation Overview", "heading": "Use Case Participation", - "description": "Below you can manage your use case participation in Catena-X.
Please note - the selection of the usecase participatiance is relevant for data provider and data consumer.", + "description": "Below you can manage your use case participation in Catena-X.
Please note - the selection of the useCase participatiance is relevant for data provider and data consumer.", "step1": "You can view your current signed use case participation", "step2": "You can sign additional use cases by selecting the document download, signing the document and upload the same", "note": "Please note: ", diff --git a/src/assets/locales/en/notification.json b/src/assets/locales/en/notification.json index 6d8db35f2..23c467580 100644 --- a/src/assets/locales/en/notification.json +++ b/src/assets/locales/en/notification.json @@ -94,24 +94,24 @@ } }, "link": { - "appmarketplace": "Go to app marketplace", + "appMarketplace": "Go to app marketplace", "technicalsetup": "Go to connector configuration", "home": "Go to home page", "app": "Go to app", "user": "Go to user", - "usecase": "Go to Use Case", + "useCase": "Go to Use Case", "serviceprovider": "Go to service provider", "appmanagementboard": "Get there", "servicemanagementboard": "Get there", - "appoverview": "Get there", + "appOverview": "Get there", "appsubscription": "Get there", "adminboard": "Get there", "technicaluser": "Get there", - "companyrolesserviceprovider": "Get there", + "companyRolesServiceProvider": "Get there", "usermanagement": "Get there", - "servicesubscription": "Get there", - "serviceadminboard": "Get there", - "role-details": "Open Role Matrix", + "serviceSubscription": "Get there", + "serviceAdminBoard": "Get there", + "roleDetails": "Open Role Matrix", "servicemarketplace": "Get there" }, "due": "due", diff --git a/src/assets/locales/en/servicerelease.json b/src/assets/locales/en/servicerelease.json index 648d0abb7..cbd9b1577 100644 --- a/src/assets/locales/en/servicerelease.json +++ b/src/assets/locales/en/servicerelease.json @@ -119,7 +119,7 @@ "conformityDocumentsDescription": "To publish your service on the marketplace, a number of Catena-X specific agreements need to get signed by you. Please have a look at the mentioned agreements and agree to them via the checklist approval.", "documentsDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." }, - "serviceoverview": { + "serviceOverview": { "headerTitle": "Service Overview - Own managed service offers", "inputPlaceholder": "Search for services", "filter": { diff --git a/src/components/overlays/AddUser/AddUserDeny.tsx b/src/components/overlays/AddUser/AddUserDeny.tsx index 8d59e7725..ae35e7d5e 100644 --- a/src/components/overlays/AddUser/AddUserDeny.tsx +++ b/src/components/overlays/AddUser/AddUserDeny.tsx @@ -79,7 +79,7 @@ export const AddUserDeny = ({ idps }: { idps: IdentityProvider[] }) => { }} sx={{ textTransform: 'none' }} > - {t('pages.idpmanagement')} + {t('pages.idpManagement')} diff --git a/src/components/overlays/AppOverViewConfirm/AppDetailsOverlay.tsx b/src/components/overlays/AppOverViewConfirm/AppDetailsOverlay.tsx index 873cd31dd..7463e4a79 100644 --- a/src/components/overlays/AppOverViewConfirm/AppDetailsOverlay.tsx +++ b/src/components/overlays/AppOverViewConfirm/AppDetailsOverlay.tsx @@ -44,7 +44,7 @@ export default function AppDetailsOverlay({ <> dispatch(closeOverlay()), }} @@ -64,7 +64,7 @@ export default function AppDetailsOverlay({ }} variant="h5" > - {t('content.appoverview.details.description').replace( + {t('content.appOverview.details.description').replace( '{appName}', title )} diff --git a/src/components/overlays/AppOverViewConfirm/index.tsx b/src/components/overlays/AppOverViewConfirm/index.tsx index bf25c90ea..bd2c6d7ae 100644 --- a/src/components/overlays/AppOverViewConfirm/index.tsx +++ b/src/components/overlays/AppOverViewConfirm/index.tsx @@ -51,7 +51,7 @@ export default function AppOverViewConfirm({ {title && ( - {t('content.appoverview.confirmModal.description').replace( + {t('content.appOverview.confirmModal.description').replace( '{appName}', title )} @@ -97,7 +97,7 @@ export default function AppOverViewConfirm({ variant="contained" onClick={() => { close() - navigate(`/${PAGES.APPRELEASEPROCESS}/form`) + navigate(`/${PAGES.APP_RELEASE_PROCESS}/form`) }} > {`${t('global.actions.yes')}`} diff --git a/src/components/overlays/DeleteTechnicalUser/index.tsx b/src/components/overlays/DeleteTechnicalUser/index.tsx index cc5fc4e55..30fd7b9d7 100644 --- a/src/components/overlays/DeleteTechnicalUser/index.tsx +++ b/src/components/overlays/DeleteTechnicalUser/index.tsx @@ -52,7 +52,7 @@ export const DeleteTechnicalUser = ({ id }: { id: string }) => { dispatch(closeOverlay()) dispatch(updateData(UPDATES.TECHUSER_LIST)) dispatch(setNotification(notification)) - navigate(`/${PAGES.TECHUSER_MANAGEMENT}`) + navigate(`/${PAGES.TECH_USER_MANAGEMENT}`) } const deleteUserError = (err: unknown) => { @@ -65,7 +65,7 @@ export const DeleteTechnicalUser = ({ id }: { id: string }) => { } dispatch(closeOverlay()) dispatch(setNotification(notification)) - navigate(`/${PAGES.TECHUSER_MANAGEMENT}`) + navigate(`/${PAGES.TECH_USER_MANAGEMENT}`) } const handleRemove = async () => { diff --git a/src/components/overlays/EditUsecase/index.tsx b/src/components/overlays/EditUsecase/index.tsx index 6d5a8e2cf..b613c2eaf 100644 --- a/src/components/overlays/EditUsecase/index.tsx +++ b/src/components/overlays/EditUsecase/index.tsx @@ -36,8 +36,8 @@ import { OVERLAYS } from 'types/Constants' import { closeOverlay, show } from 'features/control/overlay' import type { store } from 'features/store' import { Dropzone } from '../../shared/basic/Dropzone' -import { useAddUsecaseMutation } from 'features/usecase/usecaseApiSlice' import './style.scss' +import { useAddUsecaseMutation } from 'features/usecase/usecaseApiSlice' export default function EditUsecase({ id: verifiedCredentialTypeId, diff --git a/src/components/pages/AboutPage/index.tsx b/src/components/pages/AboutPage/index.tsx index 857adc2fa..6b31c196e 100644 --- a/src/components/pages/AboutPage/index.tsx +++ b/src/components/pages/AboutPage/index.tsx @@ -19,16 +19,13 @@ import { AboutCard, PageHeader } from '@catena-x/portal-shared-components' import legalJson from '../../../assets/notice/legal-notice.json' -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { useTranslation } from 'react-i18next' export default function AboutPage() { const { t } = useTranslation() return (
- - - +
{ nav === 'marketplace' ? navigate(`/${PAGES.APP_MARKETPLACE}`) - : navigate(`/${PAGES.APPOVERVIEW}`) + : navigate(`/${PAGES.APP_OVERVIEW}`) }} /> diff --git a/src/components/pages/AppDetail/components/AppDetailHeader/AppDetailHeader.scss b/src/components/pages/AppDetail/components/AppDetailHeader/AppDetailHeader.scss index b9f70a22b..2621876fe 100644 --- a/src/components/pages/AppDetail/components/AppDetailHeader/AppDetailHeader.scss +++ b/src/components/pages/AppDetail/components/AppDetailHeader/AppDetailHeader.scss @@ -49,7 +49,7 @@ font-size: 14px; } } - .usecase { + .useCase { display: flex; } ul { diff --git a/src/components/pages/AppDetail/components/AppDetailHeader/index.tsx b/src/components/pages/AppDetail/components/AppDetailHeader/index.tsx index c5d11f74a..f5c585162 100644 --- a/src/components/pages/AppDetail/components/AppDetailHeader/index.tsx +++ b/src/components/pages/AppDetail/components/AppDetailHeader/index.tsx @@ -192,9 +192,9 @@ export default function AppDetailHeader({ item }: AppDetailHeaderProps) { {item.price} -
+
- {t('content.appdetail.usecase')}: + {t('content.appdetail.useCase')}: {item.useCases.map((useCase: UseCaseType) => ( @@ -202,7 +202,7 @@ export default function AppDetailHeader({ item }: AppDetailHeaderProps) { ))}
-
+
{t('content.appdetail.language')}: diff --git a/src/components/pages/AppOverview/AddRoles.tsx b/src/components/pages/AppOverview/AddRoles.tsx index 2b4064dd8..2cb62b6cf 100644 --- a/src/components/pages/AppOverview/AddRoles.tsx +++ b/src/components/pages/AppOverview/AddRoles.tsx @@ -17,7 +17,6 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { Typography, PageHeader, @@ -146,9 +145,7 @@ export default function AddRoles() { return (
- - - +
{app?.[0]?.title} @@ -208,7 +205,7 @@ export default function AddRoles() {
) diff --git a/src/components/pages/AppOverview/ChangeDescription.tsx b/src/components/pages/AppOverview/ChangeDescription.tsx index 45b0ab084..976cdaacf 100644 --- a/src/components/pages/AppOverview/ChangeDescription.tsx +++ b/src/components/pages/AppOverview/ChangeDescription.tsx @@ -17,7 +17,6 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { Typography, PageHeader, @@ -110,7 +109,7 @@ export default function ChangeDescription() { await saveDescription(saveData) .unwrap() .then(() => { - navigate(`/${PAGES.APPOVERVIEW}`, { + navigate(`/${PAGES.APP_OVERVIEW}`, { state: 'change-description-success', }) success(t('content.changeDescription.successMsg')) @@ -144,9 +143,7 @@ export default function ChangeDescription() { return (
- - - +
{app?.[0]?.title} @@ -322,7 +319,7 @@ export default function ChangeDescription() {
) diff --git a/src/components/pages/IDPDetail/IDPDetailContent.tsx b/src/components/pages/IDPDetail/IDPDetailContent.tsx deleted file mode 100644 index f0283eace..000000000 --- a/src/components/pages/IDPDetail/IDPDetailContent.tsx +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2023 BMW Group AG - * Copyright (c) 2023 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -import { UpdateIDPContent } from 'components/overlays/UpdateIDP/UpdateIDPContent' -import { - Button, - DialogActions, - IconButton, - Typography, -} from '@catena-x/portal-shared-components' -import type { IdentityProvider } from 'features/admin/idpApiSlice' -import CloseIcon from '@mui/icons-material/Close' -import Box from '@mui/material/Box' -import { t } from 'i18next' -import './style.scss' - -export const IDPDetailContent = ({ - idp, - onClose, -}: { - idp: IdentityProvider - onClose?: () => void -}) => { - return ( -
- {onClose && ( - - - - - - )} -
- {t('content.idpdetail.title')} -
-
- -
- - - -
- ) -} diff --git a/src/components/pages/IDPDetail/index.tsx b/src/components/pages/IDPDetail/index.tsx deleted file mode 100644 index 239324e79..000000000 --- a/src/components/pages/IDPDetail/index.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2023 BMW Group AG - * Copyright (c) 2023 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ -import { useParams } from 'react-router-dom' -import { PAGES } from 'types/Constants' -import PageHeaderWithCrumbs from 'components/shared/frame/PageHeaderWithCrumbs' -import { IDPDetailContent } from './IDPDetailContent' -import { Empty } from 'components/shared/basic/Empty' -import { useFetchIDPDetailQuery } from 'features/admin/idpApiSlice' - -export default function IDPDetail() { - const { idpId } = useParams() - const { data } = useFetchIDPDetailQuery(idpId ?? '') - return ( -
- -
{data ? : }
-
- ) -} diff --git a/src/components/pages/IDPDetail/style.scss b/src/components/pages/IDPDetail/style.scss deleted file mode 100644 index 741ab4e65..000000000 --- a/src/components/pages/IDPDetail/style.scss +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2023 BMW Group AG - * Copyright (c) 2023 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -.idp-detail-content { - padding: 8px 16px 16px; - border: 1px solid #ccc; - margin-top: 10px; - margin-bottom: 20px; - border-radius: 10px; - - .idp-detail-content-header { - width: 100%; - text-align: center; - padding: 40px; - } - - .idp-detail-content-main { - width: 100%; - padding: 40px 120px; - } -} diff --git a/src/components/pages/IDPManagement/index.tsx b/src/components/pages/IDPManagement/index.tsx index fa9b4cdc0..7f71e40d7 100644 --- a/src/components/pages/IDPManagement/index.tsx +++ b/src/components/pages/IDPManagement/index.tsx @@ -38,7 +38,7 @@ export default function IDPManagement() {
- {t('idpmanagement.title')} + {t('idpManagement.title')} diff --git a/src/components/pages/InviteBusinessPartner/index.tsx b/src/components/pages/InviteBusinessPartner/index.tsx index 29165c598..bc84bf225 100644 --- a/src/components/pages/InviteBusinessPartner/index.tsx +++ b/src/components/pages/InviteBusinessPartner/index.tsx @@ -24,14 +24,12 @@ import { Dialog, DialogContent, IconButton, - PageHeader, Typography, } from '@catena-x/portal-shared-components' import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline' import CloseIcon from '@mui/icons-material/Close' import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline' import type { InviteData } from 'features/admin/registration/types' -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { InviteForm } from 'components/overlays/InviteForm' @@ -160,13 +158,6 @@ export default function InviteBusinessPartner() { - - -
{t('content.invite.subHeaderTitle')} diff --git a/src/components/pages/NotificationCenter/NotificationItem.tsx b/src/components/pages/NotificationCenter/NotificationItem.tsx index df18b13ae..60bd90892 100644 --- a/src/components/pages/NotificationCenter/NotificationItem.tsx +++ b/src/components/pages/NotificationCenter/NotificationItem.tsx @@ -184,7 +184,7 @@ const NotificationConfig = ({ item }: { item: CXNotificationContent }) => { ) case NotificationType.APP_SUBSCRIPTION_REQUEST: return ( - + ) case NotificationType.APP_RELEASE_REQUEST: return @@ -193,24 +193,27 @@ const NotificationConfig = ({ item }: { item: CXNotificationContent }) => { ) case NotificationType.APP_RELEASE_REJECTION: - return + return case NotificationType.TECHNICAL_USER_CREATION: return ( ) case NotificationType.SERVICE_REQUEST: return ( ) case NotificationType.SERVICE_RELEASE_REQUEST: return ( - + ) case NotificationType.ROLE_UPDATE_APP_OFFER: return diff --git a/src/components/pages/OSPConsent/CompanyDetails.tsx b/src/components/pages/OSPConsent/CompanyDetails.tsx index 0962334c5..c5348b7cd 100644 --- a/src/components/pages/OSPConsent/CompanyDetails.tsx +++ b/src/components/pages/OSPConsent/CompanyDetails.tsx @@ -239,7 +239,7 @@ export const CompanyDetails = ({
{allConsentData?.companyRoles.map((role) => (
diff --git a/src/components/pages/OSPConsent/style.scss b/src/components/pages/OSPConsent/style.scss index 8a90f7e9d..b3c88e56f 100644 --- a/src/components/pages/OSPConsent/style.scss +++ b/src/components/pages/OSPConsent/style.scss @@ -81,7 +81,7 @@ margin: 30px 0 50px; .rolesList { - .company-role-section { + .companyRole-section { margin-bottom: 20px; .role-checkbox-row { diff --git a/src/components/pages/Organization/index.tsx b/src/components/pages/Organization/index.tsx index f85d50211..469e388c3 100644 --- a/src/components/pages/Organization/index.tsx +++ b/src/components/pages/Organization/index.tsx @@ -19,13 +19,10 @@ ********************************************************************************/ import { useTranslation } from 'react-i18next' -import { useNavigate } from 'react-router-dom' -import { Box } from '@mui/material' import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined' import { Button, Typography, - BackButton, ContentCard, } from '@catena-x/portal-shared-components' import { useFetchCertificatesQuery } from 'features/companyCertification/companyCertificateApiSlice' @@ -34,7 +31,6 @@ import { FilterType, SortType } from '../CompanyCertificates' import MyCompanyInfoComponent from './MyCompanyInfoComponent' export default function Organization() { - const navigate = useNavigate() const { t } = useTranslation() const certificates = useFetchCertificatesQuery({ @@ -45,15 +41,6 @@ export default function Organization() { return (
- - { - navigate('/') - }} - /> -
diff --git a/src/components/pages/PartnerNetwork/index.tsx b/src/components/pages/PartnerNetwork/index.tsx index a9c61a6ce..3bc0ff62b 100644 --- a/src/components/pages/PartnerNetwork/index.tsx +++ b/src/components/pages/PartnerNetwork/index.tsx @@ -88,7 +88,7 @@ const PartnerNetwork = () => { title={t('content.partnernetwork.headertitle')} topPage={false} headerHeight={200} - > + />
diff --git a/src/components/pages/SemanticHub/index.tsx b/src/components/pages/SemanticHub/index.tsx index 11abfe258..c7ac20138 100644 --- a/src/components/pages/SemanticHub/index.tsx +++ b/src/components/pages/SemanticHub/index.tsx @@ -18,15 +18,15 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import StageHeader from 'components/shared/frame/StageHeader' import { Button, + PageHeader, PageSnackbar, Typography, } from '@catena-x/portal-shared-components' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' -import { Grid } from '@mui/material' +import { Box, Grid } from '@mui/material' import ModelDetailDialog from './ModelDetailDialog' import ModelTable from './ModelTable' import { useDispatch, useSelector } from 'react-redux' @@ -120,7 +120,13 @@ export default function SemanticHub() { return ( <> - + + +
@@ -144,7 +150,12 @@ export default function SemanticHub() { {'alt { - navigate(`/${PAGES.SERVICEADMINBOARD}`) + navigate(`/${PAGES.SERVICE_ADMIN_BOARD}`) }} > {t('adminboardDetail.action.back')} @@ -284,7 +284,7 @@ export default function ServiceAdminBoardDetail() { color="secondary" size="small" onClick={() => { - navigate('/serviceadminboard') + navigate('/serviceAdminBoard') }} > {t('adminboardDetail.backToBoard')} diff --git a/src/components/pages/ServiceMarketplace/RecommendedServices.tsx b/src/components/pages/ServiceMarketplace/RecommendedServices.tsx index 3ba358825..ace4c3c83 100644 --- a/src/components/pages/ServiceMarketplace/RecommendedServices.tsx +++ b/src/components/pages/ServiceMarketplace/RecommendedServices.tsx @@ -53,7 +53,7 @@ export default function RecommendedServices({ }, []) const handleClick = (id: string) => { - navigate(`/servicemarketplacedetail/${id}`) + navigate(`/serviceMarketplaceDetail/${id}`) } if (services && services.length === 0) { diff --git a/src/components/pages/ServiceMarketplace/ServicesElements.tsx b/src/components/pages/ServiceMarketplace/ServicesElements.tsx index 0a93d7f08..ce48f2e15 100644 --- a/src/components/pages/ServiceMarketplace/ServicesElements.tsx +++ b/src/components/pages/ServiceMarketplace/ServicesElements.tsx @@ -50,7 +50,7 @@ export default function ServicesElements({ }, []) const handleClick = (id: string) => { - navigate(`/servicemarketplacedetail/${id}`) + navigate(`/serviceMarketplaceDetail/${id}`) } return ( diff --git a/src/components/pages/ServiceReleaseProcess/components/ServiceDeactivate.tsx b/src/components/pages/ServiceReleaseProcess/components/ServiceDeactivate.tsx index 0274b5cf1..1789e6cef 100644 --- a/src/components/pages/ServiceReleaseProcess/components/ServiceDeactivate.tsx +++ b/src/components/pages/ServiceReleaseProcess/components/ServiceDeactivate.tsx @@ -17,7 +17,6 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { Typography, PageHeader, @@ -59,12 +58,12 @@ export default function ServiceDeactivate() { await deactivateService(service[0].id) .unwrap() .then(() => { - navigate(`/${PAGES.SERVICEOVERVIEW}`, { + navigate(`/${PAGES.SERVICE_OVERVIEW}`, { state: ServiceDeactivateEnum.SERVICE_DEACTIVATE_SUCCESS, }) }) .catch(() => { - navigate(`/${PAGES.SERVICEOVERVIEW}`, { + navigate(`/${PAGES.SERVICE_OVERVIEW}`, { state: ServiceDeactivateEnum.SERVICE_DEACTIVATE_ERROR, }) }) @@ -72,18 +71,20 @@ export default function ServiceDeactivate() { return (
- - - +
{service?.[0]?.title} - {t('serviceoverview.serviceDeactivate.headerTitle')} + {t('serviceOverview.serviceDeactivate.headerTitle')} - {t('serviceoverview.serviceDeactivate.description')} + {t('serviceOverview.serviceDeactivate.description')}
@@ -109,7 +110,7 @@ export default function ServiceDeactivate() { { e.target.checked ? setChecked(true) : setChecked(false) @@ -129,7 +130,7 @@ export default function ServiceDeactivate() { size="small" color="secondary" onClick={() => { - navigate('/serviceoverview') + navigate('/serviceOverview') }} > {t('global.actions.cancel')} @@ -138,7 +139,7 @@ export default function ServiceDeactivate() { tooltipPlacement="bottom-start" tooltipText={ !checked - ? t('serviceoverview.serviceDeactivate.checkboxErrorMsg') + ? t('serviceOverview.serviceDeactivate.checkboxErrorMsg') : '' } children={ diff --git a/src/components/pages/ServiceReleaseProcess/components/ServiceDetail.scss b/src/components/pages/ServiceReleaseProcess/components/ServiceDetail.scss index 68672884c..facf62b98 100644 --- a/src/components/pages/ServiceReleaseProcess/components/ServiceDetail.scss +++ b/src/components/pages/ServiceReleaseProcess/components/ServiceDetail.scss @@ -18,7 +18,7 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -.servicedetail-main { +.serviceDetail-main { background-color: #eee; margin-left: auto; margin-right: auto; diff --git a/src/components/pages/ServiceReleaseProcess/components/ServiceDetails.tsx b/src/components/pages/ServiceReleaseProcess/components/ServiceDetails.tsx index 7ec45c44b..19063b0bd 100644 --- a/src/components/pages/ServiceReleaseProcess/components/ServiceDetails.tsx +++ b/src/components/pages/ServiceReleaseProcess/components/ServiceDetails.tsx @@ -33,7 +33,6 @@ import { } from 'features/serviceManagement/apiSlice' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { Divider } from '@mui/material' import ArticleOutlinedIcon from '@mui/icons-material/ArticleOutlined' import { useParams } from 'react-router-dom' @@ -85,13 +84,11 @@ export default function ServiceDetails() { title={t('servicedetails.headerTitle')} topPage={true} headerHeight={200} - > - - + />
{fetchServiceStatus && ( <> -
+
{ - navigate(`/${PAGES.SERVICERELEASEPROCESS}/form`) + navigate(`/${PAGES.SERVICE_RELEASE_PROCESS}/form`) dispatch(setServiceId('')) dispatch(setServiceReleaseActiveStep()) dispatch(setServiceStatus(initialState.serviceStatusData)) @@ -199,12 +198,10 @@ export default function ServiceListOverview() { return (
- - + />
@@ -221,7 +218,7 @@ export default function ServiceListOverview() { onChange={(e) => { onSearch(e.target.value) }} - placeholder={t('serviceoverview.inputPlaceholder')} + placeholder={t('serviceOverview.inputPlaceholder')} />
@@ -261,7 +258,7 @@ export default function ServiceListOverview() { imageSize={'small'} imageLoader={fetchImageWithToken} showAddNewCard={false} - newButtonText={t('serviceoverview.addbtn')} + newButtonText={t('serviceOverview.addbtn')} onNewCardButton={onNewServiceCardClick} onCardClick={(item: CardItems) => { // TODO: workaround - fix CardItems type @@ -271,7 +268,7 @@ export default function ServiceListOverview() { cardItem.status === ProvidedServiceStatusEnum.CREATED ) { dispatch(setServiceId(item.id ?? '')) - navigate(`/${PAGES.SERVICERELEASEPROCESS}/form`) + navigate(`/${PAGES.SERVICE_RELEASE_PROCESS}/form`) } else { navigate(`/${PAGES.SERVICE_DETAIL}/${item.id}`) } @@ -284,12 +281,12 @@ export default function ServiceListOverview() { id: string | undefined ) => { sortMenu === ServiceSubMenuItems.DEACTIVATE && - navigate(`/${PAGES.SERVICEDEACTIVATE}/${id}`, { + navigate(`/${PAGES.SERVICE_DEACTIVATE}/${id}`, { state: items, }) return undefined }} - tooltipText={t('serviceoverview.submenuNotAvailable')} + tooltipText={t('serviceOverview.submenuNotAvailable')} />
) : ( @@ -321,8 +318,8 @@ export default function ServiceListOverview() { } description={ state === ServiceDeactivateEnum.SERVICE_DEACTIVATE_SUCCESS - ? t('serviceoverview.serviceDeactivate.successMsg') - : t('serviceoverview.serviceDeactivate.errorMsg') + ? t('serviceOverview.serviceDeactivate.successMsg') + : t('serviceOverview.serviceDeactivate.errorMsg') } showIcon={true} autoClose={true} diff --git a/src/components/pages/ServiceReleaseProcess/components/index.tsx b/src/components/pages/ServiceReleaseProcess/components/index.tsx index 00357a482..f32180f31 100644 --- a/src/components/pages/ServiceReleaseProcess/components/index.tsx +++ b/src/components/pages/ServiceReleaseProcess/components/index.tsx @@ -37,7 +37,7 @@ export default function ServiceReleaseProcessForm() { const dispatch = useDispatch() const onServiceOverviewClick = () => { - navigate('/serviceoverview') + navigate('/serviceOverview') dispatch(setServiceReleaseActiveStep()) } const serviceStatusData = useSelector(serviceStatusDataSelector) diff --git a/src/components/pages/ServiceReleaseProcess/index.tsx b/src/components/pages/ServiceReleaseProcess/index.tsx index b2281b999..39233c032 100644 --- a/src/components/pages/ServiceReleaseProcess/index.tsx +++ b/src/components/pages/ServiceReleaseProcess/index.tsx @@ -69,14 +69,14 @@ export default function ServiceReleaseProcess() { ] const onStartServiceClick = () => { - navigate(`/${PAGES.SERVICERELEASEPROCESS}/form`) + navigate(`/${PAGES.SERVICE_RELEASE_PROCESS}/form`) dispatch(setServiceReleaseActiveStep()) dispatch(setServiceId('')) dispatch(setServiceStatus(initialState.serviceStatusData)) } const onOverviewServiceButton = () => { - navigate('/serviceoverview') + navigate('/serviceOverview') } const requeredButtons = [ diff --git a/src/components/pages/TechnicalUserDetails/TechnicalUserDetailsContent.tsx b/src/components/pages/TechnicalUserDetails/TechnicalUserDetailsContent.tsx index ef22ea71d..ce8978b9a 100644 --- a/src/components/pages/TechnicalUserDetails/TechnicalUserDetailsContent.tsx +++ b/src/components/pages/TechnicalUserDetails/TechnicalUserDetailsContent.tsx @@ -115,7 +115,7 @@ export default function TechnicalUserDetailsContent({ variant="outlined" startIcon={} onClick={() => - dispatch(show(OVERLAYS.DELETE_TECHUSER, newData.serviceAccountId)) + dispatch(show(OVERLAYS.DELETE_TECH_USER, newData.serviceAccountId)) } > {t('content.usermanagement.technicalUser.delete')} diff --git a/src/components/pages/TechnicalUserDetails/index.tsx b/src/components/pages/TechnicalUserDetails/index.tsx index 88ee8f7dd..4b96d3a0f 100644 --- a/src/components/pages/TechnicalUserDetails/index.tsx +++ b/src/components/pages/TechnicalUserDetails/index.tsx @@ -33,8 +33,8 @@ export default function TechnicalUserDetails() { {data ? : } diff --git a/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx b/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx index 767cdc71d..49b7bcd6f 100644 --- a/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx +++ b/src/components/pages/TechnicalUserManagement/TechnicalUserTable.tsx @@ -155,7 +155,7 @@ export const TechnicalUserTable = () => { //dispatch(show(OVERLAYS.TECHUSER, row.serviceAccountId)) { navigate( - `/${PAGES.TECHUSER_DETAILS}/${row.serviceAccountId}` + `/${PAGES.TECH_USER_DETAILS}/${row.serviceAccountId}` ) } } diff --git a/src/components/pages/TechnicalUserManagement/index.tsx b/src/components/pages/TechnicalUserManagement/index.tsx index 7ec7a9b1a..06735fd0a 100644 --- a/src/components/pages/TechnicalUserManagement/index.tsx +++ b/src/components/pages/TechnicalUserManagement/index.tsx @@ -45,7 +45,7 @@ export default function TechnicalUserManagement() { return (
@@ -65,7 +65,7 @@ export default function TechnicalUserManagement() { diff --git a/src/components/pages/UsecaseParticipation/UsecaseParticipation.scss b/src/components/pages/UsecaseParticipation/UsecaseParticipation.scss index d1c34fe23..64f98c3c3 100644 --- a/src/components/pages/UsecaseParticipation/UsecaseParticipation.scss +++ b/src/components/pages/UsecaseParticipation/UsecaseParticipation.scss @@ -17,8 +17,8 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -.usecase-participation { - .usecase-main { +.useCaseParticipation { + .useCase-main { margin-top: 72px; } .container { @@ -67,7 +67,7 @@ border-bottom: 1px solid #dcdcdc; padding: 30px; } - .usecase-list-main { + .useCase-list-main { max-width: 850px; width: 100%; margin: 0 auto 50px; @@ -82,12 +82,12 @@ border: 0; border-top: 1px solid #dcdcdc; } - .usecase-list { + .useCase-list { margin-bottom: 30px; - .usecase-list-item { + .useCase-list-item { margin-bottom: 20px; display: flex; - .usecase-detail { + .useCase-detail { display: flex; width: 80%; svg { diff --git a/src/components/pages/UsecaseParticipation/index.tsx b/src/components/pages/UsecaseParticipation/index.tsx index b8e89b3a4..bc8f10b27 100644 --- a/src/components/pages/UsecaseParticipation/index.tsx +++ b/src/components/pages/UsecaseParticipation/index.tsx @@ -27,7 +27,6 @@ import { Chip, CircleProgress, CustomAccordion, - PageHeader, StatusTag, Tooltips, Typography, @@ -37,7 +36,6 @@ import LaunchIcon from '@mui/icons-material/Launch' import uniqueId from 'lodash/uniqueId' import { show } from 'features/control/overlay' import { OVERLAYS } from 'types/Constants' -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { useFetchUsecaseQuery, type UsecaseResponse, @@ -141,15 +139,8 @@ export default function UsecaseParticipation() { } return ( -
- - - -
+
+
{t('content.usecaseParticipation.heading')} @@ -185,7 +176,7 @@ export default function UsecaseParticipation() { {t('content.usecaseParticipation.noteDetail')}
-
+
    {isLoading ? (
    @@ -203,14 +194,14 @@ export default function UsecaseParticipation() { ) : ( data?.map((item) => { return ( -
    -
  • -
    +
    +
  • +
    {item.useCase} diff --git a/src/components/pages/UserDetail/index.tsx b/src/components/pages/UserDetail/index.tsx index 31314cbc1..e11ad8745 100644 --- a/src/components/pages/UserDetail/index.tsx +++ b/src/components/pages/UserDetail/index.tsx @@ -33,7 +33,6 @@ import { useTranslation } from 'react-i18next' import { useDispatch } from 'react-redux' import { useParams } from 'react-router-dom' import { UserDetailInfo } from 'components/shared/basic/UserDetailInfo' -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { useFetchUserDetailsQuery } from 'features/admin/userApiSlice' import { OVERLAYS } from 'types/Constants' import { show } from 'features/control/overlay' @@ -68,9 +67,7 @@ export default function UserDetail() { title={t('content.account.userAccount')} topPage={false} headerHeight={200} - > - - + />
    { expandOnHover={false} filledBackground={true} onClick={() => { - navigate(`/appusermanagement/${item.offerId}`) + navigate(`/appUserManagement/${item.offerId}`) }} /> ) diff --git a/src/components/pages/UserManagement/StageSubNavigation/StageSubNavigation.tsx b/src/components/pages/UserManagement/StageSubNavigation/StageSubNavigation.tsx index e9a0faa86..7d3cc8db8 100644 --- a/src/components/pages/UserManagement/StageSubNavigation/StageSubNavigation.tsx +++ b/src/components/pages/UserManagement/StageSubNavigation/StageSubNavigation.tsx @@ -46,7 +46,7 @@ export const StageSubNavigation = () => { { - navigate('/technicaluser') + navigate('/technicalUserManagement') }} link1Label={t('navigation.subNavigation.link1Label')} onLink1Click={() => { diff --git a/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx b/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx index 27673a300..efee886a8 100644 --- a/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx @@ -834,7 +834,7 @@ export default function AppMarketCard() { setAppCardSnackbar(false) }} onBackIconClick={() => { - navigate('/appmanagement') + navigate('/appManagement') }} // Add an ESLint exception until there is a solution // eslint-disable-next-line diff --git a/src/components/shared/basic/ReleaseProcess/ReleaseProcess.scss b/src/components/shared/basic/ReleaseProcess/ReleaseProcess.scss index 0110b3197..565e799bb 100644 --- a/src/components/shared/basic/ReleaseProcess/ReleaseProcess.scss +++ b/src/components/shared/basic/ReleaseProcess/ReleaseProcess.scss @@ -22,7 +22,7 @@ margin: 0 auto; } -.appoverview-main { +.appOverview-main { .desc-section { text-align: center; margin-top: 112px; diff --git a/src/components/shared/basic/ReleaseProcess/index.tsx b/src/components/shared/basic/ReleaseProcess/index.tsx index 7236b2c93..bd2d051cb 100644 --- a/src/components/shared/basic/ReleaseProcess/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/index.tsx @@ -18,7 +18,6 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import { PageHeader, Typography, @@ -80,10 +79,8 @@ export const ReleaseProcess = ({ registerButton, }: ReleaseProcessProps) => { return ( -
    - - - +
    +
    diff --git a/src/components/shared/frame/Footer/index.tsx b/src/components/shared/frame/Footer/index.tsx index 0a5c1425a..73229eff9 100644 --- a/src/components/shared/frame/Footer/index.tsx +++ b/src/components/shared/frame/Footer/index.tsx @@ -44,9 +44,9 @@ export const Footer = ({ pages }: { pages: string[] }) => { }) } const isAppOverviewPage = [ - PAGES.APPOVERVIEW, + PAGES.APP_OVERVIEW, PAGES.APP_MANAGEMENT, - PAGES.APPRELEASEPROCESS, + PAGES.APP_RELEASE_PROCESS, PAGES.SERVICE_MARKETPLACE, ].find((e) => location.pathname.split('/').includes(e)) @@ -54,8 +54,8 @@ export const Footer = ({ pages }: { pages: string[] }) => { location.pathname.split('/').includes(e) ) - const isAppReleaseProcessForm = [`${PAGES.APPRELEASEPROCESS}/form`].find(() => - location.pathname.split('/').includes('form') + const isAppReleaseProcessForm = [`${PAGES.APP_RELEASE_PROCESS}/form`].find( + () => location.pathname.split('/').includes('form') ) const [showScrollToTop, setShowScrollToTop] = useState(false) diff --git a/src/components/shared/frame/StageHeader/index.tsx b/src/components/shared/frame/StageHeader/index.tsx deleted file mode 100644 index 5c1637a34..000000000 --- a/src/components/shared/frame/StageHeader/index.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2023 BMW Group AG - * Copyright (c) 2023 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -import { getAssetBase } from 'services/EnvironmentService' -import SubHeaderTitle from '../SubHeaderTitle' - -export default function StageHeader({ title }: { title: string }) { - return ( -
    -
    - -
    - Header Background -
    - ) -} diff --git a/src/components/shared/templates/AdminBoard/AdminBoardElements.tsx b/src/components/shared/templates/AdminBoard/AdminBoardElements.tsx index 6203cdd61..e0f8df3ea 100644 --- a/src/components/shared/templates/AdminBoard/AdminBoardElements.tsx +++ b/src/components/shared/templates/AdminBoard/AdminBoardElements.tsx @@ -93,7 +93,7 @@ export default function AdminBoardElements({ const handleApprove = async (appId: string) => { setActionApprove(true) - if (type === PAGES.SERVICEADMINBOARD_DETAIL) { + if (type === PAGES.SERVICE_ADMIN_BOARD_DETAIL) { await approveServiceRequest(appId) .unwrap() .then(() => { @@ -140,7 +140,7 @@ export default function AdminBoardElements({ items={apps} onDelete={(appId: string) => { setActionApprove(false) - if (type === PAGES.SERVICEADMINBOARD_DETAIL) { + if (type === PAGES.SERVICE_ADMIN_BOARD_DETAIL) { dispatch(show(OVERLAYS.SERVICE_DECLINE_ADMINBOARD, appId)) } else { dispatch(show(OVERLAYS.APP_DECLINE_ADMINBOARD, appId)) diff --git a/src/components/shared/templates/AdminBoard/index.tsx b/src/components/shared/templates/AdminBoard/index.tsx index 72f6c697e..cddb13d8f 100644 --- a/src/components/shared/templates/AdminBoard/index.tsx +++ b/src/components/shared/templates/AdminBoard/index.tsx @@ -31,7 +31,6 @@ import { CircleProgress, } from '@catena-x/portal-shared-components' import './AdminBoard.scss' -import { PageBreadcrumb } from 'components/shared/frame/PageBreadcrumb/PageBreadcrumb' import AdminBoardElements from './AdminBoardElements' import { currentSuccessType } from 'features/adminBoard/slice' import type { @@ -399,9 +398,7 @@ export default function CommonAdminBoard({ return (
    - - - +
    { return case OVERLAYS.USER: return - case OVERLAYS.ADD_TECHUSER: + case OVERLAYS.ADD_TECH_USER: return - case OVERLAYS.DELETE_TECHUSER: + case OVERLAYS.DELETE_TECH_USER: return case OVERLAYS.ADD_APP_USER_ROLES: return diff --git a/src/types/Config.tsx b/src/types/Config.tsx index fdd466398..387b73f24 100644 --- a/src/types/Config.tsx +++ b/src/types/Config.tsx @@ -55,7 +55,6 @@ import { ACTIONS, HINTS, OVERLAYS, PAGES, ROLES } from './Constants' import type { IAction, IOverlay, IPage } from './MainTypes' import AppUserManagement from 'components/pages/AppUserManagement' import IDPManagement from 'components/pages/IDPManagement' -import IDPDetail from 'components/pages/IDPDetail' import AppReleaseProcessForm from 'components/pages/AppReleaseProcess/components' import CompanyRoles from 'components/pages/CompanyRoles' import UseCase from 'components/pages/UseCase' @@ -215,37 +214,37 @@ export const ALL_PAGES: IPage[] = [ element: , }, { - name: PAGES.APPOVERVIEW, + name: PAGES.APP_OVERVIEW, role: ROLES.APPOVERVIEW_VIEW, element: , }, { - name: PAGES.APPOVERVIEW_NEW, + name: PAGES.APP_OVERVIEW_NEW, role: ROLES.APPOVERVIEW_VIEW, element: , }, { - name: PAGES.SERVICEOVERVIEW, + name: PAGES.SERVICE_OVERVIEW, role: ROLES.SERVICEOVERVIEW_VIEW, element: , }, { - name: PAGES.APPRELEASEPROCESS, + name: PAGES.APP_RELEASE_PROCESS, role: ROLES.APPOVERVIEW_VIEW, element: , }, { - name: PAGES.SERVICERELEASEPROCESS, + name: PAGES.SERVICE_RELEASE_PROCESS, role: ROLES.VIEW_SERVICE_RELEASE, element: , }, { - name: PAGES.APPSUBSCRIPTION, + name: PAGES.APP_SUBSCRIPTION, role: ROLES.APP_MANAGEMENT, element: , }, { - name: PAGES.SERVICESUBSCRIPTION, + name: PAGES.SERVICE_SUBSCRIPTION, role: ROLES.SERVICE_SUBSCRIPTION_MANAGEMENT, element: , }, @@ -255,7 +254,7 @@ export const ALL_PAGES: IPage[] = [ element: , }, { - name: PAGES.SERVICEADMINBOARD, + name: PAGES.SERVICE_ADMIN_BOARD, role: ROLES.APPROVE_SERVICE_RELEASE || ROLES.DECLINE_SERVICE_RELEASE, element: , }, @@ -275,13 +274,13 @@ export const ALL_PAGES: IPage[] = [ ), }, { - name: PAGES.SERVICEADMINBOARD_DETAIL, + name: PAGES.SERVICE_ADMIN_BOARD_DETAIL, role: ROLES.APPROVE_SERVICE_RELEASE || ROLES.DECLINE_SERVICE_RELEASE, isRoute: true, element: ( } > @@ -295,8 +294,8 @@ export const ALL_PAGES: IPage[] = [ role: ROLES.APPOVERVIEW_VIEW, element: ( } /> ), @@ -307,8 +306,8 @@ export const ALL_PAGES: IPage[] = [ role: ROLES.VIEW_SERVICE_RELEASE, element: ( } /> ), @@ -333,18 +332,18 @@ export const ALL_PAGES: IPage[] = [ ), }, { - name: PAGES.TECHUSER_MANAGEMENT, - role: ROLES.TECHUSER_VIEW, + name: PAGES.TECH_USER_MANAGEMENT, + role: ROLES.TECH_USER_VIEW, element: , }, { - name: PAGES.TECHUSER_DETAILS, - role: ROLES.TECHUSER_VIEW, + name: PAGES.TECH_USER_DETAILS, + role: ROLES.TECH_USER_VIEW, isRoute: true, element: ( } > } /> @@ -370,21 +369,6 @@ export const ALL_PAGES: IPage[] = [ role: ROLES.IDP_VIEW, element: , }, - { - name: PAGES.IDP_DETAIL, - role: ROLES.IDP_VIEW, - isRoute: true, - element: ( - } - > - } /> - - ), - }, - { name: PAGES.INVITE, role: ROLES.INVITE_NEW_PARTNER, @@ -436,12 +420,12 @@ export const ALL_PAGES: IPage[] = [ ), }, { - name: PAGES.SERVICEDEACTIVATE, + name: PAGES.SERVICE_DEACTIVATE, isRoute: true, element: ( } > } /> @@ -507,9 +491,9 @@ export const ALL_PAGES: IPage[] = [ } + element={} > - } /> + } /> ), }, @@ -553,7 +537,7 @@ export const ALL_PAGES: IPage[] = [ element: , }, { - name: PAGES.ONBOARDING_SERVICEPROVIDER, + name: PAGES.ONBOARDING_SERVICE_PROVIDER, role: ROLES.IDP_VIEW, element: , }, @@ -611,12 +595,12 @@ export const ALL_OVERLAYS: IOverlay[] = [ role: ROLES.USERMANAGEMENT_ADD, }, { - name: OVERLAYS.ADD_TECHUSER, - role: ROLES.TECHUSER_ADD, + name: OVERLAYS.ADD_TECH_USER, + role: ROLES.TECH_USER_ADD, }, { - name: OVERLAYS.DELETE_TECHUSER, - role: ROLES.TECHUSER_DELETE, + name: OVERLAYS.DELETE_TECH_USER, + role: ROLES.TECH_USER_DELETE, }, { name: OVERLAYS.ADD_APP_USER_ROLES, @@ -785,22 +769,22 @@ export const mainMenuFullTree = [ { name: PAGES.APP_MANAGEMENT, children: [ - { name: PAGES.APPOVERVIEW, hint: HINTS.NEW }, - { name: PAGES.APPRELEASEPROCESS }, - { name: PAGES.APPSUBSCRIPTION, hint: HINTS.NEW }, + { name: PAGES.APP_OVERVIEW, hint: HINTS.NEW }, + { name: PAGES.APP_RELEASE_PROCESS }, + { name: PAGES.APP_SUBSCRIPTION, hint: HINTS.NEW }, { name: PAGES.ADMINBOARD, hint: HINTS.NEW }, ], }, { name: PAGES.SERVICE_MANAGEMENT, children: [ - { name: PAGES.SERVICEOVERVIEW, hint: HINTS.NEW }, - { name: PAGES.SERVICERELEASEPROCESS, hint: HINTS.NEW }, + { name: PAGES.SERVICE_OVERVIEW, hint: HINTS.NEW }, + { name: PAGES.SERVICE_RELEASE_PROCESS, hint: HINTS.NEW }, { - name: PAGES.SERVICESUBSCRIPTION, + name: PAGES.SERVICE_SUBSCRIPTION, hint: HINTS.NEW, }, - { name: PAGES.SERVICEADMINBOARD, hint: HINTS.NEW }, + { name: PAGES.SERVICE_ADMIN_BOARD, hint: HINTS.NEW }, ], }, ] diff --git a/src/types/Constants.ts b/src/types/Constants.ts index 2c767e9ac..3e4888a2f 100644 --- a/src/types/Constants.ts +++ b/src/types/Constants.ts @@ -28,31 +28,30 @@ export enum PAGES { REGISTRATION = 'registration', SWAGGER = 'swagger', STORYBOOK = 'storybook', - APPSUBSCRIPTION = 'appsubscription', + APP_SUBSCRIPTION = 'appSubscription', ADMINBOARD = 'adminboard', - ADMINBOARD_DETAIL = 'adminboarddetail', + ADMINBOARD_DETAIL = 'adminboardDetail', MARKETPLACE = 'marketplace', - APP_MARKETPLACE = 'appmarketplace', - SERVICE_MARKETPLACE = 'servicemarketplace', - SERVICE_MARKETPLACE_DETAIL = 'servicemarketplacedetail', + APP_MARKETPLACE = 'appMarketplace', + SERVICE_MARKETPLACE = 'serviceMarketplace', + SERVICE_MARKETPLACE_DETAIL = 'serviceMarketplaceDetail', APP_DETAIL = 'appdetail', - DATA_MANAGEMENT = 'datamanagement', + DATA_MANAGEMENT = 'dataManagement', SEMANTICHUB = 'semantichub', CONNECTOR = 'connector', ACCOUNT = 'account', USER_DETAILS = 'userdetails', NOTIFICATIONS = 'notifications', ORGANIZATION = 'organization', - PARTNER_NETWORK = 'partnernetwork', - USER_MANAGEMENT = 'usermanagement', - TECHNICAL_SETUP = 'technicalsetup', - CONNECTOR_MANAGEMENT = 'connectormanagement', - TECHUSER_MANAGEMENT = 'technicaluser', - TECHUSER_DETAILS = 'techuserdetails', - IDP_MANAGEMENT = 'idpmanagement', - IDP_DETAIL = 'idpdetail', - APPLICATION_REQUESTS = 'applicationrequests', - APP_USER_MANAGEMENT = 'appusermanagement', + PARTNER_NETWORK = 'partnerNetwork', + USER_MANAGEMENT = 'userManagement', + TECHNICAL_SETUP = 'technicalSetup', + CONNECTOR_MANAGEMENT = 'connectorManagement', + TECH_USER_MANAGEMENT = 'technicalUserManagement', + TECH_USER_DETAILS = 'techUserDetails', + IDP_MANAGEMENT = 'idpManagement', + APPLICATION_REQUESTS = 'applicationRequests', + APP_USER_MANAGEMENT = 'appUserManagement', INVITE = 'invite', ADMINISTRATION = 'admin', HELP = 'help', @@ -61,100 +60,101 @@ export enum PAGES { IMPRINT = 'imprint', PRIVACY = 'privacy', TERMS = 'terms', - COOKIE_POLICY = 'cookiepolicy', + COOKIE_POLICY = 'cookiePolicy', SETTINGS = 'settings', DEVELOPER = 'developer', TEST = 'test', LOGOUT = 'logout', ERROR = 'error', - APP_MANAGEMENT = 'appmanagement', - APPOVERVIEW = 'appoverview', - APPOVERVIEW_NEW = 'appoverview-new', + APP_MANAGEMENT = 'appManagement', + APP_OVERVIEW = 'appOverview', + APP_OVERVIEW_NEW = 'appoverviewNew', DEACTIVATE = 'deactivate', - CHANGE_IMAGE = 'changeimage', - CHANGE_DESCRIPTION = 'changedescription', - ADD_ROLES = 'addroles', - CHANGE_DOCUMENTS = 'changedocuments', + CHANGE_IMAGE = 'changeImage', + CHANGE_DESCRIPTION = 'changeDescription', + ADD_ROLES = 'addRoles', + CHANGE_DOCUMENTS = 'changeDocuments', VIEW_DETAILS = 'viewDetails', - APPRELEASEPROCESS = 'appreleaseprocess', - APP_RELEASE_PROCESS_FORM = 'appreleaseprocess_form', - INTRODUCTION = 'companyroles', - INTRODUCTION_PARTICIPANT = 'companyrolesparticipant', - INTRODUCTION_APP_PROVIDER = 'companyrolesappprovider', - INTRODUCTION_SERVICE_PROVIDER = 'companyrolesserviceprovider', - INTRODUCTION_CONFORMITY_BODY = 'companyrolesconformitybody', - INTRODUCTION_OSP_BODY = 'companyrolesonboardingserviceprovider', - USE_CASE = 'usecase', - USE_CASE_TRACABILITY = 'usecasetraceablity', - SERVICE_MANAGEMENT = 'servicemanagement', - SERVICEOVERVIEW = 'serviceoverview', - SERVICEDEACTIVATE = 'servicedeactivate', - SERVICERELEASEPROCESS = 'servicereleaseprocess', - SERVICEADMINBOARD = 'serviceadminboard', - SERVICEADMINBOARD_DETAIL = 'serviceadminboarddetail', - SERVICESUBSCRIPTION = 'servicesubscription', - SERVICE_RELEASE_PROCESS_FORM = 'servicereleaseprocess_form', - ROLE_DETAILS = 'role-details', - SERVICE_DETAIL = 'servicedetail', - COMPANY_ROLE = 'company-role', - USECASE_PARTICIPATION = 'usecase-participation', + APP_RELEASE_PROCESS = 'appReleaseProcess', + APP_RELEASE_PROCESS_FORM = 'appReleaseProcessForm', + INTRODUCTION = 'companyRoles', + INTRODUCTION_PARTICIPANT = 'companyRolesParticipant', + INTRODUCTION_APP_PROVIDER = 'companyRolesAppProvider', + INTRODUCTION_SERVICE_PROVIDER = 'companyRolesServiceProvider', + INTRODUCTION_CONFORMITY_BODY = 'companyRolesConformityBody', + INTRODUCTION_OSP_BODY = 'companyRolesOnboardingServiceProvider', + USE_CASE = 'useCase', + USE_CASE_TRACABILITY = 'useCaseTraceablity', + SERVICE_MANAGEMENT = 'serviceManagement', + SERVICE_OVERVIEW = 'serviceOverview', + SERVICE_DEACTIVATE = 'serviceDeactivate', + SERVICE_RELEASE_PROCESS = 'serviceReleaseProcess', + SERVICE_ADMIN_BOARD = 'serviceAdminBoard', + SERVICE_ADMIN_BOARD_DETAIL = 'serviceAdminBoardDetail', + SERVICE_SUBSCRIPTION = 'serviceSubscription', + SERVICE_RELEASE_PROCESS_FORM = 'serviceReleaseProcessForm', + ROLE_DETAILS = 'roleDetails', + SERVICE_DETAIL = 'serviceDetail', + COMPANY_ROLE = 'companyRole', + USECASE_PARTICIPATION = 'useCaseParticipation', ABOUTPAGE = 'about', - CERTIFICATE_CREDENTIAL = 'certificate-credential', - DATA_SPACE = 'dataspace', - ADMIN_CREDENTIAL = 'admin-credential', - ONBOARDING_SERVICEPROVIDER = 'onboarding-serviceprovider', + CERTIFICATE_CREDENTIAL = 'certificateCredential', + DATA_SPACE = 'dataSpace', + ADMIN_CREDENTIAL = 'adminCredential', + ONBOARDING_SERVICE_PROVIDER = 'onboardingServiceProvider', COMPANY_CERTIFICATE = 'companyCertificate', COMPANY_WALLET = 'companyWallet', DECLINE = 'decline', - CONSENT_OSP = 'consent_osp', - COMPANY_SUBSCRIPTIONS = 'company-subscriptions', - COMPANY_SUBSCRIPTIONS_DETAIL = 'company-subscriptions-detail', - COMPANY_DATA = 'company_data', + CONSENT_OSP = 'consentOsp', + COMPANY_SUBSCRIPTIONS = 'companySubscriptions', + COMPANY_SUBSCRIPTIONS_DETAIL = 'companySubscriptionsDetail', + COMPANY_DATA = 'companyData', } export enum OVERLAYS { - NOT_FOUND = 'notfound', + NOT_FOUND = 'notFound', NONE = 'none', - ADD_USER = 'add_user', - ADD_MULTIPLE_USER = 'add_multiple_user', - ADD_APP_USER_ROLES = 'add_app_user_roles', - EDIT_APP_USER_ROLES = 'edit_app_user_roles', + ADD_USER = 'addUser', + ADD_MULTIPLE_USER = 'addMultipleUser', + ADD_APP_USER_ROLES = 'addAppUserRoles', + EDIT_APP_USER_ROLES = 'editAppUserRoles', USER = 'user', - ADD_TECHUSER = 'add_techuser', - DELETE_TECHUSER = 'delete_techuser', + ADD_TECH_USER = 'addTechUser', + DELETE_TECH_USER = 'deleteTechUser', NEWS = 'news', - ADD_BPN = 'add_bpn', - ADD_SUBSCRIPTION = 'add_subscription', + ADD_BPN = 'addBpn', + ADD_SUBSCRIPTION = 'addSubscription', INVITE = 'invite', PARTNER = 'partner', APP = 'app', - SERVICE_REQUEST = 'service_request', - APPMARKETPLACE_REQUEST = 'appmarketplace_request', - ADD_IDP = 'add_idp', - UPDATE_IDP = 'update_idp', - UPDATE_IDP_SUCCESS = 'update_idp_success', - ENABLE_IDP = 'enable_idp', - DISABLE_IDP = 'disable_idp', - DISABLE_MANAGED_IDP = 'disable_managed_idp', - DELETE_MANAGED_IDP = 'delete_managed_idp', - ADDUSERS_IDP = 'addusers_idp', - IDP_DETAILS = 'idp_details', - IDP_CONFIRM = 'idp_confirm', - ENABLE_IDP_SUCCESS = 'enable_idp_success', - REGISTER_OSP = 'register_osp', - REGISTER_NEXT_OSP = 'register_next_osp', - APP_OVERVIEW_CONFIRM = 'app_overview_confirm', - APP_DETAILS_OVERLAY = 'app_details_overlay', - CONFIRM_USER_ACTION = 'confirm_user_action', - ADD_SERVICE_PROVIDER = 'add_service_provider', - APP_DECLINE_ADMINBOARD = 'app_decline_adminboard', - EDIT_PORTAL_ROLES = 'edit_portal_roles', - SERVICE_DECLINE_ADMINBOARD = 'decline_service_release', - UPDATE_COMPANY_ROLE = 'update_company_role', - EDIT_USECASE = 'edit_usecase', - UPDATE_CERTIFICATE = 'update_certificate', - COMPANY_CERTIFICATE_DETAILS = 'company_certificate_details', - COMPANY_CERTIFICATE_CONFIRM_DELETE = 'company_certificate_confirm_delete', + SERVICE_REQUEST = 'serviceRequest', + APPMARKETPLACE_REQUEST = 'appmarketplaceRequest', + ADD_IDP = 'addIdp', + UPDATE_IDP = 'updateIdp', + UPDATE_IDP_SUCCESS = 'updateIdpSuccess', + ENABLE_IDP = 'enableIdp', + DISABLE_IDP = 'disableIdp', + DISABLE_MANAGED_IDP = 'disableManagedIdp', + DELETE_MANAGED_IDP = 'deleteManagedIdp', + ADDUSERS_IDP = 'addUsersIdp', + IDP_DETAILS = 'idpDetails', + IDP_CONFIRM = 'idpConfirm', + ENABLE_IDP_SUCCESS = 'enableIdpSuccess', + REGISTER_OSP = 'registerOsp', + REGISTER_NEXT_OSP = 'registerNextOsp', + CONSENT_OSP = 'consentOsp', + APP_OVERVIEW_CONFIRM = 'appOverviewConfirm', + APP_DETAILS_OVERLAY = 'appDetailsOverlay', + CONFIRM_USER_ACTION = 'confirmUserAction', + ADD_SERVICE_PROVIDER = 'addServiceProvider', + APP_DECLINE_ADMINBOARD = 'appDeclineAdminboard', + EDIT_PORTAL_ROLES = 'editPortalRoles', + SERVICE_DECLINE_ADMINBOARD = 'declineServiceRelease', + UPDATE_COMPANY_ROLE = 'updateCompanyRole', + EDIT_USECASE = 'editUsecase', + UPDATE_CERTIFICATE = 'updateCertificate', + COMPANY_CERTIFICATE_DETAILS = 'companyCertificateDetails', + COMPANY_CERTIFICATE_CONFIRM_DELETE = 'companyCertificateConfirmDelete', } export enum ACTIONS { @@ -193,9 +193,9 @@ export enum ROLES { USERMANAGEMENT_VIEW = 'view_user_management', USERMANAGEMENT_ADD = 'add_user_account', USERMANAGEMENT_DELETE = 'delete_user_account', - TECHUSER_VIEW = 'view_tech_user_management', - TECHUSER_ADD = 'add_tech_user_management', - TECHUSER_DELETE = 'delete_tech_user_management', + TECH_USER_VIEW = 'view_tech_user_management', + TECH_USER_ADD = 'add_tech_user_management', + TECH_USER_DELETE = 'delete_tech_user_management', IDP_VIEW = 'view_idp', IDP_ADD = 'add_idp', IDP_DELETE = 'delete_idp', diff --git a/src/utils/multiMapBy.test.ts b/src/utils/multiMapBy.test.ts index e8990f8e7..534c6a2da 100644 --- a/src/utils/multiMapBy.test.ts +++ b/src/utils/multiMapBy.test.ts @@ -125,6 +125,7 @@ describe('multiMapBy', () => { expect(ourTypeMap).toStrictEqual(lodashTypeMap) } + { const ourTypeMap = multiMapBy(mixedArray, (item) => typeof item) const lodashTypeMap = groupBy(mixedArray, (item) => typeof item) diff --git a/yarn.lock b/yarn.lock index c6ac6cf03..b8184d7d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6034,4 +6034,4 @@ yn@3.1.1: yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file