2424 <div >
2525 <Controls :dashboard-name =" filter" />
2626
27- <div v-if =" filter=='due'" class =" dashboard" >
28- <div class =" dashboard-column" >
29- <h2 >overdue</h2 >
30- <div v-for =" card in withDueDashboardGroup.overdue" :key =" card.id" >
31- <CardItem :item =" card" />
27+ <div v-if =" loading" key =" loading" class =" emptycontent" >
28+ <div class =" icon icon-loading" />
29+ <h2 >{{ t('deck', 'Loading Dashboard') }}</h2 >
30+ <p />
31+ </div >
32+
33+ <div v-else >
34+
35+ <div v-if =" filter=='due'" class =" dashboard" >
36+ <div class =" dashboard-column" >
37+ <h2 >{{ t('deck', 'overdue') }}</h2 >
38+ <div v-for =" card in dueOverdue" :key =" card.id" >
39+ <CardItem :item =" card" />
40+ </div >
3241 </div >
33- </div >
3442
35- <div class =" dashboard-column" >
36- <h2 >today</h2 >
37- <div v-for =" card in withDueDashboardGroup.today" :key =" card.id" >
38- <CardItem :item =" card" />
43+ <div class =" dashboard-column" >
44+ <h2 >{{ t('deck', 'today') }}</h2 >
45+ <div v-for =" card in withDueDashboardGroup.today" :key =" card.id" >
46+ <CardItem :item =" card" />
47+ </div >
3948 </div >
40- </div >
4149
42- <div class =" dashboard-column" >
43- <h2 >tomorrow</h2 >
44- <div v-for =" card in withDueDashboardGroup.tomorrow" :key =" card.id" >
45- <CardItem :item =" card" />
50+ <div class =" dashboard-column" >
51+ <h2 >{{ t('deck', 'tomorrow') }}</h2 >
52+ <div v-for =" card in withDueDashboardGroup.tomorrow" :key =" card.id" >
53+ <CardItem :item =" card" />
54+ </div >
4655 </div >
47- </div >
4856
49- <div class =" dashboard-column" >
50- <h2 >this week</h2 >
51- <div v-for =" card in withDueDashboardGroup.later" :key =" card.id" >
52- <CardItem :item =" card" />
57+ <div class =" dashboard-column" >
58+ <h2 >{{ t('deck', 'this week') }}</h2 >
59+ <div v-for =" card in withDueDashboardGroup.later" :key =" card.id" >
60+ <CardItem :item =" card" />
61+ </div >
5362 </div >
54- </div >
5563
56- <div class =" dashboard-column" >
57- <h2 >later</h2 >
58- <div v-for =" card in withDueDashboardGroup.thisWeek" :key =" card.id" >
59- <CardItem :item =" card" />
64+ <div class =" dashboard-column" >
65+ <h2 >{{ t('deck', 'later') }}</h2 >
66+ <div v-for =" card in withDueDashboardGroup.thisWeek" :key =" card.id" >
67+ <CardItem :item =" card" />
68+ </div >
6069 </div >
6170 </div >
62- </div >
6371
64- <div v-if =" filter=='assigned'" class =" dashboard" >
65- <div class =" dashboard-column" >
66- <h2 >no due</h2 >
67- <div v-for =" card in withDueDashboardGroup.noDue" :key =" card.id" >
68- <CardItem :item =" card" />
72+ <div v-if =" filter=='assigned'" class =" dashboard" >
73+ <div class =" dashboard-column" >
74+ <h2 >{{ t('deck', 'no due') }}</h2 >
75+ <div v-for =" card in assignedCardsDashboardGroup.nodue" :key =" card.id" >
76+ <CardItem :item =" card" />
77+ </div >
6978 </div >
70- </div >
7179
72- <div class =" dashboard-column" >
73- <h2 >overdue</h2 >
74- <div v-for =" card in assignedCardsDashboardGroup.overdue" :key =" card.id" >
75- <CardItem :item =" card" />
80+ <div class =" dashboard-column" >
81+ <h2 >{{ t('deck', 'overdue') }}</h2 >
82+ <div v-for =" card in assignedCardsDashboardGroup.overdue" :key =" card.id" >
83+ <CardItem :item =" card" />
84+ </div >
7685 </div >
77- </div >
7886
79- <div class =" dashboard-column" >
80- <h2 >today</h2 >
81- <div v-for =" card in assignedCardsDashboardGroup.today" :key =" card.id" >
82- <CardItem :item =" card" />
87+ <div class =" dashboard-column" >
88+ <h2 >{{ t('deck', 'today') }}</h2 >
89+ <div v-for =" card in assignedCardsDashboardGroup.today" :key =" card.id" >
90+ <CardItem :item =" card" />
91+ </div >
8392 </div >
84- </div >
8593
86- <div class =" dashboard-column" >
87- <h2 >tomorrow</h2 >
88- <div v-for =" card in assignedCardsDashboardGroup.tomorrow" :key =" card.id" >
89- <CardItem :item =" card" />
94+ <div class =" dashboard-column" >
95+ <h2 >{{ t('deck', 'tomorrow') }}</h2 >
96+ <div v-for =" card in assignedCardsDashboardGroup.tomorrow" :key =" card.id" >
97+ <CardItem :item =" card" />
98+ </div >
9099 </div >
91- </div >
92100
93- <div class =" dashboard-column" >
94- <h2 >this week</h2 >
95- <div v-for =" card in assignedCardsDashboardGroup.thisWeek" :key =" card.id" >
96- <CardItem :item =" card" />
101+ <div class =" dashboard-column" >
102+ <h2 >{{ t('deck', 'this week') }}</h2 >
103+ <div v-for =" card in assignedCardsDashboardGroup.thisWeek" :key =" card.id" >
104+ <CardItem :item =" card" />
105+ </div >
97106 </div >
98- </div >
99107
100- <div class =" dashboard-column" >
101- <h2 >this week</h2 >
102- <div v-for =" card in withDueDashboardGroup.later" :key =" card.id" >
103- <CardItem :item =" card" />
108+ <div class =" dashboard-column" >
109+ <h2 >{{ t('deck', 'later') }}</h2 >
110+ <div v-for =" card in withDueDashboardGroup.later" :key =" card.id" >
111+ <CardItem :item =" card" />
112+ </div >
104113 </div >
105114 </div >
106115 </div >
@@ -126,10 +135,16 @@ export default {
126135 default: ' ' ,
127136 },
128137 },
138+ data : function () {
139+ return {
140+ loading: true ,
141+ }
142+ },
129143 computed: {
130144 ... mapGetters ([
131145 ' withDueDashboard' ,
132146 ' assignedCardsDashboard' ,
147+ ' dueOverdue'
133148 ]),
134149 withDueDashboardGroup () {
135150 return this .groupByDue (this .withDueDashboard )
@@ -139,9 +154,31 @@ export default {
139154 },
140155 },
141156 created () {
142- this .$store .dispatch (' loadDashboards' )
157+ this .getData ()
158+ },
159+ watch: {
160+ " $route.params.filter" () {
161+ this .getData ()
162+ }
143163 },
144164 methods: {
165+ async getData () {
166+ this .loading = true
167+ try {
168+ if (this .filter === ' due' ) {
169+ await this .$store .dispatch (' loadDueDashboard' )
170+ }
171+
172+ if (this .filter === ' assigned' ) {
173+ await this .$store .dispatch (' loadAssignDashboard' )
174+ }
175+ } catch (e) {
176+ console .error (e)
177+ }
178+ this .loading = false
179+ },
180+
181+
145182 groupByDue (dataset ) {
146183 const all = {
147184 nodue: [],
@@ -156,20 +193,23 @@ export default {
156193 if (card .duedate === null ) {
157194 all .nodue .push (card)
158195 } else {
159- const days = Math .floor (moment (card .duedate ).diff (this .$root .time , ' seconds' ) / 60 / 60 / 24 )
160- if (days < 0 ) {
196+ const hours = Math .floor (moment (card .duedate ).diff (this .$root .time , ' seconds' ) / 60 / 60 )
197+ let d = new Date ()
198+ let currentHour = d .getHours ()
199+ console .log (card .title + ' ' + hours )
200+ if (hours < 0 ) {
161201 all .overdue .push (card)
162202 }
163- if (days === 0 ) {
203+ if (hours >= 0 && hours < ( 24 - currentHour) ) {
164204 all .today .push (card)
165205 }
166- if (days === 1 ) {
206+ if (hours >= ( 24 - currentHour) && hours < ( 48 - currentHour) ) {
167207 all .tomorrow .push (card)
168208 }
169- if (days > 1 && days < 8 ) {
209+ if (hours >= ( 48 - currentHour) && hours < ( 24 * 7 ) ) {
170210 all .thisWeek .push (card)
171211 }
172- if (days > 8 ) {
212+ if (hours >= ( 24 * 7 ) ) {
173213 all .later .push (card)
174214 }
175215 }
0 commit comments