mirror of
https://github.com/farmOS/farmOS.git
synced 2024-02-23 11:37:38 +01:00
Refactor bundle filtering logic to take exposed type filter into account.
This commit is contained in:
parent
4f8583593a
commit
a415eb0714
1 changed files with 25 additions and 10 deletions
|
@ -80,24 +80,39 @@ function farm_ui_map_views_pre_render(ViewExecutable $view) {
|
|||
}
|
||||
}
|
||||
|
||||
// If this is the page_type display, only map this asset type.
|
||||
// Get exposed filters.
|
||||
$exposed_filters = $view->getExposedInput();
|
||||
|
||||
// Determine if we are filtering by bundle.
|
||||
// This may happen via contextual filter on the "page_type" display, or via
|
||||
// the exposed "type" filter.
|
||||
$bundle_filters = [];
|
||||
if ($view->current_display == 'page_type' && !empty($view->args[0])) {
|
||||
$bundle_filters[] = $view->args[0];
|
||||
}
|
||||
elseif (!empty($exposed_filters['type'])) {
|
||||
foreach ($exposed_filters['type'] as $bundle) {
|
||||
$bundle_filter[] = $bundle;
|
||||
}
|
||||
}
|
||||
|
||||
// Don't use a separate group for cluster layers.
|
||||
// Filter by bundle, if desired.
|
||||
if (!empty($bundle_filters)) {
|
||||
$filtered_bundles = [];
|
||||
foreach ($bundle_filters as $bundle) {
|
||||
$filtered_bundles[$bundle] = $asset_bundles[$bundle];
|
||||
}
|
||||
}
|
||||
|
||||
// If we are filtering by bundle, don't use a separate group for cluster
|
||||
// layers.
|
||||
if (!empty($bundle_filters)) {
|
||||
$cluster_group = $layer_group;
|
||||
|
||||
$bundle = $view->args[0];
|
||||
$filtered_bundles = [
|
||||
$bundle => $asset_bundles[$bundle],
|
||||
];
|
||||
}
|
||||
|
||||
// Add an asset type map layer for each filtered bundle.
|
||||
foreach ($filtered_bundles as $bundle => $bundle_info) {
|
||||
|
||||
// Get exposed filters.
|
||||
$exposed_filters = $view->getExposedInput();
|
||||
|
||||
// Add a cluster layer for all asset types.
|
||||
$asset_layers['cluster']['cluster_' . $bundle] = [
|
||||
'group' => $cluster_group,
|
||||
|
|
Loading…
Reference in a new issue