Add danger class to filters input if no colls are selected in advanced search

This commit is contained in:
Nicolas Le Goff
2013-11-05 15:24:39 +01:00
parent 311f2557d3
commit ad4213684e

View File

@@ -193,7 +193,7 @@ function checkFilters(save)
var adv_box = $('form.phrasea_query .adv_options'); var adv_box = $('form.phrasea_query .adv_options');
var container = $("#sbasfiltercont"); var container = $("#sbasfiltercont");
var fieldsSelect = $('.field_filter select', container); var fieldsSelect = $('.field_filter select', container);
var filters = $('.field_filter, .status_filter, .date_filter', adv_box);
var scroll = fieldsSelect.scrollTop(); var scroll = fieldsSelect.scrollTop();
var switches = $('.field_switch', container); var switches = $('.field_switch', container);
@@ -208,40 +208,49 @@ function checkFilters(save)
$('input.field_switch:checkbox', container).parent().hide(); $('input.field_switch:checkbox', container).parent().hide();
$('.field_filter, .status_filter, .date_filter', adv_box).removeClass('danger'); filters.removeClass('danger');
var nbSelectedColls = 0;
$.each($('.sbascont', adv_box), function(){ $.each($('.sbascont', adv_box), function(){
var sbas_id = $(this).parent().find('input[name="reference"]').val(); var $this = $(this);
var sbas_id = $this.parent().find('input[name="reference"]').val();
search.bases[sbas_id] = new Array(); search.bases[sbas_id] = new Array();
var bas_ckbox = $(this).find('.checkbas'); var bas_ckbox = $this.find('.checkbas');
if(bas_ckbox.filter(':not(:checked)').length > 0) if(bas_ckbox.filter(':not(:checked)').length > 0) {
{
danger = 'medium'; danger = 'medium';
} }
var checked = bas_ckbox.filter(':checked'); var checked = bas_ckbox.filter(':checked');
if(checked.length>0) if(checked.length>0) {
{
var sbas_fields = $('.field_' + sbas_id, container).removeClass("hidden"); var sbas_fields = $('.field_' + sbas_id, container).removeClass("hidden");
sbas_fields.filter('option').show().filter('.was').removeClass('was').attr('selected', 'selected').selected(true); sbas_fields.filter('option').show().filter('.was').removeClass('was').attr('selected', 'selected').selected(true);
sbas_fields.filter(':checkbox').parent().show().find('.was').attr('checked','checked').removeClass('was'); sbas_fields.filter(':checkbox').parent().show().find('.was').attr('checked','checked').removeClass('was');
} }
checked.each(function(){ checked.each(function(){
search.bases[sbas_id].push($(this).val()); nbSelectedColls++;
search.bases[sbas_id].push($this.val());
}); });
}); });
if (nbSelectedColls === 0) {
filters.addClass("danger");
}
search.fields = (search.fields = fieldsSelect.val()) !== null ? search.fields : new Array; search.fields = (search.fields = fieldsSelect.val()) !== null ? search.fields : new Array;
var reset_field = false; var reset_field = false;
$.each(search.fields, function(i,n){ $.each(search.fields, function(i,n){
if(n === 'phraseanet--all--fields') if(n === 'phraseanet--all--fields')
reset_field = true; reset_field = true;
}); });
if(reset_field) if(reset_field)
{ {
$('select[name="fields[]"] option:selected', container).removeAttr('selected').selected(false); $('select[name="fields[]"] option:selected', container).removeAttr('selected').selected(false);