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

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Apr 26 10:09:01 EDT 2012


Author: armin11
Date: 2012-04-26 07:09:01 -0700 (Thu, 26 Apr 2012)
New Revision: 8329

Modified:
   trunk/mapbender/http/classes/class_wfsToDb.php
   trunk/mapbender/http/classes/class_wfs_1_1_factory.php
   trunk/mapbender/http/plugins/mb_metadata_featuretype.js
   trunk/mapbender/http/plugins/mb_metadata_featuretype.php
   trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js
   trunk/mapbender/http/plugins/mb_metadata_layer.js
   trunk/mapbender/http/plugins/mb_metadata_layerTree.js
   trunk/mapbender/http/plugins/mb_metadata_wfs_server.php
   trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql
Log:
Initial things to add service - data - metadata coupling to wfs to support inspire download services.

Modified: trunk/mapbender/http/classes/class_wfsToDb.php
===================================================================
--- trunk/mapbender/http/classes/class_wfsToDb.php	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/classes/class_wfsToDb.php	2012-04-26 14:09:01 UTC (rev 8329)
@@ -50,8 +50,13 @@
 		$sql = "INSERT INTO wfs (wfs_version, wfs_name, wfs_title, wfs_abstract, ";
 		$sql .= "wfs_getcapabilities, wfs_getcapabilities_doc, wfs_upload_url, ";
 		$sql .= "wfs_describefeaturetype, wfs_getfeature, wfs_transaction, fees, ";
-		$sql .= "accessconstraints, wfs_owner, wfs_timestamp, uuid) ";
-		$sql .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14,$15)";
+		$sql .= "accessconstraints, ";
+		$sql .= "individualname , positionname , providername , ";
+		$sql .= "city , deliverypoint , administrativearea , ";
+		$sql .= "postalcode , voice , facsimile , ";
+		$sql .= "electronicmailaddress , country , ";
+ 		$sql .= "wfs_owner, wfs_timestamp, wfs_timestamp_create, uuid) ";
+		$sql .= "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14 ,$15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27)";
 	
 		$v = array(
 			$aWfs->getVersion(), 
@@ -66,12 +71,24 @@
 			$aWfs->transaction, 
 			$aWfs->fees, 
 			$aWfs->accessconstraints, 
+			$aWfs->individualName,
+			$aWfs->positionName,
+			$aWfs->providerName,
+			$aWfs->city,
+			$aWfs->deliveryPoint,
+			$aWfs->administrativeArea,
+			$aWfs->postalCode,
+			$aWfs->voice,
+			$aWfs->facsimile,
+			$aWfs->electronicMailAddress,
+			$aWfs->country, 
 			Mapbender::session()->get("mb_user_id"), 
 			strtotime("now"),
+			strtotime("now"),
 			$uuid
 		);
 			
-		$t = array('s', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 'i', 'i','s');
+		$t = array('s', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 's', 'i', 'i','i','s');
 	
 		$res = db_prep_query($sql, $v, $t);
 	

Modified: trunk/mapbender/http/classes/class_wfs_1_1_factory.php
===================================================================
--- trunk/mapbender/http/classes/class_wfs_1_1_factory.php	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/classes/class_wfs_1_1_factory.php	2012-04-26 14:09:01 UTC (rev 8329)
@@ -71,8 +71,10 @@
 		$url = $aWfs->describeFeatureType .
 			$aWfs->getConjunctionCharacter($aWfs->describeFeatureType) .
 			implode("&", $paramArray);
-
+		
 		$xml = $this->get($url);
+		//parse result to see if it is a real featuretype description
+		
 		return $this->createFeatureTypeFromXml ($xml, $aWfs, $featureTypeName);
 	}
 
@@ -87,6 +89,7 @@
 
 		$doc = new DOMDocument();
 		$doc->loadXML($xml);
+		$e = new mb_exception($xml);
 		$xpath =  new DOMXpath($doc);
 		$xpath->registerNamespace("xs","http://www.w3.org/2001/XMLSchema");
 
