Resource Filters
Jump to navigation
Jump to search
In addition to the Scheduling Filters article, with the release of version 2.3 of WFM, we are introducing Resource Filtering. To create a resource filter, ensure that the filter has:
- type set to "resource"
- you access the two new global variables: resources and screenResources. The first variable returns all resources loaded, the second one returns only the resources currently visible
- the matchItems function should use resources and filterItems arguments instead of events and filterItems
{
name: "resource",
label: "Resource",
type: 'resource',
items: function () {
const workerOptions = [...new Map(resources.map(item => {
return [item.id, item];
})).values()].filter(resource => {
return !!resource.extendedProps?.record?.Id
})
.map(resource => {
return {
name: resource.extendedProps?.record?.Id,
label: resource.extendedProps?.record?.Name
}
}).sort(function (a, b) {
if (a.label < b.label) {
return -1;
} else if (a.label > b.label) {
return 1;
}
// a must be equal to b
return 0;
});
return [
{ label:'Open', name: '*' },
...workerOptions
]
},
matchesItems: function (resource, filterItems = []) {
return filterItems.some(filterItem => {
return (resource.extendedProps?.record?.Id ?? '*') === filterItem;
});
}
}