in ui/src/main/resources/static/components/query-param-filter/query-param-filter.js [378:468]
$(document).ready( function () {
initColumns();
loadFilterColumnArray();
const operationLoaded = loadFilterOperationArrayByType(filterColumnArray[0].type);
setValuePlaceholder(operationLoaded[0].id, filterColumnArray[0].placeholders);
initiateFilterClauseArray();
loadFilterClauses();
document.getElementById("query-param-filter-column-select").addEventListener('change', (event) => {
const column = getColumnById(event.target.value);
loadFilterOperationArrayByType(column.type);
$('#query-param-filter-value').val('');
handleValuesOnColumnChange(column);
});
document.getElementById("query-param-filter-operation-select").addEventListener('change', (event) => {
const columnValue = $("#query-param-filter-column-select").val();
const column = getColumnById(columnValue);
setValuePlaceholder(event.target.value,column.placeholders);
});
document.getElementById("query-param-filter-value-select").addEventListener('change', (event) => {
$('#query-param-filter-value').val(event.target.value);
});
function isEnumValueExists(filterColumn,value) {
return filterColumn.values.map(m=>m.id).includes(value);
}
document.getElementById("query-param-filter-value").addEventListener('keydown', (event) => {
if(event.key==='Enter') {
document.getElementById("add-query-param-filter-button").click();
}
});
document.getElementById("add-query-param-filter-button").addEventListener('click', () => {
let filterColumn;
let filterOperationId;
$("#query-param-filter-column-select option:selected").each(function () {
filterColumn = getColumnById($(this).val());
});
$("#query-param-filter-operation-select option:selected").each(function () {
filterOperationId = $(this).val();
});
const queryParamFilterValue = $('#query-param-filter-value');
if (filterColumn === undefined ||
filterOperationId === undefined ||
(queryParamFilterValue.val()==='' && getOperationById(filterOperationId).required)) {
return;
}
switch (filterColumn.type) {
case 'number':
if (isNaN(parseInt(queryParamFilterValue.val()))) {
showInfo('error', 'Column values validation', 'Value for column "' + filterColumn.label + '" should be numeric.')
return;
}
break;
case 'enum':
if (!isEnumValueExists(filterColumn,queryParamFilterValue.val())) {
showInfo('error', 'Column values validation', 'Value for column "' + filterColumn.label +
'" should one of: ' + filterColumn.values.join(','));
return;
}
}
for (let ii = 0; ii < filterClauseArray.length; ii++) {
if (filterClauseArray[ii].column.id === filterColumn.id &&
filterClauseArray[ii].operation.id === filterOperationId) {
filterClauseArray.splice(ii,1);
}
}
const newFilterClause = new FilterClause(filterColumn,
getOperationById(filterOperationId),
queryParamFilterValue.val(),
getValueLabelById(filterColumn,queryParamFilterValue.val()));
filterClauseArray.push(newFilterClause);
loadFilterClauses();
});
});