OWL
data_display
Calendar Mobile Filter Panel
Odoo 19 OWL component — Calendar Mobile Filter Panel (views)
Live preview
Interactive
Source excerpt
web/static/src/views/calendar/mobile_filter_panel/calendar_mobile_filter_panel.js
import { Component } from "@odoo/owl";
import { getColor } from "../utils";
export class CalendarMobileFilterPanel extends Component {
static components = {};
static template = "web.CalendarMobileFilterPanel";
static props = {
model: Object,
sideBarShown: Boolean,
toggleSideBar: Function,
};
get caretDirection() {
return this.props.sideBarShown ? "down" : "left";
}
getFilterColor(filter) {
return `o_color_${getColor(filter.colorIndex)}`;
}
getFilterTypePriority(type) {
return ["user", "record", "dynamic", "all"].indexOf(type);
}
getSortedFilters(section) {
return section.filters.slice().sort((a, b) => {
if (a.type === b.type) {
const va = a.value ? -1 : 0;
const vb = b.value ? -1 : 0;
//Condition to put unvaluable item (eg: Open Shifts) at the end of the sorted list.
if (a.type === "dynamic" && va !== vb) {
return va - vb;
}
return a.label.localeCompare(b.label, undefined, {
numeric: true,
sensitivity: "base",
ignorePunctuation: true,
});
} else {
return this.getFilterTypePriority(a.type) - this.getFilterTypePriority(b.type);
}
});
}
}
Registry / API
- Registry name
CalendarMobileFilterPanel- Category
—- Module
web- Slug
calendar-mobile-filter-panel- Nav group
data_display