diff --git a/src/components/Controls.vue b/src/components/Controls.vue
index 6ea550ed9..8b3fc2171 100644
--- a/src/components/Controls.vue
+++ b/src/components/Controls.vue
@@ -48,7 +48,7 @@
-
+
-
@@ -59,13 +43,11 @@
import { Container, Draggable } from 'vue-smooth-dnd'
import { mapState } from 'vuex'
import Controls from '../Controls'
-/* import CardItem from '../cards/CardItem' */
import Stack from './Stack'
export default {
name: 'Board',
components: {
- /* CardItem, */
Controls,
Container,
Draggable,
@@ -87,7 +69,8 @@ export default {
},
computed: {
...mapState({
- board: state => state.currentBoard
+ board: state => state.currentBoard,
+ showArchived: state => state.showArchived
}),
stacksByBoard() {
return this.$store.getters.stacksByBoard(this.board.id)
@@ -97,7 +80,11 @@ export default {
} */
},
watch: {
- '$route': 'fetchData'
+ '$route': 'fetchData',
+ showArchived() {
+
+ this.fetchData()
+ }
},
created() {
this.fetchData()
diff --git a/src/components/board/BoardSidebar.vue b/src/components/board/BoardSidebar.vue
index f95d4512d..2b214ea57 100644
--- a/src/components/board/BoardSidebar.vue
+++ b/src/components/board/BoardSidebar.vue
@@ -21,7 +21,7 @@
-->
-
diff --git a/src/components/board/SharingTabSidebard.vue b/src/components/board/SharingTabSidebard.vue
index 2a4ee7b43..be9555615 100644
--- a/src/components/board/SharingTabSidebard.vue
+++ b/src/components/board/SharingTabSidebard.vue
@@ -36,7 +36,7 @@
-
diff --git a/src/components/board/Stack.vue b/src/components/board/Stack.vue
index 765332562..fdd634941 100644
--- a/src/components/board/Stack.vue
+++ b/src/components/board/Stack.vue
@@ -2,6 +2,7 @@
- @copyright Copyright (c) 2018 Julius Härtl
-
- @author Julius Härtl
+ - @author Jakob Röhrl
-
- @license GNU AGPL version 3 or any later version
-
diff --git a/src/components/card/CardSidebar.vue b/src/components/card/CardSidebar.vue
index 20baa970d..82967ccfa 100644
--- a/src/components/card/CardSidebar.vue
+++ b/src/components/card/CardSidebar.vue
@@ -21,17 +21,17 @@
-->
-
- this is the description tab
+ {{ currentCard.description }}
- this is the files tab
+ {{ currentCard.attachments }}
this is the activity tab
@@ -41,6 +41,7 @@
diff --git a/src/services/CardApi.js b/src/services/CardApi.js
index 819b396f4..99ed2f252 100644
--- a/src/services/CardApi.js
+++ b/src/services/CardApi.js
@@ -44,4 +44,79 @@ export class CardApi {
})
}
+ deleteCard(cardId) {
+ return axios.delete(this.url(`/cards/${cardId}`))
+ .then(
+ (response) => {
+ return Promise.resolve(response.data)
+ },
+ (err) => {
+ return Promise.reject(err)
+ }
+ )
+ .catch((err) => {
+ return Promise.reject(err)
+ })
+ }
+
+ updateCard(card) {
+ return axios.put(this.url(`/cards/${card.id}`), card)
+ .then(
+ (response) => {
+ return Promise.resolve(response.data)
+ },
+ (err) => {
+ return Promise.reject(err)
+ }
+ )
+ .catch((err) => {
+ return Promise.reject(err)
+ })
+ }
+
+ assignUser(card) {
+ return axios.put(this.url(`/cards/${card.id}/assignUser`), card.assignUser)
+ .then(
+ (response) => {
+ return Promise.resolve(response.data)
+ },
+ (err) => {
+ return Promise.reject(err)
+ }
+ )
+ .catch((err) => {
+ return Promise.reject(err)
+ })
+ }
+
+ archiveCard(card) {
+ return axios.put(this.url(`/cards/${card.id}/archive`))
+ .then(
+ (response) => {
+ return Promise.resolve(response.data)
+ },
+ (err) => {
+ return Promise.reject(err)
+ }
+ )
+ .catch((err) => {
+ return Promise.reject(err)
+ })
+ }
+
+ unArchiveCard(card) {
+ return axios.put(this.url(`/cards/${card.id}/unarchive`))
+ .then(
+ (response) => {
+ return Promise.resolve(response.data)
+ },
+ (err) => {
+ return Promise.reject(err)
+ }
+ )
+ .catch((err) => {
+ return Promise.reject(err)
+ })
+ }
+
}
diff --git a/src/services/StackApi.js b/src/services/StackApi.js
index ac8a91b38..b871297ef 100644
--- a/src/services/StackApi.js
+++ b/src/services/StackApi.js
@@ -44,6 +44,21 @@ export class StackApi {
})
}
+ loadArchivedStacks(boardId) {
+ return axios.get(this.url(`/stacks/${boardId}/archived`))
+ .then(
+ (response) => {
+ return Promise.resolve(response.data)
+ },
+ (err) => {
+ return Promise.reject(err)
+ }
+ )
+ .catch((err) => {
+ return Promise.reject(err)
+ })
+ }
+
/**
* @param {Stack} stack
* @returns {Promise}
diff --git a/src/store/card.js b/src/store/card.js
index 20bcefe73..f5fe63062 100644
--- a/src/store/card.js
+++ b/src/store/card.js
@@ -21,6 +21,7 @@
*/
import { CardApi } from './../services/CardApi'
+import Vue from 'vue'
const apiClient = new CardApi()
@@ -37,6 +38,9 @@ export default {
}
},
mutations: {
+ clearCards(state) {
+ state.cards = []
+ },
addCard(state, card) {
let existingIndex = state.cards.findIndex(_card => _card.id === card.id)
if (existingIndex !== -1) {
@@ -45,6 +49,21 @@ export default {
} else {
state.cards.push(card)
}
+ },
+ deleteCard(state, card) {
+ let existingIndex = state.cards.findIndex(_card => _card.id === card.id)
+ if (existingIndex !== -1) {
+ state.cards.splice(existingIndex, 1)
+ }
+ },
+ updateTitle(state, card) {
+ let existingIndex = state.cards.findIndex(_card => _card.id === card.id)
+ if (existingIndex !== -1) {
+ state.cards[existingIndex].title = card.title
+ }
+ },
+ assignCardToMe(state, card) {
+ // let existingIndex = state.cards.findIndex(_card => _card.id === card.id)
}
},
actions: {
@@ -53,6 +72,35 @@ export default {
.then((createdCard) => {
commit('addCard', createdCard)
})
+ },
+ updateCard({ commit }, card) {
+ apiClient.updateCard(card)
+ .then((updatedCard) => {
+ commit('updateTitle', updatedCard)
+ })
+ },
+ deleteCard({ commit }, card) {
+ apiClient.deleteCard(card.id)
+ .then((card) => {
+ commit('deleteCard', card)
+ })
+ },
+ archiveUnarchiveCard({ commit }, card) {
+ let call = 'archiveCard'
+ if (card.archived === false) {
+ call = 'unArchiveCard'
+ }
+
+ apiClient[call](card)
+ .then((card) => {
+ commit('deleteCard', card)
+ })
+ },
+ assignCardToMe({ commit }, card) {
+ apiClient.assignUser(card)
+ .then((card) => {
+ commit('assignCardToMe', card)
+ })
}
}
}
diff --git a/src/store/main.js b/src/store/main.js
index e70f96681..fe27bd92c 100644
--- a/src/store/main.js
+++ b/src/store/main.js
@@ -46,10 +46,12 @@ export default new Vuex.Store({
},
strict: debug,
state: {
+ showArchived: false,
navShown: true,
compactMode: false,
sidebarShown: false,
currentBoard: null,
+ currentCard: null,
boards: [],
sharees: [],
boardFilter: BOARD_FILTERS.ALL
@@ -90,6 +92,9 @@ export default new Vuex.Store({
}
},
mutations: {
+ toggleShowArchived(state) {
+ state.showArchived = !state.showArchived
+ },
/**
* Adds or replaces a board in the store.
* Matches a board by it's id.
@@ -143,6 +148,9 @@ export default new Vuex.Store({
setCurrentBoard(state, board) {
state.currentBoard = board
},
+ setCurrentCard(state, card) {
+ state.currentCard = card
+ },
// label mutators
removeLabelFromCurrentBoard(state, labelId) {
@@ -196,6 +204,9 @@ export default new Vuex.Store({
}
},
actions: {
+ toggleShowArchived({ commit }) {
+ commit('toggleShowArchived')
+ },
/**
* @param commit
* @param state
@@ -272,6 +283,9 @@ export default new Vuex.Store({
setCurrentBoard({ commit }, board) {
commit('setCurrentBoard', board)
},
+ setCurrentCard({ commit }, card) {
+ commit('setCurrentCard', card)
+ },
// label actions
removeLabelFromCurrentBoard({ commit }, label) {
diff --git a/src/store/stack.js b/src/store/stack.js
index bd1ab0c6d..b5ca0f658 100644
--- a/src/store/stack.js
+++ b/src/store/stack.js
@@ -77,7 +77,12 @@ export default {
})
},
loadStacks({ commit }, board) {
- apiClient.loadStacks(board.id)
+ commit('clearCards')
+ let call = 'loadStacks'
+ if (this.state.showArchived === true) {
+ call = 'loadArchivedStacks'
+ }
+ apiClient[call](board.id)
.then((stacks) => {
for (let i in stacks) {
let stack = stacks[i]