42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
var oldToggleFilter = window.toggleFilter;
|
|
|
|
window.toggleFilter = function(field) {
|
|
oldToggleFilter(field);
|
|
return transform_to_select2(field);
|
|
}
|
|
|
|
function filterFormatState (opt) {
|
|
var $opt = $('<span>' + opt.avatar + ' ' + opt.text + '</span>');
|
|
return $opt;
|
|
};
|
|
|
|
function transform_to_select2(field){
|
|
field_format = availableFilters[field]['field_format'];
|
|
field = field.replace('.', '_');
|
|
initialized_select2 = $('#tr_' + field + ' .values .select2');
|
|
if (initialized_select2.size() == 0 && $.inArray(field_format, field_formats) >= 0) {
|
|
$('#tr_' + field + ' .toggle-multiselect').hide();
|
|
$('#tr_' + field + ' .values .value').attr('multiple', 'multiple');
|
|
$('#tr_' + field + ' .values .value').select2({
|
|
ajax: {
|
|
url: contact_filter_urls[field_format],
|
|
dataType: 'json',
|
|
delay: 250,
|
|
data: function (params) {
|
|
return { q: params.term };
|
|
},
|
|
processResults: function (data, params) {
|
|
return { results: data };
|
|
},
|
|
cache: true
|
|
},
|
|
placeholder: ' ',
|
|
minimumInputLength: 1,
|
|
width: '60%',
|
|
templateResult: filterFormatState
|
|
}).on('select2:open', function (e) {
|
|
$(this).parent('span').find('.select2-search__field').val(' ').trigger($.Event('input', { which: 13 })).val('');
|
|
});
|
|
}
|
|
}
|