Prefer using last week/last month

This commit is contained in:
Chocobozzz 2019-06-04 10:28:19 +02:00
parent 4e0c179365
commit 93aa85521a
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 30 additions and 12 deletions

View File

@ -12,14 +12,14 @@ import { Syndication } from '@app/shared/video/syndication.model'
import { Notifier, ServerService } from '@app/core'
import { DisableForReuseHook } from '@app/core/routing/disable-for-reuse-hook'
import { I18n } from '@ngx-translate/i18n-polyfill'
import { isThisMonth, isThisWeek, isToday, isYesterday } from '@shared/core-utils/miscs/date'
import { isLastMonth, isLastWeek, isToday, isYesterday } from '@shared/core-utils/miscs/date'
enum GroupDate {
UNKNOWN = 0,
TODAY = 1,
YESTERDAY = 2,
THIS_WEEK = 3,
THIS_MONTH = 4,
LAST_WEEK = 3,
LAST_MONTH = 4,
OLDER = 5
}
@ -84,8 +84,8 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy, DisableFor
[GroupDate.UNKNOWN]: null,
[GroupDate.TODAY]: this.i18n('Today'),
[GroupDate.YESTERDAY]: this.i18n('Yesterday'),
[GroupDate.THIS_WEEK]: this.i18n('This week'),
[GroupDate.THIS_MONTH]: this.i18n('This month'),
[GroupDate.LAST_WEEK]: this.i18n('Last week'),
[GroupDate.LAST_MONTH]: this.i18n('Last month'),
[GroupDate.OLDER]: this.i18n('Older')
}
@ -183,18 +183,18 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy, DisableFor
continue
}
if (currentGroupedDate <= GroupDate.THIS_WEEK && isThisWeek(publishedDate)) {
if (currentGroupedDate === GroupDate.THIS_WEEK) continue
if (currentGroupedDate <= GroupDate.LAST_WEEK && isLastWeek(publishedDate)) {
if (currentGroupedDate === GroupDate.LAST_WEEK) continue
currentGroupedDate = GroupDate.THIS_WEEK
currentGroupedDate = GroupDate.LAST_WEEK
this.groupedDates[ video.id ] = currentGroupedDate
continue
}
if (currentGroupedDate <= GroupDate.THIS_MONTH && isThisMonth(publishedDate)) {
if (currentGroupedDate === GroupDate.THIS_MONTH) continue
if (currentGroupedDate <= GroupDate.LAST_MONTH && isLastMonth(publishedDate)) {
if (currentGroupedDate === GroupDate.LAST_MONTH) continue
currentGroupedDate = GroupDate.THIS_MONTH
currentGroupedDate = GroupDate.LAST_MONTH
this.groupedDates[ video.id ] = currentGroupedDate
continue
}

View File

@ -31,13 +31,27 @@ function isThisMonth (d: Date) {
return d.getMonth() === thisMonth
}
function isLastMonth (d: Date) {
const now = new Date()
return getDaysDifferences(now, d) <= 30
}
function isLastWeek (d: Date) {
const now = new Date()
return getDaysDifferences(now, d) <= 7
}
// ---------------------------------------------------------------------------
export {
isYesterday,
isThisWeek,
isThisMonth,
isToday
isToday,
isLastMonth,
isLastWeek
}
// ---------------------------------------------------------------------------
@ -47,3 +61,7 @@ function areDatesEqual (d1: Date, d2: Date) {
d1.getMonth() === d2.getMonth() &&
d1.getDate() === d2.getDate()
}
function getDaysDifferences (d1: Date, d2: Date) {
return (d1.getTime() - d2.getTime()) / (86400000)
}