Просмотр исходного кода

added return selected state in response for wps select / unselect Feature

Piotr Labudda 8 лет назад
Родитель
Сommit
58643ab122

+ 4 - 0
SE/se-lib/Api/Process/P5/SelectFeature.php

@@ -11,11 +11,15 @@ class Api_Process_P5_SelectFeature { // TODO: extends Api_ProcessBase
 		if (empty($listPrimaryKeys)) throw new Api_OwsException("Missing value for 'primaryKey'", 501, null, 'MissingParameterValue', 'request');
 
 		FeatureAttrSelected::select($typeName, $listPrimaryKeys);
+		$lsistSelectedState = FeatureAttrSelected::getSelectState($typeName, $listPrimaryKeys);
 
 		header('Content-Type: application/json');
 		echo json_encode([
 			'type' => "success",
 			'msg' => "done",
+			'body' => [
+				'selected' => $lsistSelectedState
+			]
 		]);
 		exit;
 	}

+ 4 - 0
SE/se-lib/Api/Process/P5/UnselectFeature.php

@@ -11,11 +11,15 @@ class Api_Process_P5_UnselectFeature { // TODO: extends Api_ProcessBase
 		if (empty($listPrimaryKeys)) throw new Api_OwsException("Missing value for 'primaryKey'", 501, null, 'MissingParameterValue', 'request');
 
 		FeatureAttrSelected::unselect($typeName, $listPrimaryKeys);
+		$lsistSelectedState = FeatureAttrSelected::getSelectState($typeName, $listPrimaryKeys);
 
 		header('Content-Type: application/json');
 		echo json_encode([
 			'type' => "success",
 			'msg' => "done",
+			'body' => [
+				'selected' => $lsistSelectedState
+			]
 		]);
 		exit;
 	}

+ 2 - 2
SE/se-lib/Api/WpsHelper.php

@@ -54,11 +54,11 @@ class Api_WpsHelper {
 					],
 				],
 				// 'MimeType' => text/xml, 'Encoding' => base64, 'Schema' => http://foo.bar/gml/3.1.0/polygon.xsd
-				'defaultOutput' => [ 'MimeType' => "text/xml; subtype=wfs-collection/1.0" ], // TODO: result type - like Insert Wfs Transaction result - list of: Success (primaryKey = 123), ...
+				'defaultOutput' => [ 'MimeType' => "application/json" ], // TODO: result type - like Insert Wfs Transaction result - list of: Success (primaryKey = 123), ...
 				'supportedOutput' => [
+					[ 'MimeType' => "application/json" ],
 					[ 'MimeType' => "text/xml; subtype=wfs-collection/1.0" ],
 					[ 'MimeType' => "text/xml; subtype=wfs-collection/1.1" ],
-					[ 'MimeType' => "application/json" ],
 					// [ 'MimeType' => "application/wfs-collection-1.0" ],
 					// [ 'MimeType' => "application/wfs-collection-1.1" ],
 					// [ 'MimeType' => "application/zip" ],

+ 19 - 0
SE/se-lib/FeatureAttrSelected.php

@@ -2,6 +2,25 @@
 
 class FeatureAttrSelected {
 
+	static function getSelectState($typeName, array $listPrimaryKeys) {
+		$idUser = User::getID();
+		self::prepareUserTable($typeName, $idUser);
+		$tableName = self::getAttributeTableName($typeName, $idUser);
+		if (empty($listPrimaryKeys)) return [];
+		$dbQuote = [ DB::getPDO(), 'quote' ];
+		$sqlPks = implode(", ", array_map(function ($pk) use ($dbQuote) {
+			return $dbQuote($pk);
+		}, $listPrimaryKeys));
+		$selected = DB::getPDO()->fetchValuesListByKey("
+			select primaryKey
+			from `{$tableName}`
+			where primaryKey in ( {$sqlPks} )
+		", $key = 'primaryKey');
+		return array_combine($listPrimaryKeys, array_map(function ($pk) use ($selected) {
+			return in_array($pk, $selected);
+		}, $listPrimaryKeys));
+	}
+
 	static function select($typeName, array $listPrimaryKeys) {
 		$idUser = User::getID();
 		self::prepareUserTable($typeName, $idUser);