Added date range filter.
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -6,6 +6,9 @@ function getAndValidateSelectedColumns() {
|
||||
var reportExtraFields = [];
|
||||
var tagFilterMode = $("#tagSelector").val();
|
||||
var tagsToFilter = $("#tagSelectorInput").val();
|
||||
var filterByDateRange = $("#dateRangeSelector").is(":checked");
|
||||
var startDate = $("#dateRangeStartDate").val();
|
||||
var endDate = $("#dateRangeEndDate").val();
|
||||
$("#columnSelector :checked").map(function () {
|
||||
if ($(this).hasClass('column-default')) {
|
||||
reportVisibleColumns.push(this.value);
|
||||
@@ -13,21 +16,45 @@ function getAndValidateSelectedColumns() {
|
||||
reportExtraFields.push(this.value);
|
||||
}
|
||||
});
|
||||
var hasValidationError = false;
|
||||
var validationErrorMessage = "";
|
||||
if (reportVisibleColumns.length + reportExtraFields.length == 0) {
|
||||
hasValidationError = true;
|
||||
validationErrorMessage = "You must select at least one column";
|
||||
}
|
||||
if (filterByDateRange) {
|
||||
//validate date range
|
||||
let startDateTicks = $("#dateRangeStartDate").datepicker('getDate')?.getTime();
|
||||
let endDateTicks = $("#dateRangeEndDate").datepicker('getDate')?.getTime();
|
||||
if (!startDateTicks || !endDateTicks || startDateTicks > endDateTicks) {
|
||||
hasValidationError = true;
|
||||
validationErrorMessage = "Invalid date range";
|
||||
}
|
||||
}
|
||||
|
||||
if (hasValidationError) {
|
||||
return {
|
||||
hasError: true,
|
||||
errorMessage: validationErrorMessage,
|
||||
visibleColumns: [],
|
||||
extraFields: [],
|
||||
tagFilter: tagFilterMode,
|
||||
tags: []
|
||||
tags: [],
|
||||
filterByDateRange: filterByDateRange,
|
||||
startDate: '',
|
||||
endDate: ''
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
hasError: false,
|
||||
errorMessage: '',
|
||||
visibleColumns: reportVisibleColumns,
|
||||
extraFields: reportExtraFields,
|
||||
tagFilter: tagFilterMode,
|
||||
tags: tagsToFilter
|
||||
tags: tagsToFilter,
|
||||
filterByDateRange: filterByDateRange,
|
||||
startDate: startDate,
|
||||
endDate: endDate
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,6 +77,9 @@ function getSavedReportParameters() {
|
||||
selectedReportColumns.tags.map(x => {
|
||||
$("#tagSelectorInput").append(`<option value='${x}'>${x}</option>`)
|
||||
});
|
||||
$("#dateRangeSelector").prop('checked', selectedReportColumns.filterByDateRange);
|
||||
$("#dateRangeStartDate").val(selectedReportColumns.startDate);
|
||||
$("#dateRangeEndDate").val(selectedReportColumns.endDate);
|
||||
}
|
||||
}
|
||||
function generateVehicleHistoryReport() {
|
||||
@@ -65,13 +95,15 @@ function generateVehicleHistoryReport() {
|
||||
//validate
|
||||
var selectedColumnsData = getAndValidateSelectedColumns();
|
||||
if (selectedColumnsData.hasError) {
|
||||
Swal.showValidationMessage(`You must select at least one column`);
|
||||
Swal.showValidationMessage(selectedColumnsData.errorMessage);
|
||||
}
|
||||
return { selectedColumnsData }
|
||||
},
|
||||
didOpen: () => {
|
||||
getSavedReportParameters();
|
||||
initTagSelector($("#tagSelectorInput"));
|
||||
initDatePicker($('#dateRangeStartDate'));
|
||||
initDatePicker($('#dateRangeEndDate'));
|
||||
}
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
|
||||
Reference in New Issue
Block a user