From 1bed8623a2b56670fd3597f7b98e7a413061a293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Wed, 31 Aug 2016 20:40:55 +0200 Subject: [PATCH] Overwrites rendererparams instead of layergroup in mapconfig --- lib/cartodb/controllers/named_maps.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/cartodb/controllers/named_maps.js b/lib/cartodb/controllers/named_maps.js index 41b9584e..590c3821 100644 --- a/lib/cartodb/controllers/named_maps.js +++ b/lib/cartodb/controllers/named_maps.js @@ -201,7 +201,6 @@ function numMapper(n) { } function decorateNamedMapProviderWithLayerVisibility (mamedMapProvider) { - var MapConfig = require('windshaft').model.MapConfig; var orginalGetMapConfig = mamedMapProvider.getMapConfig.bind(mamedMapProvider); mamedMapProvider.getMapConfig = function (callback) { @@ -220,15 +219,20 @@ function decorateNamedMapProviderWithLayerVisibility (mamedMapProvider) { return callback(err); } - var rawMapConfig = JSON.parse(JSON.stringify(mapConfig.obj())); + var layerVisibilityFilter = []; - rawMapConfig.layers = rawMapConfig.layers.filter(function (layer, index) { - return previewLayers[''+index] !== false && previewLayers[layer.id] !== false; + mapConfig.getLayers().forEach(function (layer, index) { + if (previewLayers[''+index] !== false && previewLayers[layer.id] !== false) { + layerVisibilityFilter.push(''+index); + } }); - var mapConfigWithVisibleLayers = new MapConfig.create(rawMapConfig); + if (layerVisibilityFilter.length) { + // overwrite 'all' default filter + rendererParams.layer = layerVisibilityFilter.join(','); + } - callback(null, mapConfigWithVisibleLayers, rendererParams, context); + callback(null, mapConfig, rendererParams, context); }); }); };