From f9df30f70bbe49f5d757c55c714f5fd1f6c2fd19 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 20 Sep 2016 16:09:21 +0200 Subject: [PATCH] Append turbo-carto metadata per layer --- lib/cartodb/controllers/map.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/cartodb/controllers/map.js b/lib/cartodb/controllers/map.js index 9b1b3607..552eeaca 100644 --- a/lib/cartodb/controllers/map.js +++ b/lib/cartodb/controllers/map.js @@ -171,6 +171,7 @@ MapController.prototype.create = function(req, res, prepareConfigFn) { var analysesResults = context.analysesResults || []; addDataviewsAndWidgetsUrls(req.context.user, layergroup, mapConfig.obj()); addAnalysesMetadata(req.context.user, layergroup, analysesResults, true); + addContextMetadata(layergroup, mapConfig.obj(), context); res.set('X-Layergroup-Id', layergroup.layergroupid); self.send(req, res, layergroup, 200); } @@ -178,6 +179,15 @@ MapController.prototype.create = function(req, res, prepareConfigFn) { ); }; +function addContextMetadata(layergroup, mapConfig, context) { + if (layergroup.metadata && Array.isArray(layergroup.metadata.layers) && Array.isArray(mapConfig.layers)) { + layergroup.metadata.layers = layergroup.metadata.layers.map(function(layer, layerIndex) { + layer.meta.cartocss_meta = context.turboCarto.layers[layerIndex]; + return layer; + }); + } +} + MapController.prototype.instantiateTemplate = function(req, res, prepareParamsFn) { var self = this; @@ -229,8 +239,10 @@ MapController.prototype.instantiateTemplate = function(req, res, prepareParamsFn var templateHash = self.templateMaps.fingerPrint(mapConfigProvider.template).substring(0, 8); layergroup.layergroupid = cdbuser + '@' + templateHash + '@' + layergroup.layergroupid; - addDataviewsAndWidgetsUrls(cdbuser, layergroup, mapConfig.obj()); + var _mapConfig = mapConfig.obj(); + addDataviewsAndWidgetsUrls(cdbuser, layergroup, _mapConfig); addAnalysesMetadata(cdbuser, layergroup, mapConfigProvider.analysesResults); + addContextMetadata(layergroup, _mapConfig, mapConfigProvider.context); res.set('X-Layergroup-Id', layergroup.layergroupid); self.surrogateKeysCache.tag(res, new NamedMapsCacheEntry(cdbuser, mapConfigProvider.getTemplateName()));