ocs route

Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
This commit is contained in:
Jakob Röhrl
2020-07-13 10:57:24 +02:00
committed by Julius Härtl
parent 014d7aa8ff
commit 818ffa2d57
6 changed files with 58 additions and 23 deletions

View File

@@ -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'],
]
];

View File

@@ -34,7 +34,7 @@
<AvatarList :users="card.assignedUsers" />
<CardMenu :id="card.id" />
<CardMenu :card="card" />
</div>
</template>
<script>

View File

@@ -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"

View File

@@ -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

View File

@@ -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)
}
}
})

View File

@@ -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)