feat: align Report Designer dialogs with theme and add devlog entry for theme alignment
This commit is contained in:
@@ -14,3 +14,5 @@ File riassuntivo dello stato di sviluppo di Zentral.
|
|||||||
- Refinement logica attivazione/acquisto moduli, gestione dipendenze e UI.
|
- Refinement logica attivazione/acquisto moduli, gestione dipendenze e UI.
|
||||||
- [2025-12-03 Move Reports Menu](./devlog/2025-12-03_move_reports_menu.md) - **Completato**
|
- [2025-12-03 Move Reports Menu](./devlog/2025-12-03_move_reports_menu.md) - **Completato**
|
||||||
- Spostamento voce menu Report sotto Amministrazione.
|
- Spostamento voce menu Report sotto Amministrazione.
|
||||||
|
- [2025-12-03 Report Designer Theme](./devlog/2025-12-03_report_designer_theme.md) - **Completato**
|
||||||
|
- Allineamento completo del Report Designer al tema scuro (Canvas, Toolbar, Dialogs).
|
||||||
|
|||||||
34
docs/development/devlog/2025-12-03_report_designer_theme.md
Normal file
34
docs/development/devlog/2025-12-03_report_designer_theme.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# Report Designer Theme Alignment
|
||||||
|
|
||||||
|
## Obiettivo
|
||||||
|
Allineare completamente il Report Designer al tema scuro dell'applicazione. L'obiettivo è eliminare incongruenze visive come sfondi bianchi hardcoded, griglie poco visibili e componenti non adattivi in modalità dark.
|
||||||
|
|
||||||
|
## Stato Attuale
|
||||||
|
**Completato**
|
||||||
|
|
||||||
|
## Modifiche Apportate
|
||||||
|
|
||||||
|
### 1. Editor Canvas (`EditorCanvas.tsx`)
|
||||||
|
- **Sfondo Canvas**: Implementata logica dinamica per utilizzare `#1e1e1e` (dark) o `#ffffff` (light) in base al tema.
|
||||||
|
- **Griglia**: Colore delle linee della griglia reso dinamico (`#333333` in dark mode) per garantire visibilità.
|
||||||
|
- **Shadows & Selection**: Aggiornati colori di selezione e ombre per essere coerenti con il tema.
|
||||||
|
|
||||||
|
### 2. Toolbar (`EditorToolbar.tsx`)
|
||||||
|
- **Background Pulsanti**: Sostituiti i colori hardcoded `grey.100` e `grey.200` con i token del tema `action.hover` e `action.selected`.
|
||||||
|
- **Visibilità**: Migliorato il contrasto delle icone e dei testi nella toolbar.
|
||||||
|
|
||||||
|
### 3. Designer Page (`ReportEditorPage.tsx`)
|
||||||
|
- **Sfondo Workspace**: Lo sfondo del contenitore principale (dietro il foglio) ora utilizza `theme.palette.background.default` in dark mode invece di un grigio scuro hardcoded, uniformandosi al resto dell'app.
|
||||||
|
|
||||||
|
### 4. Pannelli Laterali (`DataBindingPanel.tsx`, `DatasetSelector.tsx`)
|
||||||
|
- **Empty States**: Sostituiti sfondi `grey.50` con `background.default` per le schermate di "Nessun dataset selezionato".
|
||||||
|
- **Liste e Header**: Aggiornati i colori di sfondo degli header e degli elementi delle liste per utilizzare `action.hover` e colori primari con opacità corretta.
|
||||||
|
|
||||||
|
### 5. Dialogs (`PreviewDialog.tsx`, `ImageUploadDialog.tsx`)
|
||||||
|
- **Preview**: Sfondi delle liste e delle sezioni di dettaglio aggiornati a `background.default`.
|
||||||
|
- **Image Upload**: Corretti sfondi dell'area di drag & drop e dei pannelli per supportare il dark mode.
|
||||||
|
- **Fix Tecnici**: Aggiunta importazione mancante `alpha` in `ImageUploadDialog.tsx`.
|
||||||
|
|
||||||
|
## Prossimi Passi Suggeriti
|
||||||
|
- Verificare eventuali altri dialoghi minori nel report editor (es. impostazioni avanzate) per assicurare copertura totale.
|
||||||
|
- Testare l'export PDF per assicurarsi che i colori di sfondo (se non desiderati) non vengano esportati erroneamente (il canvas background è solo visuale).
|
||||||
@@ -17,6 +17,7 @@ import {
|
|||||||
useTheme,
|
useTheme,
|
||||||
AppBar,
|
AppBar,
|
||||||
Toolbar,
|
Toolbar,
|
||||||
|
alpha,
|
||||||
} from "@mui/material";
|
} from "@mui/material";
|
||||||
import {
|
import {
|
||||||
CloudUpload as UploadIcon,
|
CloudUpload as UploadIcon,
|
||||||
@@ -324,7 +325,9 @@ export default function ImageUploadDialog({
|
|||||||
borderRadius: 2,
|
borderRadius: 2,
|
||||||
p: isMobile ? 3 : 4,
|
p: isMobile ? 3 : 4,
|
||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
bgcolor: isDragging ? "primary.50" : "grey.50",
|
bgcolor: isDragging
|
||||||
|
? (theme) => alpha(theme.palette.primary.main, 0.08)
|
||||||
|
: "background.default",
|
||||||
cursor: "pointer",
|
cursor: "pointer",
|
||||||
transition: "all 0.2s",
|
transition: "all 0.2s",
|
||||||
minHeight: isMobile ? 150 : "auto",
|
minHeight: isMobile ? 150 : "auto",
|
||||||
@@ -425,7 +428,7 @@ export default function ImageUploadDialog({
|
|||||||
border: 1,
|
border: 1,
|
||||||
borderColor: "divider",
|
borderColor: "divider",
|
||||||
borderRadius: 2,
|
borderRadius: 2,
|
||||||
bgcolor: "grey.50",
|
bgcolor: "background.default",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Typography variant="subtitle2" color="primary" gutterBottom>
|
<Typography variant="subtitle2" color="primary" gutterBottom>
|
||||||
@@ -436,7 +439,7 @@ export default function ImageUploadDialog({
|
|||||||
display: "flex",
|
display: "flex",
|
||||||
justifyContent: "center",
|
justifyContent: "center",
|
||||||
alignItems: "center",
|
alignItems: "center",
|
||||||
bgcolor: "white",
|
bgcolor: "background.paper",
|
||||||
borderRadius: 1,
|
borderRadius: 1,
|
||||||
p: 1,
|
p: 1,
|
||||||
mb: 1,
|
mb: 1,
|
||||||
|
|||||||
@@ -240,8 +240,8 @@ export default function PreviewDialog({
|
|||||||
const query = entityQueries[index];
|
const query = entityQueries[index];
|
||||||
const selectedEntity = isSelected
|
const selectedEntity = isSelected
|
||||||
? ((query.data as EntityListItemDto[]) || []).find(
|
? ((query.data as EntityListItemDto[]) || []).find(
|
||||||
(e) => e.id === selections[dataset.id],
|
(e) => e.id === selections[dataset.id],
|
||||||
)
|
)
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -319,7 +319,7 @@ export default function PreviewDialog({
|
|||||||
p: 2,
|
p: 2,
|
||||||
borderBottom: 1,
|
borderBottom: 1,
|
||||||
borderColor: "divider",
|
borderColor: "divider",
|
||||||
bgcolor: "grey.50",
|
bgcolor: "background.default",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{isMobile && (
|
{isMobile && (
|
||||||
@@ -478,7 +478,7 @@ export default function PreviewDialog({
|
|||||||
p: 1,
|
p: 1,
|
||||||
borderTop: 1,
|
borderTop: 1,
|
||||||
borderColor: "divider",
|
borderColor: "divider",
|
||||||
bgcolor: "grey.50",
|
bgcolor: "background.default",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Typography variant="caption" color="text.secondary">
|
<Typography variant="caption" color="text.secondary">
|
||||||
@@ -571,7 +571,7 @@ export default function PreviewDialog({
|
|||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
p: 2,
|
p: 2,
|
||||||
bgcolor: "grey.50",
|
bgcolor: "background.default",
|
||||||
borderBottom: 1,
|
borderBottom: 1,
|
||||||
borderColor: "divider",
|
borderColor: "divider",
|
||||||
}}
|
}}
|
||||||
|
|||||||
Reference in New Issue
Block a user