introduce cloneCard backendFunctionality

Signed-off-by: grnd-alt <salimbelakkaf@outlook.de>
This commit is contained in:
grnd-alt
2024-11-04 12:45:33 +01:00
committed by Julius Knorr
parent 55c44ef6d4
commit 838b648ef6
8 changed files with 76 additions and 4 deletions

View File

@@ -21,7 +21,7 @@
:max-height="100"
label="title" />
<button :disabled="!isBoardAndStackChoosen" class="primary" @click="moveCard">
<button :disabled="!isBoardAndStackChoosen" class="primary" @click="cloneCard">
{{ t('deck', 'Clone card') }}
</button>
<button @click="modalShow = false">
@@ -89,9 +89,8 @@ export default {
return err
}
},
async moveCard() {
this.copiedCard = Object.assign({}, this.card)
this.copiedCard.stackId = this.selectedStack.id
async cloneCard() {
this.$store.dispatch('cloneCard', { cardId: this.card.id, targetStackId: this.selectedStack.id })
this.$store.dispatch('addCard', this.copiedCard)
this.modalShow = false
},

View File

@@ -28,6 +28,23 @@ export class CardApi {
})
}
cloneCard(cardId, targetStackId) {
return axios.post(this.url(`/cards/${cardId}/clone`), {
targetStackId,
})
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
deleteCard(cardId) {
return axios.delete(this.url(`/cards/${cardId}`))
.then(

View File

@@ -272,6 +272,11 @@ export default {
},
},
actions: {
async cloneCard({ commit }, { cardId, targetStackId }) {
const createdCard = await apiClient.cloneCard(cardId, targetStackId)
commit('addCard', createdCard)
return createdCard
},
async addCard({ commit }, card) {
const createdCard = await apiClient.addCard(card)
commit('addCard', createdCard)