@@ -196,7 +199,39 @@
 				if($tag == "ACCESSCONSTRAINTS"){
 					$myWfs->accessconstraints = $element[value];
 				}
-
+				if($tag == "INDIVIDUALNAME"){
+					$myWfs->individualName = $element[value];
+				}
+				if($tag == "POSITIONNAME"){
+					$myWfs->positionName = $element[value];
+				}
+				if($tag == "PROVIDERNAME"){
+					$myWfs->providerName = $element[value];
+				}
+				if($tag == "CITY"){
+					$myWfs->city = $element[value];
+				}
+				if($tag == "DELIVERYPOINT"){
+					$myWfs->deliveryPoint = $element[value];
+				}
+				if($tag == "ADMINISTRATIVEAREA"){
+					$myWfs->administrativeArea = $element[value];
+				}
+				if($tag == "POSTALCODE"){
+					$myWfs->postalCode = $element[value];
+				}
+				if($tag == "VOICE"){
+					$myWfs->voice = $element[value];
+				}
+				if($tag == "FACSIMILE"){
+					$myWfs->facsimile = $element[value];
+				}
+				if($tag == "ELECTRONICMAILADDRESS"){
+					$myWfs->electronicMailAddress = $element[value];
+				}
+				if($tag == "COUNTRY"){
+					$myWfs->country = $element[value];
+				}
 				if($tag == "OPERATION" && $element[type] == "open"){
 					switch ($element[attributes][name]) {
 						case "GetCapabilities" :
@@ -213,6 +248,7 @@
 							break;
 					}
 				}
+				
 				# getCapabilities
 				if($section == "getcapabilities" && $tag == "GET"){
 					$myWfs->getCapabilities = html_entity_decode($element[attributes]["xlink:href"]);
@@ -255,9 +291,13 @@
 				if($section == "featuretype" && $tag == "ABSTRACT"){
 					$featuretype_abstract = $element[value];
 				}
+				
 				if($section == "featuretype" && $tag == "DEFAULTSRS"){
 					$featuretype_srs = $element[value];
-
+					$e = new mb_notice("class_wfs_1_1_factory.php: parse featuretype ".$featuretype_name);
+					foreach ( $featureTypeNsArray as $currentNamespace) {
+						$e = new mb_notice("class_wfs_1_1_factory.php: namespace: ".$currentNamespace);
+					}
 					// Do not add defective featuretypes
 					try {
 						$currentFeatureType = $this->createFeatureTypeFromUrlGet($myWfs, $featuretype_name, $featureTypeNsArray);
@@ -271,10 +311,11 @@
 						}
 					}
 					catch (Exception $e) {
-						new mb_exception("Failed to load featuretype " . $featuretype_name);
+						$e = new mb_exception("Failed to load featuretype " . $featuretype_name);
 					}
 				}
 			}
+			
 			if (!$myWfs->title) {
 				$myWfs->title = "Untitled";
 			}

Modified: trunk/mapbender/http/plugins/mb_metadata_featuretype.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_featuretype.js	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_featuretype.js	2012-04-26 14:09:01 UTC (rev 8329)
@@ -22,7 +22,7 @@
 var $metadataFeaturetype = $(this);
 var $metadataForm = $("<form>No featuretype selected.</form>").appendTo($metadataFeaturetype);
 
-var MetadataLayerApi = function (o) {
+var MetadataFeaturetypeApi = function (o) {
 	var that = this;
 	var validator;
 	var formReady = false;
@@ -87,12 +87,39 @@
 					return;
 				}
 				$metadataForm.easyform("fill", obj);
+				//delete entries of #featuretype_id_p if given
+				$('#featuretype_id_p').children().remove();
+				$('#featuretype_id_p').append('<a target=\"_blank\"href=\"../php/mod_showMetadata.php?resource=featuretype&layout=tabs&id='+featuretypeId+'\">Metadata Preview Featuretype '+featuretypeId+'</a>');
+				//delete metadataURL entries
+				$('.metadataEntry').remove();
+				//fill MetadataURLs into metadata_selectbox_id
+				that.fillMetadataURLs(obj);
 				that.valid();
 				that.enableResetButton();
 			}
 		});
 		req.send();		
 	};
