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/scss/intro_loader.scss',
|
||||
'expert_theme/static/src/js/intro_loader.js',
|
||||
'expert_theme/static/src/js/user_menu.js',
|
||||
]
|
||||
},
|
||||
'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 id="login_template_modern_page" name="Modern Login Template"
|
||||
inherit_id="website.login_layout" active="False">
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue