Merge pull request #89 from expsa/odex_sidebar_menu_updates

Odex sidebar menu updates
This commit is contained in:
Tahir Hassan 2026-01-20 14:24:44 +04:00 committed by GitHub
commit 2780caf8b3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 31 additions and 14 deletions

View File

@ -67,7 +67,6 @@ window.expertThemeApplyColors = async function() {
root.style.setProperty(property, value);
}
});
console.log('Expert Theme colors applied successfully!');
}
} catch (error) {
console.error('Error applying Expert Theme colors:', error);

View File

@ -31,6 +31,7 @@
'base',
],
'data': [
'data/system_parameters.xml',
'views/res_config_settings.xml',
],
'assets': {

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo noupdate="1">
<record id="odex_sidebar_backend_theme2_backend_odex_support_team_link" model="ir.config_parameter">
<field name="key">odex_sidebar_backend_theme2.odex_support_team_link</field>
<field name="value">https://odex.sa/support</field>
</record>
</odoo>

View File

@ -98,5 +98,10 @@ class ResConfigSettings(models.TransientModel):
sidebar_enabled = IrConfigParam.get_param('odex_sidebar_backend_theme2.sidebar_menu_enable') == 'True'
sidebar_icon_url = IrConfigParam.get_param('odex_sidebar_backend_theme2.sidebar_menu_icon_url')
uncollapsed_sidebar_overlay = IrConfigParam.get_param('odex_sidebar_backend_theme2.uncollapsed_sidebar_overlay') == 'True'
support_team_link = IrConfigParam.get_param('odex_sidebar_backend_theme2.odex_support_team_link') or 'https://odex.sa/support'
return {'sidebar_enabled': sidebar_enabled, 'sidebar_icon_url': sidebar_icon_url, 'uncollapsed_sidebar_overlay': uncollapsed_sidebar_overlay}
return {'sidebar_enabled': sidebar_enabled,
'sidebar_icon_url': sidebar_icon_url,
'uncollapsed_sidebar_overlay': uncollapsed_sidebar_overlay,
'support_team_link': support_team_link
}

View File

@ -41,7 +41,6 @@ export class MenuItem extends Component {
// Use xmlid if available, otherwise use name as a stable identifier
const uniqueId = menu.xmlid || menu.name || menu.id;
localStorage.setItem('odex_sidebar_active_menu', uniqueId);
console.log('Saved menu:', uniqueId, menu.name);
} catch (e) {
console.error('Storage error:', e);
}

View File

@ -19,8 +19,6 @@ export function loadSidebarCSS() {
kwargs: {},
}
);
console.log('Fetched sidebar CSS:', css);
if (css && css.trim()) {
// Create a style element and inject the CSS
@ -29,7 +27,7 @@ export function loadSidebarCSS() {
style.id = 'sidebar-dynamic-css';
style.innerHTML = css;
document.head.appendChild(style);
console.log('Sidebar CSS injected successfully');
console.error('Error loading sidebar CSS:', error);
}
} catch (error) {
console.error('Error loading sidebar CSS:', error);
@ -45,9 +43,9 @@ export function loadSidebarCSS() {
}
// Initialize on module load
registry.category("web_tour.tours").add("sidebar_css_loader", {
steps: [],
});
// registry.category("web_tour.tours").add("sidebar_css_loader", {
// steps: [],
// });
// Auto-load CSS on page load
loadSidebarCSS();

View File

@ -24,6 +24,7 @@ export class SidebarMenu extends Component {
sidebarEnabled: false,
sidebarMenuIconUrl: null,
overlayEnabled: false,
supportTeamLink: null,
});
this.loadSidebarSetting()
@ -39,7 +40,7 @@ export class SidebarMenu extends Component {
if (this.state.overlayEnabled) {
collapsedWidth = '90px';
}
console.log('Applying layout changes. Sidebar open:', isOpen, 'Sidebar collapsed:', isCollapsed);
if (!isCollapsed) {
if (actionManager) actionManager.style.marginInlineStart = collapsedWidth;
if (mainNavbar) mainNavbar.style.marginInlineStart = collapsedWidth;
@ -48,6 +49,12 @@ export class SidebarMenu extends Component {
if (actionManager) actionManager.style.marginInlineStart = '90px';
if (mainNavbar) mainNavbar.style.marginInlineStart = '90px';
}
if (!isOpen) {
// If sidebar is closed, remove margin
if (actionManager) actionManager.style.marginInlineStart = '0px';
if (mainNavbar) mainNavbar.style.marginInlineStart = '0px';
}
};
// Use useEffect to monitor changes in open and collapse states
@ -125,6 +132,8 @@ export class SidebarMenu extends Component {
// Load overlay setting
this.state.overlayEnabled = result.uncollapsed_sidebar_overlay === true || result.uncollapsed_sidebar_overlay === 'True';
// Load support team link
this.state.supportTeamLink = result.support_team_link || 'https://odex.sa/support';
} catch (error) {
console.error('Error loading sidebar setting:', error);
// Default to enabled if setting cannot be loaded
@ -161,7 +170,6 @@ export class SidebarMenu extends Component {
try {
const activeId = localStorage.getItem('odex_sidebar_active_menu');
console.log('Restored menu ID:', activeId);
let targetMenu = menuMapByXmlId.get(activeId) || menuMap.get(activeId);

View File

@ -23,7 +23,7 @@
<!-- Secondary Bottom Nav -->
<ul class="sidebar_menu_list secondary-nav">
<li class="nav-item">
<a href="#" class="nav-link" t-att-title="state.isCollapsed ? 'Support' : ''">
<a target="_blank" t-att-href="state.supportTeamLink" class="nav-link" t-att-title="state.isCollapsed ? 'Support' : ''">
<span class="nav_icon"><i class="fa fa-question-circle"></i></span>
<span class="nav-label">Support</span>
</a>
@ -36,7 +36,7 @@
<div class="icon">
<i class="fa fa-question-circle"></i>
</div>
<a href="https://www.odex.sa" class="label">Support</a>
<a target="_blank" t-att-href="state.supportTeamLink" class="label">Support</a>
</li>
</ul>
</div>
@ -45,7 +45,7 @@
<!-- Normal dropdown (when not collapsed) -->
<ul class="dropdown_menu" t-if="!state.isCollapsed">
<li class="nav-item">
<a href="https://www.odex.sa" class="nav-link dropdown-title">Support</a>
<a target="_blank" t-att-href="state.supportTeamLink" class="nav-link dropdown-title">Support</a>
</li>
</ul>
</li>