+	//function generate updated metadataUrl entries
+	this.fillMetadataURLs = function (obj) {
+		featuretypeId = obj.featuretype_id;
+		//for size of md_metadata records:
+		for (i=0;i<obj.md_metadata.metadata_id.length;i++) {
+			if (obj.md_metadata.origin[i] == "capabilities") {
+				$("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/osgeo_graphics/geosilk/server_map.png' title='capabilities'/></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td></td></tr>").appendTo($("#metadataTable"));
+			}
+			if (obj.md_metadata.origin[i] == "external") {
+				$("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/osgeo_graphics/geosilk/link.png' title='linkage'/><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td><img  class='' title='edit' src='../img/pencil.png' onclick='initMetadataAddon("+obj.md_metadata.metadata_id[i]+","+featuretypeId+",false);return false;'/></td><td><img class='' title='delete' src='../img/cross.png' onclick='deleteAddedMetadata("+obj.md_metadata.metadata_id[i]+","+featuretypeId+");return false;'/></td></tr>").appendTo($("#metadataTable"));
+			}
+			if (obj.md_metadata.origin[i] == "upload") {
+				$("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/button_blue_red/up.png' title='uploaded data'/><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td><img class='' title='delete' src='../img/cross.png' onclick='deleteAddedMetadata("+obj.md_metadata.metadata_id[i]+","+featuretypeId+");return false;'/></td></tr>").appendTo($("#metadataTable"));
+			}
+			if (obj.md_metadata.origin[i] == "metador") {
+				$("<tr class='metadataEntry'><td>"+obj.md_metadata.metadata_id[i]+"</td><td><img src='../img/gnome/edit-select-all.png' title='metadata'/><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"' target='_blank'>"+obj.md_metadata.uuid[i]+"</a></td><td><a href='../php/mod_dataISOMetadata.php?outputFormat=iso19139&id="+obj.md_metadata.uuid[i]+"&validate=true' target='_blank'>validate</a></td><td><img  class='' title='edit' src='../img/pencil.png' onclick='initMetadataAddon("+obj.md_metadata.metadata_id[i]+","+featuretypeId+",false);return false;'/></td><td><img class='' title='delete' src='../img/cross.png' onclick='deleteAddedMetadata("+obj.md_metadata.metadata_id[i]+","+featuretypeId+");return false;'/></td></tr>").appendTo($("#metadataTable"));
+			}
+		}
+		$("<img class='metadataEntry' title='new' src='../img/add.png' onclick='initMetadataAddon("+obj.md_metadata.metadata_id[i]+","+featuretypeId+",true);return false;'/>").appendTo($("#metadataTable"));
+	}
 	
 	this.enableResetButton = function () {
 		$("#resetIsoTopicCats").click(function () {
@@ -119,13 +146,22 @@
 		});
 	};
 	
+	this.getWfsId = function() {
+		return wfsId;
+	}
 
 	this.init = function (obj) {
 		delete featuretypeId;
+		//delete metadataURL entries
+		$('.metadataEntry').remove();
 		$metadataForm.easyform("reset");
 
 		wfsId = obj;
-		
+
+		if (!wfsId) {
+			return;
+		}
+
 		var formData = arguments.length >= 2 ? arguments[1] : undefined;
 
 		if (!formReady) {
@@ -146,12 +182,6 @@
 					wfsId: wfsId
 				});
 				formReady = true;
-				
-				// select layer in tree if set
-				
-				// init map
-				
-				// fill layer form if set
 			});
 			return;
 		}
@@ -174,4 +204,4 @@
 	});
 };
 
