committed by
Julius Härtl
parent
014d7aa8ff
commit
818ffa2d57
@@ -136,7 +136,7 @@ return [
|
||||
['name' => 'comments_api#delete', 'url' => '/api/v1.0/cards/{cardId}/comments/{commentId}', 'verb' => 'DELETE'],
|
||||
|
||||
// dashboard
|
||||
['name' => 'dashboard_api#findAllWithDue', 'url' => '/api/v1.0/dashboard/dashboard/due', 'verb' => 'GET'],
|
||||
['name' => 'dashboard_api#findAllWithDue', 'url' => '/api/v1.0/dashboard/due', 'verb' => 'GET'],
|
||||
['name' => 'dashboard_api#findAssignedCards', 'url' => '/api/v1.0/dashboard/assigned', 'verb' => 'GET'],
|
||||
]
|
||||
];
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
<AvatarList :users="card.assignedUsers" />
|
||||
|
||||
<CardMenu :id="card.id" />
|
||||
<CardMenu :card="card" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
</transition>
|
||||
</div>
|
||||
|
||||
<CardMenu v-if="!editing && compactMode" :id="id" class="right" />
|
||||
<CardMenu v-if="!editing && compactMode" :card="card" class="right" />
|
||||
</div>
|
||||
<transition-group v-if="card.labels.length"
|
||||
name="zoom"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="card">
|
||||
<div @click.stop.prevent>
|
||||
<Actions v-if="canEdit && !isArchived">
|
||||
<ActionButton v-if="showArchived === false && !isCurrentUserAssigned" icon="icon-user" @click="assignCardToMe()">
|
||||
@@ -80,9 +80,13 @@ export default {
|
||||
name: 'CardMenu',
|
||||
components: { Actions, ActionButton, Modal, Multiselect },
|
||||
props: {
|
||||
id: {
|
||||
/* id: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}, */
|
||||
card: {
|
||||
type: Object,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
@@ -103,9 +107,9 @@ export default {
|
||||
currentBoard: state => state.currentBoard,
|
||||
}),
|
||||
|
||||
card() {
|
||||
/* card() {
|
||||
return this.$store.getters.cardById(this.id)
|
||||
},
|
||||
}, */
|
||||
isBoardAndStackChoosen() {
|
||||
if (this.selectedBoard === '' || this.selectedStack === '') {
|
||||
return false
|
||||
|
||||
@@ -48,6 +48,13 @@
|
||||
|
||||
<div class="dashboard-column">
|
||||
<h2>this week</h2>
|
||||
<div v-for="card in withDueDashboardGroup.later" :key="card.id">
|
||||
<CardItem :item="card" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dashboard-column">
|
||||
<h2>later</h2>
|
||||
<div v-for="card in withDueDashboardGroup.thisWeek" :key="card.id">
|
||||
<CardItem :item="card" />
|
||||
</div>
|
||||
@@ -55,6 +62,13 @@
|
||||
</div>
|
||||
|
||||
<div v-if="filter=='assigned'" class="dashboard">
|
||||
<div class="dashboard-column">
|
||||
<h2>no due</h2>
|
||||
<div v-for="card in withDueDashboardGroup.noDue" :key="card.id">
|
||||
<CardItem :item="card" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dashboard-column">
|
||||
<h2>overdue</h2>
|
||||
<div v-for="card in assignedCardsDashboardGroup.overdue" :key="card.id">
|
||||
@@ -82,6 +96,13 @@
|
||||
<CardItem :item="card" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dashboard-column">
|
||||
<h2>this week</h2>
|
||||
<div v-for="card in withDueDashboardGroup.later" :key="card.id">
|
||||
<CardItem :item="card" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -123,24 +144,34 @@ export default {
|
||||
methods: {
|
||||
groupByDue(dataset) {
|
||||
const all = {
|
||||
nodue: [],
|
||||
overdue: [],
|
||||
today: [],
|
||||
tomorrow: [],
|
||||
thisWeek: [],
|
||||
later: [],
|
||||
}
|
||||
dataset.forEach(card => {
|
||||
|
||||
if (card.duedate === null) {
|
||||
all.nodue.push(card)
|
||||
} else {
|
||||
const days = Math.floor(moment(card.duedate).diff(this.$root.time, 'seconds') / 60 / 60 / 24)
|
||||
if (days < 0) {
|
||||
all.overdue.push(card)
|
||||
}
|
||||
if (days === 0) {
|
||||
all.thisWeek.push(card)
|
||||
all.today.push(card)
|
||||
}
|
||||
if (days === 1) {
|
||||
all.tomorrow.push(card)
|
||||
}
|
||||
if (days === 2) {
|
||||
all.today.push(card)
|
||||
if (days > 1 && days < 8) {
|
||||
all.thisWeek.push(card)
|
||||
}
|
||||
if (days > 8) {
|
||||
all.later.push(card)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
|
||||
import axios from '@nextcloud/axios'
|
||||
import { generateOcsUrl, generateRemoteUrl } from '@nextcloud/router'
|
||||
import { generateOcsUrl } from '@nextcloud/router'
|
||||
|
||||
export class DashboardApi {
|
||||
|
||||
@@ -30,11 +30,11 @@ export class DashboardApi {
|
||||
}
|
||||
|
||||
findAllWithDue(data) {
|
||||
return axios.get(this.url(`dashboard/dashboard/due`), {
|
||||
return axios.get(this.url(`dashboard/due`), {
|
||||
headers: { 'OCS-APIRequest': 'true' },
|
||||
})
|
||||
.then(
|
||||
(response) => Promise.resolve(response.data),
|
||||
(response) => Promise.resolve(response.data.ocs.data),
|
||||
(err) => Promise.reject(err)
|
||||
)
|
||||
.catch((err) => Promise.reject(err)
|
||||
@@ -46,7 +46,7 @@ export class DashboardApi {
|
||||
headers: { 'OCS-APIRequest': 'true' },
|
||||
})
|
||||
.then(
|
||||
(response) => Promise.resolve(response.data),
|
||||
(response) => Promise.resolve(response.data.ocs.data),
|
||||
(err) => Promise.reject(err)
|
||||
)
|
||||
.catch((err) => Promise.reject(err)
|
||||
|
||||
Reference in New Issue
Block a user