[Mapbender-commits] r9070 - in trunk/mapbender: http/plugins resources/db/pgsql/UTF-8/update

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Sep 11 02:12:44 PDT 2014


Author: verenadiewald
Date: 2014-09-11 02:12:44 -0700 (Thu, 11 Sep 2014)
New Revision: 9070

Modified:
   trunk/mapbender/http/plugins/mb_print.php
   trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql
Log:
added configuration option "reverseLegend" for printPDF

Modified: trunk/mapbender/http/plugins/mb_print.php
===================================================================
--- trunk/mapbender/http/plugins/mb_print.php	2014-09-10 16:06:40 UTC (rev 9069)
+++ trunk/mapbender/http/plugins/mb_print.php	2014-09-11 09:12:44 UTC (rev 9070)
@@ -473,7 +473,46 @@
 		scale = parseInt(scale, 10);
 		
 		var legendUrlArray = [];
+		var legendUrlArrayReverse = [];
 		f.overview_url.value = '';
+		
+		if(options.reverseLegend == 'true') {
+			for(var i=mb_mapObj[ind].wms.length-1; i>=0; i--){
+				var currentWms = mb_mapObj[ind].wms[i];
+				if(mb_mapObj[ind].wms[i].gui_wms_visible > 0){
+					if (mb_mapObj[ind].wms[i].mapURL != false && mb_mapObj[ind].wms[i].mapURL != 'false' && mb_mapObj[ind].wms[i].mapURL != ''){   
+						var wmsLegendObj = [];
+						
+						var layers = currentWms.getLayers(mb_mapObj[ind], scale);
+						for (var j = 0; j < layers.length; j++) {
+							var currentLayer = currentWms.getLayerByLayerName(layers[j]);
+							// TODO: add only visible layers
+							var isVisible = (currentLayer.gui_layer_visible === 1);
+							var hasNoChildren = (!currentLayer.has_childs);
+							if (isVisible && hasNoChildren){
+								var layerLegendObj = {};
+								layerLegendObj.name = currentLayer.layer_name;
+								layerLegendObj.title = currentWms.getTitleByLayerName(currentLayer.layer_name);
+								var layerStyle = currentWms.getCurrentStyleByLayerName(currentLayer.layer_name);
+								if (layerStyle === false || layerStyle === "") {
+									layerStyle = "default";
+								}
+								layerLegendObj.legendUrl = currentWms.getLegendUrlByGuiLayerStyle(currentLayer.layer_name, layerStyle);
+								if (layerLegendObj.legendUrl !== false) {
+									wmsLegendObj.push(layerLegendObj);
+								}
+							}
+						}
+						if (wmsLegendObj.length > 0) {
+							var tmpObj = {};
+							tmpObj[currentWms.wms_currentTitle] = wmsLegendObj;
+							legendUrlArrayReverse.push(tmpObj);
+						}
+					}
+				}
+			}
+		}
+		
 		for(var i=0; i < mb_mapObj[ind].wms.length; i++){
 			var currentWms = mb_mapObj[ind].wms[i];
 			if(mb_mapObj[ind].wms[i].gui_wms_visible > 0){
@@ -515,12 +554,17 @@
 					if (wmsLegendObj.length > 0) {
 						var tmpObj = {};
 						tmpObj[currentWms.wms_currentTitle] = wmsLegendObj;
-						legendUrlArray.push(tmpObj);
-					
+						if(options.reverseLegend == 'true') {
+							legendUrlArray = legendUrlArrayReverse; 
+						}
+						else {
+							legendUrlArray.push(tmpObj);
+						}
 					}
 				}
 			}
 		}
+	
 		var legendUrlArrayJson =  $.toJSON(legendUrlArray);
 		updateFormField(formData, "legend_url", legendUrlArrayJson);
 		updateFormField(formData, "map_url", f.map_url.value);

Modified: trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql
===================================================================
--- trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql	2014-09-10 16:06:40 UTC (rev 9069)
+++ trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql	2014-09-11 09:12:44 UTC (rev 9070)
@@ -525,3 +525,12 @@
 ON mb_proxy_log
 USING btree
 (proxy_log_timestamp);
+
+-- printPDF: new element_var reverseLegend for element printPDF
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+SELECT gui_element.fkey_gui_id, 'printPDF', 'reverseLegend', 'false', 'define whether the legend should be printed in reverse order' ,'var' 
+from gui_element
+WHERE
+gui_element.e_id = 'printPDF' AND
+gui_element.fkey_gui_id
+NOT IN (SELECT fkey_gui_id FROM gui_element_vars WHERE fkey_e_id = 'printPDF' AND var_name = 'reverseLegend');



More information about the Mapbender_commits mailing list