-$metadataFeaturetype.mapbender(new MetadataLayerApi(options));
+$metadataFeaturetype.mapbender(new MetadataFeaturetypeApi(options));

Modified: trunk/mapbender/http/plugins/mb_metadata_featuretype.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_featuretype.php	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_featuretype.php	2012-04-26 14:09:01 UTC (rev 8329)
@@ -57,30 +57,18 @@
 		</p>
 		<p>
 		    <div id="buttons">
-		    	<p>
-					<label><?php echo _mb("Add Information about the underlying data");?>:</label>
-					<img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Linking the WFS layer with metadata set (coupled resource), which describes the underlying informations of the representation in more detail (eg Actuality / quality). It occurs via a link to an already existing metadta set in a catalog or a simple metadata set will be generated using a Mapbender Layer Addon-Editor.");?>'}" src="../img/questionmark.png" alt="" />
+			<fieldset>
+		    		<p>
+					<label><?php echo _mb("Add Information about the underlying data");?></label>
+					<img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Linking the WFS Featuretype with a metadata set (coupled resource), which describes the underlying information of the representation more detailed (eg actuality / quality). It can be done by linking to an already existing metadata set (e.g. in a catalogue) or by generating a simple metadata file using mapbender.");?>'}" src="../img/questionmark.png" alt="" />
 				</p>
 				<p>
-					<input disabled="disabled" class="" type="submit" value="<?php echo _mb("Add new Metadata Record");?>"/>
+					<label><?php echo _mb("Table of coupled Metadata");?>:</label>
+					<table id="metadataTable">
+					</table>
 				</p>
-				<p>
-					<input disabled="disabled" class="" type="submit" value="<?php echo _mb("Edit Metadata Linkage");?>"/>
-				</p>
-				<p>
-					<input disabled="disabled" class="" type="submit" value="<?php echo _mb("Delete Metadata Linkage");?>"/>
-				</p>
+		   	 </fieldset>
 			</div>
-			<div id="selectbox">
-				<select disabled="disabled" class="metadata_selectbox" size="2" multiple>
-					<option>not</option>
-					<option>yet</option>
-					<option>implemented</option>
-				</select>
-			</div>			
-		</p>
-	</fieldset>
-</div>
 
 <div id="classification">
 	<fieldset class="">

