@@ -48,7 +48,8 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="board-action-buttons">
|
<div class="board-action-buttons">
|
||||||
<button title="Show archived cards" class="icon icon-archive" @click="toggleShowArchived" />
|
<button :style="archivStyle" title="Show archived cards" class="icon icon-archive"
|
||||||
|
@click="toggleShowArchived" />
|
||||||
<button :class="[(compactMode ? 'icon-toggle-compact-collapsed' : 'icon-toggle-compact-expanded')]" title="Toggle compact mode" class="icon"
|
<button :class="[(compactMode ? 'icon-toggle-compact-collapsed' : 'icon-toggle-compact-expanded')]" title="Toggle compact mode" class="icon"
|
||||||
@click="toggleCompactMode" />
|
@click="toggleCompactMode" />
|
||||||
<router-link v-tooltip="t('deck', 'Board settings')" :to="{name: 'board.details'}" class="icon-settings-dark"
|
<router-link v-tooltip="t('deck', 'Board settings')" :to="{name: 'board.details'}" class="icon-settings-dark"
|
||||||
@@ -73,13 +74,21 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
newStackTitle: '',
|
newStackTitle: '',
|
||||||
stack: ''
|
stack: '',
|
||||||
|
showArchived: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState({
|
...mapState({
|
||||||
compactMode: state => state.compactMode
|
compactMode: state => state.compactMode
|
||||||
})
|
}),
|
||||||
|
archivStyle() {
|
||||||
|
|
||||||
|
if (this.showArchived === true) {
|
||||||
|
return 'opacity: 1.0'
|
||||||
|
}
|
||||||
|
return 'opacity: 0.3'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toggleNav() {
|
toggleNav() {
|
||||||
@@ -93,6 +102,7 @@ export default {
|
|||||||
},
|
},
|
||||||
toggleShowArchived() {
|
toggleShowArchived() {
|
||||||
this.$store.dispatch('toggleShowArchived')
|
this.$store.dispatch('toggleShowArchived')
|
||||||
|
this.showArchived = !this.showArchived
|
||||||
},
|
},
|
||||||
clickAddNewStack() {
|
clickAddNewStack() {
|
||||||
this.stack = { title: this.newStackTitle }
|
this.stack = { title: this.newStackTitle }
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
order: {{ stack.order }}
|
|
||||||
<h3 v-if="!editing" @click="startEditing(stack)">{{ stack.title }}
|
<h3 v-if="!editing" @click="startEditing(stack)">{{ stack.title }}
|
||||||
<button v-tooltip="t('deck', 'Delete')" class="icon-delete"
|
<button v-tooltip="t('deck', 'Delete')" class="icon-delete"
|
||||||
@click="deleteStack(stack)" />
|
@click="deleteStack(stack)" />
|
||||||
|
|||||||
@@ -38,8 +38,6 @@
|
|||||||
</multiselect>
|
</multiselect>
|
||||||
|
|
||||||
<p>Assign to user</p>
|
<p>Assign to user</p>
|
||||||
assignd:
|
|
||||||
{{ copiedCard.assignedUsers }}
|
|
||||||
<multiselect v-model="assignedUsers" :multiple="true" :options="assignableUsers"
|
<multiselect v-model="assignedUsers" :multiple="true" :options="assignableUsers"
|
||||||
label="displayname"
|
label="displayname"
|
||||||
track-by="primaryKey"
|
track-by="primaryKey"
|
||||||
@@ -67,6 +65,9 @@
|
|||||||
</AppSidebarTab>
|
</AppSidebarTab>
|
||||||
<AppSidebarTab name="Attachments" icon="icon-files-dark">
|
<AppSidebarTab name="Attachments" icon="icon-files-dark">
|
||||||
{{ currentCard.attachments }}
|
{{ currentCard.attachments }}
|
||||||
|
<button class="icon-upload" @click="clickAddNewAttachmment()">
|
||||||
|
{{ t('deck', 'Upload attachment') }}
|
||||||
|
</button>
|
||||||
</AppSidebarTab>
|
</AppSidebarTab>
|
||||||
<AppSidebarTab name="Timeline" icon="icon-activity">
|
<AppSidebarTab name="Timeline" icon="icon-activity">
|
||||||
this is the activity tab
|
this is the activity tab
|
||||||
@@ -190,7 +191,11 @@ export default {
|
|||||||
labelId: removedLabel.id
|
labelId: removedLabel.id
|
||||||
}
|
}
|
||||||
this.$store.dispatch('removeLabel', data)
|
this.$store.dispatch('removeLabel', data)
|
||||||
|
},
|
||||||
|
clickAddNewAttachmment() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<span>0/0</span>
|
<span>0/0</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="card.assignedUsers" class="card-assigned-users">
|
<div v-if="card.assignedUsers" class="card-assigned-users">
|
||||||
<avatar v-for="user in card.assignedUsers" :key="user.id" user="user.participant.primaryKey" />
|
<avatar v-for="user in card.assignedUsers" :key="user.id" :user="user.participant.primaryKey" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -30,7 +30,14 @@
|
|||||||
<input v-model="copiedCard.title" type="text" autofocus>
|
<input v-model="copiedCard.title" type="text" autofocus>
|
||||||
<input type="button" class="icon-confirm" @click="finishedEdit(card)">
|
<input type="button" class="icon-confirm" @click="finishedEdit(card)">
|
||||||
</form>
|
</form>
|
||||||
<action v-if="!editing" :actions="visibilityPopover" @click.stop="" />
|
|
||||||
|
<Actions>
|
||||||
|
<ActionButton icon="icon-archive-dark" @click="assignCardToMe()">{{ t('deck', 'Assign to me') }}</ActionButton>
|
||||||
|
<ActionButton icon="icon-archive" @click="archiveUnarchiveCard()">{{ t('deck', (showArchived ? 'Unarchive card' : 'Archive card')) }}</ActionButton>
|
||||||
|
<ActionButton icon="icon-delete" @click="deleteCard()">{{ t('deck', 'Delete card') }}</ActionButton>
|
||||||
|
<ActionButton icon="icon-settings-dark" @click="setCurrentCard()">{{ t('deck', 'Card details') }}</ActionButton>
|
||||||
|
</Actions>
|
||||||
|
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
<ul class="labels">
|
<ul class="labels">
|
||||||
@@ -43,7 +50,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { PopoverMenu, Action } from 'nextcloud-vue'
|
import { PopoverMenu } from 'nextcloud-vue'
|
||||||
|
import { Actions } from 'nextcloud-vue/dist/Components/Actions'
|
||||||
|
import { ActionButton } from 'nextcloud-vue/dist/Components/ActionButton'
|
||||||
import ClickOutside from 'vue-click-outside'
|
import ClickOutside from 'vue-click-outside'
|
||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
@@ -53,7 +62,7 @@ import Color from '../../mixins/color'
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CardItem',
|
name: 'CardItem',
|
||||||
components: { PopoverMenu, CardBadges, LabelTag, Action },
|
components: { PopoverMenu, CardBadges, LabelTag, Actions, ActionButton },
|
||||||
directives: {
|
directives: {
|
||||||
ClickOutside
|
ClickOutside
|
||||||
},
|
},
|
||||||
@@ -89,38 +98,6 @@ export default {
|
|||||||
color: this.textColor(label.color)
|
color: this.textColor(label.color)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
visibilityPopover() {
|
|
||||||
return [
|
|
||||||
{
|
|
||||||
action: () => {
|
|
||||||
this.assignCardToMe()
|
|
||||||
},
|
|
||||||
icon: 'icon-archive-dark',
|
|
||||||
text: t('deck', 'Assign to me')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
action: () => {
|
|
||||||
this.archiveUnarchiveCard()
|
|
||||||
},
|
|
||||||
icon: 'icon-archive',
|
|
||||||
text: t('deck', (this.showArchived ? 'Unarchive card' : 'Archive card'))
|
|
||||||
},
|
|
||||||
{
|
|
||||||
action: () => {
|
|
||||||
this.deleteCard()
|
|
||||||
},
|
|
||||||
icon: 'icon-delete',
|
|
||||||
text: t('deck', 'Delete card')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
action: () => {
|
|
||||||
this.setCurrentCard()
|
|
||||||
},
|
|
||||||
icon: 'icon-settings-dark',
|
|
||||||
text: t('deck', 'Card details')
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -102,7 +102,8 @@ export default {
|
|||||||
]),
|
]),
|
||||||
isAdmin() {
|
isAdmin() {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
return oc_isadmin
|
//return oc_isadmin
|
||||||
|
return OC.isUserAdmin()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ export default {
|
|||||||
this.editing = true
|
this.editing = true
|
||||||
},
|
},
|
||||||
createBoard(e) {
|
createBoard(e) {
|
||||||
console.log(this.color)
|
|
||||||
const title = e.currentTarget.childNodes[0].value
|
const title = e.currentTarget.childNodes[0].value
|
||||||
this.$store.dispatch('createBoard', {
|
this.$store.dispatch('createBoard', {
|
||||||
title: title,
|
title: title,
|
||||||
|
|||||||
@@ -27,6 +27,18 @@
|
|||||||
<a href="#">
|
<a href="#">
|
||||||
{{ board.title }}
|
{{ board.title }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<span v-if="actions.length > 0">
|
||||||
|
|
||||||
|
<template v-if="board.acl.length === 0">
|
||||||
|
<button class="icon-shared" style="opacity: 0.3" @click="showSidebar" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template v-else>
|
||||||
|
<button class="icon-shared" @click="showSidebar" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</span>
|
||||||
<div v-if="actions.length > 0" class="app-navigation-entry-utils">
|
<div v-if="actions.length > 0" class="app-navigation-entry-utils">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="app-navigation-entry-utils-menu-button">
|
<li class="app-navigation-entry-utils-menu-button">
|
||||||
@@ -212,6 +224,11 @@ export default {
|
|||||||
},
|
},
|
||||||
cancelEdit(e) {
|
cancelEdit(e) {
|
||||||
this.editing = false
|
this.editing = false
|
||||||
|
},
|
||||||
|
showSidebar() {
|
||||||
|
const route = this.routeTo
|
||||||
|
route.name = 'board.details'
|
||||||
|
this.$router.push(route)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
inject: [
|
inject: [
|
||||||
|
|||||||
Reference in New Issue
Block a user