Commit 49d7591e authored by Maxym Borodenko's avatar Maxym Borodenko Committed by Matija Obreza

Ability to apply filters without inputing characters.

parent 086b7711
Pipeline #2294 waiting for manual action with stages
in 6 minutes and 5 seconds
......@@ -305,7 +305,6 @@ var GenesysFilterUtil = {
value = JSON.parse(value);
if (typeof value === 'number') {
value = String(value);
array.splice(array.indexOf(value), 1);
return false;
}
......@@ -396,7 +395,7 @@ var GenesysFilter = {
var inputId = '#' + normKey + '_input';
var value = $(element).parent().parent().find(inputId).val();
if (value === '') {
if ($.trim(value) === '') {
return;
}
......@@ -423,8 +422,8 @@ var GenesysFilter = {
var inputId1 = '#' + normKey + '_input_1';
var inputId2 = '#' + normKey + '_input_2';
var inputValue1 = $(inputId1).val();
var inputValue2 = $(inputId2).val();
var inputValue1 = $.trim($(inputId1).val());
var inputValue2 = $.trim($(inputId2).val());
var isDate1 = false;
var isDate2 = false;
......@@ -496,8 +495,8 @@ var GenesysFilter = {
var inputId1 = '#' + normKey + '_input_1';
var inputId2 = '#' + normKey + '_input_2';
var inputValue1 = $(inputId1).val();
var inputValue2 = $(inputId2).val();
var inputValue1 = $.trim($(inputId1).val());
var inputValue2 = $.trim($(inputId2).val());
var value = null;
......@@ -534,8 +533,15 @@ var GenesysFilter = {
value = i18n.lessThan + inputValue2;
} else if (inputValue1 !== '' && inputValue2 !== '') {
rangeValue.push(parseFloat(inputValue1));
rangeValue.push(parseFloat(inputValue2));
inputValue1 = parseFloat(inputValue1);
inputValue2 = parseFloat(inputValue2);
if (inputValue1 > inputValue2) {
rangeValue.push(parseFloat(inputValue2));
rangeValue.push(parseFloat(inputValue1));
} else {
rangeValue.push(parseFloat(inputValue1));
rangeValue.push(parseFloat(inputValue2));
}
range.range = rangeValue;
jsonValue.push(range);
......@@ -568,6 +574,15 @@ var GenesysFilter = {
} else {
var xkey = normKey + value;
GenesysFilterUtil.removeValue(value, key, jsonData);
var needToDisableBtn = true;
$.each($(element).parent().parent().parent().find('.filtval'), function (index) {
if(index > 0) {
needToDisableBtn = false;
}
});
if (needToDisableBtn) {
$(element).parent().parent().parent().find('.btn').addClass('disabled');
}
$('div[x-key=' + xkey + ']').remove();
}
},
......@@ -599,6 +614,15 @@ var GenesysFilter = {
} else {
var xkey = normKey + value;
var needToDisableBtn = true;
$.each($(element).parent().parent().parent().find('.filtval'), function (index) {
if(index > 0) {
needToDisableBtn = false;
}
});
if (needToDisableBtn) {
$(element).parent().parent().parent().find('.btn').addClass('disabled');
}
GenesysFilterUtil.removeValue(value, key, jsonData);
$('div[x-key=' + xkey + ']').remove();
}
......@@ -633,7 +657,7 @@ var GenesysFilter = {
var inputId = '#' + normKey + '_input';
var value = $(element).parent().parent().find(inputId).val();
if (value === '') {
if ($.trim(value) === '') {
return;
}
......
......@@ -2248,7 +2248,7 @@ h2.short {
#collapseFilters .panel-title {
font-size: 14px;
font-family: $heading-font-family;
padding: 10px 0;
padding: 10px;
// line-height: 40px;
}
#collapseFilters #panel_art15 {
......@@ -2271,6 +2271,8 @@ h2.short {
border-radius: 4px;
color: $white-color;
margin-left: 15px;
margin-right: 15px;
white-space: normal;
}
}
#collapseFilters .panel-body .panel-group .panel-default .panel-body {
......@@ -2310,6 +2312,9 @@ h2.short {
display: block;
float: none;
}
.disabled {
outline: none;
}
.removeFilterBtn {
background-color: #bebaa9;
padding: 5px 0px;
......@@ -2385,6 +2390,8 @@ h2.short {
#panel_additional{
.panel-collapse, .panel-heading {
background: #F2EEE2;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
& > .panel-heading {
......
......@@ -313,16 +313,16 @@
var lastWindowWidth;
$(document).ready(function () {
$('#explore-li').find("a").addClass('active active-group');
$('#explore-li').find('a').addClass('active active-group');
$('#explore-li').addClass('active');
if (jsonData.crops != null && jsonData.crops.length > 0) {
$("#panel_additional_id").show();
$('#panel_additional_id').show();
}
$.each(jsonData, function(key) {
if(key.startsWith('gm:')) {
$("#panel_additional_id").show();
$('#panel_additional_id').show();
}
});
......@@ -339,25 +339,55 @@
}();
$("body").on("keypress", ".string-type", function (e) {
if (e.keyCode == 13) {
var btn = $(this).parent().find("button");
var selectedValue = $(this).parent().parent().find(".like-switcher option:selected").val();
if (e.keyCode === 13) {
var btn = $(this).parent().find('button');
var selectedValue = $(this).parent().parent().find('.like-switcher option:selected').val();
if (selectedValue == "like") {
if (selectedValue === 'like') {
GenesysFilter.filterLike(btn, jsonData, BrowseUtil.i18nFilterMessage);
} else {
GenesysFilter.filterAutocomplete(btn, jsonData);
}
}
});
$('body').on('input', '.panel-group .input-group .form-control', function () {
var emptyFilterVal = true;
$.each($(this).parent().parent().find('.filtval'), function () {
emptyFilterVal = false;
});
if($(this).parent().hasClass('js-range-filter')) {
var firstRangeVal = $.trim($(this).val());
var secondRangeVal = '';
$.each($(this).parent().find('input'), function () {
if($.trim($(this).val()) !== firstRangeVal) {
secondRangeVal = $.trim($(this).val());
}
});
if(firstRangeVal === '' && secondRangeVal !== '' || secondRangeVal === '' && firstRangeVal !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
}
} else {
if($.trim($(this).val()) !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
} else if (emptyFilterVal === true) {
$(this).parent().parent().parent().find('.applyBtn').addClass('disabled');
}
}
});
$("body").on("click", ".filter-auto", function () {
var filterVal = $(this).parent().parent().find('.string-type').val();
if($.trim(filterVal) !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
}
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
var selectedValue = $(this).parent().parent().parent().find(".like-switcher option:selected").val();
if (selectedValue == "like") {
var selectedValue = $(this).parent().parent().parent().find('.like-switcher option:selected').val();
if (selectedValue === 'like') {
GenesysFilter.filterLike($(this), jsonData, BrowseUtil.i18nFilterMessage);
} else {
GenesysFilter.filterAutocomplete($(this), jsonData);
......@@ -365,6 +395,7 @@
});
$("body").on("change", ".geo-switcher", function () {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
......@@ -372,13 +403,25 @@
});
$("body").on("click", ".filter-list", function () {
var parentEl = $(this).parent().parent().parent();
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
var text = $(this).parent().text();
var text2 = $.trim(text);
var text3 = text2.substring(0, text2.indexOf('('));
GenesysFilter.filterList($(this), jsonData, text3);
text = $.trim(text);
text = text.substring(0, text.indexOf('('));
GenesysFilter.filterList($(this), jsonData, text);
if(!$(this).is(':checked')) {
var needToApply = true;
$.each($(parentEl).find('.filtval'), function () {
needToApply = false;
});
if(needToApply) {
applyFilters();
}
}
});
$("body").on("click", ".filter-range", function () {
......@@ -389,20 +432,35 @@
});
$("body").on("click", ".filter-bool", function () {
var parentEl = $(this).parent().parent().parent();
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
GenesysFilter.filterBoolean($(this), jsonData, BrowseUtil.i18nFilterMessage);
if(!$(this).is(':checked')) {
var needToApply = true;
$.each($(parentEl).find('.filtval'), function () {
needToApply = false;
});
if(needToApply) {
applyFilters();
}
}
});
$('body').on('click', '.filter-crop', function () {
$(this).parent().parent().find('.applyBtn').removeClass('disabled');
GenesysFilter.filterCrop($(this), jsonData);
});
$("body").on("click", ".applyBtn", function () {
$(this).parent().parent().find("button.filter-auto, button.filter-range").trigger("click");
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
if( !$(this).hasClass('disabled') ) {
$(this).parent().parent().find("button.filter-auto, button.filter-range").trigger("click");
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
}
});
$("body").on("click", ".removeFilterBtn", function () {
......@@ -434,11 +492,21 @@
var normKey = GenesysFilter.normKey(key);
var value = $(this).attr("x-key").replace(normKey, "");
if (value == "null") value = null;
if (value === 'null') value = null;
GenesysFilterUtil.removeValue(value, key, jsonData);
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
var needToDisableBtn = true;
$.each($(this).parent().find('.filtval'), function (index) {
if(index > 0) {
needToDisableBtn = false;
}
});
if (needToDisableBtn === true) {
$(this).parent().find('.applyBtn').addClass('disabled');
}
$(this).remove();
$('input[i-key="' + key + '"][value="' + value + '"]').prop('checked', false);
......@@ -474,7 +542,7 @@
var lastChar = val.substring(len, len-1);
var isDigit = lastChar.match(/^[0-9]+$/) != null;
var date = this.value;
if (key == 8 || key == 46 && lastChar === '-')
if (key === 8 || key === 46 && lastChar === '-')
return;
if (this.value.length > 10) {
this.value = date.substring(0, 10);
......@@ -571,6 +639,9 @@
var collapseDiv = $(this).find($("div[id*='${normalizedAppliedFilter}']"));
if (collapseDiv[0] !== undefined) {
$(this).collapse("show");
if(!$(this).is('#panel_additional_collapse')) {
$(this).children().children().find('.applyBtn').removeClass('disabled');
}
}
</c:forEach>
});
......@@ -795,7 +866,6 @@
$("#mapLink").attr("href", $("#mapLink").attr("href").replace(re, "filter=" + encodeURIComponent(JSON.stringify(jsonData))));
}
function renderTableBody(pagedData) {
$("table").find("tbody").remove();
var tbody = $("<tbody/>");
......
......@@ -257,10 +257,39 @@
var collapseDiv = $(this).find($("div[id*='${normalizedAppliedFilter}']"));
if (collapseDiv[0] !== undefined) {
$(this).collapse("show");
if(!$(this).is('#panel_additional_collapse')) {
$(this).children().children().find('.applyBtn').removeClass('disabled');
}
}
</c:forEach>
});
$('body').on('input', '.panel-group .input-group .form-control', function () {
var emptyFilterVal = true;
$.each($(this).parent().parent().find('.filtval'), function () {
emptyFilterVal = false;
});
if($(this).parent().hasClass('js-range-filter')) {
var firstRangeVal = $.trim($(this).val());
var secondRangeVal = '';
$.each($(this).parent().find('input'), function () {
if($.trim($(this).val()) !== firstRangeVal) {
secondRangeVal = $.trim($(this).val());
}
});
if(firstRangeVal === '' && secondRangeVal !== '' || secondRangeVal === '' && firstRangeVal !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
}
} else {
if($.trim($(this).val()) !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
} else if (emptyFilterVal === true) {
$(this).parent().parent().parent().find('.applyBtn').addClass('disabled');
}
}
});
GenesysFilterUtil.registerAutocomplete(".filters", jsonData);
$("body").on("keypress", ".string-type", function (e) {
......@@ -276,12 +305,17 @@
});
$("body").on("click", ".filter-auto", function () {
var filterVal = $(this).parent().parent().find('.string-type').val();
if($.trim(filterVal) !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
}
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
var selectedValue = $(this).parent().parent().parent().find(".like-switcher option:selected").val();
if (selectedValue == "like") {
if (selectedValue === 'like') {
GenesysFilter.filterLike($(this), jsonData, BrowseUtil.i18nFilterMessage);
} else {
GenesysFilter.filterAutocomplete($(this), jsonData);
......@@ -289,6 +323,7 @@
});
$("body").on("change", ".geo-switcher", function () {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
......@@ -296,12 +331,24 @@
});
$("body").on("click", ".filter-list", function () {
var parentEl = $(this).parent().parent().parent();
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
var text = $(this).parent().text();
text = text.substring(0, text.indexOf('('));
GenesysFilter.filterList($(this), jsonData, text);
if(!$(this).is(':checked')) {
var needToApply = true;
$.each($(parentEl).find('.filtval'), function () {
needToApply = false;
});
if(needToApply) {
applyFilters();
}
}
});
$("body").on("click", ".filter-range", function () {
......@@ -312,13 +359,26 @@
});
$("body").on("click", ".filter-bool", function () {
var parentEl = $(this).parent().parent().parent();
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
GenesysFilter.filterBoolean($(this), jsonData, BrowseUtil.i18nFilterMessage);
if(!$(this).is(':checked')) {
var needToApply = true;
$.each($(parentEl).find('.filtval'), function () {
needToApply = false;
});
if(needToApply) {
applyFilters();
}
}
});
$('body').on('click', '.filter-crop', function () {
$(this).parent().parent().find('.applyBtn').removeClass('disabled');
GenesysFilter.filterCrop($(this), jsonData);
});
......@@ -328,13 +388,23 @@
var normKey = GenesysFilter.normKey(key);
var value = $(this).attr("x-key").replace(normKey, "");
if (value == "null") value = null;
if (value === 'null') value = null;
GenesysFilterUtil.removeValue(value, key, jsonData);
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
var needToDisableBtn = true;
$.each($(this).parent().find('.filtval'), function (index) {
if(index > 0) {
needToDisableBtn = false;
}
});
if (needToDisableBtn === true) {
$(this).parent().find('.applyBtn').addClass('disabled');
}
$(this).remove();
$('input[i-key=" + normKey + "][value=" + value + "]').prop('checked', false);
$('input[i-key="' + key + '"][value="' + value + '"]').prop('checked', false);
if (jsonData["crops"] !== undefined && jsonData["crops"].length === 0) {
delete jsonData["crops"];
......@@ -350,7 +420,7 @@
var lastChar = val.substring(len, len-1);
var isDigit = lastChar.match(/^[0-9]+$/) != null;
var date = this.value;
if (key == 8 || key == 46 && lastChar === '-')
if (key === 8 || key === 46 && lastChar === '-')
return;
if (this.value.length > 10) {
this.value = date.substring(0, 10);
......@@ -503,9 +573,11 @@
loadTiles(map);
$("body").on("click", ".applyBtn", function () {
$(this).parent().parent().find("button.filter-auto, button.filter-range").trigger("click");
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
if( !$(this).hasClass('disabled') ) {
$(this).parent().parent().find("button.filter-auto, button.filter-range").trigger("click");
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
}
});
......@@ -611,7 +683,6 @@
var title = $(this).text();
var filter = $(this).attr("x-fil");
var tilesColor = $(this).attr("x-color").substring(1);
var savedFilterObj = JSON.parse(filter);
if ($(this).find("input:checkbox").is(":checked")) {
if (layers[title] == null) {
......
......@@ -160,6 +160,7 @@
var collapseDiv = $(this).find($("div[id*='${normalizedAppliedFilter}']"));
if (collapseDiv[0] !== undefined) {
$(this).collapse("show");
$(this).children().children().find('.applyBtn').removeClass('disabled');
}
</c:forEach>
});
......@@ -188,13 +189,39 @@
}
});
$('body').on('input', '.panel-group .input-group .form-control', function () {
var emptyFilterVal = true;
$.each($(this).parent().parent().find('.filtval'), function () {
emptyFilterVal = false;
});
if($(this).parent().hasClass('js-range-filter')) {
var firstRangeVal = $.trim($(this).val());
var secondRangeVal = '';
$.each($(this).parent().find('input'), function () {
if($.trim($(this).val()) !== firstRangeVal) {
secondRangeVal = $.trim($(this).val());
}
});
if(firstRangeVal === '' && secondRangeVal !== '' || secondRangeVal === '' && firstRangeVal !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
}
} else {
if($.trim($(this).val()) !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
} else if (emptyFilterVal === true) {
$(this).parent().parent().parent().find('.applyBtn').addClass('disabled');
}
}
});
GenesysFilterUtil.registerAutocomplete(".filters", jsonData);
$("body").on("keypress", ".string-type", function (e) {
if (e.keyCode == 13) {
var btn = $(this).parent().find("button");
var selectedValue = $(this).parent().parent().find(".like-switcher option:selected").val();
if (selectedValue == "like") {
if (selectedValue === 'like') {
GenesysFilter.filterLike(btn, jsonData, BrowseUtil.i18nFilterMessage);
} else {
GenesysFilter.filterAutocomplete(btn, jsonData);
......@@ -203,12 +230,17 @@
});
$("body").on("click", ".filter-auto", function () {
var filterVal = $(this).parent().parent().find('.string-type').val();
if($.trim(filterVal) !== '') {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
}
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
var selectedValue = $(this).parent().parent().parent().find(".like-switcher option:selected").val();
if (selectedValue == "like") {
if (selectedValue === 'like') {
GenesysFilter.filterLike($(this), jsonData, BrowseUtil.i18nFilterMessage);
} else {
GenesysFilter.filterAutocomplete($(this), jsonData);
......@@ -216,6 +248,7 @@
});
$("body").on("change", ".geo-switcher", function () {
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
......@@ -223,12 +256,24 @@
});
$("body").on("click", ".filter-list", function () {
var parentEl = $(this).parent().parent().parent();
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
var text = $(this).parent().text();
text = text.substring(0, text.indexOf('('));
GenesysFilter.filterList($(this), jsonData, text);
if(!$(this).is(':checked')) {
var needToApply = true;
$.each($(parentEl).find('.filtval'), function () {
needToApply = false;
});
if(needToApply) {
applyFilters();
}
}
});
$("body").on("click", ".filter-range", function () {
......@@ -239,13 +284,26 @@
});
$("body").on("click", ".filter-bool", function () {
var parentEl = $(this).parent().parent().parent();
$(this).parent().parent().parent().find('.applyBtn').removeClass('disabled');
if (jsonData[$(this).attr("i-key")] === undefined) {
BrowseUtil.enableFilter(this, jsonData);
}
GenesysFilter.filterBoolean($(this), jsonData, BrowseUtil.i18nFilterMessage);
if(!$(this).is(':checked')) {
var needToApply = true;
$.each($(parentEl).find('.filtval'), function () {
needToApply = false;
});
if(needToApply) {
applyFilters();
}
}
});
$('body').on('click', '.filter-crop', function () {
$(this).parent().parent().find('.applyBtn').removeClass('disabled');
GenesysFilter.filterCrop($(this), jsonData);
});
......@@ -260,8 +318,18 @@
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
var needToDisableBtn = true;
$.each($(this).parent().find('.filtval'), function (index) {
if(index > 0) {
needToDisableBtn = false;
}
});
if (needToDisableBtn === true) {
$(this).parent().find('.applyBtn').addClass('disabled');
}
$(this).remove();
$('input[i-key=" + normKey + "][value=" + value + "]').prop('checked', false);
$('input[i-key="' + key + '"][value="' + value + '"]').prop('checked', false);
});
$("body").on("input paste", ".date-input", function (e) {
......@@ -272,7 +340,7 @@
var lastChar = val.substring(len, len-1);
var isDigit = lastChar.match(/^[0-9]+$/) != null;
var date = this.value;
if (key == 8 || key == 46 && lastChar === '-')
if (key === 8 || key === 46 && lastChar === '-')
return;
if (this.value.length > 10) {
this.value = date.substring(0, 10);
......@@ -327,9 +395,11 @@
});
$("body").on("click", ".applyBtn", function () {
$(this).parent().parent().find("button.filter-auto, button.filter-range").trigger("click");
applyFilters();
BrowseUtil.applySuggestions(jsonData, messages);
if( !$(this).hasClass('disabled') ) {
$(this).parent().parent().find("button.filter-auto, button.filter-range").trigger("click");
applyFilters();