Modified: trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_featuretypeTree.js	2012-04-26 14:09:01 UTC (rev 8329)
@@ -28,7 +28,7 @@
 
 	var createFolder = function (set) {
 		return {
-			attributes: {
+			attr: {
 				data: $.toJSON(set.attr)
 			},
 			data: set.attr.featuretype_name,
@@ -36,18 +36,49 @@
 			children: []
 		};
 	};
-	
+
 	var createLeaf = function (set) {
+		if (set.attr.layer_coupling != 0) {
+			//create html annex to title element
+			annex = set.attr.featuretype_name+" - "+set.attr.featuretype_coupling+" x coupled";
+		} else {
+			annex = set.attr.featuretype_name;
+		}
+		//following things can be done to show icons in the title element - problem: if the span is clicked, the checkbox is set an no layer is selected - TODO should be fixed 
+		/*leafTitle = "<span>";
+		if (set.attr.layer_coupling != 0) {
+			//create html annex to title element
+			leafTitle = leafTitle+"<img src=\"../img/osgeo_graphics/geosilk/link.png\" title=\"coupled\">";
+			//annex = set.attr.layer_title;
+		}
+		if (set.attr.inspire_cats != 0) {
+			leafTitle = leafTitle+"<img width=\"15\" height=\"15\" src=\"../img/inspire_tr_36.png\" title=\"INSPIRE classified\">";
+		}
+		leafTitle = leafTitle+set.attr.layer_title+"</span>";*/
 		return {
-			attributes: {
+			attr: {
 				data: $.toJSON(set.attr)
 			},
 			data: {
+				title: annex
+			}
+		};
+	};
+
+
+
+/*	
+	var createLeaf = function (set) {
+		return {
+			attr: {
+				data: $.toJSON(set.attr)
+			},
+			data: {
 				title: set.attr.featuretype_name
 			}
 		};
 	};
-	
+*/	
 	var toJsTreeJson = function (nestedSets) {
 		if (!nestedSets.length && nestedSets.length !== 0) {
 			new Mapbender.Exception("Nested sets not an array.");
@@ -86,7 +117,19 @@
 		return children;
 	};
 
-	var initTree = function (nestedSets) {
+	var checkFeaturetype = function () {
+		$("#" + instanceId).find("li").each(function () {
+			var metadata = $(this).metadata({
+				type: "attr",
+				name: "data"
+			});
+			if (metadata && metadata.featuretype_searchable) {
+				$("#" + instanceId).jstree("check_node", this);
+			}
+		});
+	};
+
+/*	var initTree = function (nestedSets) {
 		var jsTreeData = toJsTreeJson(nestedSets);
 		jsTreeData[0].state = "open";
 		
@@ -125,8 +168,71 @@
 			}
 		});
 	};
+*/
+	var initTree = function (nestedSets) {
+		var jsTreeData = toJsTreeJson(nestedSets);	
+		jsTreeData[0].state = "open";
+		
+		$("#" + instanceId).jstree("destroy");
+		
+		$.jstree._themes = "../extensions/jsTree.v.1.0rc/themes/";
+		
+		$("#" + instanceId).empty().jstree({ 
+			"json_data" : {
+				"data" : jsTreeData
+			},
+            "checkbox" :{
+                "check_recursively": false
+            },
+ 	    "core" : {"html_titles" : true},
 
+			"plugins" : [ "themes", "json_data", "ui", "checkbox" ]
+		});
+		
+		$("#" + instanceId).bind("before.jstree", function (evt, data) {
+			if (data.func === "change_state" && data.args[0].tagName.toUpperCase() === "A") {
+				$("#" + instanceId).find("a").removeClass("jstree-clicked");
+				$(data.args[0]).parent().children("a").addClass("jstree-clicked");
+				var metadata = $(data.args[0]).parent().metadata({
+					type: "attr",
+					name: "data"
+				});
+				that.events.selected.trigger({
+					"featuretype": metadata
+				});
+									
+				evt.stopImmediatePropagation();
+				return false;
+			}
+		});
+		checkFeaturetype();
+	};
 
+
+
+	this.serialize = function (callback) {
+		var data = {
+			wfs: {
+				"featuretype_searchable": []
+			}
+		};
+
+		var $checked = $("#" + instanceId).jstree("get_checked");
+		$checked.each(function () {
+			var metadata = $(this).metadata({
+				type: "attr",
+				name: "data"
+			});
+			data.wfs.featuretype_searchable.push(metadata.featuretype_id);
+		});
+		
+		if ($.isFunction(callback)) {
+			callback(data);
+		}
+		return data;
+	};	
+
+
 	this.events = {
 		selected: new Mapbender.Event()
 	};

Modified: trunk/mapbender/http/plugins/mb_metadata_layer.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layer.js	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_layer.js	2012-04-26 14:09:01 UTC (rev 8329)
@@ -145,6 +145,7 @@
 			}
 		});
 	};
+
 	this.getWmsId = function() {
 		return wmsId;
 	}
@@ -181,12 +182,6 @@
 					wmsId: wmsId
 				});
 				formReady = true;
-				
-				// select layer in tree if set
-				
-				// init map
-				
-				// fill layer form if set
 			});
 			return;
 		}

