//////////// Dropdown Filter ////////////
function dropdownFilter() {
const value1 = $w("#datePicker2").value;
const value3 = $w("#datePicker3").value;
const value2 = new Date(value3.getTime());
value2.setDate(value3.getDate() + 1);
const sortOptions = $w('#sortDropdown').value;
const filterOptions = $w('#filterDropdown').value;
const filterJobStatus = $w('#dropdownJobStatus').value;
let query = wixData.query('Payroll')
.between('date', value1, value2)
.descending(sortOptions).descending('weekNumber').ascending('driver').ascending('date')
.limit(1000);
if (filterJobStatus !== "All") {
query = query.eq("jobStatus", filterJobStatus);
}
if (filterOptions === 'tankJobs' || filterOptions === 'extraLoads') {
query = query.isNotEmpty(filterOptions).gt(filterOptions, 0);
}
if (filterOptions !== 'Default' && !['border1', 'border2', 'border3', 'border4', 'border5', 'border6'].includes(filterOptions)) {
query = query.contains('workStatus', filterOptions)
.or(wixData.query('Payroll').between('date', value1, value2).contains('driverDepartment', filterOptions))
.or(wixData.query('Payroll').between('date', value1, value2).contains(filterOptions, "Yes"));
}
query.find()
.then(res => {
$w("#table1").pagination = {"type": "pagination", "rowsPerPage": 20};
$w('#table1').rows = res.items;
$w('#text2').text = res.items.length.toString();
if (res.items.length === 0) {
$w('#text1').show();
setTimeout(() => {$w("#text1").hide("fade");}, 800);
}
})
.catch((err) => {
let errorMsg = err;
});
}
//////////// Dropdown Filter ////////////
What are you trying to achieve:
Cant make a query “Payroll” filter the “tankJobs” field for empty and greater than 0
What have you already tried:
if (filterOptions === 'tankJobs' || filterOptions === 'extraLoads') {
query = query.isNotEmpty(filterOptions).gt(filterOptions, 0);
}
Additional information:
filterOpitons is a values pulled from Droprdown menu (Label: Tank Jobs, Value: tankJobs), In dataset “tankJobs” and “extraLoads” - IDs of the columns (Type: Number) to look in