From 9454b7b541d9216723ba3a8dfd813f0fe2323aa7 Mon Sep 17 00:00:00 2001 From: Markus Date: Fri, 17 Mar 2023 18:21:56 +0100 Subject: [PATCH 01/92] [WIP] fixing layout on newsfeed page --- .../components/DonationInfo/DonationInfo.vue | 1 + webapp/components/MasonryGrid/MasonryGrid.vue | 2 +- webapp/components/PostTeaser/PostTeaser.vue | 1 + webapp/pages/index.vue | 51 ++++++++++++------- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/webapp/components/DonationInfo/DonationInfo.vue b/webapp/components/DonationInfo/DonationInfo.vue index b66f33305..00b9bf584 100644 --- a/webapp/components/DonationInfo/DonationInfo.vue +++ b/webapp/components/DonationInfo/DonationInfo.vue @@ -47,5 +47,6 @@ export default { display: flex; flex: 1; margin-bottom: $space-x-small; + margin-top: 16px; } diff --git a/webapp/components/MasonryGrid/MasonryGrid.vue b/webapp/components/MasonryGrid/MasonryGrid.vue index f95c0e16e..d4c58daff 100644 --- a/webapp/components/MasonryGrid/MasonryGrid.vue +++ b/webapp/components/MasonryGrid/MasonryGrid.vue @@ -30,7 +30,7 @@ export default { /* dirty fix to override broken styleguide inline-styles */ .ds-grid { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)) !important; - gap: 32px 16px !important; + gap: 16px 16px !important; grid-auto-rows: 20px; } diff --git a/webapp/components/PostTeaser/PostTeaser.vue b/webapp/components/PostTeaser/PostTeaser.vue index 228c4c90c..37f471bb8 100644 --- a/webapp/components/PostTeaser/PostTeaser.vue +++ b/webapp/components/PostTeaser/PostTeaser.vue @@ -194,6 +194,7 @@ export default { display: block; height: 100%; color: $text-color-base; + padding-top: 16px; } .post-user-row { diff --git a/webapp/pages/index.vue b/webapp/pages/index.vue index 0094f5706..147075093 100644 --- a/webapp/pages/index.vue +++ b/webapp/pages/index.vue @@ -17,13 +17,10 @@ /> - - - - +
+
@@ -74,17 +71,19 @@
-
- - - - + + + +
+
- - - +
+
- +
+
+ + @@ -14,8 +14,8 @@ export default { }, typ: { type: String, - default: 'blue' - } + default: 'blue', + }, }, } @@ -51,7 +51,7 @@ export default { background-color: $color-success-active; &::before { - border-color: $color-success-active transparent transparent $color-success-active; - } + border-color: $color-success-active transparent transparent $color-success-active; + } } diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 347e4130f..a43f871d1 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -718,22 +718,19 @@ "takeAction": { "name": "Aktiv werden" }, + "viewEvent": { + "eventEnd": "Ende", + "eventIsOnline": "Online Veranstaltung", + "eventLocationName": "Stadt", + "eventStart": "Beginn", + "eventVenue": "Veranstaltungsort", + "title": "Veranstaltung" + }, "viewPost": { "forGroup": { "title": "In der Gruppe „{name}“" }, "title": "Beitrag" - }, - "viewEvent": { - "forGroup": { - "title": "In der Gruppe „{name}“" - }, - "title": "Veranstaltung", - "eventStart":"Beginn", - "eventEnd":"Ende", - "eventVenue":"Veranstaltungsort", - "eventLocationName":"Stadt", - "eventIsOnline":"Online Veranstaltung" } }, "profile": { diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 1b6711887..252cb7978 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -718,19 +718,19 @@ "takeAction": { "name": "Take action" }, + "viewEvent": { + "eventEnd": "End", + "eventIsOnline": "Online Event", + "eventLocationName": "City", + "eventStart": "Start", + "eventVenue": "Venue", + "title": "Event" + }, "viewPost": { "forGroup": { "title": "In The Group “{name}”" }, "title": "Post" - }, - "viewEvent": { - "title": "Event", - "eventStart":"Start", - "eventEnd":"End", - "eventVenue":"Venue", - "eventLocationName":"City", - "eventIsOnline":"Online Event" } }, "profile": { diff --git a/webapp/pages/post/_id/_slug/index.vue b/webapp/pages/post/_id/_slug/index.vue index cd760c922..3814e31b3 100644 --- a/webapp/pages/post/_id/_slug/index.vue +++ b/webapp/pages/post/_id/_slug/index.vue @@ -82,7 +82,6 @@ Online Event: {{ post.eventIsOnline }} -
From 153ef7ae146eb2343c61e482d72d3ecf34a2bac1 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 25 Apr 2023 22:12:41 +0200 Subject: [PATCH 47/92] test getters and setters for post type filters --- webapp/store/posts.spec.js | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/webapp/store/posts.spec.js b/webapp/store/posts.spec.js index 665b147ae..72e35ef95 100644 --- a/webapp/store/posts.spec.js +++ b/webapp/store/posts.spec.js @@ -25,6 +25,18 @@ describe('getters', () => { }) }) + describe('filteredPostTypes', () => { + it('returns post types if filter is set', () => { + state = { filter: { postType_in: ['Article', 'Event'] } } + expect(getters.filteredPostTypes(state)).toEqual(['Article', 'Event']) + }) + + it('returns empty array if post type filter is not set', () => { + state = { filter: { author: { followedBy_some: { id: 7 } } } } + expect(getters.filteredPostTypes(state)).toEqual([]) + }) + }) + describe('filteredLanguageCodes', () => { it('returns category ids if filter is set', () => { state = { filter: { language_in: ['en', 'de', 'pt'] } } @@ -213,6 +225,46 @@ describe('mutations', () => { }) }) + describe('TOGGLE_POST_TYPE', () => { + beforeEach(() => { + testMutation = (postType) => { + mutations.TOGGLE_POST_TYPE(state, postType) + return getters.filter(state) + } + }) + + it('creates post type filter if empty', () => { + state = { filter: {} } + expect(testMutation('Event')).toEqual({ postType_in: ['Event'] }) + }) + + it('adds post type not present', () => { + state = { filter: { postType_in: ['Event'] } } + expect(testMutation('Article')).toEqual({ postType_in: ['Event', 'Article'] }) + }) + + it('removes category id if present', () => { + state = { filter: { postType_in: ['Event', 'Article'] } } + const result = testMutation('Event') + expect(result).toEqual({ postType_in: ['Article'] }) + }) + + it('removes category filter if empty', () => { + state = { filter: { postType_in: ['Event'] } } + expect(testMutation('Event')).toEqual({}) + }) + + it('does not get in the way of other filters', () => { + state = { + filter: { + author: { followedBy_some: { id: 7 } }, + postType_in: ['Event'], + }, + } + expect(testMutation('Event')).toEqual({ author: { followedBy_some: { id: 7 } } }) + }) + }) + describe('TOGGLE_FILTER_BY_FOLLOWED', () => { beforeEach(() => { testMutation = (userId) => { From b6ffdab321230e9de40a49e2deb7d3b3c396f12b Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 26 Apr 2023 08:56:57 +0200 Subject: [PATCH 48/92] refactor post event --- webapp/pages/post/_id/_slug/index.vue | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/webapp/pages/post/_id/_slug/index.vue b/webapp/pages/post/_id/_slug/index.vue index 3814e31b3..202f4b702 100644 --- a/webapp/pages/post/_id/_slug/index.vue +++ b/webapp/pages/post/_id/_slug/index.vue @@ -57,29 +57,29 @@ - + - Start: + {{ $t('post.viewEvent.eventStart') }}: {{ post.eventStart }} - + - End: + {{ $t('post.viewEvent.eventEnd') }}: {{ post.eventEnd }} - + - Veranstaltungsort: + {{ $t('post.viewEvent.eventVenue') }}: {{ post.eventVenue }} - + - Stadt: + {{ $t('post.viewEvent.eventLocationName') }}: {{ post.eventLocationName }} - + - Online Event: + {{ $t('post.viewEvent.eventIsOnline') }}: {{ post.eventIsOnline }} From 7d3d25fc7ca10d929816c517b1a5bcb737928d2e Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 26 Apr 2023 11:53:46 +0200 Subject: [PATCH 49/92] datepicker hide dates before today --- webapp/components/ContributionForm/ContributionForm.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index ba52bf319..708f2b2bf 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -70,6 +70,7 @@ formmat="DD-MM-YYYY HH:mm" style="z-index: 20" :placeholder="$t('post.viewEvent.eventStart')" + :disabled-date="notBeforeToday" >
@@ -89,6 +90,7 @@ formmat="DD MM YYYY HH:mm" :placeholder="$t('post.viewEvent.eventEnd')" style="font-size: larger" + :disabled-date="notBeforeToday" > @@ -277,6 +279,9 @@ export default { ...mapGetters({ currentUser: 'auth/user', }), + notBeforeToday(date) { + return date < new Date(new Date().setHours(0, 0, 0, 0)); + }, eventInput() { if (this.creatEvent) { return { From 909a8f29fdb9a9bff6aa1af75942fa0cfaae13f3 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 26 Apr 2023 13:43:14 +0200 Subject: [PATCH 50/92] refactor style --- .../ContributionForm/ContributionForm.vue | 15 ++++---- webapp/pages/post/create.vue | 35 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index 708f2b2bf..b5777ce0b 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -65,12 +65,13 @@ name="eventStart" v-model="formData.eventStart" type="datetime" - :hour-options="hours" value-type="format" + :minute-step="15" formmat="DD-MM-YYYY HH:mm" style="z-index: 20" :placeholder="$t('post.viewEvent.eventStart')" :disabled-date="notBeforeToday" + :show-second="false" >
@@ -86,11 +87,12 @@ v-model="formData.eventEnd" type="datetime" :minute-step="15" - :hour-options="hours" + :seconds-step="0" formmat="DD MM YYYY HH:mm" :placeholder="$t('post.viewEvent.eventEnd')" style="font-size: larger" :disabled-date="notBeforeToday" + :show-second="false" > @@ -232,7 +234,6 @@ export default { return { categoriesActive: this.$env.CATEGORIES_ACTIVE, links, - hours: Array.from({ length: 10 }).map((_, i) => i + 8), formData: { title: title || '', content: content || '', @@ -262,7 +263,7 @@ export default { return [] }, }, - eventStart: { required: !!this.creatEvent }, + eventStart: { required: !this.creatEvent }, eventVenue: { required: !!this.creatEvent, min: 3, max: 100 }, eventLocationName: { required: !!this.creatEvent, min: 3, max: 100 }, }, @@ -279,9 +280,6 @@ export default { ...mapGetters({ currentUser: 'auth/user', }), - notBeforeToday(date) { - return date < new Date(new Date().setHours(0, 0, 0, 0)); - }, eventInput() { if (this.creatEvent) { return { @@ -311,6 +309,9 @@ export default { }, }, methods: { + notBeforeToday(date) { + return date < new Date(new Date().setHours(0, 0, 0, 0)); + }, submit() { let image = null diff --git a/webapp/pages/post/create.vue b/webapp/pages/post/create.vue index e546b70f5..24f7a2539 100644 --- a/webapp/pages/post/create.vue +++ b/webapp/pages/post/create.vue @@ -1,31 +1,31 @@