diff --git a/admin/src/components/Tables/SearchUserTable.spec.js b/admin/src/components/Tables/SearchUserTable.spec.js
new file mode 100644
index 000000000..9e1ce5e52
--- /dev/null
+++ b/admin/src/components/Tables/SearchUserTable.spec.js
@@ -0,0 +1,129 @@
+import { mount } from '@vue/test-utils'
+import SearchUserTable from './SearchUserTable.vue'
+
+const date = new Date()
+
+const localVue = global.localVue
+
+const apolloMutateMock = jest.fn().mockResolvedValue({})
+const apolloQueryMock = jest.fn().mockResolvedValue({})
+
+const propsData = {
+ items: [
+ {
+ userId: 1,
+ firstName: 'Bibi',
+ lastName: 'Bloxberg',
+ email: 'bibi@bloxberg.de',
+ creation: [200, 400, 600],
+ emailChecked: true,
+ },
+ {
+ userId: 2,
+ firstName: 'Benjamin',
+ lastName: 'Blümchen',
+ email: 'benjamin@bluemchen.de',
+ creation: [1000, 1000, 1000],
+ emailChecked: true,
+ },
+ {
+ userId: 3,
+ firstName: 'Peter',
+ lastName: 'Lustig',
+ email: 'peter@lustig.de',
+ creation: [0, 0, 0],
+ emailChecked: true,
+ },
+ {
+ userId: 4,
+ firstName: 'New',
+ lastName: 'User',
+ email: 'new@user.ch',
+ creation: [1000, 1000, 1000],
+ emailChecked: false,
+ },
+ ],
+ fields: [
+ { key: 'email', label: 'e_mail' },
+ { key: 'firstName', label: 'firstname' },
+ { key: 'lastName', label: 'lastname' },
+ {
+ key: 'creation',
+ label: 'creationLabel',
+ formatter: (value, key, item) => {
+ return value.join(' | ')
+ },
+ },
+ { key: 'status', label: 'status' },
+ ],
+}
+
+const mocks = {
+ $t: jest.fn((t) => t),
+ $d: jest.fn((d) => d),
+ $apollo: {
+ mutate: apolloMutateMock,
+ query: apolloQueryMock,
+ },
+ $store: {
+ state: {
+ moderator: {
+ id: 0,
+ name: 'test moderator',
+ },
+ },
+ },
+ $toasted: {
+ error: jest.fn(),
+ success: jest.fn(),
+ },
+}
+
+describe('SearchUserTable', () => {
+ let wrapper
+
+ const Wrapper = () => {
+ return mount(SearchUserTable, { localVue, mocks, propsData })
+ }
+
+ describe('mount', () => {
+ beforeEach(() => {
+ wrapper = Wrapper()
+ })
+
+ it('has a table with four rows', () => {
+ expect(wrapper.findAll('tbody > tr')).toHaveLength(4)
+ })
+
+ describe('show row details', () => {
+ beforeEach(async () => {
+ await wrapper.findAll('tbody > tr').at(1).trigger('click')
+ })
+
+ describe('deleted at', () => {
+ beforeEach(async () => {
+ await wrapper.find('div.deleted-user-formular').vm.$emit('updateDeletedAt', {
+ userId: 1,
+ deletedAt: date,
+ })
+ })
+
+ it('emits updateDeletedAt', () => {
+ expect(wrapper.emitted('updateDeletedAt')).toEqual([[1, date]])
+ })
+ })
+
+ describe('updateUserData', () => {
+ beforeEach(async () => {
+ await wrapper
+ .find('div.component-creation-formular')
+ .vm.$emit('update-user-data', propsData.items[1], [250, 500, 750])
+ })
+
+ it('updates the item', () => {
+ expect(wrapper.vm.items[1].creation).toEqual([250, 500, 750])
+ })
+ })
+ })
+ })
+})
diff --git a/admin/src/components/Tables/SearchUserTable.vue b/admin/src/components/Tables/SearchUserTable.vue
index df7cacf9a..c71f79aa3 100644
--- a/admin/src/components/Tables/SearchUserTable.vue
+++ b/admin/src/components/Tables/SearchUserTable.vue
@@ -1,100 +1,97 @@
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ {{ $t('userIsDeleted') }}
+
+
+
+
-
+
-
diff --git a/frontend/src/assets/scss/gradido.scss b/frontend/src/assets/scss/gradido.scss
index e29538807..9bc3231c4 100644
--- a/frontend/src/assets/scss/gradido.scss
+++ b/frontend/src/assets/scss/gradido.scss
@@ -3,15 +3,13 @@
@import "~bootstrap/scss/functions";
-
@import "custom/variables";
// @import "~bootstrap/scss/variables"; wird am
// ende der custom/variables angehangen
-
-// Bootstrap (4.5.3) mixins
-
-@import "~bootstrap/scss/mixins";
+// Bootstrap (4.5.3) mixins
+@import "~bootstrap/scss/mixins";
+
// Bootstrap (4.5.3) components
@import "~bootstrap/scss/alert";
@@ -20,11 +18,18 @@
@import "~bootstrap/scss/button-group";
@import "~bootstrap/scss/buttons";
@import "~bootstrap/scss/card";
+@import "~bootstrap/scss/carousel";
+@import "~bootstrap/scss/close";
+@import "~bootstrap/scss/code";
@import "~bootstrap/scss/custom-forms";
+@import "~bootstrap/scss/dropdown";
@import "~bootstrap/scss/forms";
+@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/grid";
@import "~bootstrap/scss/input-group";
@import "~bootstrap/scss/list-group";
+@import "~bootstrap/scss/mixins";
+@import "~bootstrap/scss/modal";
@import "~bootstrap/scss/nav";
@import "~bootstrap/scss/navbar";
@import "~bootstrap/scss/pagination";
@@ -38,7 +43,99 @@
@import "~bootstrap/scss/type";
@import "~bootstrap/scss/utilities";
@import "~bootstrap/scss/variables";
-
+@import "~bootstrap/scss/bootstrap-grid";
+@import "~bootstrap/scss/bootstrap-reboot";
+@import "~bootstrap/scss/bootstrap";
// Bootstrap-vue (2.21.1) scss
-@import '~bootstrap-vue/src/index.scss';
\ No newline at end of file
+@import '~bootstrap-vue/src/index.scss';
+
+
+.alert-success {
+ color: #155724;
+ background-color: #d4edda;
+ border-color: #c3e6cb;
+}
+.alert-danger {
+ color: #721c24;
+ background-color: #f8d7da;
+ border-color: #f5c6cb;
+}
+
+
+.b-toast-danger .toast .toast-header {
+ color: #721c24;
+ background-color: rgba(248,215,218,.85);
+ border-bottom-color: rgba(245,198,203,.85);
+}
+.b-toast-danger .toast .toast-body{
+ background-color: rgba(252,237,238,.85);
+ border-color: rgba(245,198,203,.85);
+ color: #721c24;
+}
+
+.b-toast-success .toast .toast-header {
+ color: #155724;
+ background-color: rgba(212,237,218,.58);
+ border-bottom-color: rgba(195,230,203,.85);
+}
+.b-toast-success .toast .toast-body{
+ color: #155724;
+ background-color: rgba(212,237,218,.85);
+ border-bottom-color: rgba(195,230,203,.85);
+}
+
+
+ .btn-primary pim {
+ background-color: #5a7b02;
+ border-color: #5e72e4;
+ }
+ a,
+ .copyright {
+ color: #5a7b02;
+ }
+ .font1_2em {
+ font-size: 1.2em;
+ }
+ .font2em {
+ font-size: 1.5em;
+ }
+ .gradido-global-color-text {
+ color: #3d443b;
+ }
+ .gradido-global-color-accent {
+ color: #047006;
+ }
+ .gradido-global-color-6e0a9c9e {
+ color: #000;
+ }
+ .gradido-global-color-2d0fb154 {
+ color: #047006;
+ }
+ .gradido-global-color-16efe88c {
+ color: #7ebc55;
+ }
+ .gradido-global-color-1939326 {
+ color: #f6fff6;
+ }
+ .gradido-global-color-9d79fc1 {
+ color: #047006;
+ }
+ .gradido-global-color-6347f4d {
+ color: #5a7b02;
+ }
+ .gradido-global-color-4fbc19a {
+ color: #014034;
+ }
+ .gradido-global-color-d341874 {
+ color: #b6d939;
+ }
+ .gradido-global-color-619d338 {
+ color: #8ebfb1;
+ }
+ .gradido-global-color-44819a9 {
+ color: #026873;
+ }
+ .gradido-global-color-gray {
+ color: #858383;
+ }
\ No newline at end of file
diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json
index ec1b1abbe..3bfad63e8 100644
--- a/frontend/src/locales/de.json
+++ b/frontend/src/locales/de.json
@@ -217,6 +217,7 @@
"gdt-text": "GradidoTransform Transaktionen",
"more": "mehr",
"nullTransactions": "Du hast noch keine Transaktionen auf deinem Konto.",
+ "receiverDeleted": "Das Empfängerkonto wurde gelöscht",
"receiverNotFound": "Empfänger nicht gefunden",
"show_all": "Alle
{count} Transaktionen ansehen"
},
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index df51d4336..b06030947 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -217,6 +217,7 @@
"gdt-text": "GradidoTransform Transactions",
"more": "more",
"nullTransactions": "You don't have any transactions on your account yet.",
+ "receiverDeleted": "The recipient account was deleted",
"receiverNotFound": "Recipient not found",
"show_all": "View all
{count} transactions."
},
diff --git a/frontend/src/mixins/toaster.js b/frontend/src/mixins/toaster.js
index 704eaf1a7..4464a2cc9 100644
--- a/frontend/src/mixins/toaster.js
+++ b/frontend/src/mixins/toaster.js
@@ -16,7 +16,7 @@ export const toasters = {
message = message.replace(/^GraphQL error: /, '')
this.$bvToast.toast(message, {
autoHideDelay: 5000,
- appendToast: false,
+ appendToast: true,
solid: true,
toaster: 'b-toaster-top-right',
headerClass: 'gdd-toaster-title',
diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue
index 8d95c8197..03012cf34 100755
--- a/frontend/src/views/Pages/Register.vue
+++ b/frontend/src/views/Pages/Register.vue
@@ -108,7 +108,7 @@
v-if="showError"
show
dismissible
- variant="warning"
+ variant="danger"
@dismissed="closeAlert"
>
diff --git a/frontend/src/views/Pages/SendOverview/GddSend/TransactionResult.vue b/frontend/src/views/Pages/SendOverview/GddSend/TransactionResult.vue
index d447fa771..6489574c9 100644
--- a/frontend/src/views/Pages/SendOverview/GddSend/TransactionResult.vue
+++ b/frontend/src/views/Pages/SendOverview/GddSend/TransactionResult.vue
@@ -13,6 +13,12 @@
{{ $t('transaction.receiverNotFound') }}
+
+ {{ $t('transaction.receiverDeleted') }}
+
({{ errorResult }})