From ae2d5355d62f525187dd1cdb1448aec63fb05d3f Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Feb 2022 08:21:07 +0100 Subject: [PATCH 01/25] User Search Table --- .../src/components/Tables/SearchUserTable.vue | 142 ++++++++++++++++++ admin/src/pages/UserSearch.vue | 6 +- 2 files changed, 145 insertions(+), 3 deletions(-) create mode 100644 admin/src/components/Tables/SearchUserTable.vue diff --git a/admin/src/components/Tables/SearchUserTable.vue b/admin/src/components/Tables/SearchUserTable.vue new file mode 100644 index 000000000..4c4ead979 --- /dev/null +++ b/admin/src/components/Tables/SearchUserTable.vue @@ -0,0 +1,142 @@ + + diff --git a/admin/src/pages/UserSearch.vue b/admin/src/pages/UserSearch.vue index 2efe9f8e8..de041282a 100644 --- a/admin/src/pages/UserSearch.vue +++ b/admin/src/pages/UserSearch.vue @@ -22,7 +22,7 @@ - + + diff --git a/admin/src/mixins/toggleRowDetails.js b/admin/src/mixins/toggleRowDetails.js index 43a7eceac..d73810ae7 100644 --- a/admin/src/mixins/toggleRowDetails.js +++ b/admin/src/mixins/toggleRowDetails.js @@ -3,6 +3,7 @@ export const toggleRowDetails = { return { slotIndex: 0, openRow: null, + creationUserData: {}, } }, methods: { @@ -20,11 +21,13 @@ export const toggleRowDetails = { row.toggleDetails() this.slotIndex = index this.openRow = row + this.creationUserData = row.item } } else { row.toggleDetails() this.slotIndex = index this.openRow = row + this.creationUserData = row.item } }, }, diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue index ac1a1594c..fe352373e 100644 --- a/admin/src/pages/CreationConfirm.vue +++ b/admin/src/pages/CreationConfirm.vue @@ -1,17 +1,30 @@ - diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue index fe352373e..d0b1e489b 100644 --- a/admin/src/pages/CreationConfirm.vue +++ b/admin/src/pages/CreationConfirm.vue @@ -133,3 +133,20 @@ export default { }, } + From 1100e942e4d314569bf8aaa69bb5d4e7f5690549 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Feb 2022 10:10:09 +0100 Subject: [PATCH 07/25] select users table --- .../components/Tables/SelectUsersTable.vue | 35 +++++++++++++++++++ admin/src/pages/Creation.vue | 9 ++--- 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 admin/src/components/Tables/SelectUsersTable.vue diff --git a/admin/src/components/Tables/SelectUsersTable.vue b/admin/src/components/Tables/SelectUsersTable.vue new file mode 100644 index 000000000..5bc49823a --- /dev/null +++ b/admin/src/components/Tables/SelectUsersTable.vue @@ -0,0 +1,35 @@ + + diff --git a/admin/src/pages/Creation.vue b/admin/src/pages/Creation.vue index 64efab997..59c21d385 100644 --- a/admin/src/pages/Creation.vue +++ b/admin/src/pages/Creation.vue @@ -17,11 +17,10 @@ - import CreationFormular from '../components/CreationFormular.vue' import UserTable from '../components/UserTable.vue' +import SelectUsersTable from '../components/Tables/SelectUsersTable.vue' import { searchUsers } from '../graphql/searchUsers' import { creationMonths } from '../mixins/creationMonths' @@ -75,6 +75,7 @@ export default { components: { CreationFormular, UserTable, + SelectUsersTable, }, data() { return { From ea6bab08234701ef01cbbc91d125c821be4c5a46 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Feb 2022 10:17:36 +0100 Subject: [PATCH 08/25] selected users table --- .../components/Tables/SelectedUsersTable.vue | 26 +++++++++++++++++++ admin/src/pages/Creation.vue | 11 ++++---- 2 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 admin/src/components/Tables/SelectedUsersTable.vue diff --git a/admin/src/components/Tables/SelectedUsersTable.vue b/admin/src/components/Tables/SelectedUsersTable.vue new file mode 100644 index 000000000..810f8dac8 --- /dev/null +++ b/admin/src/components/Tables/SelectedUsersTable.vue @@ -0,0 +1,26 @@ + + diff --git a/admin/src/pages/Creation.vue b/admin/src/pages/Creation.vue index 59c21d385..16678cad8 100644 --- a/admin/src/pages/Creation.vue +++ b/admin/src/pages/Creation.vue @@ -40,11 +40,10 @@ {{ $t('remove_all') }} - @@ -64,8 +63,8 @@ - From e3cff7fe7b5ea4b21a6669de009d621c59349a0f Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Feb 2022 11:06:33 +0100 Subject: [PATCH 10/25] test toggle table row mixin --- admin/src/mixins/toggleRowDetails.test.js | 141 ++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 admin/src/mixins/toggleRowDetails.test.js diff --git a/admin/src/mixins/toggleRowDetails.test.js b/admin/src/mixins/toggleRowDetails.test.js new file mode 100644 index 000000000..b365bf613 --- /dev/null +++ b/admin/src/mixins/toggleRowDetails.test.js @@ -0,0 +1,141 @@ +import { toggleRowDetails } from './toggleRowDetails' +import { mount } from '@vue/test-utils' + +const localVue = global.localVue + +const Component = { + render() {}, + mixins: [toggleRowDetails], +} + +const toggleDetailsMock = jest.fn() +const secondToggleDetailsMock = jest.fn() + +const row = { + toggleDetails: toggleDetailsMock, + index: 0, + item: { + data: 'item-data', + }, +} + +let wrapper + +describe('toggleRowDetails', () => { + beforeEach(() => { + jest.clearAllMocks() + wrapper = mount(Component, { localVue }) + }) + + it('sets default data', () => { + expect(wrapper.vm.slotIndex).toBe(0) + expect(wrapper.vm.openRow).toBe(null) + expect(wrapper.vm.creationUserData).toEqual({}) + }) + + describe('no open row', () => { + beforeEach(() => { + wrapper.vm.rowToogleDetails(row, 2) + }) + + it('calls toggleDetails', () => { + expect(toggleDetailsMock).toBeCalled() + }) + + it('updates slot index', () => { + expect(wrapper.vm.slotIndex).toBe(2) + }) + + it('updates open row', () => { + expect(wrapper.vm.openRow).toEqual( + expect.objectContaining({ + index: 0, + item: { + data: 'item-data', + }, + }), + ) + }) + + it('updates creation user data', () => { + expect(wrapper.vm.creationUserData).toEqual({ data: 'item-data' }) + }) + }) + + describe('with open row', () => { + beforeEach(() => { + wrapper.setData({ openRow: row }) + }) + + describe('row index is open row index', () => { + describe('index is slot index', () => { + beforeEach(() => { + wrapper.vm.rowToogleDetails(row, 0) + }) + + it('calls toggleDetails', () => { + expect(toggleDetailsMock).toBeCalled() + }) + + it('sets open row to null', () => { + expect(wrapper.vm.openRow).toBe(null) + }) + }) + + describe('index is not slot index', () => { + beforeEach(() => { + wrapper.vm.rowToogleDetails(row, 2) + }) + + it('does not call toggleDetails', () => { + expect(toggleDetailsMock).not.toBeCalled() + }) + + it('updates slot index', () => { + expect(wrapper.vm.slotIndex).toBe(2) + }) + }) + }) + + describe('row index is not open row index', () => { + beforeEach(() => { + wrapper.vm.rowToogleDetails( + { + toggleDetails: secondToggleDetailsMock, + index: 2, + item: { + data: 'new-item-data', + }, + }, + 2, + ) + }) + + it('closes the open row', () => { + expect(toggleDetailsMock).toBeCalled() + }) + + it('opens the new row', () => { + expect(secondToggleDetailsMock).toBeCalled() + }) + + it('updates slot index', () => { + expect(wrapper.vm.slotIndex).toBe(2) + }) + + it('updates open row', () => { + expect(wrapper.vm.openRow).toEqual({ + toggleDetails: secondToggleDetailsMock, + index: 2, + item: { + data: 'new-item-data', + }, + }) + }) + + it('updates creation user data', () => { + expect(wrapper.vm.creationUserData).toEqual({ data: 'new-item-data' }) + }) + }) + }) +}) From 1644c2938a583c9714fb0fb721dc085c53ce28de Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Feb 2022 11:07:16 +0100 Subject: [PATCH 11/25] coverage admin interface 94% --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c57da1964..9c7f9b7c2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -422,7 +422,7 @@ jobs: report_name: Coverage Admin Interface type: lcov result_path: ./coverage/lcov.info - min_coverage: 93 + min_coverage: 94 token: ${{ github.token }} ############################################################################## From f3cad44878b497b2653c2030b6fef42109d1a3e6 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Feb 2022 12:05:55 +0100 Subject: [PATCH 12/25] fix: Redirect to Login after Register --- frontend/src/views/Pages/thx.spec.js | 2 +- frontend/src/views/Pages/thx.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/Pages/thx.spec.js b/frontend/src/views/Pages/thx.spec.js index 16c5e3ffc..7d3925a0c 100644 --- a/frontend/src/views/Pages/thx.spec.js +++ b/frontend/src/views/Pages/thx.spec.js @@ -85,7 +85,7 @@ describe('Thx', () => { }) it('links the redirect button to /login', () => { - expect(wrapper.find('a.btn').attributes('href')).toBe('/overview') + expect(wrapper.find('a.btn').attributes('href')).toBe('/login') }) }) diff --git a/frontend/src/views/Pages/thx.vue b/frontend/src/views/Pages/thx.vue index 109f03573..cd74f1872 100644 --- a/frontend/src/views/Pages/thx.vue +++ b/frontend/src/views/Pages/thx.vue @@ -34,7 +34,7 @@ const textFields = { headline: 'site.thx.title', subtitle: 'site.thx.register', button: 'site.login.signin', - linkTo: '/overview', + linkTo: '/login', }, checkEmail: { headline: 'site.thx.title', From 32fdd77ac79a5ba37c82ef4729f530fa962908fa Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 9 Feb 2022 12:23:07 +0100 Subject: [PATCH 13/25] fix: Wrong Email Spelling in German --- backend/src/mailer/text/accountActivation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/mailer/text/accountActivation.ts b/backend/src/mailer/text/accountActivation.ts index c4f70ff0f..bf5d1a2e9 100644 --- a/backend/src/mailer/text/accountActivation.ts +++ b/backend/src/mailer/text/accountActivation.ts @@ -4,7 +4,7 @@ export const accountActivation = { text: (data: { link: string; firstName: string; lastName: string; email: string }): string => `Hallo ${data.firstName} ${data.lastName}, -Deine EMail wurde soeben bei Gradido registriert. +Deine E-Mail-Adresse wurde soeben bei Gradido registriert. Klicke bitte auf diesen Link, um die Registrierung abzuschließen und dein Gradido-Konto zu aktivieren: ${data.link} From 530dca224a658c9c83986b12911471075cd852ee Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Feb 2022 11:02:52 +0100 Subject: [PATCH 14/25] setting button name disable in variante light --- frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue index 106529d0d..7ae84eb10 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue @@ -48,7 +48,7 @@
Date: Fri, 11 Feb 2022 11:30:05 +0100 Subject: [PATCH 15/25] setting button passwort change disable --- .../Pages/UserProfile/UserCard_FormUserPasswort.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue index e67304e02..eee92d483 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue @@ -31,7 +31,12 @@
- + {{ $t('form.save') }}
@@ -92,6 +97,11 @@ export default { }) }, }, + computed: { + disabled: function () { + return this.form.newPassword.password === this.form.newPassword.passwordRepeat + }, + }, }