[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