Merge pull request #76 from expsa/odex_theme_branch
feat: Add user menu functionality and remove obsolete language switcher
This commit is contained in:
commit
5562529468
|
|
@ -49,6 +49,7 @@
|
||||||
'expert_theme/static/src/language_menu/language_menu.scss',
|
'expert_theme/static/src/language_menu/language_menu.scss',
|
||||||
'expert_theme/static/src/scss/intro_loader.scss',
|
'expert_theme/static/src/scss/intro_loader.scss',
|
||||||
'expert_theme/static/src/js/intro_loader.js',
|
'expert_theme/static/src/js/intro_loader.js',
|
||||||
|
'expert_theme/static/src/js/user_menu.js',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
'installable': True,
|
'installable': True,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/** @odoo-module **/
|
||||||
|
|
||||||
|
import { registry } from "@web/core/registry";
|
||||||
|
import { _t } from "@web/core/l10n/translation";
|
||||||
|
|
||||||
|
const userMenuRegistry = registry.category("user_menuitems");
|
||||||
|
|
||||||
|
// remove documentation, support and odoo account menu items
|
||||||
|
userMenuRegistry.remove("documentation");
|
||||||
|
userMenuRegistry.remove("support");
|
||||||
|
userMenuRegistry.remove("odoo_account");
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
/** @odoo-module **/
|
|
||||||
|
|
||||||
import { registry } from "@web/core/registry";
|
|
||||||
import { session } from "@web/session";
|
|
||||||
import { browser } from "@web/core/browser/browser";
|
|
||||||
import { _t } from "@web/core/l10n/translation";
|
|
||||||
|
|
||||||
const userMenuRegistry = registry.category("user_menuitems");
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Service to handle the language switch logic
|
|
||||||
*/
|
|
||||||
async function switchLanguage(env, langCode) {
|
|
||||||
// 1. Write the new language to the user's preference
|
|
||||||
await env.services.orm.write("res.users", [session.uid], {
|
|
||||||
lang: langCode,
|
|
||||||
});
|
|
||||||
|
|
||||||
// 2. Reload the page to apply changes
|
|
||||||
browser.location.reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to generate language menu items
|
|
||||||
*/
|
|
||||||
function languageSwitchItems(env) {
|
|
||||||
console.log("Generating language switcher menu items");
|
|
||||||
const activeLanguages = session.available_languages || [];
|
|
||||||
const currentLang = session.bundle_params.lang || 'en';
|
|
||||||
console.log("Active languages:", activeLanguages);
|
|
||||||
console.log("Current language:", userMenuRegistry);
|
|
||||||
|
|
||||||
// Use a separator to visually group languages if you have many items
|
|
||||||
// If you prefer a flat list, you can remove the separator logic.
|
|
||||||
const items = [
|
|
||||||
{
|
|
||||||
type: "separator",
|
|
||||||
id: "language_separator",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
console.log(items);
|
|
||||||
|
|
||||||
activeLanguages.forEach((lang) => {
|
|
||||||
// Skip adding the currently active language to the list (optional UX choice)
|
|
||||||
// OR add it but mark it as checked. Here we just add all.
|
|
||||||
const isCurrent = lang.code === currentLang;
|
|
||||||
console.log("Adding language menu item for:", lang.code, "Current:", isCurrent);
|
|
||||||
items.push({
|
|
||||||
type: "item",
|
|
||||||
id: `lang_switch_${lang.code}`,
|
|
||||||
description: `${lang.name} ${isCurrent ? "✓" : ""}`,
|
|
||||||
callback: async () => {
|
|
||||||
if (!isCurrent) {
|
|
||||||
await switchLanguage(env, lang.code);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
return items;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add the languages to the registry
|
|
||||||
// We wrap it in a function because the registry expects a function that returns the item(s)
|
|
||||||
// userMenuRegistry.add("language_switcher", languageSwitchItems, { sequence: 10,force: true });
|
|
||||||
userMenuRegistry.remove("documentation");
|
|
||||||
userMenuRegistry.remove("support");
|
|
||||||
userMenuRegistry.remove("odoo_account");
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- Template 1: Modern Card Design -->
|
<!-- Template 1: Modern Card Design -->
|
||||||
|
|
||||||
<template id="login_template_modern_page" name="Modern Login Template"
|
<template id="login_template_modern_page" name="Modern Login Template"
|
||||||
inherit_id="website.login_layout" active="False">
|
inherit_id="website.login_layout" active="False">
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue