services
data_display
title
Odoo 19 services — title (core)
Live preview
Interactive
Source excerpt
web/static/src/core/browser/title_service.js
import { registry } from "../registry";
export const titleService = {
start() {
const titleCounters = {};
const titleParts = {};
function getParts() {
return Object.assign({}, titleParts);
}
function setCounters(counters) {
for (const key in counters) {
const val = counters[key];
if (!val) {
delete titleCounters[key];
} else {
titleCounters[key] = val;
}
}
updateTitle();
}
function setParts(parts) {
for (const key in parts) {
const val = parts[key];
if (!val) {
delete titleParts[key];
} else {
titleParts[key] = val;
}
}
updateTitle();
}
function updateTitle() {
const counter = Object.values(titleCounters).reduce((acc, count) => acc + count, 0);
const name = Object.values(titleParts).join(" - ") || "Odoo";
if (!counter) {
document.title = name;
} else {
document.title = `(${counter}) ${name}`;
}
}
return {
/**
* @returns {string}
*/
get current() {
return document.title;
},
getParts,
setCounters,
setParts,
};
},
};
registry.category("services").add("title", titleService);
Registry / API
- Registry name
title- Category
services- Module
web- Slug
title- Nav group
data_display