Files
Odoo-Modules/fusion_accounting/static/src/scss/dashboard.scss
gsinghpal c66bdf5089 changes
2026-04-03 15:45:18 -04:00

114 lines
3.0 KiB
SCSS

.fusion_accounting_dashboard {
// Fill the available Odoo content area (below navbar + menu bar)
// Use 100% of parent instead of 100vh to respect Odoo's own layout
display: flex;
flex-direction: column;
height: 100%;
.fusion_dashboard_header {
border-bottom: 1px solid var(--o-border-color);
background: var(--o-view-background-color);
flex-shrink: 0;
}
// Main two-column layout — must fill remaining height
.fusion_main_layout {
flex: 1;
// This is the key: prevent the flex container from growing beyond
// the viewport, which would push the chat input off-screen
min-height: 0;
overflow: hidden;
}
// Left panel: cards + needs attention (scrollable)
.fusion_left_panel {
width: 50%;
min-width: 400px;
max-width: 600px;
overflow-y: auto;
flex-shrink: 0;
}
// Health cards: 3 per row
.fusion_health_cards {
flex-shrink: 0;
.fusion_health_card {
flex: 0 0 calc(33.333% - 6px);
min-width: 150px;
transition: transform 0.15s ease, box-shadow 0.15s ease;
&:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(var(--bs-body-color-rgb), 0.1);
}
}
}
// Needs Attention: fill remaining left panel space
.fusion_attention_card {
flex: 1;
min-height: 150px;
overflow: hidden;
.card-body {
overflow-y: auto;
}
}
// Needs Attention items
.fusion_attention_item {
transition: background 0.15s ease;
&:hover {
background: rgba(var(--bs-body-color-rgb), 0.04);
}
}
// Right panel: chat takes all remaining width and height
.fusion_right_panel {
flex: 1;
min-width: 500px;
display: flex;
flex-direction: column;
// Critical: prevent overflow so chat input stays visible
min-height: 0;
overflow: hidden;
// Override chat panel to fill the container
.fusion_chat_panel {
// Fill the right panel completely
flex: 1;
display: flex;
flex-direction: column;
border-radius: 0;
border: none;
// Must not exceed container
min-height: 0;
height: auto !important;
.card-header {
flex-shrink: 0;
}
.fusion_chat_messages {
// Override base chat.scss values that break flex layout
max-height: none !important;
min-height: 0 !important;
// Grow to fill, but scrollable
flex: 1;
overflow-y: auto;
}
.fusion_chat_input {
flex-shrink: 0;
}
}
}
}
// Also ensure the Odoo action container gives us full height
.o_action_manager {
.o_action.fusion_accounting_dashboard {
height: 100%;
}
}