[Mapbender-commits] r6079 - trunk/mapbender/http/plugins

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Tue May 4 11:50:55 EDT 2010


Author: kmq
Date: 2010-05-04 11:50:54 -0400 (Tue, 04 May 2010)
New Revision: 6079

Added:
   trunk/mapbender/http/plugins/mb_metadata_layerPreview.js
   trunk/mapbender/http/plugins/mb_metadata_layerPreview.php
   trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js
Log:
layer preview for metadata form

Added: trunk/mapbender/http/plugins/mb_metadata_layerPreview.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerPreview.js	                        (rev 0)
+++ trunk/mapbender/http/plugins/mb_metadata_layerPreview.js	2010-05-04 15:50:54 UTC (rev 6079)
@@ -0,0 +1,112 @@
+
+var $metadataLayerPreview = $(this);
+$metadataLayerPreview.css('border','white');
+
+var MetadataLayerPreviewApi =  function (o){
+	var that = this;
+	options = o || {};
+	options.map = options.map || "";
+	options.buttons = options.buttons || [];
+
+	this.wmsId = null;
+
+
+	// enable layer,. disabling all others
+	this.layer = function(layer){
+		console.log(layer);
+		var layername = layer.layer_name;
+	
+		if(layername === undefined){
+			return 'currentlayername'
+		}
+		$map = $('#'+options.map).mapbender();
+		var wms = $map.wms[$map.wms.length -1];
+		for (var i in wms.objLayer){
+			if(wms.objLayer[i].layer_name == layername){
+				wms.objLayer[i].gui_layer_visible = 1;
+				for (var j = 0;  j < wms.objLayer[i].layer_epsg.length;j++){
+					var epsg = wms.objLayer[i].layer_epsg[j];
+					if($map.epsg == epsg.epsg){
+        				$map.calculateExtent(new Mapbender.Extent(
+							epsg.minx,
+							epsg.miny,
+							epsg.maxx,
+							epsg.maxy
+						));
+					}
+				}
+			}else{
+				wms.objLayer[i].gui_layer_visible = 0;
+			}	
+		}
+
+		$map.restateLayers(wms.wms_id);
+        $map.setMapRequest();
+		
+		
+
+		
+	}
+
+	// set wms, throwing out all others
+	this.wms = function(wmsid){
+		if(wmsid === undefined){
+			return 'currentwmsid'
+		}	
+		
+		$map = $('#'+options.map).mapbender();
+		
+		var wms = $map.wms;
+
+		for(var i = wms.length -1 ; i > 0; i--){
+			delete(wms[i]);
+		}
+		$map.setMapRequest();
+		mod_addWMSById_ajax('',wmsid);
+
+/*		$.get( "../php/mod_createJSObjFromDBByWMS.php",
+			{wms_id: wmsid, noHtml: 1 },
+			 function(data, text, xhr){
+				if(data){
+					// todo, make it work
+					eval(data)
+				}
+			}
+		);
+*/
+		
+	}
+
+	this.init =  function(obj){
+	
+		var $map = $('#' + options.map);
+		$map.css('position','relative');
+		$map.css('display','');
+		$map.css('top','');
+		$map.css('left','');
+		$('img',$map).css('height',$map.css('height'));
+		$('img',$map).css('width', $map.css('width'));
+
+		var buttons = [];
+		for(var i = 0; i < options.buttons.length; i++){
+			buttons[i]  = "#" +options.buttons[i];
+		}	
+
+		var $buttons = $(buttons.join(', '));
+		$buttons.css('position','relative');
+		$buttons.css('display','');
+		$buttons.css('top','');
+		$buttons.css('left','');
+
+		var $target = $('#map');
+
+		$target.append($map);
+		$target.append($buttons);
+
+
+		that.wms(obj);
+	
+	};
+};
+
+$metadataLayerPreview.mapbender(new MetadataLayerPreviewApi(options));

