From cf31f3c1d6ed25cd516aaf8f810a7fb1350c324d Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 3 Aug 2022 10:26:08 +0200 Subject: [PATCH 01/55] preparation for creating a new group --- webapp/components/GroupForm/GroupForm.vue | 272 ++++++++++++++++++ webapp/components/GroupTeaser/GroupTeaser.vue | 24 ++ webapp/locales/de.json | 3 + webapp/locales/en.json | 3 + webapp/pages/group/create.vue | 18 ++ webapp/pages/my-groups.vue | 16 ++ 6 files changed, 336 insertions(+) create mode 100644 webapp/components/GroupForm/GroupForm.vue create mode 100644 webapp/components/GroupTeaser/GroupTeaser.vue create mode 100644 webapp/pages/group/create.vue create mode 100644 webapp/pages/my-groups.vue diff --git a/webapp/components/GroupForm/GroupForm.vue b/webapp/components/GroupForm/GroupForm.vue new file mode 100644 index 000000000..76d659b96 --- /dev/null +++ b/webapp/components/GroupForm/GroupForm.vue @@ -0,0 +1,272 @@ + + + + + diff --git a/webapp/components/GroupTeaser/GroupTeaser.vue b/webapp/components/GroupTeaser/GroupTeaser.vue new file mode 100644 index 000000000..e9b3ba670 --- /dev/null +++ b/webapp/components/GroupTeaser/GroupTeaser.vue @@ -0,0 +1,24 @@ + diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 297daa511..162897883 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -366,6 +366,9 @@ "follow": "Folgen", "following": "Folge Ich" }, + "group": { + "newGroup":"Erstelle eine neue Gruppe" + }, "hashtags-filter": { "clearSearch": "Suche löschen", "hashtag-search": "Suche nach #{hashtag}", diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 8499b0290..4043eefd8 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -366,6 +366,9 @@ "follow": "Follow", "following": "Following" }, + "group": { + "newGroup":"Create a new Group" + }, "hashtags-filter": { "clearSearch": "Clear search", "hashtag-search": "Searching for #{hashtag}", diff --git a/webapp/pages/group/create.vue b/webapp/pages/group/create.vue new file mode 100644 index 000000000..6b52167f2 --- /dev/null +++ b/webapp/pages/group/create.vue @@ -0,0 +1,18 @@ + + + diff --git a/webapp/pages/my-groups.vue b/webapp/pages/my-groups.vue new file mode 100644 index 000000000..386bb1e51 --- /dev/null +++ b/webapp/pages/my-groups.vue @@ -0,0 +1,16 @@ + + From f1831661e58c1547485b16d49036e8ef5a14ac9b Mon Sep 17 00:00:00 2001 From: ogerly Date: Sun, 7 Aug 2022 14:12:17 +0200 Subject: [PATCH 02/55] add my-groups page and setting link --- webapp/components/GroupForm/GroupForm.vue | 208 +++++------------- webapp/components/GroupTeaser/GroupTeaser.vue | 40 ++-- webapp/locales/de.json | 3 + webapp/locales/en.json | 3 + webapp/pages/group/create.vue | 9 +- webapp/pages/settings.vue | 4 + 6 files changed, 88 insertions(+), 179 deletions(-) diff --git a/webapp/components/GroupForm/GroupForm.vue b/webapp/components/GroupForm/GroupForm.vue index 76d659b96..e730a3c13 100644 --- a/webapp/components/GroupForm/GroupForm.vue +++ b/webapp/components/GroupForm/GroupForm.vue @@ -3,10 +3,7 @@ - - diff --git a/webapp/pages/group/create.vue b/webapp/pages/group/create.vue index b77096859..9463083f1 100644 --- a/webapp/pages/group/create.vue +++ b/webapp/pages/group/create.vue @@ -1,11 +1,13 @@ + diff --git a/webapp/components/GroupTeaser/GroupTeaser.vue b/webapp/components/GroupTeaser/GroupTeaser.vue index a199106a5..22df641e9 100644 --- a/webapp/components/GroupTeaser/GroupTeaser.vue +++ b/webapp/components/GroupTeaser/GroupTeaser.vue @@ -1,7 +1,5 @@ + + diff --git a/webapp/pages/my-groups.vue b/webapp/pages/my-groups.vue index 386bb1e51..a861403ed 100644 --- a/webapp/pages/my-groups.vue +++ b/webapp/pages/my-groups.vue @@ -2,15 +2,45 @@
my groups
+
From addfc39c4c3b1a6132b4e1b82061a01ed651fb48 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 11 Aug 2022 11:10:52 +0200 Subject: [PATCH 05/55] add groupe site id und slug --- webapp/components/GroupForm/GroupForm.vue | 60 +++++++-------- webapp/components/GroupList/GroupCard.vue | 50 ++++++++++++ webapp/components/GroupList/GroupList.vue | 73 +++++++++++++----- webapp/components/GroupMember/GroupMember.vue | 67 ++++++++++++++++ webapp/components/GroupTeaser/GroupTeaser.vue | 6 +- webapp/pages/group/_id.vue | 9 +++ webapp/pages/group/_id/_slug.vue | 6 ++ webapp/pages/group/create.vue | 7 +- webapp/pages/my-groups.vue | 76 ++++++++++++------- 9 files changed, 270 insertions(+), 84 deletions(-) create mode 100644 webapp/components/GroupList/GroupCard.vue create mode 100644 webapp/components/GroupMember/GroupMember.vue create mode 100644 webapp/pages/group/_id.vue create mode 100644 webapp/pages/group/_id/_slug.vue diff --git a/webapp/components/GroupForm/GroupForm.vue b/webapp/components/GroupForm/GroupForm.vue index 1bd4455d7..703adc45c 100644 --- a/webapp/components/GroupForm/GroupForm.vue +++ b/webapp/components/GroupForm/GroupForm.vue @@ -1,32 +1,31 @@ @@ -44,19 +43,20 @@ export default { name: '', status: '', description: '', + disable: false, } }, - + methods: { - submit() { - console.log('handleSubmit') + submit() { + console.log('handleSubmit') + }, + handleSubmit() { + console.log('handleSubmit') + }, + reset() { + console.log('handleSubmit') + }, }, - handleSubmit() { - console.log('handleSubmit') - }, - reset() { - console.log('handleSubmit') - }, - }, } diff --git a/webapp/components/GroupList/GroupCard.vue b/webapp/components/GroupList/GroupCard.vue new file mode 100644 index 000000000..4ae9f807f --- /dev/null +++ b/webapp/components/GroupList/GroupCard.vue @@ -0,0 +1,50 @@ + + diff --git a/webapp/components/GroupList/GroupList.vue b/webapp/components/GroupList/GroupList.vue index bfaceed21..69df8acb7 100644 --- a/webapp/components/GroupList/GroupList.vue +++ b/webapp/components/GroupList/GroupList.vue @@ -1,27 +1,58 @@ diff --git a/webapp/components/GroupMember/GroupMember.vue b/webapp/components/GroupMember/GroupMember.vue new file mode 100644 index 000000000..f83b00685 --- /dev/null +++ b/webapp/components/GroupMember/GroupMember.vue @@ -0,0 +1,67 @@ + + diff --git a/webapp/components/GroupTeaser/GroupTeaser.vue b/webapp/components/GroupTeaser/GroupTeaser.vue index 22df641e9..33a50dca7 100644 --- a/webapp/components/GroupTeaser/GroupTeaser.vue +++ b/webapp/components/GroupTeaser/GroupTeaser.vue @@ -21,9 +21,7 @@ - diff --git a/webapp/pages/group/_id.vue b/webapp/pages/group/_id.vue new file mode 100644 index 000000000..7ce25e827 --- /dev/null +++ b/webapp/pages/group/_id.vue @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/webapp/pages/group/_id/_slug.vue b/webapp/pages/group/_id/_slug.vue new file mode 100644 index 000000000..36f2ccb2b --- /dev/null +++ b/webapp/pages/group/_id/_slug.vue @@ -0,0 +1,6 @@ + diff --git a/webapp/pages/group/create.vue b/webapp/pages/group/create.vue index 9463083f1..e82fadd6e 100644 --- a/webapp/pages/group/create.vue +++ b/webapp/pages/group/create.vue @@ -1,19 +1,24 @@ - diff --git a/webapp/pages/my-groups.vue b/webapp/pages/my-groups.vue index a861403ed..81843f5d2 100644 --- a/webapp/pages/my-groups.vue +++ b/webapp/pages/my-groups.vue @@ -2,45 +2,65 @@
my groups
- + +
+
+
From 46d26a0ef8ab16b32662e53f763e25fc676b6037 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sun, 14 Aug 2022 11:45:33 +0200 Subject: [PATCH 06/55] add graphql groups, add createGroup mutation --- webapp/components/GroupForm/GroupForm.vue | 41 +++++---- webapp/graphql/groups.js | 107 ++++++++++++++++++++++ webapp/pages/group/create.vue | 40 +++++++- 3 files changed, 171 insertions(+), 17 deletions(-) create mode 100644 webapp/graphql/groups.js diff --git a/webapp/components/GroupForm/GroupForm.vue b/webapp/components/GroupForm/GroupForm.vue index 703adc45c..2cbc67464 100644 --- a/webapp/components/GroupForm/GroupForm.vue +++ b/webapp/components/GroupForm/GroupForm.vue @@ -2,25 +2,25 @@
- + - + -
{{ name }}
-
{{ status }}
-
{{ description }}
+
{{ form.name }}
+
{{ form.status }}
+
{{ form.description }}
Reset form - Save group + Save group
@@ -38,24 +38,33 @@ export default { components: { CategoriesSelect, }, + props:{ + value: { + type: Object, + default: () => ({}), + required: true, + } + }, data() { return { - name: '', - status: '', - description: '', - disable: false, + form: { + name: '', + status: '', + description: '', + disable: false, + } + } }, methods: { submit() { - console.log('handleSubmit') - }, - handleSubmit() { - console.log('handleSubmit') + console.log('submit', this.form) + this.$emit('createGroup', this.form) + }, reset() { - console.log('handleSubmit') + console.log('reset') }, }, } diff --git a/webapp/graphql/groups.js b/webapp/graphql/groups.js new file mode 100644 index 000000000..c41f06e4d --- /dev/null +++ b/webapp/graphql/groups.js @@ -0,0 +1,107 @@ +import gql from 'graphql-tag' + +// ------ mutations + +export const createGroupMutation = gql` + mutation ( + $id: ID + $name: String! + $slug: String + $about: String + $description: String! + $groupType: GroupType! + $actionRadius: GroupActionRadius! + $categoryIds: [ID] + ) { + CreateGroup( + id: $id + name: $name + slug: $slug + about: $about + description: $description + groupType: $groupType + actionRadius: $actionRadius + categoryIds: $categoryIds + ) { + id + name + slug + createdAt + updatedAt + disabled + deleted + about + description + groupType + actionRadius + myRole + # Wolle: owner { + # name + # } + } + } +` + +// ------ queries + +export const groupQuery = gql` + query ( + $isMember: Boolean + $id: ID + $name: String + $slug: String + $createdAt: String + $updatedAt: String + $about: String + $description: String + # $groupType: GroupType!, + # $actionRadius: GroupActionRadius!, + # $categoryIds: [ID] + $locationName: String + $first: Int + $offset: Int + $orderBy: [_GroupOrdering] + $filter: _GroupFilter + ) { + Group( + isMember: $isMember + id: $id + name: $name + slug: $slug + createdAt: $createdAt + updatedAt: $updatedAt + about: $about + description: $description + # groupType: $groupType + # actionRadius: $actionRadius + # categoryIds: $categoryIds + locationName: $locationName + first: $first + offset: $offset + orderBy: $orderBy + filter: $filter + ) { + id + name + slug + createdAt + updatedAt + disabled + deleted + about + description + groupType + actionRadius + myRole + categories { + id + slug + name + icon + } + # Wolle: owner { + # name + # } + } + } +` diff --git a/webapp/pages/group/create.vue b/webapp/pages/group/create.vue index e82fadd6e..c76be5360 100644 --- a/webapp/pages/group/create.vue +++ b/webapp/pages/group/create.vue @@ -2,7 +2,7 @@
- +   @@ -14,11 +14,49 @@ From c2a769f325c98665f97ebb1366a7e85ddec70f51 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sun, 14 Aug 2022 12:49:15 +0200 Subject: [PATCH 07/55] add CategoriesSelect in GroupForm.vue --- webapp/components/GroupForm/GroupForm.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/webapp/components/GroupForm/GroupForm.vue b/webapp/components/GroupForm/GroupForm.vue index 2cbc67464..8e29bf300 100644 --- a/webapp/components/GroupForm/GroupForm.vue +++ b/webapp/components/GroupForm/GroupForm.vue @@ -14,9 +14,13 @@ +
{{ form.name }}
{{ form.status }}
{{ form.description }}
+
{{ form.categoryIds }}
Reset form @@ -39,19 +43,18 @@ export default { CategoriesSelect, }, props:{ - value: { - type: Object, - default: () => ({}), - required: true, - } + model: { type: String, required: true }, + value: { type: String, default: '' }, }, data() { return { + categoriesActive: this.$env.CATEGORIES_ACTIVE, form: { name: '', status: '', description: '', disable: false, + categoryIds: [], } } From 936ecf247728456ddc42bb5d3959c79ba03e4bca Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 15 Aug 2022 15:35:33 +0200 Subject: [PATCH 08/55] add mutation createGroup and query GroupList --- .../CategoriesSelect/CategoriesSelect.vue | 1 + webapp/components/GroupForm/GroupForm.vue | 91 ++++++++++++----- webapp/components/GroupList/GroupCard.vue | 28 +++--- webapp/components/GroupList/GroupList.vue | 5 +- webapp/components/GroupMember/GroupMember.vue | 98 +++++++++---------- webapp/graphql/groups.js | 16 +-- webapp/pages/group/_id.vue | 17 ++-- webapp/pages/group/_id/_slug.vue | 6 +- webapp/pages/group/create.vue | 43 ++++---- webapp/pages/my-groups.vue | 21 +++- 10 files changed, 183 insertions(+), 143 deletions(-) diff --git a/webapp/components/CategoriesSelect/CategoriesSelect.vue b/webapp/components/CategoriesSelect/CategoriesSelect.vue index b7d71de2d..1fb95a8db 100644 --- a/webapp/components/CategoriesSelect/CategoriesSelect.vue +++ b/webapp/components/CategoriesSelect/CategoriesSelect.vue @@ -46,6 +46,7 @@ export default { }, methods: { toggleCategory(id) { + console.log('toggleCategory', id) this.selectedCategoryIds = xor(this.selectedCategoryIds, [id]) if (this.$parentForm) { this.$parentForm.update(this.model, this.selectedCategoryIds) diff --git a/webapp/components/GroupForm/GroupForm.vue b/webapp/components/GroupForm/GroupForm.vue index 8e29bf300..d52fea0c4 100644 --- a/webapp/components/GroupForm/GroupForm.vue +++ b/webapp/components/GroupForm/GroupForm.vue @@ -1,30 +1,53 @@