diff --git a/.github/file-filters.yml b/.github/file-filters.yml new file mode 100644 index 000000000..2ae1bf9b4 --- /dev/null +++ b/.github/file-filters.yml @@ -0,0 +1,43 @@ +# These file filter patterns are used by the action https://github.com/dorny/paths-filter + +# more differentiated filters for admin interface, which might be used later +# admin_locales: &admin_locales +# - 'admin/src/locales/**' +# - 'admin/scripts/sort*' + +# admin_stylelinting: &admin_stylelinting +# - 'admin/{components,layouts,pages}/**/*.{scss,vue}' +# - 'admin/.stylelintrc.js' + +# admin_linting: &admin_linting +# - 'admin/.eslint*' +# - 'admin/babel.config.js' +# - 'admin/package.json' +# - 'admin/**/*.{js,vue}' +# - *admin_locales + +# admin_unit_testing: &admin_unit_testing +# - 'admin/package.json' +# - 'admin/{jest,vue}.config.js' +# - 'admin/{public,run,test}/**/*' +# - 'admin/src/!(locales)/**/*' + +# admin_docker_building: &admin_docker_building +# - 'admin/.dockerignore' +# - 'admin/Dockerfile' +# - *admin_unit_testing + +admin: &admin + - 'admin/**/*' + +dht_node: &dht_node + - 'dht-node/**/*' + +docker: &docker + - 'docker-compose.*' + +federation: &federation + - 'federation/**/*' + +frontend: &frontend + - 'frontend/**/*' \ No newline at end of file diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml new file mode 100644 index 000000000..d1dd2851a --- /dev/null +++ b/.github/workflows/e2e-test.yml @@ -0,0 +1,58 @@ +name: Gradido End-to-End Test CI + +on: push + +jobs: + end-to-end-tests: + name: End-to-End Tests + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Boot up test system | docker-compose mariadb + run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach mariadb + + - name: Boot up test system | docker-compose database + run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database + + - name: Boot up test system | docker-compose backend + run: | + cd backend + cp .env.test_e2e .env + cd .. + docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps backend + + - name: Sleep for 10 seconds + run: sleep 10s + + - name: Boot up test system | seed backend + run: | + sudo chown runner:docker -R * + cd database + yarn && yarn dev_reset + cd ../backend + yarn && yarn seed + cd .. + + - name: Boot up test system | docker-compose frontends + run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps frontend admin nginx + + - name: Boot up test system | docker-compose mailserver + run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mailserver + + - name: Sleep for 15 seconds + run: sleep 15s + + - name: End-to-end tests | run tests + id: e2e-tests + run: | + cd e2e-tests/ + yarn + yarn run cypress run + - name: End-to-end tests | if tests failed, upload screenshots + if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} + uses: actions/upload-artifact@v3 + with: + name: cypress-screenshots + path: /home/runner/work/gradido/gradido/e2e-tests/cypress/screenshots/ diff --git a/.github/workflows/test-admin-interface.yml b/.github/workflows/test-admin-interface.yml new file mode 100644 index 000000000..a163af4e9 --- /dev/null +++ b/.github/workflows/test-admin-interface.yml @@ -0,0 +1,84 @@ +name: Gradido Admin Interface Test CI + +on: push + +jobs: + # only (but most important) job from this workflow required for pull requests + # check results serve as run conditions for all other jobs here + files-changed: + name: Detect File Changes - Admin Interface + runs-on: ubuntu-latest + outputs: + admin: ${{ steps.changes.outputs.admin }} + steps: + - uses: actions/checkout@v3.3.0 + + - name: Check for admin interface file changes + uses: dorny/paths-filter@v2.11.1 + id: changes + with: + token: ${{ github.token }} + filters: .github/file-filters.yml + list-files: shell + + + build_test: + if: needs.files-changed.outputs.admin == 'true' + name: Docker Build Test - Admin Interface + needs: files-changed + runs-on: ubuntu-latest + steps: + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Admin Interface | Build 'test' image + run: docker build --target test -t "gradido/admin:test" admin/ --build-arg NODE_ENV="test" + + unit_test: + if: needs.files-changed.outputs.admin == 'true' + name: Unit Tests - Admin Interface + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Admin Interface | Unit tests + run: cd admin && yarn && yarn run test + + lint: + if: needs.files-changed.outputs.admin == 'true' + name: Lint - Admin Interface + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Admin Interface | Lint + run: cd admin && yarn && yarn run lint + + stylelint: + if: needs.files-changed.outputs.admin == 'true' + name: Stylelint - Admin Interface + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Admin Interface | Stylelint + run: cd admin && yarn && yarn run stylelint + + locales: + if: needs.files-changed.outputs.admin == 'true' + name: Locales - Admin Interface + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Admin Interface | Locales + run: cd admin && yarn && yarn run locales diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index badb47e87..1e5f0db02 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,57 +3,6 @@ name: gradido test CI on: push jobs: - ############################################################################## - # JOB: DOCKER BUILD TEST FRONTEND ############################################ - ############################################################################## - build_test_frontend: - name: Docker Build Test - Frontend - runs-on: ubuntu-latest - #needs: [nothing] - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # FRONTEND ############################################################### - ########################################################################## - - name: Frontend | Build `test` image - run: | - docker build --target test -t "gradido/frontend:test" frontend/ - docker save "gradido/frontend:test" > /tmp/frontend.tar - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: docker-frontend-test - path: /tmp/frontend.tar - - ############################################################################## - # JOB: DOCKER BUILD TEST ADMIN INTERFACE ##################################### - ############################################################################## - build_test_admin: - name: Docker Build Test - Admin Interface - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # ADMIN INTERFACE ######################################################## - ########################################################################## - - name: Admin | Build `test` image - run: | - docker build --target test -t "gradido/admin:test" admin/ --build-arg NODE_ENV="test" - docker save "gradido/admin:test" > /tmp/admin.tar - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: docker-admin-test - path: /tmp/admin.tar - ############################################################################## # JOB: DOCKER BUILD TEST BACKEND ############################################# ############################################################################## @@ -157,114 +106,6 @@ jobs: name: docker-nginx-test path: /tmp/nginx.tar - ############################################################################## - # JOB: LOCALES FRONTEND ###################################################### - ############################################################################## - locales_frontend: - name: Locales - Frontend - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # LOCALES FRONTEND ####################################################### - ########################################################################## - - name: Frontend | Locales - run: cd frontend && yarn && yarn run locales - - ############################################################################## - # JOB: LINT FRONTEND ######################################################### - ############################################################################## - lint_frontend: - name: Lint - Frontend - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # LINT FRONTEND ########################################################## - ########################################################################## - - name: Frontend | Lint - run: cd frontend && yarn && yarn run lint - - ############################################################################## - # JOB: STYLELINT FRONTEND #################################################### - ############################################################################## - stylelint_frontend: - name: Stylelint - Frontend - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # STYLELINT FRONTEND ##################################################### - ########################################################################## - - name: Frontend | Stylelint - run: cd frontend && yarn && yarn run stylelint - - ############################################################################## - # JOB: LINT ADMIN INTERFACE ################################################## - ############################################################################## - lint_admin: - name: Lint - Admin Interface - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # LINT ADMIN INTERFACE ################################################### - ########################################################################## - - name: Admin Interface | Lint - run: cd admin && yarn && yarn run lint - - ############################################################################## - # JOB: STYLELINT ADMIN INTERFACE ############################################# - ############################################################################## - stylelint_admin: - name: Stylelint - Admin Interface - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # STYLELINT ADMIN INTERFACE ############################################## - ########################################################################## - - name: Admin Interface | Stylelint - run: cd admin && yarn && yarn run stylelint - - ############################################################################## - # JOB: LOCALES ADMIN ######################################################### - ############################################################################## - locales_admin: - name: Locales - Admin Interface - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # LOCALES FRONTEND ####################################################### - ########################################################################## - - name: Admin | Locales - run: cd admin && yarn && yarn run locales - ############################################################################## # JOB: LINT BACKEND ########################################################## ############################################################################## @@ -281,7 +122,7 @@ jobs: # LINT BACKEND ########################################################### ########################################################################## - name: backend | Lint - run: cd backend && yarn && yarn run lint + run: cd database && yarn && cd ../backend && yarn && yarn run lint ############################################################################## # JOB: LOCALES BACKEND ####################################################### @@ -319,68 +160,6 @@ jobs: - name: Database | Lint run: cd database && yarn && yarn run lint - ############################################################################## - # JOB: UNIT TEST FRONTEND ################################################### - ############################################################################## - unit_test_frontend: - name: Unit tests - Frontend - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # UNIT TESTS FRONTEND #################################################### - ########################################################################## - - name: Frontend | Unit tests - run: | - cd frontend && yarn && yarn run test - cp -r ./coverage ../ - ########################################################################## - # COVERAGE CHECK FRONTEND ################################################ - ########################################################################## - - name: frontend | Coverage check - uses: webcraftmedia/coverage-check-action@master - with: - report_name: Coverage Frontend - type: lcov - result_path: ./frontend/coverage/lcov.info - min_coverage: 95 - token: ${{ github.token }} - - ############################################################################## - # JOB: UNIT TEST ADMIN INTERFACE ############################################# - ############################################################################## - unit_test_admin: - name: Unit tests - Admin Interface - runs-on: ubuntu-latest - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # UNIT TESTS ADMIN INTERFACE ############################################# - ########################################################################## - - name: Admin Interface | Unit tests - run: | - cd admin && yarn && yarn run test - cp -r ./coverage ../ - ########################################################################## - # COVERAGE CHECK ADMIN INTERFACE ######################################### - ########################################################################## - - name: Admin Interface | Coverage check - uses: webcraftmedia/coverage-check-action@master - with: - report_name: Coverage Admin Interface - type: lcov - result_path: ./admin/coverage/lcov.info - min_coverage: 97 - token: ${{ github.token }} - ############################################################################## # JOB: UNIT TEST BACKEND #################################################### ############################################################################## @@ -415,20 +194,7 @@ jobs: - name: backend | docker-compose database run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database - name: backend Unit tests | test - run: | - cd database && yarn && yarn build && cd ../backend && yarn && yarn test - cp -r ./coverage ../ - ########################################################################## - # COVERAGE CHECK BACKEND ################################################# - ########################################################################## - - name: backend | Coverage check - uses: webcraftmedia/coverage-check-action@master - with: - report_name: Coverage Backend - type: lcov - result_path: ./backend/coverage/lcov.info - min_coverage: 80 - token: ${{ github.token }} + run: cd database && yarn && yarn build && cd ../backend && yarn && yarn test ########################################################################## # DATABASE MIGRATION TEST UP + RESET ##################################### @@ -452,108 +218,3 @@ jobs: run: docker-compose -f docker-compose.yml run -T database yarn up - name: database | reset run: docker-compose -f docker-compose.yml run -T database yarn reset - - ############################################################################## - # JOB: END-TO-END TESTS ##################################################### - ############################################################################## - end-to-end-tests: - name: End-to-End Tests - runs-on: ubuntu-latest - needs: [build_test_mariadb, build_test_database_up, build_test_admin, build_test_frontend, build_test_nginx] - steps: - ########################################################################## - # CHECKOUT CODE ########################################################## - ########################################################################## - - name: Checkout code - uses: actions/checkout@v3 - ########################################################################## - # DOWNLOAD DOCKER IMAGES ################################################# - ########################################################################## - - name: Download Docker Image (Mariadb) - uses: actions/download-artifact@v3 - with: - name: docker-mariadb-test - path: /tmp - - name: Load Docker Image (Mariadb) - run: docker load < /tmp/mariadb.tar - - name: Download Docker Image (Database Up) - uses: actions/download-artifact@v3 - with: - name: docker-database-test_up - path: /tmp - - name: Load Docker Image (Database Up) - run: docker load < /tmp/database_up.tar - - name: Download Docker Image (Frontend) - uses: actions/download-artifact@v3 - with: - name: docker-frontend-test - path: /tmp - - name: Load Docker Image (Frontend) - run: docker load < /tmp/frontend.tar - - name: Download Docker Image (Admin Interface) - uses: actions/download-artifact@v3 - with: - name: docker-admin-test - path: /tmp - - name: Load Docker Image (Admin Interface) - run: docker load < /tmp/admin.tar - - name: Download Docker Image (Nginx) - uses: actions/download-artifact@v3 - with: - name: docker-nginx-test - path: /tmp - - name: Load Docker Image (Nginx) - run: docker load < /tmp/nginx.tar - - ########################################################################## - # BOOT UP THE TEST SYSTEM ################################################ - ########################################################################## - - name: Boot up test system | docker-compose mariadb - run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach mariadb - - - name: Boot up test system | docker-compose database - run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database - - - name: Boot up test system | docker-compose backend - run: | - cd backend - cp .env.test_e2e .env - cd .. - docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps backend - - - name: Sleep for 10 seconds - run: sleep 10s - - - name: Boot up test system | seed backend - run: | - sudo chown runner:docker -R * - cd database - yarn && yarn dev_reset - cd ../backend - yarn && yarn seed - cd .. - - - name: Boot up test system | docker-compose frontends - run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps frontend admin nginx - - - name: Boot up test system | docker-compose mailserver - run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mailserver - - - name: Sleep for 15 seconds - run: sleep 15s - - ########################################################################## - # END-TO-END TESTS ####################################################### - ########################################################################## - - name: End-to-end tests | run tests - id: e2e-tests - run: | - cd e2e-tests/ - yarn - yarn run cypress run --spec cypress/e2e/User.Authentication.feature,cypress/e2e/User.Authentication.ResetPassword.feature - - name: End-to-end tests | if tests failed, upload screenshots - if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} - uses: actions/upload-artifact@v3 - with: - name: cypress-screenshots - path: /home/runner/work/gradido/gradido/e2e-tests/cypress/screenshots/ diff --git a/.github/workflows/test_dht-node.yml b/.github/workflows/test_dht-node.yml index 5b3a65a70..a57f09399 100644 --- a/.github/workflows/test_dht-node.yml +++ b/.github/workflows/test_dht-node.yml @@ -1,19 +1,40 @@ -name: gradido test_dht-node CI +name: Gradido DHT Node Test CI on: push jobs: + # only (but most important) job from this workflow required for pull requests + # check results serve as run conditions for all other jobs here + files-changed: + name: Detect File Changes - DHT Node + runs-on: ubuntu-latest + outputs: + dht_node: ${{ steps.changes.outputs.dht_node }} + docker: ${{ steps.changes.outputs.docker }} + steps: + - uses: actions/checkout@v3.3.0 + + - name: Check for frontend file changes + uses: dorny/paths-filter@v2.11.1 + id: changes + with: + token: ${{ github.token }} + filters: .github/file-filters.yml + list-files: shell + ############################################################################## # JOB: DOCKER BUILD TEST ##################################################### ############################################################################## build: - name: Docker Build Test + name: Docker Build Test - DHT Node + if: needs.files-changed.outputs.dht_node == 'true' || needs.files-changed.outputs.docker == 'true' + needs: files-changed runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - - name: Build `test` image + - name: Build 'test' image run: | docker build --target test -t "gradido/dht-node:test" -f dht-node/Dockerfile . docker save "gradido/dht-node:test" > /tmp/dht-node.tar @@ -28,31 +49,25 @@ jobs: # JOB: LINT ################################################################## ############################################################################## lint: - name: Lint + name: Lint - DHT Node + if: needs.files-changed.outputs.dht_node == 'true' + needs: files-changed runs-on: ubuntu-latest - needs: [build] steps: - name: Checkout code uses: actions/checkout@v3 - - - name: Download Docker Image - uses: actions/download-artifact@v3 - with: - name: docker-dht-node-test - path: /tmp - - name: Load Docker Image - run: docker load < /tmp/dht-node.tar - name: Lint - run: docker run --rm gradido/dht-node:test yarn run lint + run: cd dht-node && yarn && yarn run lint ############################################################################## # JOB: UNIT TEST ############################################################# ############################################################################## unit_test: - name: Unit tests + name: Unit Tests - DHT Node + if: needs.files-changed.outputs.dht_node == 'true' || needs.files-changed.outputs.docker == 'true' + needs: [files-changed, build] runs-on: ubuntu-latest - needs: [build] steps: - name: Checkout code uses: actions/checkout@v3 @@ -83,16 +98,4 @@ jobs: #- name: Unit tests # run: cd database && yarn && yarn build && cd ../dht-node && yarn && yarn test - name: Unit tests - run: | - docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net -v ~/coverage:/app/coverage --rm gradido/dht-node:test yarn run test - cp -r ~/coverage ./coverage - - - name: Coverage check - uses: webcraftmedia/coverage-check-action@master - with: - report_name: Coverage dht-node - type: lcov - #result_path: ./dht-node/coverage/lcov.info - result_path: ./coverage/lcov.info - min_coverage: 79 - token: ${{ github.token }} + run: docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/dht-node:test yarn run test diff --git a/.github/workflows/test_federation.yml b/.github/workflows/test_federation.yml index 2da78758e..fc29a1bf8 100644 --- a/.github/workflows/test_federation.yml +++ b/.github/workflows/test_federation.yml @@ -1,13 +1,34 @@ -name: gradido test_federation CI +name: Gradido Federation Test CI on: push jobs: + # only (but most important) job from this workflow required for pull requests + # check results serve as run conditions for all other jobs here + files-changed: + name: Detect File Changes - Federation + runs-on: ubuntu-latest + outputs: + docker: ${{ steps.changes.outputs.docker }} + federation: ${{ steps.changes.outputs.federation }} + steps: + - uses: actions/checkout@v3.3.0 + + - name: Check for frontend file changes + uses: dorny/paths-filter@v2.11.1 + id: changes + with: + token: ${{ github.token }} + filters: .github/file-filters.yml + list-files: shell + ############################################################################## # JOB: DOCKER BUILD TEST ##################################################### ############################################################################## build: - name: Docker Build Test + name: Docker Build Test - Federation + if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.federation == 'true' + needs: files-changed runs-on: ubuntu-latest steps: - name: Checkout code @@ -28,31 +49,25 @@ jobs: # JOB: LINT ################################################################## ############################################################################## lint: - name: Lint + name: Lint - Federation + if: needs.files-changed.outputs.federation == 'true' + needs: files-changed runs-on: ubuntu-latest - needs: [build] steps: - name: Checkout code uses: actions/checkout@v3 - - - name: Download Docker Image - uses: actions/download-artifact@v3 - with: - name: docker-federation-test - path: /tmp - - name: Load Docker Image - run: docker load < /tmp/federation.tar - name: Lint - run: docker run --rm gradido/federation:test yarn run lint + run: cd federation && yarn && yarn run lint ############################################################################## # JOB: UNIT TEST ############################################################# ############################################################################## unit_test: - name: Unit tests + name: Unit Tests - Federation + if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.federation == 'true' + needs: [files-changed, build] runs-on: ubuntu-latest - needs: [build] steps: - name: Checkout code uses: actions/checkout@v3 @@ -84,15 +99,4 @@ jobs: # run: cd database && yarn && yarn build && cd ../dht-node && yarn && yarn test - name: Unit tests run: | - docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net -v ~/coverage:/app/coverage --rm gradido/federation:test yarn run test - cp -r ~/coverage ./coverage - - - name: Coverage check - uses: webcraftmedia/coverage-check-action@master - with: - report_name: Coverage federation - type: lcov - #result_path: ./federation/coverage/lcov.info - result_path: ./coverage/lcov.info - min_coverage: 72 - token: ${{ github.token }} + docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/federation:test yarn run test diff --git a/.github/workflows/test_frontend.yml b/.github/workflows/test_frontend.yml new file mode 100644 index 000000000..6dd527079 --- /dev/null +++ b/.github/workflows/test_frontend.yml @@ -0,0 +1,84 @@ +name: Gradido Frontend Test CI + +on: push + +jobs: + # only (but most important) job from this workflow required for pull requests + # check results serve as run conditions for all other jobs here + files-changed: + name: Detect File Changes - Frontend + runs-on: ubuntu-latest + outputs: + frontend: ${{ steps.changes.outputs.frontend }} + steps: + - uses: actions/checkout@v3.3.0 + + - name: Check for frontend file changes + uses: dorny/paths-filter@v2.11.1 + id: changes + with: + token: ${{ github.token }} + filters: .github/file-filters.yml + list-files: shell + + + build_test: + if: needs.files-changed.outputs.frontend == 'true' + name: Docker Build Test - Frontend + needs: files-changed + runs-on: ubuntu-latest + steps: + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Frontend | Build 'test' image + run: docker build --target test -t "gradido/frontend:test" frontend/ --build-arg NODE_ENV="test" + + unit_test: + if: needs.files-changed.outputs.frontend == 'true' + name: Unit Tests - Frontend + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Frontend | Unit tests + run: cd frontend && yarn && yarn run test + + lint: + if: needs.files-changed.outputs.frontend == 'true' + name: Lint - Frontend + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Frontend | Lint + run: cd frontend && yarn && yarn run lint + + stylelint: + if: needs.files-changed.outputs.frontend == 'true' + name: Stylelint - Frontend + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Frontend | Stylelint + run: cd frontend && yarn && yarn run stylelint + + locales: + if: needs.files-changed.outputs.frontend == 'true' + name: Locales - Frontend + needs: files-changed + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Frontend | Locales + run: cd frontend && yarn && yarn run locales diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bfc66e39..8dc91f2fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,76 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [1.19.1](https://github.com/gradido/gradido/compare/1.19.0...1.19.1) + +- fix(frontend): admin question clickable [`#2810`](https://github.com/gradido/gradido/pull/2810) +- refactor(frontend): change b-img to b-icon send [`#2809`](https://github.com/gradido/gradido/pull/2809) +- fix(admin): update openCreation in case of tab open. [`#2806`](https://github.com/gradido/gradido/pull/2806) +- fix(admin): english language for contributions in admin [`#2804`](https://github.com/gradido/gradido/pull/2804) +- refactor(admin): event buttons for myself turned off in open contributions [`#2760`](https://github.com/gradido/gradido/pull/2760) +- fix(admin): contribution page [`#2794`](https://github.com/gradido/gradido/pull/2794) +- fix(frontend): info.svg [`#2798`](https://github.com/gradido/gradido/pull/2798) +- fix(backend): add relation messages to database query [`#2795`](https://github.com/gradido/gradido/pull/2795) +- fix(admin): header and menu [`#2793`](https://github.com/gradido/gradido/pull/2793) +- fix(frontend): send gdd - change first submit button text to 'Check Now' [`#2774`](https://github.com/gradido/gradido/pull/2774) +- refactor(frontend): creations generated by link NL [`#2771`](https://github.com/gradido/gradido/pull/2771) +- refactor(frontend): creations generated by link (FR) + (NL) [`#2770`](https://github.com/gradido/gradido/pull/2770) +- refactor(frontend): update German locales [`#2765`](https://github.com/gradido/gradido/pull/2765) +- refactor(backend): use find contributions helper for list contributions [`#2762`](https://github.com/gradido/gradido/pull/2762) + +#### [1.19.0](https://github.com/gradido/gradido/compare/1.18.2...1.19.0) + +> 7 March 2023 + +- chore(release): version 1.19.0 [`#2786`](https://github.com/gradido/gradido/pull/2786) +- fix(frontend): change contribution design [`#2731`](https://github.com/gradido/gradido/pull/2731) +- refactor(frontend): commnity navbar- & unauthenticated b-gradido styles [`#2732`](https://github.com/gradido/gradido/pull/2732) +- fix(database): change downwards migration to delete entries with last_announced_at IS NULL [`#2767`](https://github.com/gradido/gradido/pull/2767) +- feat(admin): deleted contributions visible [`#2759`](https://github.com/gradido/gradido/pull/2759) +- feat(other): e2e test user story user registration [`#2753`](https://github.com/gradido/gradido/pull/2753) +- refactor(frontend): style and design changes to a contribution [`#2648`](https://github.com/gradido/gradido/pull/2648) +- test(backend): add tests that ``sendContributionDeleted`` and ``sendContributionDenied`` are called [`#2740`](https://github.com/gradido/gradido/pull/2740) +- fix(backend): set email tls true in test [`#2763`](https://github.com/gradido/gradido/pull/2763) +- refactor(frontend): add visible event an answer question [`#2750`](https://github.com/gradido/gradido/pull/2750) +- refactor(frontend): style sidebar, add icons [`#2737`](https://github.com/gradido/gradido/pull/2737) +- fix(backend): possible flaky test [`#2761`](https://github.com/gradido/gradido/pull/2761) +- fix(backend): emails – adjust namings of menus to new design [`#2756`](https://github.com/gradido/gradido/pull/2756) +- ci(other): rename dht node and federation workflow jobs for better branch protection maintenance [`#2743`](https://github.com/gradido/gradido/pull/2743) +- refactor(backend): combine logic for `listTransactionLinks` & `listTransactionLinksAdmin` [`#2706`](https://github.com/gradido/gradido/pull/2706) +- refactor(backend): remove admin create contributions [`#2724`](https://github.com/gradido/gradido/pull/2724) +- refactor(frontend): remove .vue as imports [`#2725`](https://github.com/gradido/gradido/pull/2725) +- feat(federation): add dht-node to deployment scripts [`#2729`](https://github.com/gradido/gradido/pull/2729) +- fix(frontend): change fetchPolicy, add scripts.update [`#2718`](https://github.com/gradido/gradido/pull/2718) +- refactor(backend): list unconfirmed contribution to admin list all contribution [`#2666`](https://github.com/gradido/gradido/pull/2666) +- refactor(frontend): community routes [`#2721`](https://github.com/gradido/gradido/pull/2721) +- test(backend): authentication tests for TransactionLinkResolver [`#2705`](https://github.com/gradido/gradido/pull/2705) +- refactor(backend): use LogError on errors [`#2679`](https://github.com/gradido/gradido/pull/2679) +- refactor(backend): use LogError on encryptorUtils [`#2678`](https://github.com/gradido/gradido/pull/2678) +- refactor(backend): use LogError on creations [`#2677`](https://github.com/gradido/gradido/pull/2677) +- refactor(other): decrease docker build dependencies in test workflow [`#2719`](https://github.com/gradido/gradido/pull/2719) +- refactor(backend): unit test for the method denyContribution [`#2639`](https://github.com/gradido/gradido/pull/2639) +- refactor(frontend): logo inserted with better quality. [`#2646`](https://github.com/gradido/gradido/pull/2646) +- feat(federation): harmonize and sync modules and data of federation [`#2665`](https://github.com/gradido/gradido/pull/2665) +- feat(federation): add docker and github-workflow files [`#2680`](https://github.com/gradido/gradido/pull/2680) +- feat(other): e2e test user authentication reset password [`#2644`](https://github.com/gradido/gradido/pull/2644) +- refactor(admin): add tabs for all statusus on contributions [`#2623`](https://github.com/gradido/gradido/pull/2623) +- feat(federation): implement a graphql client to request getpublickey [`#2511`](https://github.com/gradido/gradido/pull/2511) +- refactor(frontend): style refactor mobil auth area [`#2643`](https://github.com/gradido/gradido/pull/2643) +- refactor(backend): use LogError on TransactionResolver [`#2676`](https://github.com/gradido/gradido/pull/2676) +- refactor(backend): event protocol rework [`#2691`](https://github.com/gradido/gradido/pull/2691) +- refactor(backend): use LogError on TransactionLinkResolver [`#2673`](https://github.com/gradido/gradido/pull/2673) +- fix(frontend): simple disabled function on submit send [`#2647`](https://github.com/gradido/gradido/pull/2647) +- refactor(frontend): missing message on old transactions [`#2660`](https://github.com/gradido/gradido/pull/2660) +- refactor(admin): remove overview and multi creation menu entry [`#2661`](https://github.com/gradido/gradido/pull/2661) +- feat(other): add locales check to backend and integrate it to test workflow [`#2693`](https://github.com/gradido/gradido/pull/2693) +- refactor(other): add linting rules like in backend modul [`#2695`](https://github.com/gradido/gradido/pull/2695) +- refactor(backend): use LogError on contributionResolver [`#2669`](https://github.com/gradido/gradido/pull/2669) + #### [1.18.2](https://github.com/gradido/gradido/compare/1.18.1...1.18.2) +> 10 February 2023 + +- chore(release): version 1.18.2 [`#2700`](https://github.com/gradido/gradido/pull/2700) - fix(admin): deny contribution button to left [`#2699`](https://github.com/gradido/gradido/pull/2699) #### [1.18.1](https://github.com/gradido/gradido/compare/1.18.0...1.18.1) diff --git a/admin/jest.config.js b/admin/jest.config.js index 9233dd2e7..b6ec1dc80 100644 --- a/admin/jest.config.js +++ b/admin/jest.config.js @@ -1,11 +1,17 @@ module.exports = { verbose: true, + collectCoverage: true, collectCoverageFrom: [ 'src/**/*.{js,vue}', '!**/node_modules/**', '!src/assets/**', '!**/?(*.)+(spec|test).js?(x)', ], + coverageThreshold: { + global: { + lines: 97, + }, + }, moduleFileExtensions: [ 'js', // 'jsx', diff --git a/admin/package.json b/admin/package.json index 941a9bf69..3406c326a 100644 --- a/admin/package.json +++ b/admin/package.json @@ -3,7 +3,7 @@ "description": "Administraion Interface for Gradido", "main": "index.js", "author": "Moriz Wahl", - "version": "1.18.2", + "version": "1.19.1", "license": "Apache-2.0", "private": false, "scripts": { @@ -14,7 +14,7 @@ "analyse-bundle": "yarn build && webpack-bundle-analyzer dist/webpack.stats.json", "lint": "eslint --max-warnings=0 --ext .js,.vue,.json .", "stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'", - "test": "cross-env TZ=UTC jest --coverage", + "test": "cross-env TZ=UTC jest", "locales": "scripts/sort.sh" }, "dependencies": { diff --git a/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js b/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js index 0092751cc..f0b6ea821 100644 --- a/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js +++ b/admin/src/components/ContributionMessages/ContributionMessagesList.spec.js @@ -10,6 +10,7 @@ describe('ContributionMessagesList', () => { const propsData = { contributionId: 42, + contributionState: 'PENDING', } const mocks = { diff --git a/admin/src/components/ContributionMessages/ContributionMessagesList.vue b/admin/src/components/ContributionMessages/ContributionMessagesList.vue index 636627385..fab6b5e4a 100644 --- a/admin/src/components/ContributionMessages/ContributionMessagesList.vue +++ b/admin/src/components/ContributionMessages/ContributionMessagesList.vue @@ -1,17 +1,18 @@ + diff --git a/frontend/src/components/Template/ContentHeader/NavCommunity.vue b/frontend/src/components/Template/ContentHeader/NavCommunity.vue index ca96ce914..9748eb187 100644 --- a/frontend/src/components/Template/ContentHeader/NavCommunity.vue +++ b/frontend/src/components/Template/ContentHeader/NavCommunity.vue @@ -1,25 +1,19 @@ diff --git a/frontend/src/components/Transactions/TransactionLinkSummary.spec.js b/frontend/src/components/Transactions/TransactionLinkSummary.spec.js index d0086ceab..46041f87f 100644 --- a/frontend/src/components/Transactions/TransactionLinkSummary.spec.js +++ b/frontend/src/components/Transactions/TransactionLinkSummary.spec.js @@ -47,51 +47,53 @@ describe('TransactionLinkSummary', () => { beforeEach(() => { apolloQueryMock.mockResolvedValue({ data: { - listTransactionLinks: [ - { - amount: '75', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 86, - memo: - 'Hokuspokus Haselnuss, Vogelbein und Fliegenfuß, damit der Trick gelingen muss!', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - { - amount: '85', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 107, - memo: 'Mäusespeck und Katzenbuckel, Tricks und Tracks und Zauberkugel!', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - { - amount: '95', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 92, - memo: - 'Abrakadabra 1,2,3, die Sonne kommt herbei. Schweinepups und Spuckebrei, der Regen ist vorbei.', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - { - amount: '150', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 16, - memo: - 'Abrakadabra 1,2,3 was verschwunden ist komme herbei.Wieseldreck und Schweinemist, zaubern das ist keine List.', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - ], + listTransactionLinks: { + links: [ + { + amount: '75', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 86, + memo: + 'Hokuspokus Haselnuss, Vogelbein und Fliegenfuß, damit der Trick gelingen muss!', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + { + amount: '85', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 107, + memo: 'Mäusespeck und Katzenbuckel, Tricks und Tracks und Zauberkugel!', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + { + amount: '95', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 92, + memo: + 'Abrakadabra 1,2,3, die Sonne kommt herbei. Schweinepups und Spuckebrei, der Regen ist vorbei.', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + { + amount: '150', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 16, + memo: + 'Abrakadabra 1,2,3 was verschwunden ist komme herbei.Wieseldreck und Schweinemist, zaubern das ist keine List.', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + ], + }, }, }) @@ -166,51 +168,53 @@ describe('TransactionLinkSummary', () => { jest.clearAllMocks() apolloQueryMock.mockResolvedValue({ data: { - listTransactionLinks: [ - { - amount: '76', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 87, - memo: - 'Hat jemand die Nummer von der Hexe aus Schneewittchen? Ich bräuchte mal ein paar Äpfel.', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - { - amount: '86', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 108, - memo: - 'Die Windfahn´ krächzt am Dach, Der Uhu im Geklüfte; Was wispert wie ein Ach Verhallend in die Lüfte?', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - { - amount: '96', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 93, - memo: - 'Verschlafen kräht der Hahn, Ein Blitz noch, und ein trüber, Umwölbter Tag bricht an – Walpurgisnacht vorüber!', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - { - amount: '150', - link: 'http://localhost/redeem/ce28664b5308c17f931c0367', - createdAt: '2022-03-16T14:22:40.000Z', - holdAvailableAmount: '5.13109484759482747111', - id: 17, - memo: 'Eene meene Flaschenschrank, fertig ist der Hexentrank!', - redeemedAt: null, - validUntil: '2022-03-30T14:22:40.000Z', - }, - ], + listTransactionLinks: { + links: [ + { + amount: '76', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 87, + memo: + 'Hat jemand die Nummer von der Hexe aus Schneewittchen? Ich bräuchte mal ein paar Äpfel.', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + { + amount: '86', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 108, + memo: + 'Die Windfahn´ krächzt am Dach, Der Uhu im Geklüfte; Was wispert wie ein Ach Verhallend in die Lüfte?', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + { + amount: '96', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 93, + memo: + 'Verschlafen kräht der Hahn, Ein Blitz noch, und ein trüber, Umwölbter Tag bricht an – Walpurgisnacht vorüber!', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + { + amount: '150', + link: 'http://localhost/redeem/ce28664b5308c17f931c0367', + createdAt: '2022-03-16T14:22:40.000Z', + holdAvailableAmount: '5.13109484759482747111', + id: 17, + memo: 'Eene meene Flaschenschrank, fertig ist der Hexentrank!', + redeemedAt: null, + validUntil: '2022-03-30T14:22:40.000Z', + }, + ], + }, }, }) await wrapper.setData({ diff --git a/frontend/src/components/Transactions/TransactionLinkSummary.vue b/frontend/src/components/Transactions/TransactionLinkSummary.vue index b54c0e687..c3a62357b 100644 --- a/frontend/src/components/Transactions/TransactionLinkSummary.vue +++ b/frontend/src/components/Transactions/TransactionLinkSummary.vue @@ -90,7 +90,10 @@ export default { fetchPolicy: 'network-only', }) .then((result) => { - this.transactionLinks = [...this.transactionLinks, ...result.data.listTransactionLinks] + this.transactionLinks = [ + ...this.transactionLinks, + ...result.data.listTransactionLinks.links, + ] this.$emit('update-transactions') this.pending = false }) diff --git a/frontend/src/graphql/mutations.js b/frontend/src/graphql/mutations.js index 111eb7ab5..55858b09b 100644 --- a/frontend/src/graphql/mutations.js +++ b/frontend/src/graphql/mutations.js @@ -128,7 +128,7 @@ export const deleteContribution = gql` ` export const createContributionMessage = gql` - mutation($contributionId: Float!, $message: String!) { + mutation($contributionId: Int!, $message: String!) { createContributionMessage(contributionId: $contributionId, message: $message) { id message diff --git a/frontend/src/graphql/queries.js b/frontend/src/graphql/queries.js index e199a3730..7193eded0 100644 --- a/frontend/src/graphql/queries.js +++ b/frontend/src/graphql/queries.js @@ -126,14 +126,16 @@ export const queryTransactionLink = gql` export const listTransactionLinks = gql` query($currentPage: Int = 1, $pageSize: Int = 5) { listTransactionLinks(currentPage: $currentPage, pageSize: $pageSize) { - id - amount - holdAvailableAmount - memo - link - createdAt - validUntil - redeemedAt + links { + id + amount + holdAvailableAmount + memo + link + createdAt + validUntil + redeemedAt + } } } ` @@ -163,13 +165,13 @@ export const listContributions = gql` $currentPage: Int = 1 $pageSize: Int = 25 $order: Order = DESC - $filterConfirmed: Boolean = false + $statusFilter: [ContributionStatus!] ) { listContributions( currentPage: $currentPage pageSize: $pageSize order: $order - filterConfirmed: $filterConfirmed + statusFilter: $statusFilter ) { contributionCount contributionList { diff --git a/frontend/src/layouts/templates/CommunityTemplate.spec.js b/frontend/src/layouts/templates/CommunityTemplate.spec.js index cd4b598ef..534e45125 100644 --- a/frontend/src/layouts/templates/CommunityTemplate.spec.js +++ b/frontend/src/layouts/templates/CommunityTemplate.spec.js @@ -50,7 +50,7 @@ describe('CommunityTemplate', () => { expect(listItems.at(0).find('svg').attributes('aria-label')).toEqual('bell fill') expect(listItems.at(0).text()).toBe('contribution.alert.pending') - expect(listItems.at(1).find('svg').attributes('aria-label')).toEqual('question square') + expect(listItems.at(1).find('svg').attributes('aria-label')).toEqual('question') expect(listItems.at(1).text()).toBe('contribution.alert.in_progress') expect(listItems.at(2).find('svg').attributes('aria-label')).toEqual('check') @@ -80,7 +80,7 @@ describe('CommunityTemplate', () => { expect(listItems.at(0).find('svg').attributes('aria-label')).toEqual('bell fill') expect(listItems.at(0).text()).toBe('contribution.alert.pending') - expect(listItems.at(1).find('svg').attributes('aria-label')).toEqual('question square') + expect(listItems.at(1).find('svg').attributes('aria-label')).toEqual('question') expect(listItems.at(1).text()).toBe('contribution.alert.in_progress') expect(listItems.at(2).find('svg').attributes('aria-label')).toEqual('check') diff --git a/frontend/src/layouts/templates/CommunityTemplate.vue b/frontend/src/layouts/templates/CommunityTemplate.vue index 448c06bd2..f014af2c0 100644 --- a/frontend/src/layouts/templates/CommunityTemplate.vue +++ b/frontend/src/layouts/templates/CommunityTemplate.vue @@ -24,7 +24,7 @@ {{ $t('contribution.alert.pending') }}
  • - + {{ $t('contribution.alert.in_progress') }}
  • @@ -54,7 +54,7 @@ {{ $t('contribution.alert.pending') }}
  • - + {{ $t('contribution.alert.in_progress') }}
  • diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index c826b9e30..719ed4cad 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -27,9 +27,9 @@ "moderator": "Moderator", "moderators": "Moderatoren", "myContributions": "Meine Beiträge", - "noOpenContributionLinkText": "Zur Zeit gibt es keine automatischen Schöpfungen.", - "openContributionLinks": "Öffentliche Beitrags-Linkliste", - "openContributionLinkText": "Folgende {count} automatische Schöpfungen werden zur Zeit durch die Gemeinschaft „{name}“ bereitgestellt.", + "noOpenContributionLinkText": "Zur Zeit gibt es keine per Link erzeugte Schöpfungen.", + "openContributionLinks": "Per Link erzeugte Schöpfungen", + "openContributionLinkText": "Die Gemeinschaft „{name}“ unterstützt aktuell {count} per Link erzeugte Schöpfungen:", "submitContribution": "Schreiben" }, "communityInfo": "Gemeinschaft Information", @@ -56,6 +56,7 @@ "openAmountForMonth": "Für {monthAndYear} kannst du noch {creation} GDD einreichen.", "yourContribution": "Dein Beitrag zum Gemeinwohl" }, + "isEdited": "hat den Beitrag bearbeitet", "lastContribution": "Letzte Beiträge", "noContributions": { "allContributions": "Es wurden noch keine Beiträge eingereicht.", @@ -67,6 +68,7 @@ "lastMonth": "Für den ausgewählten Monat ist das Schöpfungslimit erreicht.", "thisMonth": "Für den aktuellen Monat ist das Schöpfungslimit erreicht." }, + "oldContribution": "Vorherige Version", "selectDate": "Wann war dein Beitrag?", "submit": "Einreichen", "submitted": "Der Beitrag wurde eingereicht.", @@ -214,7 +216,6 @@ "factor": "Faktor", "formula": "Berechnungsformel", "funding": "Zu den Förderbeiträgen", - "gdt": "Gradido Transform", "gdt-received": "Gradido Transform (GDT) erhalten", "gdtKonto": "GDT Konto", "no-transactions": "Du hast noch keine Gradido Transform (GDT).", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 193aff666..a0c06dc56 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -27,9 +27,9 @@ "moderator": "Moderator", "moderators": "Moderators", "myContributions": "My contributions", - "noOpenContributionLinkText": "Currently there are no automatic creations.", - "openContributionLinks": "Open contribution-link list", - "openContributionLinkText": "The following {count} automatic creations are currently provided by the \"{name}\" community.", + "noOpenContributionLinkText": "Currently there are no link-generated creations.", + "openContributionLinks": "Creations generated by link", + "openContributionLinkText": "The \"{name}\" community currently supports {count} link-generated creations:", "submitContribution": "Contribute" }, "communityInfo": "Community Information", @@ -56,6 +56,7 @@ "openAmountForMonth": "For {monthAndYear}, you can still submit {creation} GDD.", "yourContribution": "Your Contributions to the Common Good" }, + "isEdited": "edited the contribution", "lastContribution": "Last Contributions", "noContributions": { "allContributions": "No contributions have been submitted yet.", @@ -67,6 +68,7 @@ "lastMonth": "The creation limit is reached for the selected month.", "thisMonth": "The creation limit has been reached for the current month." }, + "oldContribution": "Previous version", "selectDate": "When was your contribution?", "submit": "Submit", "submitted": "The contribution was submitted.", @@ -214,7 +216,6 @@ "factor": "Factor", "formula": "Calculation formula", "funding": "To the funding contributions", - "gdt": "Gradido Transform", "gdt-received": "Gradido Transform (GDT) received", "gdtKonto": "GDT Konto", "no-transactions": "You do not have Gradido Transform (GDT) yet.", diff --git a/frontend/src/locales/es.json b/frontend/src/locales/es.json index 9441a10a2..725eb10ad 100644 --- a/frontend/src/locales/es.json +++ b/frontend/src/locales/es.json @@ -26,8 +26,9 @@ "moderator": "Moderador", "moderators": "Moderadores", "myContributions": "Mis contribuciones al bien común", - "openContributionLinks": "lista de enlaces de contribuciones públicas", - "openContributionLinkText": "La comunidad \"{name}\" proporciona actualmente las siguientes {count} creaciones automáticas.", + "noOpenContributionLinkText": "Actualmente no hay creaciones generadas por enlaces.", + "openContributionLinks": "Creaciones generadas por enlace", + "openContributionLinkText": "La comunidad \"{name}\" admite actualmente {count} creaciones generadas por enlaces:", "other-communities": "Otras comunidades", "statistic": "Estadísticas", "submitContribution": "escribir", diff --git a/frontend/src/locales/fr.json b/frontend/src/locales/fr.json index 9e2c11fc5..102825acc 100644 --- a/frontend/src/locales/fr.json +++ b/frontend/src/locales/fr.json @@ -27,9 +27,9 @@ "moderator": "Modérateur", "moderators": "Modérateurs", "myContributions": "Mes contributions", - "noOpenContributionLinkText": "Currently there are no automatic creations.", - "openContributionLinks": "liste de liens de contribution publique", - "openContributionLinkText": "Les {count} créations automatiques suivantes sont actuellement fournies par la communauté \"{name}\".", + "noOpenContributionLinkText": "Actuellement, il n'y a pas de créations générées par lien.", + "openContributionLinks": "Créations générées par lien", + "openContributionLinkText": "La communauté \"{name}\" soutient actuellement {count} créations générées par lien:", "submitContribution": "Contribuer" }, "communityInfo": "Information communauté^^", diff --git a/frontend/src/locales/nl.json b/frontend/src/locales/nl.json index 0ac052c47..f1306eda8 100644 --- a/frontend/src/locales/nl.json +++ b/frontend/src/locales/nl.json @@ -26,8 +26,9 @@ "moderator": "Moderator", "moderators": "Moderators", "myContributions": "Mijn bijdragen voor het algemeen belang", - "openContributionLinks": "openbare lijst van bijdragen", - "openContributionLinkText": "De volgende {count} automatische creaties worden momenteel aangeboden door de gemeenschap \"{name}\".", + "noOpenContributionLinkText": "Er zijn momenteel geen link-gegenereerde creaties.", + "openContributionLinks": "Creaties gegenereerd door link", + "openContributionLinkText": "De community \"{name}\" ondersteunt momenteel {count} link-gegenereerde creaties:", "other-communities": "Verdere gemeenschappen", "statistic": "Statistieken", "submitContribution": "schrijf", diff --git a/frontend/src/pages/ForgotPassword.vue b/frontend/src/pages/ForgotPassword.vue index 773b78278..80d07b9ff 100644 --- a/frontend/src/pages/ForgotPassword.vue +++ b/frontend/src/pages/ForgotPassword.vue @@ -5,7 +5,7 @@
    {{ $t('site.forgotPassword.heading') }}
    - + -
    - + + + {{ $t('settings.password.send_now') }} -
    +
    +
    @@ -88,3 +90,13 @@ export default { }, } + diff --git a/frontend/src/pages/Login.vue b/frontend/src/pages/Login.vue index 2a3c05dc7..c02ee0e45 100644 --- a/frontend/src/pages/Login.vue +++ b/frontend/src/pages/Login.vue @@ -2,7 +2,7 @@
    {{ $t('gdd_per_link.isFree') }}
    - + @@ -30,8 +30,15 @@ - - {{ $t('login') }} + + + {{ $t('login') }} + @@ -127,3 +134,13 @@ export default { }, } + diff --git a/frontend/src/pages/Register.vue b/frontend/src/pages/Register.vue index c2877e897..5f53b8ac1 100755 --- a/frontend/src/pages/Register.vue +++ b/frontend/src/pages/Register.vue @@ -81,7 +81,7 @@ - + + diff --git a/frontend/src/pages/ResetPassword.vue b/frontend/src/pages/ResetPassword.vue index 5c791ac61..6fa76d994 100644 --- a/frontend/src/pages/ResetPassword.vue +++ b/frontend/src/pages/ResetPassword.vue @@ -1,20 +1,24 @@