Added: trunk/mapbender/http/plugins/mb_metadata_layerPreview.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerPreview.php	                        (rev 0)
+++ trunk/mapbender/http/plugins/mb_metadata_layerPreview.php	2010-05-04 15:50:54 UTC (rev 6079)
@@ -0,0 +1,70 @@
+<?php
+require_once(dirname(__FILE__)."/../../core/globalSettings.php");
+require_once(dirname(__FILE__)."/../../http/classes/class_connector.php");
+require_once(dirname(__FILE__)."/../../http/classes/class_administration.php");
+
+
+
+define("LAYER_PREVIEW_BASE","../tmp/layerpreviews/");
+$layerPreviewPath = LAYER_PREVIEW_BASE . sha1(uniqid(rand()));
+
+$ajaxResponse  = new AjaxResponse($_REQUEST);
+$mapurl =  $ajaxResponse->getParameter("mapurl");
+$layerName =  $ajaxResponse->getParameter("layerName");
+$wmsId =  $ajaxResponse->getParameter("wmsId");
+
+if(!$mapurl){
+	$ajaxResponse->setSuccess(false);
+	$ajaxResponse->setMessage('mapURL not set');
+	$ajaxResponse->send();
+}
+/*
+if(!$legendurl){
+	$ajaxResponse->setSuccess(false);
+	$ajaxResponse->setMessage('legendURL not set');
+	$ajaxResponse->send();
+}
+
+*/
+
+
+if(!$wmsId){
+	$ajaxResponse->setSuccess(false);
+	$ajaxResponse->setMessage('wmsId not set');
+	$ajaxResponse->send();
+}
+if(!$layerName){
+	$ajaxResponse->setSuccess(false);
+	$ajaxResponse->setMessage('layerName not set');
+	$ajaxResponse->send();
+}
+
+switch($ajaxResponse->getMethod())
+{
+	case "saveLayerPreview":
+		$con = new connector();
+		$admin = new administration();
+		$file = $con->load($mapurl);
+		$admin->saveFile($layerPreviewPath,$file);
+
+		$updateSQL = "UPDATE layer_preview SET layer_map_preview_filename = '$layerPreviewPath' WHERE layer_preview.fkey_layer_id IN (SELECT layer_id FROM layer WHERE fkey_wms_id = $wmsId AND layer_name = '$layerName');";
+		$insertSQL = "INSERT INTO layer_preview (fkey_layer_id, layer_map_preview_filename) SELECT layer_id, '$layerPreviewPath' FROM layer WHERE fkey_wms_id = $wmsId AND layer_name = '$layerName' AND NOT  EXISTS (SELECT fkey_layer_id FROM layer JOIN layer_preview ON fkey_layer_id = layer_id WHERE fkey_wms_id = $wmsId AND layer_name = '$layerName');";
+		$updateResult = db_prep_query($updateSQL,array(), array() );
+		$insertResult = db_prep_query($insertSQL,array(), array() );
+		if(!$insertResult && !$updateResult){
+			new mb_exception("could not insert/update layerPreview into db");
+			$ajaxResponse->setSuccess(false);
+			$ajaxResponse->setMessage("could not insert/Update layerPreview into db: ". pg_last_error());
+		}
+
+	break;
+
+	default:
+		$ajaxResponse->setSuccess(false);
+		$ajaxResponse->setMessage("invalid method");
+}
+
+
+$ajaxResponse->send()
+
+?>

Added: trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js	                        (rev 0)
+++ trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js	2010-05-04 15:50:54 UTC (rev 6079)
@@ -0,0 +1,28 @@
+
+//options.src = options.src || "img/button_gray/wmc_save_on. png";
+
+$(this).click(function () {
+	var map = $('#mapframe1').mapbender();
+	var url = map.wms[0].mapURL;
+	var wmsId = map.wms[0].wms_id;
+	var layerName = map.wms[0].objLayer[0].layer_name;
+	var req = new Mapbender.Ajax.Request({ 
+		url : "../plugins/mb_metadata_layerPreview.php",
+		method: "saveLayerPreview",
+		parameters : { mapurl: url, wmsId: wmsId, layerName: layerName  },
+		callback: function(result, success, message){
+			alert("ok");
+			if(status){
+			}else{
+
+			}
+		}
+	});
+	req.send();
+
+}).mouseover(function () {
+	if (options.src) { this.src = options.src.replace(/_off/, "_over"); }
+}).mouseout(function () {
+	if (options.src) { this.src = options.src; }
+});
+



More information about the Mapbender_commits mailing list