Skip to content
Snippets Groups Projects

Draft: Issue #3052574: Facets with AJAX not working in most of situations

8 files
+ 39
118
Compare changes
  • Side-by-side
  • Inline
Files
8
+ 8
47
@@ -94,15 +94,11 @@
updateFacetsView(href, current_dom_id, view_path);
};
}
else if (facetId == 'facets_summary_ajax_summary' || facetId == 'facets_summary_ajax_summary_count') {
if (updateFacetsSummaryBlock()) {
$(once(facetId, '[data-drupal-facets-summary-id=' + facetSettings.facets_summary_id + '] ul li')).click(function (e) {
e.preventDefault();
var facetLink = $(this).find('a');
updateFacetsView(facetLink.attr('href'), current_dom_id, view_path);
});
}
else if (facetSettings.hasOwnProperty('facets_summary_id')) {
$(once(facetId, '[data-facets-plugin-id="facets_summary_block:' + facetId + '"]')).on('click', 'a', function(e) {
e.preventDefault();
updateFacetsView($(this).attr('href'), current_dom_id, view_path);
});
}
// Update view on facet item click.
else {
@@ -203,51 +199,16 @@
}
};
// Update facets summary block.
if (updateFacetsSummaryBlock()) {
facet_settings.submit.update_summary_block = true;
facet_settings.submit.facet_summary_plugin_ids = {};
let summary_selector = '[data-drupal-facets-summary-id=' + settings.facets_views_ajax.facets_summary_ajax_summary.facets_summary_id + ']';
if (settings.facets_views_ajax.facets_summary_ajax_summary_count !== undefined) {
summary_selector += ', [data-drupal-facets-summary-id=' + settings.facets_views_ajax.facets_summary_ajax_summary_count.facets_summary_id + ']';
}
$(summary_selector).each(function (index, summaryWrapper) {
let summaryPluginId = $(summaryWrapper).attr('data-drupal-facets-summary-plugin-id');
let summaryPluginIdWrapper = $(summaryWrapper).attr('id');
facet_settings.submit.facet_summary_plugin_ids[summaryPluginIdWrapper] = summaryPluginId;
});
}
Drupal.ajax(facet_settings).execute();
};
// Helper function to determine if we should update the summary block.
// Returns true or false.
var updateFacetsSummaryBlock = function () {
var settings = drupalSettings;
var update_summary = false;
if (settings.facets_views_ajax.facets_summary_ajax_summary || settings.facets_views_ajax.facets_summary_ajax_summary_count) {
update_summary = true;
}
return update_summary;
};
// Helper function, return facet blocks.
var facetsBlocks = function () {
// Get all ajax facets blocks from the current page.
var facets_blocks = {};
var facets_blocks = [];
$('.block-facets-ajax').each(function (index) {
var block_id_start = 'js-facet-block-id-';
var block_id = $.map($(this).attr('class').split(' '), function (v, i) {
if (v.indexOf(block_id_start) > -1) {
return v.slice(block_id_start.length, v.length);
}
}).join();
var block_selector = $(this).attr('id');
facets_blocks[block_selector] = block_id;
$('[data-facets-plugin-id]').each(function () {
facets_blocks.push($(this).attr('data-facets-plugin-id'));
});
return facets_blocks;
Loading