Skip to content

Shared report shows blank names when the report is grouped by day, week, month or year #1200

Description

@1yakub

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

  1. 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.
  2. Open the shared link in a private window.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions