[Mapbender-commits] r6084 - in trunk/mapbender/http: javascripts
plugins
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Wed May 5 11:26:46 EDT 2010
Author: christoph
Date: 2010-05-05 11:26:45 -0400 (Wed, 05 May 2010)
New Revision: 6084
Modified:
trunk/mapbender/http/javascripts/map_obj.js
trunk/mapbender/http/javascripts/mod_addWMSgeneralFunctions.js
trunk/mapbender/http/plugins/mb_metadata_layer.html
trunk/mapbender/http/plugins/mb_metadata_layer.js
trunk/mapbender/http/plugins/mb_metadata_layerPreview.js
trunk/mapbender/http/plugins/mb_metadata_layerPreview.php
trunk/mapbender/http/plugins/mb_metadata_layerTree.js
trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js
trunk/mapbender/http/plugins/mb_metadata_server.php
trunk/mapbender/http/plugins/mb_pane.js
Log:
metadata editor
Modified: trunk/mapbender/http/javascripts/map_obj.js
===================================================================
--- trunk/mapbender/http/javascripts/map_obj.js 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/javascripts/map_obj.js 2010-05-05 15:26:45 UTC (rev 6084)
@@ -110,7 +110,10 @@
* @type integer
*/
this.getWidth = function(){
- return $(this.getDomElement()).innerWidth();
+ var w = $(this.getDomElement()).innerWidth();
+ if (w !== 0) {
+ return w;
+ }
return parseInt(this.width, 10);
};
@@ -164,7 +167,10 @@
* @type integer
*/
this.getHeight = function(){
- return $(this.getDomElement()).innerHeight();
+ var h = $(this.getDomElement()).innerHeight();
+ if (h !== 0) {
+ return h;
+ }
return parseInt(this.height, 10);
};
Modified: trunk/mapbender/http/javascripts/mod_addWMSgeneralFunctions.js
===================================================================
--- trunk/mapbender/http/javascripts/mod_addWMSgeneralFunctions.js 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/javascripts/mod_addWMSgeneralFunctions.js 2010-05-05 15:26:45 UTC (rev 6084)
@@ -102,6 +102,28 @@
if (newWmsCount > oldWmsCount) {
success = true;
mb_mapObjaddWMS('mapframe1');
+ var ind = getMapObjIndexByName('mapframe1');
+ var map = mb_mapObj[ind];
+ var lastwms = map.wms[map.wms.length - 1];
+ if (typeof param.options.zoomToExtent === "number" && param.options.zoomToExtent === 1) {
+ // zoom to bbox
+ var bbox_minx, bbox_miny, bbox_maxx, bbox_maxy;
+ for (var i = 0; i < lastwms.gui_epsg.length; i++) {
+ if (map.epsg == lastwms.gui_epsg[i]) {
+ bbox_minx = parseFloat(lastwms.gui_minx[i]);
+ bbox_miny = parseFloat(lastwms.gui_miny[i]);
+ bbox_maxx = parseFloat(lastwms.gui_maxx[i]);
+ bbox_maxy = parseFloat(lastwms.gui_maxy[i]);
+ if (bbox_minx === null || bbox_miny === null || bbox_maxx === null || bbox_maxy === null) {
+ continue;
+ }
+
+ map.calculateExtent(new Mapbender.Extent(bbox_minx, bbox_miny, bbox_maxx, bbox_maxy));
+ map.setMapRequest();
+ break;
+ }
+ }
+ }
}
}
if (typeof param === "object"
Modified: trunk/mapbender/http/plugins/mb_metadata_layer.html
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layer.html 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_metadata_layer.html 2010-05-05 15:26:45 UTC (rev 6084)
@@ -1,11 +1,12 @@
<h1>Layer Level Metadata:</h1>
-<div id="choose">
+<div id="choose" style="height:100%">
choose layer
</div>
<div id="layer">
<fieldset class="">
+ <legend>Layer metadata</legend>
<p>
<label for="layer_id">Number of Layer (Registry):</label>
<span class="metadata_span"></span>
@@ -56,9 +57,12 @@
</p>
</fieldset>
</div>
-
-<div id="map">
- map
+<div>
+ <fieldset class="">
+ <legend>Preview</legend>
+ <div id="map">
+ </div>
+ </fieldset>
</div>
<div id="classification">
@@ -84,16 +88,3 @@
</p>
</fieldset>
</div>
-
-<div id="save">
- <fieldset class="">
- <p>
- <label>Preview Metadata</label>
- <input class="submit" type="button" value="Submit"/>
- </p>
- <p>
- <label>Save Metadata</label>
- <input class="submit" type="button" value="Submit"/>
- </p>
- </fieldset>
-</div>
Modified: trunk/mapbender/http/plugins/mb_metadata_layer.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layer.js 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_metadata_layer.js 2010-05-05 15:26:45 UTC (rev 6084)
@@ -53,25 +53,28 @@
this.fillForm = function (obj) {
// layer data
- console.log(obj);
-
for (var i in obj) {
$("#" + i).val(obj[i]);
}
// layer keywords
var req = new Mapbender.Ajax.Request({
url: "../plugins/mb_metadata_server.php",
- method: "getCategories",
+ method: "getLayerKeywords",
parameters: {
- "id": obj
+ "id": obj.layer_id
},
callback: function(o, r, m) {
if (!r) {
return;
}
- initialized($.extend({
- wmsId: obj
- }, o));
+ for (var i in o) {
+ var $node = $("#" + i).val("");
+ if ($node.size() > 0) {
+ for (var j = 0; j < o[i].length; j++) {
+ $node.val($node.val() !== "" ? $node.val() + ", " + o[i][j][1] : o[i][j][1]);
+ }
+ }
+ }
}
});
req.send();
@@ -79,20 +82,26 @@
// layer categories
var req = new Mapbender.Ajax.Request({
url: "../plugins/mb_metadata_server.php",
- method: "getCategories",
+ method: "getLayerCategories",
parameters: {
- "id": obj
+ "id": obj.layer_id
},
callback: function(o, r, m) {
if (!r) {
return;
}
- initialized($.extend({
- wmsId: obj
- }, o));
+ for (var i in o) {
+ var $node = $("#" + i);
+ if ($node.size() > 0) {
+ $node.find("option").removeAttr("selected");
+ for (var j = 0; j < o[i].length; j++) {
+ $node.find("option[value="+ o[i][j] +"]").attr("selected", "selected");
+ }
+ }
+ }
}
});
- req.send();
+ req.send();
};
Modified: trunk/mapbender/http/plugins/mb_metadata_layerPreview.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerPreview.js 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_metadata_layerPreview.js 2010-05-05 15:26:45 UTC (rev 6084)
@@ -3,6 +3,7 @@
$metadataLayerPreview.css('border','white');
var MetadataLayerPreviewApi = function (o){
+
var that = this;
options = o || {};
options.map = options.map || "";
@@ -10,14 +11,12 @@
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'
+ return 'currentlayername';
}
$map = $('#'+options.map).mapbender();
var wms = $map.wms[$map.wms.length -1];
@@ -35,77 +34,64 @@
));
}
}
- }else{
+ }
+ 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'
+ 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)
- }
+ $('#' + options.map).each(function () {
+ var map = $(this).mapbender();
+ if (!map) {
+ return;
}
- );
-*/
-
- }
+ var wms = map.wms;
+ for(var i = wms.length -1 ; i > 0; i--){
+ delete wms[i];
+ wms.length--;
+ }
+ mod_addWMSById_ajax('', wmsid, {
+ zoomToExtent: 1
+ });
+ });
+ };
- this.init = function(obj){
+ 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);
+ if (this.init.done !== true) {
+ var $map = $('#' + options.map);
+ $map.css('position','relative');
+ $map.css('display','');
+ $map.css('top','');
+ $map.css('left','');
+ $('img',$map).css({
+ 'height': $map.css('height'),
+ 'width': $map.css('width')
+ });
+ var $target = $('#map');
+ $target.append($map);
+
+ $(options.buttons).each(function () {
+ $("#" + this).css({
+ "position": "relative",
+ "display":"",
+ "top":"",
+ "left":""
+ }).appendTo($target);
+ });
+ this.init.done = true;
+ }
+ that.wms(obj);
};
};
Modified: trunk/mapbender/http/plugins/mb_metadata_layerPreview.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerPreview.php 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_metadata_layerPreview.php 2010-05-05 15:26:45 UTC (rev 6084)
@@ -3,14 +3,16 @@
require_once(dirname(__FILE__)."/../../http/classes/class_connector.php");
require_once(dirname(__FILE__)."/../../http/classes/class_administration.php");
+//define("LAYER_PREVIEW_BASE","../tmp/layerpreviews/");
+define("LAYER_PREVIEW_BASE","../tmp/");
+$layerPreviewMapFileName = LAYER_PREVIEW_BASE . sha1(uniqid(rand()));
+$layerPreviewLegendFileName = LAYER_PREVIEW_BASE . sha1(uniqid(rand()));
-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");
+$legendUrl = $ajaxResponse->getParameter("legendUrl");
$wmsId = $ajaxResponse->getParameter("wmsId");
if(!$mapurl){
@@ -18,53 +20,96 @@
$ajaxResponse->setMessage('mapURL not set');
$ajaxResponse->send();
}
+
/*
if(!$legendurl){
$ajaxResponse->setSuccess(false);
$ajaxResponse->setMessage('legendURL not set');
$ajaxResponse->send();
}
-
*/
-
-
-if(!$wmsId){
+if (!$wmsId) {
$ajaxResponse->setSuccess(false);
$ajaxResponse->setMessage('wmsId not set');
$ajaxResponse->send();
}
-if(!$layerName){
+if (!$layerName) {
$ajaxResponse->setSuccess(false);
$ajaxResponse->setMessage('layerName not set');
$ajaxResponse->send();
}
-switch($ajaxResponse->getMethod())
-{
+switch ($ajaxResponse->getMethod()) {
case "saveLayerPreview":
$con = new connector();
$admin = new administration();
- $file = $con->load($mapurl);
- $admin->saveFile($layerPreviewPath,$file);
+ $mapImage = $con->load($mapurl);
+ if (!$mapImage) {
+ $ajaxResponse->setSuccess(false);
+ $ajaxResponse->setMessage('Could not save preview: Unable to load map image.');
+ $ajaxResponse->send();
+ }
+ $admin->saveFile($layerPreviewMapFileName,$mapImage);
- $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){
+ if ($legendUrl) {
+ $legendImage = $con->load($legendUrl);
+ if (!$legendImage) {
+ $ajaxResponse->setSuccess(false);
+ $ajaxResponse->setMessage('Could not save preview: Unable to load map image.');
+ $ajaxResponse->send();
+ }
+ $admin->saveFile($layerPreviewLegendFileName,$legendImage);
+ }
+ else {
+ $legendUrl = null;
+ }
+
+ $updateSQL = <<<SQL
+
+UPDATE layer_preview SET
+ layer_map_preview_filename = $1,
+ layer_legend_preview_filename = $2
+WHERE layer_preview.fkey_layer_id IN (
+ SELECT layer_id FROM layer
+ WHERE fkey_wms_id = $wmsId AND layer_name = $3
+)
+SQL;
+ $insertSQL = <<<SQL
+
+INSERT INTO layer_preview (
+ fkey_layer_id,
+ layer_map_preview_filename,
+ layer_legend_preview_filename
+)
+ SELECT layer_id, $1, $2
+ FROM layer
+ WHERE fkey_wms_id = $wmsId AND layer_name = $3
+ 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 = $4
+ )
+SQL;
+ $updateResult = db_prep_query(
+ $updateSQL,
+ array($layerPreviewMapFileName, $layerPreviewLegendFileName, $layerName),
+ array("s", "s", "s")
+ );
+ $insertResult = db_prep_query(
+ $insertSQL,
+ array($layerPreviewMapFileName, $layerPreviewLegendFileName, $layerName, $layerName),
+ array("s", "s", "s", "s")
+ );
+ 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;
- break;
-
default:
$ajaxResponse->setSuccess(false);
$ajaxResponse->setMessage("invalid method");
}
-
-
-$ajaxResponse->send()
-
-?>
+$ajaxResponse->send();
+?>
\ No newline at end of file
Modified: trunk/mapbender/http/plugins/mb_metadata_layerTree.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerTree.js 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_metadata_layerTree.js 2010-05-05 15:26:45 UTC (rev 6084)
@@ -97,12 +97,14 @@
$("#" + instanceId).tree({
ui: {
- theme_path: "../extensions/jsTree.v.0.9.9a2/themes/checkbox/style.css",
- theme_name: "checkbox"
+// theme_path: "../extensions/jsTree.v.0.9.9a2/themes/checkbox/style.css",
+// theme_name: "checkbox"
+ theme_path: "../extensions/jsTree.v.0.9.9a2/themes/default/style.css",
+ theme_name: "default"
},
plugins: {
- checkbox: {
- }
+// checkbox: {
+// }
},
data : {
type : "json",
Modified: trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_metadata_saveLayerPreview.js 2010-05-05 15:26:45 UTC (rev 6084)
@@ -1,28 +1,72 @@
//options.src = options.src || "img/button_gray/wmc_save_on. png";
+var $saveLayerPreview = $(this);
-$(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{
+var SaveLayerPreviewApi = function () {
+ var that = this;
+ var layer;
+ this.setLayer = function (l) {
+ layer = l;
+ };
+ this.save = function () {
+ options.$target.each(function () {
+ var map = $(this).mapbender();
+ var wms = map.wms[map.wms.length-1];
+ var url = wms.mapURL;
+ var wmsId = wms.wms_id;
+ if (!layer || !layer.layer_name) {
+ return;
}
- }
- });
- req.send();
+ var layerName = layer.layer_name;
+
+ var layerParent = wms.checkLayerParentByLayerName(layerName);
+ var layerTitle = wms.getTitleByLayerName(layerName);
+ var layerStyle = wms.getCurrentStyleByLayerName(layerName);
+ var legendUrl = false;
+ if (layerStyle === false) {
+ legendUrl = wms.getLegendUrlByGuiLayerStyle(layerName,"default");
+ }
+ else {
+ legendUrl = wms.getLegendUrlByGuiLayerStyle(layerName,layerStyle);
+ }
+
+ var req = new Mapbender.Ajax.Request({
+ url : "../plugins/mb_metadata_layerPreview.php",
+ method: "saveLayerPreview",
+ parameters : {
+ mapurl: url,
+ wmsId: wmsId,
+ legendUrl: legendUrl,
+ layerName: layerName
+ },
+ callback: function(result, success, message){
+ alert("ok");
+ if(status){
+ }
+ else{
+ }
+ }
+ });
+ req.send();
+
+ });
+ };
+
+ this.init = function () {
+ $saveLayerPreview.click(function () {
+ that.save();
+
+ }).mouseover(function () {
+ if (options.src) { this.src = options.src.replace(/_off/, "_over"); }
+ }).mouseout(function () {
+ if (options.src) { this.src = options.src; }
+ });
+
+ };
+
+ this.init();
+};
-}).mouseover(function () {
- if (options.src) { this.src = options.src.replace(/_off/, "_over"); }
-}).mouseout(function () {
- if (options.src) { this.src = options.src; }
-});
+$saveLayerPreview.mapbender(new SaveLayerPreviewApi());
Modified: trunk/mapbender/http/plugins/mb_metadata_server.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_server.php 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_metadata_server.php 2010-05-05 15:26:45 UTC (rev 6084)
@@ -1,6 +1,7 @@
<?php
require_once dirname(__FILE__) . "/../../core/globalSettings.php";
require_once dirname(__FILE__) . "/../classes/class_user.php";
+require_once dirname(__FILE__) . "/../classes/class_wms.php";
$ajaxResponse = new AjaxResponse($_POST);
@@ -152,17 +153,17 @@
$sql = <<<SQL
-SELECT keyword FROM keyword, layer_keyword
+SELECT keyword, fkey_keyword_id FROM keyword, layer_keyword
WHERE keyword_id = fkey_keyword_id AND fkey_layer_id = $layerId
SQL;
$res = db_query($sql);
- $resultObj = array();
+ $resultObj = array(
+ "fkey_keyword_id" => array()
+ );
while ($row = db_fetch_assoc($res)) {
- foreach ($row as $key => $value) {
- $resultObj["keyword:".$key] = $value;
- }
+ $resultObj["fkey_keyword_id"][]= array($row["fkey_keyword_id"], $row["keyword"]);
}
$ajaxResponse->setResult($resultObj);
$ajaxResponse->setSuccess(true);
@@ -175,7 +176,7 @@
$resultObj = array(
"fkey_md_topic_category_id" => array(),
"fkey_inspire_category_id" => array(),
- "fkey_custom_category_id" => array(),
+ "fkey_custom_category_id" => array()
);
$sql = <<<SQL
SELECT fkey_md_topic_category_id
@@ -184,7 +185,7 @@
SQL;
$res = db_query($sql);
while ($row = db_fetch_assoc($res)) {
- $resultObj["fkey_md_topic_category_id"][]= $row;
+ $resultObj["fkey_md_topic_category_id"][]= $row["fkey_md_topic_category_id"];
}
$sql = <<<SQL
@@ -194,7 +195,7 @@
SQL;
$res = db_query($sql);
while ($row = db_fetch_assoc($res)) {
- $resultObj["fkey_inspire_category_id"][]= $row;
+ $resultObj["fkey_inspire_category_id"][]= $row["fkey_inspire_category_id"];
}
$sql = <<<SQL
@@ -204,7 +205,7 @@
SQL;
$res = db_query($sql);
while ($row = db_fetch_assoc($res)) {
- $resultObj["fkey_custom_category_id"][]= $row;
+ $resultObj["fkey_custom_category_id"][]= $row["fkey_custom_category_id"];
}
$ajaxResponse->setResult($resultObj);
Modified: trunk/mapbender/http/plugins/mb_pane.js
===================================================================
--- trunk/mapbender/http/plugins/mb_pane.js 2010-05-05 11:06:23 UTC (rev 6083)
+++ trunk/mapbender/http/plugins/mb_pane.js 2010-05-05 15:26:45 UTC (rev 6084)
@@ -26,7 +26,6 @@
$(element).mapbender("setDimensions", $(element).innerWidth(), $(element).innerHeight());
}
catch (e) {
-// console.log(e);
}
}
}, o.layoutOptions);
More information about the Mapbender_commits
mailing list