Modified: trunk/mapbender/http/plugins/mb_metadata_layerTree.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_layerTree.js	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_layerTree.js	2012-04-26 14:09:01 UTC (rev 8329)
@@ -117,8 +117,7 @@
 	};
 
 	var initTree = function (nestedSets) {
-		var jsTreeData = toJsTreeJson(nestedSets);
-		
+		var jsTreeData = toJsTreeJson(nestedSets);	
 		jsTreeData[0].state = "open";
 		
 		$("#" + instanceId).jstree("destroy");

Modified: trunk/mapbender/http/plugins/mb_metadata_wfs_server.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_wfs_server.php	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/http/plugins/mb_metadata_wfs_server.php	2012-04-26 14:09:01 UTC (rev 8329)
@@ -271,10 +271,16 @@
 
 		$sql = <<<SQL
 	
+SELECT featuretype_id, featuretype_name, f_count_featuretype_couplings(featuretype_id) as count_coupling, f_collect_inspire_cat_wfs_featuretype(featuretype_id) AS inspire_cats, featuretype_abstract, featuretype_searchable 
+FROM wfs_featuretype WHERE fkey_wfs_id = $wfsId ORDER BY featuretype_id;
+
+SQL;
+/*		$sql = <<<SQL
+	
 SELECT featuretype_id, featuretype_name, featuretype_title, featuretype_abstract 
 FROM wfs_featuretype WHERE fkey_wfs_id = $wfsId ORDER BY featuretype_id;
 
-SQL;
+SQL;*/
 		$res = db_query($sql);
 
 		$rows = array();
@@ -293,7 +299,10 @@
 					"featuretype_id" => intval($row["featuretype_id"]),
 					"featuretype_name" => $row["featuretype_name"],
 					"featuretype_title" => $row["featuretype_title"],
-					"featuretype_abstract" => $row["featuretype_abstract"]
+					"featuretype_abstract" => $row["featuretype_abstract"],
+					"featuretype_searchable" => intval($row["featuretype_searchable"]),
+					"featuretype_coupling" => intval($row["count_coupling"]),
+					"inspire_cats" => intval($inspireCats)
 				)
 			);
 		}

Modified: trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql
===================================================================
--- trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql	2012-04-26 14:00:53 UTC (rev 8328)
+++ trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql	2012-04-26 14:09:01 UTC (rev 8329)
@@ -340,4 +340,49 @@
 
 ALTER TABLE datalink ADD COLUMN datalink_timestamp_last_usage TIMESTAMP WITHOUT TIME ZONE;
  
+-- Function: f_count_featuretype_couplings(integer)
 
+-- DROP FUNCTION f_count_featuretype_couplings(integer);
+
+CREATE OR REPLACE FUNCTION f_count_featuretype_couplings(integer)
+  RETURNS integer AS
+$BODY$
+DECLARE
+   featuretype_rel int4;
+BEGIN
+featuretype_rel := count(*) from ows_relation_metadata WHERE fkey_featuretype_id=$1;
+RETURN featuretype_rel;
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION f_count_featuretype_couplings(integer) OWNER TO postgres;
+
+
+-- Function: f_collect_inspire_cat_wfs_featuretype(integer)
+
+-- DROP FUNCTION f_collect_inspire_cat_wfs_featuretype(integer);
+
+CREATE OR REPLACE FUNCTION f_collect_inspire_cat_wfs_featuretype(integer)
+  RETURNS text AS
+$BODY$DECLARE
+  i_wfs_featuretype_id ALIAS FOR $1;
+  inspire_cat_string  TEXT;
+  inspire_cat_record  RECORD;
+
+BEGIN
+inspire_cat_string := '';
+
+FOR inspire_cat_record IN SELECT wfs_featuretype_inspire_category.fkey_inspire_category_id from wfs_featuretype_inspire_category WHERE wfs_featuretype_inspire_category.fkey_featuretype_id=$1  LOOP
+inspire_cat_string := inspire_cat_string || '{' ||inspire_cat_record.fkey_inspire_category_id || '}';
+END LOOP ;
+  
+RETURN inspire_cat_string;
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT
+  COST 100;
+ALTER FUNCTION f_collect_inspire_cat_wfs_featuretype(integer) OWNER TO postgres;
+



More information about the Mapbender_commits mailing list