Description
When a saved report is grouped by a date interval (day, week, month or year) and shared publicly, the public report page renders without labels. The table rows have no name, the pie chart segments have no name, and the "Group by" heading is blank. Only the chart at the top shows proper week or date labels.
I hit this on my self hosted instance in early July and checked the current main source today before reporting, the code path is unchanged. What I found while reading:
loadDescriptorsMap in app/Service/TimeEntryAggregationService.php resolves descriptions for client, user, project, task, description, billable, type and tag, but has no branch for the date interval types, so description stays null for every date group.
resources/js/Pages/SharedReport.vue builds the table with entry.description ?? emptyPlaceholder[grouped_type], and emptyPlaceholder has no entries for day, week, month or year, so the name ends up an empty string. The pie chart names go through the same fallback. The "Group by" heading uses getGroupLabel, which looks the value up in groupByOptions, which also has no date entries.
- The top chart is the one part that works, because
ReportingChart.vue formats el.key directly with formatWeek and formatDate. That is why the bars are labeled while everything below them is blank.
Reports grouped by date intervals are valid objects, properties.group and properties.sub_group accept every TimeEntryAggregationType value in ReportStoreRequest, so this is reachable through the API even though the reporting UI only offers the entity groupings.
Steps To Reproduce
- Create a report with
properties.group set to week (for example via POST /api/v1/organizations/{organization}/reports, the validation accepts it) and make it public.
- Open the shared link in a private window.
- The chart axis shows the weeks, but the table rows, the pie chart and the "Group by" heading render without any label.
Self-hosted or Cloud?
Self-Hosted
Version of solidtime: (for self-hosted)
Found on an early July build, confirmed against main (v0.19.1 era) by source review today.
I would be happy to send a small PR for this. My preferred fix is on the shared report page, resolving date group names from entry.key with the same formatWeek and formatDate helpers the chart already uses, respecting the date_format the report payload already carries. Filling description in loadDescriptorsMap on the backend would work too. Whichever direction you prefer.
Description
When a saved report is grouped by a date interval (day, week, month or year) and shared publicly, the public report page renders without labels. The table rows have no name, the pie chart segments have no name, and the "Group by" heading is blank. Only the chart at the top shows proper week or date labels.
I hit this on my self hosted instance in early July and checked the current
mainsource today before reporting, the code path is unchanged. What I found while reading:loadDescriptorsMapinapp/Service/TimeEntryAggregationService.phpresolves descriptions for client, user, project, task, description, billable, type and tag, but has no branch for the date interval types, sodescriptionstaysnullfor every date group.resources/js/Pages/SharedReport.vuebuilds the table withentry.description ?? emptyPlaceholder[grouped_type], andemptyPlaceholderhas no entries for day, week, month or year, so the name ends up an empty string. The pie chart names go through the same fallback. The "Group by" heading usesgetGroupLabel, which looks the value up ingroupByOptions, which also has no date entries.ReportingChart.vueformatsel.keydirectly withformatWeekandformatDate. That is why the bars are labeled while everything below them is blank.Reports grouped by date intervals are valid objects,
properties.groupandproperties.sub_groupaccept everyTimeEntryAggregationTypevalue inReportStoreRequest, so this is reachable through the API even though the reporting UI only offers the entity groupings.Steps To Reproduce
properties.groupset toweek(for example viaPOST /api/v1/organizations/{organization}/reports, the validation accepts it) and make it public.Self-hosted or Cloud?
Self-Hosted
Version of solidtime: (for self-hosted)
Found on an early July build, confirmed against main (v0.19.1 era) by source review today.
I would be happy to send a small PR for this. My preferred fix is on the shared report page, resolving date group names from
entry.keywith the sameformatWeekandformatDatehelpers the chart already uses, respecting thedate_formatthe report payload already carries. FillingdescriptioninloadDescriptorsMapon the backend would work too. Whichever direction you prefer.