Files
reporting-engine/report_qweb_element_page_visibility/views/layouts.xml
AlienAtSystem b64e9f5cc5 [ADD] 'single-page' and 'multi-page' classes in report_qweb_element_page_visibility module
These classes cause the element to be visible when the document is only a single page long (for single-page) or when it's multiple pages long (for multi-page). This is especially useful for page counters, which can be hidden when there's only a single page.
2023-03-23 15:37:52 +00:00

64 lines
3.1 KiB
XML

<odoo>
<template id="minimal_layout" inherit_id="web.minimal_layout" priority="100">
<script t-if="subst" position="replace">
<script t-if="subst">
function subst() {
var vars = {};
var x = document.location.search.substring(1).split('&amp;');
for (var i in x) {
var z = x[i].split('=', 2);
vars[z[0]] = unescape(z[1]);
}
var x = ['sitepage', 'sitepages', 'section', 'subsection', 'subsubsection'];
var z = {'sitepage': 'page', 'sitepages': 'topage'};
for (var i in x) {
var y = document.getElementsByClassName(z[x[i]] || x[i])
for (var j=0; j&lt;y.length; ++j)
y[j].textContent = vars[x[i]];
}
var index = vars['webpage'].split('.', 4)[3];
var header = document.getElementById('minimal_layout_report_headers');
if(header){
var companyHeader = header.children[index];
header.textContent = '';
header.appendChild(companyHeader);
}
var footer = document.getElementById('minimal_layout_report_footers');
if(footer){
var companyFooter = footer.children[index];
footer.textContent = '';
footer.appendChild(companyFooter);
}
var operations = {
'not-first-page': function (elt) {
elt.style.visibility = (vars.sitepage == vars.frompage) ? "hidden" : "visible";
},
'not-last-page': function (elt) {
elt.style.visibility = (vars.sitepage == vars.sitepages) ? "hidden" : "visible";
},
'first-page': function (elt) {
elt.style.visibility = (vars.sitepage == vars.frompage) ? "visible" : "hidden";
},
'last-page': function (elt) {
elt.style.visibility = (vars.sitepage == vars.sitepages) ? "visible" : "hidden";
},
'single-page': function (elt) {
elt.style.display = (vars.sitepages === 1) ? "inherit" : "none";
},
'multi-page': function (elt) {
elt.style.display = (vars.sitepages > 1) ? "inherit" : "none";
},
};
for (var klass in operations) {
var y = document.getElementsByClassName(klass);
for (var j=0; j&lt;y.length; ++j)
operations[klass](y[j]);
}
}
</script>
</script>
</template>
</odoo>