FIX: makes dashboard periods use current day and weekly 7 days (#10817)

Prior to this fix, weekly could be 8 days and we could have differences between period chooser text and actual results in the chart.

A good followup to this PR would be to add custom date ranges in period-chooser component.
This commit is contained in:
Joffrey JAFFEUX 2020-10-05 10:32:12 +02:00 committed by GitHub
parent 4b5358bb42
commit 702f7a5a67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 10 deletions

View File

@ -14,7 +14,7 @@ export default Mixin.create({
@discourseComputed("period") @discourseComputed("period")
startDate(period) { startDate(period) {
let fullDay = moment().locale("en").utc().subtract(1, "day"); let fullDay = moment().locale("en").utc().endOf("day");
switch (period) { switch (period) {
case "yearly": case "yearly":
@ -24,7 +24,7 @@ export default Mixin.create({
return fullDay.subtract(3, "month").startOf("day"); return fullDay.subtract(3, "month").startOf("day");
break; break;
case "weekly": case "weekly":
return fullDay.subtract(1, "week").startOf("day"); return fullDay.subtract(6, "days").startOf("day");
break; break;
case "monthly": case "monthly":
return fullDay.subtract(1, "month").startOf("day"); return fullDay.subtract(1, "month").startOf("day");
@ -46,7 +46,7 @@ export default Mixin.create({
@discourseComputed() @discourseComputed()
endDate() { endDate() {
return moment().locale("en").utc().subtract(1, "day").endOf("day"); return moment().locale("en").utc().endOf("day");
}, },
@discourseComputed() @discourseComputed()

View File

@ -10,7 +10,11 @@
{{i18n "admin.dashboard.community_health"}} {{i18n "admin.dashboard.community_health"}}
</a> </a>
</h2> </h2>
{{period-chooser period=period action=(action "changePeriod") content=availablePeriods fullDay=true}} {{period-chooser
period=period
action=(action "changePeriod")
content=availablePeriods
fullDay=false}}
</div> </div>
<div class="section-body"> <div class="section-body">

View File

@ -13,7 +13,7 @@
period=period period=period
action=(action "changePeriod") action=(action "changePeriod")
content=availablePeriods content=availablePeriods
fullDay=true}} fullDay=false}}
</div> </div>
<div class="section-body"> <div class="section-body">

View File

@ -12,7 +12,7 @@ const TITLE_SUBS = {
export default htmlHelper((period, options) => { export default htmlHelper((period, options) => {
const title = I18n.t("filters.top." + (TITLE_SUBS[period] || "this_week")); const title = I18n.t("filters.top." + (TITLE_SUBS[period] || "this_week"));
if (options.hash.showDateRange) { if (options.hash.showDateRange) {
var dateString = ""; let dateString = "";
let finish; let finish;
if (options.hash.fullDay) { if (options.hash.fullDay) {
@ -41,11 +41,15 @@ export default htmlHelper((period, options) => {
finish.format(I18n.t("dates.long_no_year_no_time")); finish.format(I18n.t("dates.long_no_year_no_time"));
break; break;
case "weekly": case "weekly":
let start;
if (options.hash.fullDay) {
start = finish.clone().subtract(1, "week");
} else {
start = finish.clone().subtract(6, "days");
}
dateString = dateString =
finish start.format(I18n.t("dates.long_no_year_no_time")) +
.clone()
.subtract(1, "week")
.format(I18n.t("dates.long_no_year_no_time")) +
" - " + " - " +
finish.format(I18n.t("dates.long_no_year_no_time")); finish.format(I18n.t("dates.long_no_year_no_time"));
break; break;