[Mapbender-commits] r10359 - in trunk/mapbender/http: classes plugins

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Nov 28 06:02:35 PST 2019


Author: armin11
Date: 2019-11-28 06:02:34 -0800 (Thu, 28 Nov 2019)
New Revision: 10359

Modified:
   trunk/mapbender/http/classes/class_administration.php
   trunk/mapbender/http/classes/class_iso19139.php
   trunk/mapbender/http/plugins/mb_metadataApplication.php
   trunk/mapbender/http/plugins/mb_metadata_server.php
   trunk/mapbender/http/plugins/mb_metadata_showMetadata.js
Log:
Add possibility to choose between different organizations for application metadata - publish them for some other organization than the primary one of the metadata owner.

Modified: trunk/mapbender/http/classes/class_administration.php
===================================================================
--- trunk/mapbender/http/classes/class_administration.php	2019-11-28 09:44:24 UTC (rev 10358)
+++ trunk/mapbender/http/classes/class_administration.php	2019-11-28 14:02:34 UTC (rev 10359)
@@ -2460,6 +2460,16 @@
 	    return $row["preview_image"];
 	}
     }
+
+    function getCombinedApplicationMetadata($guiId, $wmcId) {
+	//GET first! metadata record for this combination - maybe better GET last 
+	$sql = "SELECT uuid FROM mb_metadata WHERE fkey_gui_id = $1 AND fkey_wmc_serial_id = $2 ORDER BY lastchanged DESC LIMIT 1";
+	$v = array($guiId, $wmcId);
+	$t = array('s', 'i');
+        $res = db_prep_query($sql,$v,$t);
+	$row = db_fetch_array($res);
+	return $row["uuid"];
+    }
 	 
     /**
      * selects the gui_categories 

Modified: trunk/mapbender/http/classes/class_iso19139.php
===================================================================
--- trunk/mapbender/http/classes/class_iso19139.php	2019-11-28 09:44:24 UTC (rev 10358)
+++ trunk/mapbender/http/classes/class_iso19139.php	2019-11-28 14:02:34 UTC (rev 10359)
@@ -323,10 +323,13 @@
 				//from 2017-03-02 - the MD_Identifier - see C.2.5 Unique resource identifier - it is separated with a slash - the codespace should be everything after the last slash 
 				//now try to check if a single slash is available and if the md_identifier is a url
 				$parsedUrl = parse_url($code[0]);
+
 				if (($parsedUrl['scheme'] == 'http' || $parsedUrl['scheme'] == 'https') && strpos($parsedUrl['path'],'/') !== false) {
 					$explodedUrl = explode('/', $code[0]);
 					$this->datasetId = $explodedUrl[count($explodedUrl) - 1];
 					$this->datasetIdCodeSpace = rtrim($code[0], $this->datasetId);	
+
+//$e = new mb_exception("datasetId: ".$this->datasetId." - datasetIdCodeSpace: ".$this->datasetIdCodeSpace);
 				} else {
 					if (($parsedUrl['scheme'] == 'http' || $parsedUrl['scheme'] == 'https') && strpos($code[0],'#') !== false) {
 						//$e = new mb_exception($code[0]);
@@ -1441,6 +1444,7 @@
 			$this->tmpExtentEnd = $row['tmp_reference_2'];//"1900-01-01";
 			$this->randomId =  $row['randomid'];
 			$this->owner = $row['fkey_mb_user_id']; //dummy entry for metadata owner - in case of metadataURL entries the owner of the corresponding service
+                        $this->fkey_mb_group_id = $row['fkey_mb_group_id']; //entry for organization for which this metadata should be published - overwrites metadata point of contact - in case of inheritance by metadata proxy!
 			$this->href = $row['link'];// "";
 			$this->format = $row['md_format'];//"";
 			$this->type = $row['linktype'];//"";
@@ -2143,7 +2147,7 @@
 	}
 
 	public function deleteCategoriesFromCoupledResource($metadataId,$resourceType,$resourceId) {
-		if ($resourceType == 'inspire_dls_atom' || $resourceType == 'inspire_dls_atom_dataset' || $resourceType == 'metadata') {
+		if ($resourceType == 'inspire_dls_atom' || $resourceType == 'inspire_dls_atom_dataset' || $resourceType == 'metadata' || $resourceType == 'application') {
 			return false;
 		}
 		//delete inherited categories from coupled resources: layer/featuretype

Modified: trunk/mapbender/http/plugins/mb_metadataApplication.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadataApplication.php	2019-11-28 09:44:24 UTC (rev 10358)
+++ trunk/mapbender/http/plugins/mb_metadataApplication.php	2019-11-28 14:02:34 UTC (rev 10359)
@@ -135,10 +135,10 @@
 		<legend><?php echo _mb("Application preview");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Open application in new tab.");?>'}" src="../img/questionmark.png" alt="" /></legend>
 		<a id="preview_link" target="_blank">currently not set</a>
 	    </fieldset>
-	    <fieldset>
+	    <!--<fieldset>
 		<legend><?php echo _mb("Lineage");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("This is a statement on process history and/or overall quality of the spatial data set. Where appropriate it may include a statement whether the data set has been validated or quality assured, whether it is the official version (if multiple versions exist), and whether it has legal validity. The value domain of this metadata element is free text.");?>'}" src="../img/questionmark.png" alt="" /></legend>
 		<input class="required" name="lineage" id="lineage"/>
-	    </fieldset>
+	    </fieldset>-->
 	</div>
 	<div id="tabs-3">
 	    <fieldset id="md_classification">
@@ -185,11 +185,11 @@
 	<div id="tabs-4">
 	    <fieldset id="tempref" name="tempref">
 	        <legend><?php echo _mb("TEMPORAL REFERENCE");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("This metadata element addresses the requirement to have information on the temporal dimension of the data as referred to in Article 8(2)(d) of Directive 2007/2/EC. At least one of the metadata elements referred to in points 5.1 to 5.4 shall be provided. The value domain of the metadata elements referred to in points 5.1 to 5.4 is a set of dates. Each date shall refer to a temporal reference system and shall be expressed in a form compatible with that system. The default reference system shall be the Gregorian calendar, with dates expressed in accordance with ISO 8601.");?>'}" src="../img/questionmark.png" alt="" /></legend>
-	        <fieldset id="timespan" name="timespan">
+	        <!--<fieldset id="timespan" name="timespan">
 	            <legend><?php echo _mb("Temporal extent");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("The temporal extent defines the time period covered by the content of the resource. This time period may be expressed as any of the following: - an individual date, - an interval of dates expressed through the starting date and end date of the interval, - a mix of individual dates and intervals of dates.");?>'}" src="../img/questionmark.png" alt="" /></legend>
 		    <p><?php echo _mb("from");?>:</p><input class="required hasdatepicker" name="tmp_reference_1" id="tmp_reference_1"/><br>
 		    <p><?php echo _mb("to");?>:</p><input class="required hasdatepicker" name="tmp_reference_2" id="tmp_reference_2"/>
-	        </fieldset>
+	        </fieldset>-->
 	        <fieldset id="cyclicupdate" name="cyclicupdate">
 		    <legend><?php echo _mb("Maintenance and update frequency");?><img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Frequency with which changes and additions are made to the resource after the initial resource is completed. Notice: This value may change the value of the end date of temporal extent. The end date will be computed automatically from the current timestamp if a cyclic update is defined!");?>'}" src="../img/questionmark.png" alt="" /></legend>
 		    <select class="required cyclic_selectbox" id='update_frequency' name='update_frequency'>
@@ -289,6 +289,36 @@
 	        <label id="label_responsible_party_email"  for="responsible_party_email"><?php echo _mb("Responsible party email");?>:</label>
       	        <input name="responsible_party_email" id="responsible_party_email" type="text"/>
 	    </p>
+	    <!-- add option to define other organization than the editors primary group -->
+	    <fieldset>
+		<legend><?php echo _mb("Metadata Point of contact (registry)");?>: <img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Information about the organization which is responsible for contributing the metadata. The information will be automaticcaly generated from the mapbender database mb_group object. The information came from the primary group of the service owner or from a group which has authorized the owner to publish metadata in their name.");?>'}" src="../img/questionmark.png" alt="" /></legend>
+
+<?php
+//selectbox for organizations which allows the publishing of metadatasets for the specific user
+		$sql = "SELECT fkey_mb_group_id, mb_group_name FROM (SELECT fkey_mb_group_id FROM mb_user_mb_group WHERE fkey_mb_user_id = $1 AND (mb_user_mb_group_type = 3 OR mb_user_mb_group_type = 2)) AS a LEFT JOIN mb_group ON a.fkey_mb_group_id = mb_group.mb_group_id";
+		$user = new User();
+		$userId = $user->id;
+		$v = array($userId);
+		$t = array('i');
+		$res = db_prep_query($sql,$v,$t);
+		$metadataGroup = array();
+		while ($row = db_fetch_assoc($res)) {
+			$metadataGroup[$row["fkey_mb_group_id"]] = $row["mb_group_name"];
+		}
+		?>
+		<p>
+		    <label for="mb_group_name"><?php echo _mb("Organization responsible for metadata");?>:</label>
+    		    <select name="fkey_mb_group_id" id="fkey_mb_group_id">
+			<option value="">...</option>
+<?php
+	foreach ($metadataGroup as $key => $value) {
+		echo "<option value='" . $key . "'>" . htmlentities($value, ENT_QUOTES, CHARSET) . "</option>";
+	}
+?>
+		    </select>
+    	            <img class="help-dialog" title="<?php echo _mb("Help");?>" help="{text:'<?php echo _mb("Selection of different organizations which authorized you to publish metadata in their name.");?>'}" src="../img/questionmark.png" alt="" />
+	       </p>
+	    </fieldset><!-- end of selection for the different organizations -->
 	</div>
 	<div id="tabs-8">
 	    <!-- Radio button for type of application -->

Modified: trunk/mapbender/http/plugins/mb_metadata_server.php
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_server.php	2019-11-28 09:44:24 UTC (rev 10358)
+++ trunk/mapbender/http/plugins/mb_metadata_server.php	2019-11-28 14:02:34 UTC (rev 10359)
@@ -1267,7 +1267,9 @@
 			$resultObj["fkey_gui_id"] = $mbMetadata->fkeyGuiId;
 			$resultObj["fkey_wmc_serial_id"] = $mbMetadata->fkeyWmcSerialId;
 			$resultObj["fkey_mapviewer_id"] = $mbMetadata->fkeyMapviewerId;
+			$resultObj["fkey_mb_group_id"] = $mbMetadata->fkey_mb_group_id;
 			//give back result:
+
 			$ajaxResponse->setResult($resultObj);
 			$ajaxResponse->setSuccess(true);
 			break;
@@ -2285,6 +2287,12 @@
 		//fill thru metador
 		$mdOwner = Mapbender::session()->get("mb_user_id");
 		$mbMetadata->owner = $mdOwner;
+		//fkey_mb_group_id
+                if (isset($data->fkey_mb_group_id) && $data->fkey_mb_group_id != '') {
+                	$mbMetadata->fkey_mb_group_id = $data->fkey_mb_group_id;
+                } else {
+			$mbMetadata->fkey_mb_group_id = null;
+		}
 		$mbMetadata->origin = "metador";
 		$mbMetadata->fileIdentifier = $uuid;
 		$mbMetadata->randomId = $randomid;
@@ -2411,18 +2419,24 @@
 			if (isset($data->fkey_gui_id) && $data->fkey_gui_id != '') {
 				$mbMetadata->fkeyGuiId = $data->fkey_gui_id;
 			} else {
-$mbMetadata->fkeyGuiId = null;
+				$mbMetadata->fkeyGuiId = null;
 			}
 			if (isset($data->fkey_wmc_serial_id) && $data->fkey_wmc_serial_id != '') {
 				$mbMetadata->fkeyWmcSerialId = $data->fkey_wmc_serial_id;
 			} else {
-$mbMetadata->fkeyWmcSerialId = null;
+				$mbMetadata->fkeyWmcSerialId = null;
 			}
 			if (isset($data->fkey_mapviewer_id) && $data->fkey_mapviewer_id != '') {
 				$mbMetadata->fkeyMapviewerId = $data->fkey_mapviewer_id;
 			} else {
-$mbMetadata->fkeyMapviewerId = null;
+				$mbMetadata->fkeyMapviewerId = null;
 			}
+                        if (isset($data->fkey_mb_group_id) && $data->fkey_mb_group_id != '' && $data->fkey_mb_group_id != 0  && $data->fkey_mb_group_id != '0') {
+                	    $mbMetadata->fkey_mb_group_id = $data->fkey_mb_group_id;
+                        } else {
+			    $mbMetadata->fkey_mb_group_id = null;
+			}
+
 			//try to update metadata object (only mb_metadata)
 			$res = $mbMetadata->updateMetadataById($metadataId);
 			if (!$res) {

Modified: trunk/mapbender/http/plugins/mb_metadata_showMetadata.js
===================================================================
--- trunk/mapbender/http/plugins/mb_metadata_showMetadata.js	2019-11-28 09:44:24 UTC (rev 10358)
+++ trunk/mapbender/http/plugins/mb_metadata_showMetadata.js	2019-11-28 14:02:34 UTC (rev 10359)
@@ -195,6 +195,10 @@
 					//alert(JSON.stringify(obj));
 					that.fillLicence(obj.md_termsofuse);
 				}
+				if (obj.fkey_mb_group_id !== "0") {
+					//alert(JSON.stringify(obj));
+					that.fillSelectGroup(obj.fkey_mb_group_id);
+				}
 				if ($("#check_overwrite_responsible_party").is(":checked")) {
 					$('#label_responsible_party_name').css('display', 'block');
 					$('#responsible_party_name').css('display', 'block');
@@ -236,7 +240,10 @@
             req.send();
 	}
 	}	
+        this.fillSelectGroup = function(obj) {
 
+            $('#fkey_mb_group_id option[value="'+obj+'"]').attr('selected', 'selected');
+        }
 	//Show more information about the licences of the metadata 
 	this.fillLicence = function(obj) {
 		// get licence information from server per termsofuse_id



More information about the Mapbender_commits mailing list