Compare commits

..

1 Commits

Author SHA1 Message Date
Jakob Röhrl
18621caa60 unshare board
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-05-19 12:47:01 +02:00
6 changed files with 21 additions and 82 deletions

View File

@@ -1,66 +0,0 @@
<template>
<div>
<ul>
<li v-for="archivedCard in archivedCards" :key="archivedCard.id">
<CardItem :id="archivedCard.id" />
</li>
</ul>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import relativeDate from '../../mixins/relativeDate'
import CardItem from '../cards/CardItem'
export default {
name: 'ArchivedTabSidebar',
components: {
CardItem,
},
mixins: [ relativeDate ],
props: {
board: {
type: Object,
default: undefined,
},
},
data() {
return {
isLoading: false,
copiedDeletedStack: null,
copiedDeletedCard: null,
}
},
computed: {
...mapGetters([
'archivedCards',
]),
},
created() {
this.getData()
},
methods: {
async getData() {
this.isLoading = true
await this.$store.dispatch('fetchDeletedItems', this.board.id)
this.isLoading = false
},
stackUndoDelete(deletedStack) {
const copiedDeletedStack = Object.assign({}, deletedStack)
copiedDeletedStack.deletedAt = 0
this.$store.dispatch('stackUndoDelete', copiedDeletedStack)
},
cardUndoDelete(deletedCard) {
const copiedDeletedCard = Object.assign({}, deletedCard)
copiedDeletedCard.deletedAt = 0
this.$store.dispatch('cardUndoDelete', copiedDeletedCard)
},
},
}
</script>
<style scoped lang="scss">
</style>

View File

@@ -39,17 +39,9 @@
<TagsTabSidebar :board="board" />
</AppSidebarTab>
<AppSidebarTab
id="archived"
:order="2"
:name="t('deck', 'Archived cards')"
icon="icon-archive">
<ArchivedTabSidebar :board="board" />
</AppSidebarTab>
<AppSidebarTab v-if="canEdit"
id="deleted"
:order="3"
:order="2"
:name="t('deck', 'Deleted items')"
icon="icon-delete">
<DeletedTabSidebar :board="board" />
@@ -57,7 +49,7 @@
<AppSidebarTab v-if="hasActivity"
id="activity"
:order="4"
:order="3"
:name="t('deck', 'Timeline')"
icon="icon-activity">
<TimelineTabSidebar :board="board" />
@@ -70,7 +62,6 @@ import { mapState, mapGetters } from 'vuex'
import SharingTabSidebar from './SharingTabSidebar'
import TagsTabSidebar from './TagsTabSidebar'
import DeletedTabSidebar from './DeletedTabSidebar'
import ArchivedTabSidebar from './ArchivedTabSidebar'
import TimelineTabSidebar from './TimelineTabSidebar'
import { AppSidebar, AppSidebarTab } from '@nextcloud/vue'
@@ -85,7 +76,6 @@ export default {
TagsTabSidebar,
DeletedTabSidebar,
TimelineTabSidebar,
ArchivedTabSidebar,
},
props: {
id: {

View File

@@ -33,7 +33,7 @@
<ActionButton v-if="showArchived === false" icon="icon-delete" @click="deleteCard()">
{{ t('deck', 'Delete card') }}
</ActionButton>
<ActionButton v-if="showArchived === false" icon="icon-external" @click.stop="modalShow=true">
<ActionButton icon="icon-external" @click.stop="modalShow=true">
{{ t('deck', 'Move card') }}
</ActionButton>
<ActionButton icon="icon-settings-dark" @click="openCard">

View File

@@ -236,6 +236,18 @@ export default {
text: t('deck', 'Board details'),
})
if (this.board.shared) {
actions.push({
action: () => {
this.hideMenu()
this.loading = true
this.$store.dispatch('unshareBoard', this.board)
},
icon: 'icon-delete',
text: t('deck', 'Unshare board'),
})
}
}
return actions

View File

@@ -90,9 +90,6 @@ export default {
cardById: state => (id) => {
return state.cards.find((card) => card.id === id)
},
archivedCards: state => {
return state.cards.filter(card => card.archived === true)
},
},
mutations: {
clearCards(state) {

View File

@@ -417,5 +417,11 @@ export default new Vuex.Store({
dispatch('loadBoardById', acl.boardId)
})
},
unshareBoard({ commit }, board) {
apiClient.unshareBoard(board)
.then((board) => {
commit('removeBoard', board)
})
},
},
})