Skip to content

[BUG] Grid export: rounded progress, hide notification on download, grid name in messages and file name - #4063

Open
Jonathon-Meney-Torq wants to merge 6 commits into
pimcore:2026.2from
TorqIT:fix/grid-export-progress-toast
Open

[BUG] Grid export: rounded progress, hide notification on download, grid name in messages and file name#4063
Jonathon-Meney-Torq wants to merge 6 commits into
pimcore:2026.2from
TorqIT:fix/grid-export-progress-toast

Conversation

@Jonathon-Meney-Torq

Copy link
Copy Markdown

What

Improvements to the grid CSV/XLSX export experience:

  • Progress rounding: the combined sub-step progress calculation in ProgressFieldCalculator could produce values like 15.666666666666668% in the job notification. Progress is now rounded to two decimal places.
  • Notification hidden after download: clicking the download button on a finished export job now hides the notification once the download starts (it stays visible if the download is no longer available, so the warning and retry remain possible). Exposed via a new hideNotification callback on JobButtonCustomizationContext.
  • Grid-specific messages: the CSV/XLSX export modals now pass a job title containing the exported grid's name (class definition name for data object grids, element type otherwise), so the in-progress and finished notifications read e.g. "Product grid CSV export in progress" instead of a generic "CSV export in progress". The generic title remains as a fallback for job rehydration after a page reload.
  • Download file name: the modals send a fileName (grid name + timestamp, e.g. Product_2026-09-01_14-32-10.csv) in the export config, which the backend uses for the download's Content-Disposition (see the companion studio-backend-bundle PR).

Why

Long unrounded percentages look broken, finished export notifications lingered after the file was downloaded, and generic titles/file names made it hard to tell which grid an export came from when running several exports.

Closes pimcore/platform-version#437

Copilot AI balanced review requested due to automatic review settings September 1, 2026 17:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves grid CSV/XLSX exports with clearer progress, notifications, titles, and filenames.

Changes:

  • Rounds job progress to two decimal places.
  • Hides completed notifications after successful downloads.
  • Adds grid-specific titles and timestamped filenames.

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
translations/studio.en.yaml Adds English export titles.
translations/studio.de.yaml Adds German-locale export keys.
translations/studio.es.yaml Adds Spanish-locale export keys.
translations/studio.fr.yaml Adds French-locale export keys.
translations/studio.it.yaml Adds Italian-locale export keys.
translations/studio.no.yaml Adds Norwegian-locale export keys.
translations/studio.sv.yaml Adds Swedish-locale export keys.
progress-field-calculator.ts Rounds determinate progress values.
message-bus-job-notification.tsx Exposes notification hiding callback.
abstract-download-job.ts Supports custom titles and post-download hiding.
csv-download-job.ts Forwards custom CSV job titles.
xlsx-download-job.ts Forwards custom XLSX job titles.
export-file-name.ts Builds timestamped export filenames.
csv-modal.tsx Supplies CSV titles and filenames.
xlsx-modal.tsx Supplies XLSX titles and filenames.
Suppressed comments (2)

assets/js/src/core/modules/element/listing/batch-actions/csv-modal/csv-modal.tsx:166

  • The generated ExportCsvApiArg contract still omits fileName, and this any cast bypasses request validation rather than updating that contract. Regenerate export-api-slice.gen.ts from the companion OpenAPI schema so fileName is typed and remove the cast.
          config: {
            delimiter,
            header,
            fileName
          } as any,

assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/xlsx-modal.tsx:162

  • The generated ExportXlsxApiArg contract still omits fileName, and this any cast bypasses request validation rather than updating that contract. Regenerate export-api-slice.gen.ts from the companion OpenAPI schema so fileName is typed and remove the cast.
          config: {
            header,
            fileName
          } as any,

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread assets/js/src/core/modules/element/listing/batch-actions/csv-modal/csv-modal.tsx Outdated
Comment thread translations/studio.de.yaml Outdated
Comment thread translations/studio.es.yaml Outdated
Comment thread translations/studio.fr.yaml Outdated
Comment thread translations/studio.it.yaml Outdated
Comment thread translations/studio.no.yaml Outdated
Comment thread translations/studio.sv.yaml Outdated
@sonarqubecloud

sonarqubecloud Bot commented Sep 1, 2026

Copy link
Copy Markdown

@ValeriaMaltseva
ValeriaMaltseva self-requested a review September 2, 2026 11:26
@ValeriaMaltseva ValeriaMaltseva self-assigned this Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants