Skip to content

Commit

Permalink
update, delete and create are working
Browse files Browse the repository at this point in the history
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
  • Loading branch information
jakobroehrl committed Apr 16, 2019
1 parent 47f44e1 commit b3c569b
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 9 deletions.
52 changes: 46 additions & 6 deletions src/components/board/TagsTabSidebard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,35 @@
<ul class="labels">
<li v-for="label in labels" :key="label.id">
<template v-if="editingLabelId === label.id">
<input v-model="editingLabel.title" ><input v-model="editingLabel.color">
<button @click="updateLabel(label)">save</button><button @click="editingLabelId = null">cancel</button>
<input v-model="editingLabel.title"><input v-model="editingLabel.color">
<button class="icon-checkmark" @click="updateLabel(label)" :disabled="!editLabelObjValidated"
v-tooltip="{content: 'title and color must be provided',
show: !editLabelObjValidated, trigger: 'manual' }" />

<button v-tooltip="t('deck', 'Cancel')" class="icon-close" @click="editingLabelId = null" />
</template>
<template v-else>
<span :style="{ backgroundColor: `#${label.color}`, color: `#white` }" class="label-title">
<span v-if="label.title">{{ label.title }}</span><i v-if="!label.title"><br></i>
</span>
<button @click="clickEdit(label)">edit</button><button @click="deleteLabel(label.id)">delete</button>
<button v-tooltip="t('deck', 'Edit')" class="icon-rename" @click="clickEdit(label)" />


<button v-tooltip="t('deck', 'Delete')" class="icon-delete" @click="deleteLabel(label.id)" />

</template>
</li>

<li v-if="addLabel">
<template>
<input v-model="addLabelObj.title"><input v-model="addLabelObj.color">
<button class="icon-checkmark" @click="clickAddLabel()" :disabled="!addLabelObjValidated"
v-tooltip="{content: 'title and color must be provided',
show: !addLabelObjValidated, trigger: 'manual' }" />
<button v-tooltip="t('deck', 'Cancel')" class="icon-close" @click="addLabel=false" />
</template>
</li>
<button v-tooltip="t('deck', 'Add')" class="icon-add" @click="clickShowAddLabel()" />
</ul>
</div>
</template>
Expand All @@ -26,13 +45,25 @@ export default {
data() {
return {
editingLabelId: null,
editingLabel: null
editingLabel: null,
addLabelObj: null,
addLabel: false,
}
},
computed: {
...mapGetters({
labels: 'currentBoardLabels'
})
}),
addLabelObjValidated() {
if (this.addLabelObj.title == '') return false;
if (this.addLabelObj.color == '') return false;
return true;
},
editLabelObjValidated() {
if (this.editingLabel.title == '') return false;
if (this.editingLabel.color == '') return false;
return true;
}
},
methods: {
clickEdit(label) {
Expand All @@ -45,7 +76,16 @@ export default {
updateLabel(label) {
this.$store.dispatch('updateLabelFromCurrentBoard', this.editingLabel)
this.editingLabelId = null
}
},
clickShowAddLabel() {
this.addLabelObj = { boardId: 1, cardId: null, color: '000', title: 'new'}
this.addLabel=true
},
clickAddLabel() {
this.$store.dispatch('addLabelToCurrentBoard', this.addLabelObj)
this.addLabel = false
this.addLabelObj = null
},
}
}
</script>
46 changes: 46 additions & 0 deletions src/services/BoardApi.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,50 @@ export class BoardApi {
})
}

// Label API Calls
deleteLabel(id) {
return axios.delete(this.url(`/labels/${id}`))
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
}
)
.catch((err) => {
return Promise.reject(err)
})
}

updateLabel(label) {
return axios.put(this.url('/labels/${label.id}'), label)
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
}
)
.catch((err) => {
return Promise.reject(err)
})
}

createLabel(labelData) {
return axios.post(this.url('/labels'), labelData)
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
}
)
.catch((err) => {
return Promise.reject(err)
})
}

}
23 changes: 20 additions & 3 deletions src/store/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ export default new Vuex.Store({

// label mutators
removeLabelFromCurrentBoard(state, labelId) {
console.log(labelId)
const removeIndex = state.currentBoard.labels.findIndex((l) => {
return labelId === l.id
})
Expand All @@ -151,6 +152,10 @@ export default new Vuex.Store({

labelToUpdate.title = newLabel.title
labelToUpdate.color = newLabel.color
},
addLabelToCurrentBoard(state, newLabel) {

state.currentBoard.labels.push(newLabel)
}
},
actions: {
Expand Down Expand Up @@ -214,11 +219,23 @@ export default new Vuex.Store({
},

// label actions
removeLabelFromCurrentBoard({ commit }, labelId) {
commit('removeLabelFromCurrentBoard', labelId);
removeLabelFromCurrentBoard({ commit }, label) {
apiClient.deleteLabel(label)
.then((label) => {
commit('removeLabelFromCurrentBoard', label.id);
})
},
updateLabelFromCurrentBoard({ commit }, newLabel) {
commit('updateLabelFromCurrentBoard', newLabel);
apiClient.updateLabel(newLabel)
.then((newLabel) => {
commit('updateLabelFromCurrentBoard', newLabel);
})
},
addLabelToCurrentBoard({ commit }, newLabel) {
apiClient.createLabel(newLabel)
.then((newLabel) => {
commit('addLabelToCurrentBoard', newLabel);
})
}
}
})

0 comments on commit b3c569b

Please sign in to comment.