fix: standardize CSV export filename format to use project name

Unified export filename format across both ExportCSV and ExportConfigCSV:
- Format: YYYY-MM-DD (project_name) config_name BOM.csv
- Use PriceUpdatedAt if available, otherwise CreatedAt
- Extract project name from ProjectUUID for ExportCSV via projectService
- Pass project_uuid from frontend to backend in export request
- Add projectUUID and projectName state variables to track project context

This ensures consistent naming whether exporting from form or project view,
and uses most recent price update timestamp in filename.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-02-09 17:22:51 +03:00
parent 8fd27d11a7
commit 8f596cec68
4 changed files with 45 additions and 10 deletions

View File

@@ -326,6 +326,8 @@ let ASSIGNED_CATEGORIES = Object.values(TAB_CONFIG)
// State
let configUUID = '{{.ConfigUUID}}';
let configName = '';
let projectUUID = '';
let projectName = '';
let currentTab = 'base';
let allComponents = [];
let cart = [];
@@ -609,6 +611,7 @@ document.addEventListener('DOMContentLoaded', async function() {
const config = await resp.json();
configName = config.name;
projectUUID = config.project_uuid || '';
document.getElementById('config-name').textContent = config.name;
document.getElementById('save-buttons').classList.remove('hidden');
@@ -1795,7 +1798,7 @@ async function exportCSV() {
const resp = await fetch('/api/export/csv', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({items: exportItems, name: configName})
body: JSON.stringify({items: exportItems, name: configName, project_uuid: projectUUID})
});
const blob = await resp.blob();
@@ -2048,7 +2051,7 @@ async function exportCSVWithCustomPrice() {
const resp = await fetch('/api/export/csv', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({items: adjustedCart, name: configName})
body: JSON.stringify({items: adjustedCart, name: configName, project_uuid: projectUUID})
});
const blob = await resp.blob();