Merge branch 'master' into 6636-search-trigger-after-3-chars

This commit is contained in:
Wolfgang Huß 2023-07-26 13:21:21 +02:00 committed by GitHub
commit 6f02a87355
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 241 additions and 222 deletions

View File

@ -1,4 +1,5 @@
<template> <template>
<div>
<ds-form <ds-form
class="contribution-form" class="contribution-form"
ref="contributionForm" ref="contributionForm"
@ -76,7 +77,10 @@
@change="changeEventStart($event)" @change="changeEventStart($event)"
></date-picker> ></date-picker>
</div> </div>
<div v-if="errors && errors.eventStart" class="chipbox event-grid-item-margin-helper"> <div
v-if="errors && errors.eventStart"
class="chipbox event-grid-item-margin-helper"
>
<ds-chip size="base" :color="errors && errors.eventStart && 'danger'"> <ds-chip size="base" :color="errors && errors.eventStart && 'danger'">
<base-icon name="warning" /> <base-icon name="warning" />
</ds-chip> </ds-chip>
@ -180,6 +184,7 @@
</base-card> </base-card>
</template> </template>
</ds-form> </ds-form>
</div>
</template> </template>
<script> <script>
import gql from 'graphql-tag' import gql from 'graphql-tag'

View File

@ -749,13 +749,13 @@
"forGroup": { "forGroup": {
"title": "Für die Gruppe „{name}“" "title": "Für die Gruppe „{name}“"
}, },
"title": "Erstelle ein neues Event" "title": "Erstelle eine Veranstaltung"
}, },
"createNewPost": { "createNewPost": {
"forGroup": { "forGroup": {
"title": "Für die Gruppe „{name}“" "title": "Für die Gruppe „{name}“"
}, },
"title": "Erstelle einen neuen Beitrag" "title": "Erstelle einen Beitrag"
}, },
"edited": "bearbeitet", "edited": "bearbeitet",
"editPost": { "editPost": {

View File

@ -749,13 +749,13 @@
"forGroup": { "forGroup": {
"title": "For The Group “{name}”" "title": "For The Group “{name}”"
}, },
"title": "Create A New Event" "title": "Create an Event"
}, },
"createNewPost": { "createNewPost": {
"forGroup": { "forGroup": {
"title": "For The Group “{name}”" "title": "For The Group “{name}”"
}, },
"title": "Create A New Article" "title": "Create an Article"
}, },
"edited": "edited", "edited": "edited",
"editPost": { "editPost": {

View File

@ -1,55 +1,33 @@
<template> <template>
<div> <div>
<ds-flex :width="{ base: '100%' }"> <ds-flex gutter="small">
<ds-flex-item :width="{ base: '100%' }"> <ds-flex-item :width="{ base: '100%', md: '200px' }">
<ds-flex gutter="base" :width="{ base: '100%', sm: 1 }"> <ds-menu class="post-type-menu" :routes="routes">
<ds-flex-item> <ds-menu-item
<ds-card class="create-form-btn" :primary="!createEvent" centered> @click.prevent="switchPostType($event, item)"
<div> slot="menuitem"
<ds-button slot-scope="item"
v-if="!createEvent" :route="item.route"
ghost class="post-type-menu-item"
fullwidth
size="x-large"
class="inactive-tab-button"
> >
{{ $t('post.createNewPost.title') }} {{ item.route.name }}
</ds-button> </ds-menu-item>
<ds-button v-else ghost fullwidth size="x-large" @click="switchPostType()"> </ds-menu>
{{ $t('post.createNewPost.title') }}
</ds-button>
</div>
</ds-card>
</ds-flex-item> </ds-flex-item>
<ds-flex-item> <ds-flex-item :width="{ base: '100%', md: 1 }">
<ds-card class="create-form-btn" :primary="!!createEvent" centered> <transition name="slide-up" appear>
<div> <div>
<ds-button <div>
ghost <h1 v-if="!createEvent" class="title">
fullwidth {{ $t('post.createNewPost.title') }}
size="x-large" </h1>
v-if="createEvent" <h1 v-else class="title">
hover
class="inactive-tab-button"
>
{{ $t('post.createNewEvent.title') }} {{ $t('post.createNewEvent.title') }}
</ds-button> </h1>
<ds-button ghost fullwidth size="x-large" v-else @click="switchPostType()">
{{ $t('post.createNewEvent.title') }}
</ds-button>
</div> </div>
</ds-card>
</ds-flex-item>
</ds-flex>
<div v-if="group" class="group-create-title">
{{ $t('post.createNewPost.forGroup.title', { name: group.name }) }}
</div>
</ds-flex-item>
</ds-flex>
<ds-flex :width="{ base: '100%' }" gutter="base">
<ds-flex-item :width="{ base: '100%' }">
<contribution-form :group="group" :createEvent="createEvent" /> <contribution-form :group="group" :createEvent="createEvent" />
</div>
</transition>
</ds-flex-item> </ds-flex-item>
</ds-flex> </ds-flex>
</div> </div>
@ -74,6 +52,20 @@ export default {
group() { group() {
return this.Group && this.Group[0] ? this.Group[0] : null return this.Group && this.Group[0] ? this.Group[0] : null
}, },
routes() {
return [
{
name: this.$t('post.name'),
path: `/post/create`,
type: 'post',
},
{
name: this.$t('post.event'),
path: `/`,
type: 'event',
},
]
},
}, },
apollo: { apollo: {
Group: { Group: {
@ -97,8 +89,18 @@ export default {
}, },
}, },
methods: { methods: {
switchPostType() { switchPostType(event, route) {
this.createEvent = !this.createEvent if (route.route.type.toLowerCase() === 'event') {
this.createEvent = true
} else {
this.createEvent = false
}
// hacky way to set active element
const menuItems = document.querySelectorAll('.post-type-menu-item')
menuItems.forEach((menuItem) => {
menuItem.firstChild.classList.remove('router-link-exact-active', 'router-link-active')
})
event.target.classList.add('router-link-exact-active')
}, },
}, },
} }
@ -120,4 +122,16 @@ export default {
.create-form-btn .ds-button-ghost:hover { .create-form-btn .ds-button-ghost:hover {
background-color: transparent; background-color: transparent;
} }
.menu-item-active {
color: $color-primary;
border-left: 2px solid $color-primary;
background-color: #faf9fa;
}
@media screen and (min-width: 768px) {
.post-type-menu {
margin-top: 39px;
}
}
</style> </style>