Prefer using last week/last month
This commit is contained in:
parent
4e0c179365
commit
93aa85521a
2 changed files with 30 additions and 12 deletions
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue