Hey Guys,
Is it possible to filter the query results by date range and other factors. For example I am running a few queries as such
export function dynamicDataset_ready() {
let options = {
}
wixData.query("SurveyResponses")
.contains("arrRt", "Excellent")
.find()
.then( (results) => {
let numberOfItems = results.totalCount;
$w('#arrRtExcellent').text = String(numberOfItems);
});
wixData.query("SurveyResponses")
.eq("arrRt", "Very Good")
.find()
.then( (results) => {
let numberOfItems = results.totalCount;
$w('#arrRtVeryGood').text = String(numberOfItems);
});
wixData.query("SurveyResponses")
.eq("arrRt", "Good")
.find()
.then( (results) => {
let numberOfItems = results.totalCount;
$w('#arrRtGood').text = String(numberOfItems);
});
wixData.query("SurveyResponses")
.contains("arrRt", "Fair")
.find()
.then( (results) => {
let numberOfItems = results.totalCount;
$w('#arrRtFair').text = String(numberOfItems);
});
wixData.query("SurveyResponses")
.contains("arrRt", "Poor")
.find()
.then( (results) => {
let numberOfItems = results.totalCount;
$w('#arrRtPoor').text = String(numberOfItems);
});
}
I need to filter it so when the following filters on the page runs, the query matches either the date range or Name of people
let lastFilterFile;
let lastFilterHrep;
let lastFilterArep;
let lastFilterEmail;
let lastFilterFrom;
let lastFilterTill;
let debounceTimer;
export function sbyfile_keyPress(event, $w) {
if (debounceTimer) {
clearTimeout(debounceTimer);
debounceTimer = undefined;
}
debounceTimer = setTimeout(() => {
filter($w('#sbyfile').value, lastFilterHrep, lastFilterArep, lastFilterEmail, lastFilterFrom, lastFilterTill);
}, 200);
}
function filter(file, hrep, arep, cmail, asfrom, until) {
if (lastFilterFile !== file || lastFilterHrep !== hrep || lastFilterArep !== arep || lastFilterEmail !== cmail || lastFilterFrom !== asfrom || lastFilterTill !== until) {
let newFilter = wixData.filter();
if(file)
newFilter = newFilter.contains('title', file);
if(hrep)
newFilter = newFilter.contains('hotelRepName', hrep);
if(arep)
newFilter = newFilter.contains('airportRep', arep);
if(cmail)
newFilter = newFilter.contains('cEmail', cmail);
if(asfrom)
newFilter = newFilter.ge('_createdDate', asfrom);
if(until)
newFilter = newFilter.le('_createdDate', until);
$w('#dynamicDataset').setFilter(newFilter);
lastFilterFile = file;
lastFilterHrep = hrep;
lastFilterArep = arep;
lastFilterEmail = cmail;
lastFilterFrom = asfrom;
lastFilterTill = until;
}
}
export function hrepdd_change(event, $w) {
filter(lastFilterFile, $w('#hrepdd').value, lastFilterArep, lastFilterEmail, lastFilterFrom, lastFilterTill);
}
export function arepdd_change(event, $w) {
filter(lastFilterFile, lastFilterHrep, $w('#arepdd').value, lastFilterEmail, lastFilterFrom, lastFilterTill);
}
export function clang_change(event, $w) {
filter(lastFilterFile, lastFilterHrep, lastFilterArep, lastFilterEmail, lastFilterFrom, lastFilterTill);
}
export function cmail_keyPress(event, $w) {
if (debounceTimer) {
clearTimeout(debounceTimer);
debounceTimer = undefined;
}
debounceTimer = setTimeout(() => {
filter($w('#cmail').value, lastFilterHrep, lastFilterArep, lastFilterEmail, lastFilterFrom, lastFilterTill);
}, 200);
}
export function from_change(event, $w) {
filter(lastFilterFile, lastFilterHrep, lastFilterArep, lastFilterEmail, $w("#from").value, lastFilterTill);
}
export function till_change(event, $w) {
filter(lastFilterFile, lastFilterHrep, lastFilterArep, lastFilterEmail, lastFilterFrom, $w("#till").value);
}
Can someone help please
Shan