diff --git a/.github/workflows/test_mariadb.yml b/.github/workflows/test_mariadb.yml deleted file mode 100644 index fe101bc48..000000000 --- a/.github/workflows/test_mariadb.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Gradido MariaDB Test CI - -on: push - -jobs: - files-changed: - name: Detect File Changes - MariaDB - runs-on: ubuntu-latest - outputs: - mariadb: ${{ steps.changes.outputs.mariadb }} - 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.mariadb == 'true' - name: Docker Build Test - MariaDB - needs: files-changed - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: MariaDB | Build 'test' image - run: docker build --target mariadb_server -t "gradido/mariadb:test" -f ./mariadb/Dockerfile ./ diff --git a/CHANGELOG.md b/CHANGELOG.md index a84f8909c..5dfc8a529 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,64 @@ 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). +#### [2.4.1](https://github.com/gradido/gradido/compare/2.3.1...2.4.1) + +- feat(backend): auto register new user in humhub [`#3386`](https://github.com/gradido/gradido/pull/3386) +- feat(backend): try and catch user sync [`#3385`](https://github.com/gradido/gradido/pull/3385) +- feat(backend): increase initialien count [`#3369`](https://github.com/gradido/gradido/pull/3369) +- feat(frontend): monterail vue3 migration [`#3383`](https://github.com/gradido/gradido/pull/3383) +- fix(frontend): fix postmigration fix [`#3382`](https://github.com/gradido/gradido/pull/3382) +- feat(frontend): update text [`#3373`](https://github.com/gradido/gradido/pull/3373) +- feat(frontend): fix postmigration fix [`#3378`](https://github.com/gradido/gradido/pull/3378) +- feat(frontend): map feature in vue 3 [`#3376`](https://github.com/gradido/gradido/pull/3376) +- feat(frontend): links and emails in messages [`#3377`](https://github.com/gradido/gradido/pull/3377) +- feat(frontend): add transaction link in latest transactions [`#3375`](https://github.com/gradido/gradido/pull/3375) +- fix(frontend): fix logout issue [`#3374`](https://github.com/gradido/gradido/pull/3374) +- fix(frontend): post migration fixes [`#3372`](https://github.com/gradido/gradido/pull/3372) +- feat(frontend): vue3 migration [`#3365`](https://github.com/gradido/gradido/pull/3365) +- fix(frontend): fix index.html [`#3368`](https://github.com/gradido/gradido/pull/3368) +- build(frontend): merged code from master [`#3367`](https://github.com/gradido/gradido/pull/3367) +- fix(frontend): vue3 migration pre deploy setup [`#3366`](https://github.com/gradido/gradido/pull/3366) +- fix(workflow): fix broken tests [`#3363`](https://github.com/gradido/gradido/pull/3363) +- fix(frontend): style fixes, admin fix [`#3364`](https://github.com/gradido/gradido/pull/3364) +- fix(frontend): gdt test [`#3361`](https://github.com/gradido/gradido/pull/3361) +- fix(frontend): style fixes [`#3360`](https://github.com/gradido/gradido/pull/3360) +- fix(frontend): migration feedback fixes [`#3359`](https://github.com/gradido/gradido/pull/3359) +- fix(frontend): scss changes and fixes [`#3358`](https://github.com/gradido/gradido/pull/3358) +- fix(frontend): migration remaining fixes [`#3356`](https://github.com/gradido/gradido/pull/3356) +- fix(admin): fix message update [`#3354`](https://github.com/gradido/gradido/pull/3354) +- fix(admin): fix refetch data in edit creation form [`#3353`](https://github.com/gradido/gradido/pull/3353) +- fix(frontend): fix dropdown in transaction send and link [`#3352`](https://github.com/gradido/gradido/pull/3352) +- fix(frontend): fix newsletter state reactivity [`#3351`](https://github.com/gradido/gradido/pull/3351) +- fix(frontend): fix how community switch is handled [`#3350`](https://github.com/gradido/gradido/pull/3350) +- fix(frontend): fixed after merge [`#3349`](https://github.com/gradido/gradido/pull/3349) +- fix(frontend): fixed logout handler [`#3347`](https://github.com/gradido/gradido/pull/3347) +- chore(frontend): main js cleanup [`#3346`](https://github.com/gradido/gradido/pull/3346) +- feature(frontend): change env config reading [`#3345`](https://github.com/gradido/gradido/pull/3345) +- feature(frontend): bump node in FE .nvmrc [`#3344`](https://github.com/gradido/gradido/pull/3344) +- feat(frontend): migration setup [`#3342`](https://github.com/gradido/gradido/pull/3342) +- fix(admin): Remove "maxAmountPerMonth" from `createContributionLink` gql. [`#3343`](https://github.com/gradido/gradido/pull/3343) +- fix(admin): style fixes [`#3339`](https://github.com/gradido/gradido/pull/3339) +- fix(admin): creation tab disappearing after creating creation [`#3338`](https://github.com/gradido/gradido/pull/3338) +- fix(frontend): show updated gdd amount [`#3337`](https://github.com/gradido/gradido/pull/3337) +- feat(admin): Add remaining fixes [`#3336`](https://github.com/gradido/gradido/pull/3336) +- feat(admin): fix edit creation form [`#3334`](https://github.com/gradido/gradido/pull/3334) +- feat(admin): migration of admin creation components [`#3333`](https://github.com/gradido/gradido/pull/3333) +- feat(admin): automatic contributions updates [`#3332`](https://github.com/gradido/gradido/pull/3332) +- feat(admin): vite config changes [`#3331`](https://github.com/gradido/gradido/pull/3331) +- feat(admin) - fix import in node server [`#3330`](https://github.com/gradido/gradido/pull/3330) +- fix(admin): stylelint fix [`#3329`](https://github.com/gradido/gradido/pull/3329) +- feat(admin): setup migration environment [`#3328`](https://github.com/gradido/gradido/pull/3328) +- fix(admin): fix contribution link [`#3326`](https://github.com/gradido/gradido/pull/3326) +- feat(admin): geo-coordinates for community [`#3323`](https://github.com/gradido/gradido/pull/3323) +- feat(backend): speedup listTransactions [`#3324`](https://github.com/gradido/gradido/pull/3324) +- fix(frontend): link forwarding after using send with url parameters [`#3322`](https://github.com/gradido/gradido/pull/3322) + #### [2.3.1](https://github.com/gradido/gradido/compare/2.3.0...2.3.1) +> 11 June 2024 + +- chore(release): v2.3.1 beta [`#3321`](https://github.com/gradido/gradido/pull/3321) - feat(frontend): more compatible humhub auto-login link [`#3319`](https://github.com/gradido/gradido/pull/3319) - fix(backend): fix test which will only fail at 31. of month, or 30.05 [`#3320`](https://github.com/gradido/gradido/pull/3320) - feat(frontend): remove automatically logged out message [`#3318`](https://github.com/gradido/gradido/pull/3318) diff --git a/admin/package.json b/admin/package.json index 3a5d9363b..5d3cdb8fb 100644 --- a/admin/package.json +++ b/admin/package.json @@ -3,7 +3,7 @@ "description": "Administration Interface for Gradido", "main": "index.js", "author": "Moriz Wahl", - "version": "2.3.1", + "version": "2.4.1", "license": "Apache-2.0", "private": false, "scripts": { diff --git a/backend/package.json b/backend/package.json index 6e6e781c4..936ef3973 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "gradido-backend", - "version": "2.3.1", + "version": "2.4.1", "description": "Gradido unified backend providing an API-Service for Gradido Transactions", "main": "src/index.ts", "repository": "https://github.com/gradido/gradido/backend", diff --git a/backend/src/apis/ConnectionAgents.ts b/backend/src/apis/ConnectionAgents.ts new file mode 100644 index 000000000..8ce585242 --- /dev/null +++ b/backend/src/apis/ConnectionAgents.ts @@ -0,0 +1,5 @@ +import { Agent } from 'http' +import { Agent as HttpsAgent } from 'https' + +export const httpAgent = new Agent({ keepAlive: true }) +export const httpsAgent = new HttpsAgent({ keepAlive: true }) diff --git a/backend/src/apis/HttpRequest.ts b/backend/src/apis/HttpRequest.ts index 27578463a..2c7b8b5a1 100644 --- a/backend/src/apis/HttpRequest.ts +++ b/backend/src/apis/HttpRequest.ts @@ -7,10 +7,12 @@ import axios from 'axios' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' +import { httpAgent, httpsAgent } from './ConnectionAgents' + export const apiPost = async (url: string, payload: unknown): Promise => { logger.trace('POST', url, payload) try { - const result = await axios.post(url, payload) + const result = await axios.post(url, payload, { httpAgent, httpsAgent }) logger.trace('POST-Response', result) if (result.status !== 200) { throw new LogError('HTTP Status Error', result.status) @@ -27,7 +29,7 @@ export const apiPost = async (url: string, payload: unknown): Promise => { export const apiGet = async (url: string): Promise => { logger.trace('GET: url=' + url) try { - const result = await axios.get(url) + const result = await axios.get(url, { httpAgent, httpsAgent }) logger.trace('GET-Response', result) if (result.status !== 200) { throw new LogError('HTTP Status Error', result.status) diff --git a/backend/src/apis/gms/GmsClient.ts b/backend/src/apis/gms/GmsClient.ts index a59f7f6b5..9af018e1c 100644 --- a/backend/src/apis/gms/GmsClient.ts +++ b/backend/src/apis/gms/GmsClient.ts @@ -4,6 +4,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-argument */ import axios from 'axios' +import { httpAgent, httpsAgent } from '@/apis/ConnectionAgents' import { CONFIG } from '@/config' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' @@ -126,9 +127,10 @@ export async function createGmsUser(apiKey: string, user: GmsUser): Promise { mutate = testEnv.mutate query = testEnv.query con = testEnv.con + CONFIG.HUMHUB_ACTIVE = false await cleanDB() }) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 5ed560046..df379e138 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -34,6 +34,7 @@ import { updateGmsUser } from '@/apis/gms/GmsClient' import { GmsUser } from '@/apis/gms/model/GmsUser' import { HumHubClient } from '@/apis/humhub/HumHubClient' import { GetUser } from '@/apis/humhub/model/GetUser' +import { PostUser } from '@/apis/humhub/model/PostUser' import { subscribe } from '@/apis/KlicktippController' import { encode } from '@/auth/JWT' import { RIGHTS } from '@/auth/RIGHTS' @@ -174,9 +175,9 @@ export class UserResolver { let humhubUserPromise: Promise> | undefined const klicktippStatePromise = getKlicktippState(dbUser.emailContact.email) if (CONFIG.HUMHUB_ACTIVE && dbUser.humhubAllowed) { - const publishNameLogic = new PublishNameLogic(dbUser) + const getHumhubUser = new PostUser(dbUser) humhubUserPromise = HumHubClient.getInstance()?.userByUsernameAsync( - publishNameLogic.getUsername(dbUser.humhubPublishName as PublishNameType), + getHumhubUser.account.username, ) } diff --git a/database/package.json b/database/package.json index 50a489934..dc9bd39c4 100644 --- a/database/package.json +++ b/database/package.json @@ -1,6 +1,6 @@ { "name": "gradido-database", - "version": "2.3.1", + "version": "2.4.1", "description": "Gradido Database Tool to execute database migrations", "main": "src/index.ts", "repository": "https://github.com/gradido/gradido/database", diff --git a/dht-node/package.json b/dht-node/package.json index 67c24dd9e..4c6868784 100644 --- a/dht-node/package.json +++ b/dht-node/package.json @@ -1,6 +1,6 @@ { "name": "gradido-dht-node", - "version": "2.3.1", + "version": "2.4.1", "description": "Gradido dht-node module", "main": "src/index.ts", "repository": "https://github.com/gradido/gradido/", diff --git a/dlt-connector/package.json b/dlt-connector/package.json index d3feb2df0..4660d0b75 100644 --- a/dlt-connector/package.json +++ b/dlt-connector/package.json @@ -1,6 +1,6 @@ { "name": "gradido-dlt-connector", - "version": "3.0.0", + "version": "2.4.1", "description": "Gradido DLT-Connector", "main": "src/index.ts", "repository": "https://github.com/gradido/gradido/", diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 8e45055a4..879af6332 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -80,10 +80,6 @@ services: ## MARIADB ############################################## ######################################################### mariadb: - image: gradido/mariadb:test - environment: - - MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 - - MARIADB_USER=root networks: - internal-net - external-net diff --git a/docker-compose.yml b/docker-compose.yml index a44710a27..3a74b4472 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,11 +61,9 @@ services: ## MARIADB ############################################## ######################################################### mariadb: - build: - context: ./mariadb - target: mariadb_server + image: mariadb:10.5 environment: - - MARIADB_ALLOW_EMPTY_PASSWORD=1 + - MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 - MARIADB_USER=root networks: - internal-net @@ -92,7 +90,6 @@ services: - 4000:4000 depends_on: - mariadb - restart: always environment: # Envs used in Dockerfile # - DOCKER_WORKDIR="/app" @@ -128,7 +125,6 @@ services: # - 5000:5000 depends_on: - mariadb - restart: always environment: # Envs used in Dockerfile # - DOCKER_WORKDIR="/app" @@ -162,7 +158,6 @@ services: - external-net ports: - 6010:6010 - restart: always environment: # Envs used in Dockerfile # - DOCKER_WORKDIR="/app" @@ -196,7 +191,6 @@ services: - 5010:5010 depends_on: - mariadb - restart: always environment: # Envs used in Dockerfile # - DOCKER_WORKDIR="/app" diff --git a/e2e-tests/cypress.config.ts b/e2e-tests/cypress.config.ts index 3251f379c..5825cb3d0 100644 --- a/e2e-tests/cypress.config.ts +++ b/e2e-tests/cypress.config.ts @@ -36,6 +36,7 @@ export default defineConfig({ baseUrl: 'http://localhost:3000', chromeWebSecurity: false, defaultCommandTimeout: 100000, + pageLoadTimeout: 120000, supportFile: 'cypress/support/index.ts', viewportHeight: 720, viewportWidth: 1280, diff --git a/federation/package.json b/federation/package.json index 151777054..ecf2d2d50 100644 --- a/federation/package.json +++ b/federation/package.json @@ -1,6 +1,6 @@ { "name": "gradido-federation", - "version": "2.3.1", + "version": "2.4.1", "description": "Gradido federation module providing Gradido-Hub-Federation and versioned API for inter community communication", "main": "src/index.ts", "repository": "https://github.com/gradido/gradido/federation", diff --git a/frontend/package.json b/frontend/package.json index 5bc403506..4dc914b03 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "bootstrap-vue-gradido-wallet", - "version": "2.3.1", + "version": "2.4.1", "private": true, "scripts": { "start": "node run/server.js", diff --git a/frontend/public/img/brand/gradido-logo_200x59.png b/frontend/public/img/brand/gradido-logo_200x59.png new file mode 100644 index 000000000..9467bf533 Binary files /dev/null and b/frontend/public/img/brand/gradido-logo_200x59.png differ diff --git a/frontend/public/img/brand/gradido_coin_128x128.png b/frontend/public/img/brand/gradido_coin_128x128.png new file mode 100644 index 000000000..71647ce36 Binary files /dev/null and b/frontend/public/img/brand/gradido_coin_128x128.png differ diff --git a/frontend/src/components/Auth/AuthNavbar.vue b/frontend/src/components/Auth/AuthNavbar.vue index 280163788..e173408e9 100644 --- a/frontend/src/components/Auth/AuthNavbar.vue +++ b/frontend/src/components/Auth/AuthNavbar.vue @@ -23,7 +23,7 @@ import { useAuthLinks } from '@/composables/useAuthLinks' const { login, register } = useAuthLinks() const backgroundHeader = '/img/template/gradido_background_header.png' -const logo = '/img/brand/gradido-logo.png' +const logo = '/img/brand/gradido-logo_200x59.png' const sheet = '/img/template/Blaetter.png' diff --git a/frontend/src/components/Contributions/ContributionForm.vue b/frontend/src/components/Contributions/ContributionForm.vue index 4a44e03b7..5612ae14b 100644 --- a/frontend/src/components/Contributions/ContributionForm.vue +++ b/frontend/src/components/Contributions/ContributionForm.vue @@ -19,7 +19,7 @@ required :no-flip="true" type="date" - @update:model-value="date = $event" + @update:model-value="handleDateChange" > @@ -128,6 +128,11 @@ const [date, dateProps] = defineField('date') const { meta: dataFieldMeta } = useField('date', 'required') +const handleDateChange = (newDate) => { + date.value = newDate + emit('update:model-value', { ...props.modelValue, date: newDate }) +} + const showMessage = computed(() => { if (props.maxGddThisMonth <= 0 && props.maxGddLastMonth <= 0) return true if (props.modelValue.date) diff --git a/frontend/src/components/GdtTransactionList.spec.js b/frontend/src/components/GdtTransactionList.spec.js index b1b84f1f5..a8781419d 100644 --- a/frontend/src/components/GdtTransactionList.spec.js +++ b/frontend/src/components/GdtTransactionList.spec.js @@ -122,7 +122,7 @@ describe('GdtTransactionList', () => { it('emits input event after currentPage changes', async () => { await wrapper.findComponent({ name: 'BPagination' }).vm.$emit('update:modelValue', 2) await nextTick() - expect(wrapper.emitted('input')).toEqual([[2]]) + expect(wrapper.emitted('update:modelValue')).toEqual([[2]]) }) describe('pagination buttons', () => { diff --git a/frontend/src/components/GdtTransactionList.vue b/frontend/src/components/GdtTransactionList.vue index 046482753..e6b4aa506 100644 --- a/frontend/src/components/GdtTransactionList.vue +++ b/frontend/src/components/GdtTransactionList.vue @@ -29,7 +29,7 @@ @@ -61,13 +60,16 @@ export default { }, data() { return { - currentPage: this.value, + currentPage: this.modelValue, link: 'https://gradido.net/' + this.$store.state.language + '/memberships/', } }, watch: { - currentPage() { - if (this.modelValue !== this.currentPage) this.$emit('input', this.currentPage) + modelValue(newValue) { + this.currentPage = newValue + }, + currentPage(newValue) { + if (this.modelValue !== newValue) this.$emit('update:modelValue', newValue) }, }, } diff --git a/frontend/src/components/Transaction.spec.js b/frontend/src/components/Transaction.spec.js index 6467151f3..d70c1aba8 100644 --- a/frontend/src/components/Transaction.spec.js +++ b/frontend/src/components/Transaction.spec.js @@ -345,7 +345,7 @@ describe('Transaction', () => { }) it('has the description gdt.contribution', () => { - expect(wrapper.findAll('div.row').at(0).text()).toContain('gdt.contribution') + expect(wrapper.findAll('div.row').at(0).text()).toContain('This is a comment') }) it('renders the amount of euros', () => { diff --git a/frontend/src/components/Transaction.vue b/frontend/src/components/Transaction.vue index 09e721401..0551f8a18 100644 --- a/frontend/src/components/Transaction.vue +++ b/frontend/src/components/Transaction.vue @@ -91,7 +91,7 @@ const getLinesByType = computed(() => { icon: 'heart', iconclasses: 'gradido-global-color-accent', iconColor: '4', - description: t('gdt.contribution'), + description: props.comment, // t('gdt.contribution'), descriptiontext: n(props.amount, 'decimal') + ' €', credittext: n(props.gdt, 'decimal') + ' GDT', } diff --git a/frontend/src/components/TransactionLinks/TransactionLink.spec.js b/frontend/src/components/TransactionLinks/TransactionLink.spec.js index 15c3e5014..e238e159d 100644 --- a/frontend/src/components/TransactionLinks/TransactionLink.spec.js +++ b/frontend/src/components/TransactionLinks/TransactionLink.spec.js @@ -127,7 +127,8 @@ describe('TransactionLink.vue', () => { expect(wrapper.vm.decay).toBe('100') }) - it('computes validLink correctly when link is valid', () => { + it('computes validLink correctly when link is valid', async () => { + await wrapper.setProps({ validUntil: new Date(new Date().getTime() + 1000000) }) expect(wrapper.vm.validLink).toBe(true) }) diff --git a/frontend/src/layouts/AuthLayout.vue b/frontend/src/layouts/AuthLayout.vue index ab6973a0e..bc77b102f 100644 --- a/frontend/src/layouts/AuthLayout.vue +++ b/frontend/src/layouts/AuthLayout.vue @@ -30,7 +30,7 @@
{{ $t('1000thanks') }}
- + @@ -62,7 +62,7 @@ diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 963babce8..dd34fbad4 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -231,7 +231,6 @@ }, "gdt": { "calculation": "Berechnung der Gradido Transform", - "contribution": "Beitrag", "conversion": "Umrechnung", "conversion-gdt-euro": "Umrechnung Euro / Gradido Transform (GDT)", "credit": "Gutschrift", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index b0b5f12d6..9346ea609 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -231,7 +231,6 @@ }, "gdt": { "calculation": "Calculation of Gradido Transform", - "contribution": "Contribution", "conversion": "Conversion", "conversion-gdt-euro": "Conversion Euro / Gradido Transform (GDT)", "credit": "Credit", diff --git a/frontend/src/pages/Community.vue b/frontend/src/pages/Community.vue index 064aee33c..f850ccb4e 100644 --- a/frontend/src/pages/Community.vue +++ b/frontend/src/pages/Community.vue @@ -11,7 +11,7 @@