Compare commits
3 Commits
9a51b416e5
...
availabili
Author | SHA1 | Date | |
---|---|---|---|
0f0d3cd861
|
|||
2b63603957 | |||
3ea7eb48b4
|
@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
{{ title }}
|
{{ title }}
|
||||||
</h3>
|
</h3>
|
||||||
<div class="card w-100">
|
<div class="card w-100">
|
||||||
<div class="card-body lh-1">
|
<div class="card-body">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -54,17 +54,20 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
onError({commit}) {
|
onError({commit, dispatch}) {
|
||||||
commit('setError')
|
commit('setError')
|
||||||
commit('clearProfileId')
|
dispatch('clear')
|
||||||
commit('clearProfile')
|
|
||||||
commit('setNotLoading')
|
|
||||||
commit('hideSpinner')
|
|
||||||
},
|
},
|
||||||
onNotFound({commit, dispatch}) {
|
onNotFound({commit, dispatch}) {
|
||||||
dispatch('onError')
|
dispatch('onError')
|
||||||
commit('setNotFound', true)
|
commit('setNotFound', true)
|
||||||
},
|
},
|
||||||
|
clear({commit}) {
|
||||||
|
commit('clearProfileId')
|
||||||
|
commit('clearProfile')
|
||||||
|
commit('hideSpinner')
|
||||||
|
commit('setNotLoading')
|
||||||
|
},
|
||||||
async load({state, commit, dispatch, rootState}, profileId) {
|
async load({state, commit, dispatch, rootState}, profileId) {
|
||||||
if (state.loading) {
|
if (state.loading) {
|
||||||
return
|
return
|
||||||
@ -111,7 +114,7 @@ export default {
|
|||||||
const responseData = await response.json()
|
const responseData = await response.json()
|
||||||
commit('setProfile', responseData.profile)
|
commit('setProfile', responseData.profile)
|
||||||
commit('hideSpinner')
|
commit('hideSpinner')
|
||||||
commit('setNotSearching')
|
commit('setNotLoading')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,17 +98,36 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
@update-values="profile.searchtopics = $event"
|
@update-values="profile.searchtopics = $event"
|
||||||
></auto-complete>
|
></auto-complete>
|
||||||
|
|
||||||
<div class="col-12 col-xs-12">
|
<Section title="Verfügbarkeit">
|
||||||
<label for="availability" class="form-label fw-bold"
|
<div class="form-check mb-3">
|
||||||
>Ich bin für Anfragen verfügbar:</label
|
<input
|
||||||
>
|
v-model="profile.availability_status"
|
||||||
|
class="form-check-input me-2"
|
||||||
|
type="checkbox"
|
||||||
|
id="availability_status">
|
||||||
|
<label class="form-check-label" for="availability_status">
|
||||||
|
Ich bin aktuell verfügbar
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3" v-if="profile.availability_status">
|
||||||
|
<label class="form-label">
|
||||||
|
Stunden pro Woche
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
v-model="profile.availability_hours_per_week"
|
||||||
|
type="number"
|
||||||
|
class="form-control">
|
||||||
|
</div>
|
||||||
|
<label for="availability" class="form-label">
|
||||||
|
Anmerkungen
|
||||||
|
</label>
|
||||||
<textarea
|
<textarea
|
||||||
class="form-control"
|
class="form-control"
|
||||||
id="availability"
|
id="availability"
|
||||||
rows="3"
|
rows="3"
|
||||||
v-model="profile.availability"
|
v-model="profile.availability_text"
|
||||||
></textarea>
|
></textarea>
|
||||||
</div>
|
</Section>
|
||||||
|
|
||||||
<auto-complete
|
<auto-complete
|
||||||
type="contacttype"
|
type="contacttype"
|
||||||
@ -171,12 +190,14 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
import RequestMixin from "@/mixins/request.mixin"
|
import RequestMixin from "@/mixins/request.mixin"
|
||||||
|
|
||||||
import AutoComplete from "@/components/AutoComplete";
|
import AutoComplete from "@/components/AutoComplete";
|
||||||
|
import Section from '@/components/profile/Section'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "profileEdit",
|
name: "profileEdit",
|
||||||
mixins: [RequestMixin],
|
mixins: [RequestMixin],
|
||||||
components: {
|
components: {
|
||||||
AutoComplete,
|
AutoComplete,
|
||||||
|
Section,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -188,7 +209,9 @@ export default {
|
|||||||
pronouns: "",
|
pronouns: "",
|
||||||
volunteerwork: "",
|
volunteerwork: "",
|
||||||
freetext: "",
|
freetext: "",
|
||||||
availability: "",
|
availability_status: false,
|
||||||
|
availability_hours_per_week: null,
|
||||||
|
availability_text: "",
|
||||||
address: {
|
address: {
|
||||||
postcode: "",
|
postcode: "",
|
||||||
city: "",
|
city: "",
|
||||||
|
@ -55,10 +55,28 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
</div>
|
</div>
|
||||||
</Section>
|
</Section>
|
||||||
|
|
||||||
<Section
|
<Section title="Verfügbarkeit">
|
||||||
v-if="profile.availability"
|
<div class="d-flex align-items-center">
|
||||||
title="Verfügbarkeit">
|
<div v-if="profile.availability_status">
|
||||||
<div class="lh-base">{{ profile.availability }}</div>
|
<i class="bi bi-check-square me-1"></i>
|
||||||
|
ja
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<i class="bi bi-x-square me-1"></i>
|
||||||
|
nein
|
||||||
|
</div>
|
||||||
|
<span
|
||||||
|
class="ms-3"
|
||||||
|
v-if="profile.availability_status && profile.availability_hours_per_week">
|
||||||
|
({{ profile.availability_hours_per_week }} Stunden pro Woche)
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div v-if="profile.availability_text" class="mt-3">
|
||||||
|
<label class="form-label fw-bold">
|
||||||
|
Anmerkungen
|
||||||
|
</label>
|
||||||
|
<div>{{ profile.availability_text }}</div>
|
||||||
|
</div>
|
||||||
</Section>
|
</Section>
|
||||||
|
|
||||||
<Section
|
<Section
|
||||||
@ -112,7 +130,8 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions({
|
...mapActions({
|
||||||
load: 'profile/load'
|
loadProfile: 'profile/load',
|
||||||
|
clearStore: 'profile/clear',
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -126,8 +145,11 @@ export default {
|
|||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
const id = parseInt(this.$route.params.memberId, 10)
|
const id = parseInt(this.$route.params.memberId, 10)
|
||||||
this.load(id)
|
this.loadProfile(id)
|
||||||
}
|
},
|
||||||
|
unmounted() {
|
||||||
|
this.clearStore()
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user