From 93aa85521ae105476cf3122950813593d9105333 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 4 Jun 2019 10:28:19 +0200 Subject: [PATCH] Prefer using last week/last month --- .../app/shared/video/abstract-video-list.ts | 22 +++++++++---------- shared/core-utils/miscs/date.ts | 20 ++++++++++++++++- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/client/src/app/shared/video/abstract-video-list.ts b/client/src/app/shared/video/abstract-video-list.ts index 8cf21e9d4..dc8f9cda9 100644 --- a/client/src/app/shared/video/abstract-video-list.ts +++ b/client/src/app/shared/video/abstract-video-list.ts @@ -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 } diff --git a/shared/core-utils/miscs/date.ts b/shared/core-utils/miscs/date.ts index 7f0b4443b..4f92f758f 100644 --- a/shared/core-utils/miscs/date.ts +++ b/shared/core-utils/miscs/date.ts @@ -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) +}