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'], ['name' => 'comments_api#delete', 'url' => '/api/v1.0/cards/{cardId}/comments/{commentId}', 'verb' => 'DELETE'],
// dashboard // 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'], ['name' => 'dashboard_api#findAssignedCards', 'url' => '/api/v1.0/dashboard/assigned', 'verb' => 'GET'],
] ]
]; ];

View File

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

View File

@@ -55,7 +55,7 @@
</transition> </transition>
</div> </div>
<CardMenu v-if="!editing && compactMode" :id="id" class="right" /> <CardMenu v-if="!editing && compactMode" :card="card" class="right" />
</div> </div>
<transition-group v-if="card.labels.length" <transition-group v-if="card.labels.length"
name="zoom" name="zoom"

View File

@@ -21,7 +21,7 @@
--> -->
<template> <template>
<div> <div v-if="card">
<div @click.stop.prevent> <div @click.stop.prevent>
<Actions v-if="canEdit && !isArchived"> <Actions v-if="canEdit && !isArchived">
<ActionButton v-if="showArchived === false && !isCurrentUserAssigned" icon="icon-user" @click="assignCardToMe()"> <ActionButton v-if="showArchived === false && !isCurrentUserAssigned" icon="icon-user" @click="assignCardToMe()">
@@ -80,9 +80,13 @@ export default {
name: 'CardMenu', name: 'CardMenu',
components: { Actions, ActionButton, Modal, Multiselect }, components: { Actions, ActionButton, Modal, Multiselect },
props: { props: {
id: { /* id: {
type: Number, type: Number,
default: null, default: null,
}, */
card: {
type: Object,
default: null,
}, },
}, },
data() { data() {
@@ -103,9 +107,9 @@ export default {
currentBoard: state => state.currentBoard, currentBoard: state => state.currentBoard,
}), }),
card() { /* card() {
return this.$store.getters.cardById(this.id) return this.$store.getters.cardById(this.id)
}, }, */
isBoardAndStackChoosen() { isBoardAndStackChoosen() {
if (this.selectedBoard === '' || this.selectedStack === '') { if (this.selectedBoard === '' || this.selectedStack === '') {
return false return false

View File

@@ -48,6 +48,13 @@
<div class="dashboard-column"> <div class="dashboard-column">
<h2>this week</h2> <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"> <div v-for="card in withDueDashboardGroup.thisWeek" :key="card.id">
<CardItem :item="card" /> <CardItem :item="card" />
</div> </div>
@@ -55,6 +62,13 @@
</div> </div>
<div v-if="filter=='assigned'" class="dashboard"> <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"> <div class="dashboard-column">
<h2>overdue</h2> <h2>overdue</h2>
<div v-for="card in assignedCardsDashboardGroup.overdue" :key="card.id"> <div v-for="card in assignedCardsDashboardGroup.overdue" :key="card.id">
@@ -82,6 +96,13 @@
<CardItem :item="card" /> <CardItem :item="card" />
</div> </div>
</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>
</div> </div>
</template> </template>
@@ -123,24 +144,34 @@ export default {
methods: { methods: {
groupByDue(dataset) { groupByDue(dataset) {
const all = { const all = {
nodue: [],
overdue: [], overdue: [],
today: [], today: [],
tomorrow: [], tomorrow: [],
thisWeek: [], thisWeek: [],
later: [],
} }
dataset.forEach(card => { dataset.forEach(card => {
const days = Math.floor(moment(card.duedate).diff(this.$root.time, 'seconds') / 60 / 60 / 24)
if (days < 0) { if (card.duedate === null) {
all.overdue.push(card) all.nodue.push(card)
} } else {
if (days === 0) { const days = Math.floor(moment(card.duedate).diff(this.$root.time, 'seconds') / 60 / 60 / 24)
all.thisWeek.push(card) if (days < 0) {
} all.overdue.push(card)
if (days === 1) { }
all.tomorrow.push(card) if (days === 0) {
} all.today.push(card)
if (days === 2) { }
all.today.push(card) if (days === 1) {
all.tomorrow.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 axios from '@nextcloud/axios'
import { generateOcsUrl, generateRemoteUrl } from '@nextcloud/router' import { generateOcsUrl } from '@nextcloud/router'
export class DashboardApi { export class DashboardApi {
@@ -30,11 +30,11 @@ export class DashboardApi {
} }
findAllWithDue(data) { findAllWithDue(data) {
return axios.get(this.url(`dashboard/dashboard/due`), { return axios.get(this.url(`dashboard/due`), {
headers: { 'OCS-APIRequest': 'true' }, headers: { 'OCS-APIRequest': 'true' },
}) })
.then( .then(
(response) => Promise.resolve(response.data), (response) => Promise.resolve(response.data.ocs.data),
(err) => Promise.reject(err) (err) => Promise.reject(err)
) )
.catch((err) => Promise.reject(err) .catch((err) => Promise.reject(err)
@@ -46,7 +46,7 @@ export class DashboardApi {
headers: { 'OCS-APIRequest': 'true' }, headers: { 'OCS-APIRequest': 'true' },
}) })
.then( .then(
(response) => Promise.resolve(response.data), (response) => Promise.resolve(response.data.ocs.data),
(err) => Promise.reject(err) (err) => Promise.reject(err)
) )
.catch((err) => Promise.reject(err) .catch((err) => Promise.reject(err)