Prefer using last week/last month

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

View File

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