From 8fd3acdd7b1095b4b866de84a5ab4205a53b2292 Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Wed, 7 Nov 2018 12:26:43 +0100 Subject: [PATCH] Squashed 'src/vitis/' changes from 01d199ce..771a5655 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 771a5655 Merge branch 'Sebastien-master-patch-58096' into 'master' 4398b26d Merge branch 'bug/4-formreader-champs-date-non-pris-en-compte-si-on-met-la-date-du-jour-en-insertion' into 'master' d17933b9 Edit datetime picker event b3b6ec06 Merge branch '1-js-sous-formulaire' into 'master' 41a15530 Load BO Javascript on subforms e3923b17 Merge branch 'feature/impressions_144dpi' into 'master' 38bafafa Increase the WMS symbols size to match resolution 35163699 Merge branch 'hotfix/swagger_doc' into 'master' 275422b6 Make swagger work for dev installs 064924ec Mise à jour du fichier de version pour fonctionnait avec la version 11.0 de PostgreSQL ee4da38b Add gitignore f53e707d Merge branch 'master' of gitlab.veremes.net:Development/vitis_apps/sources/vitis 6c984bed Add client/vas dependencies 12a22d70 pull subtree 47cd4913 Squashed 'src/module_vm4ms/' changes from 4d95a3d..af1a2e3 7b55e678 Utilisation de dirname($_SERVER['SCRIPT_FILENAME']) au dlieu de __DIR__ 24ea0f3d pull subtree f4326e8a Squashed 'src/module_vm4ms/' changes from 4d95a3da..af1a2e36 c0b73f09 Squashed 'src/module_vm4ms/' changes from 373ef426..4d95a3da 906a7169 Modify client symlinks 1dccb17e Modify vas symlinks 07db5ec5 Update Readme 0bb9b2fa pull subtree 14758714 Squashed 'src/module_cadastreV2/' changes from e678ee10..8158b9a2 a9b2699c pull subtree c499cef3 Squashed 'src/module_anc/' changes from b55c5e85..4321adc4 d82d485e pull subtree 1ad8c842 Squashed 'src/module_vm4ms/' changes from 4f506db7..373ef426 6702c1fb pull subtree 94998ed6 Squashed 'src/module_vmap/' changes from cf75b106..e7dabee0 3a2b6fe9 pull subtree 97c993d5 Squashed 'src/vitis/' changes from 01d199ce..7a1818a4 213795da Resolve require problems c23b6587 Rights on write folders 4ac589ad Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) bc0e0830 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) b51e622f Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 3bd1ab17 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 53d54531 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 2d9fd6a5 Get rights to vas/server 0602efdb Compilation grunt 75c89c8b Try on push subtrees 246ebd0f Add pull.sh 2e026c10 Add pull.sh 37d37d03 Add grunt to the install 5b9cffc3 Update readme 7a1818a4 add subtree 6c1b3e3c Reset sources a195a4d9 Init from SVN 4ad29c4b add subtree 1ac46cd9 Squashed 'src/closure/' content from commit 622066d 635a2f96 add subtree 7593c383 Squashed 'src/vitis/' content from commit 01d199c b487cd6f Update from SVN 266e19a6 Initial commit 3f86c344 Ignore properties files 02a3be3e gitignore 578f9827 Ingore properties files d1327b32 add subtree 59431f9c Squashed 'src/module_cadastre/' content from commit ee26cf16 950e5a10 Squashed 'src/module_cadastreV2/' content from commit e678ee10 c2e686cb add subtree 92d769cc Squashed 'src/module_anc/' content from commit b55c5e85 63a0562b add subtree 829e4cf3 Squashed 'src/module_vm4ms/' content from commit 4f506db7 3630a462 add subtree 8792eb7c Squashed 'src/module_vmap/' content from commit cf75b10 4fe41d6b add subtree 974b9dd8 add subtree 92032b6a Squashed 'src/closure/' content from commit 622066d 646709a4 Squashed 'src/vitis/' content from commit 01d199c 416c2c24 add subtree 06cc1a2d ignore properties files 192389a6 Get files from SVN 86c2affb Initial commit git-subtree-dir: src/vitis git-subtree-split: 771a5655bbf1b08d828c13eb909c3096e1a7e350 --- .gitignore | 6 + _install/client/fileToDelete.txt | 4 + _install/client/folderToDelete.txt | 8 + _install/client/listModuleApache.txt | 5 + _install/vas/apache.conf | 70 +++ _install/vas/listModuleApache.txt | 16 + .../externs/formReader/formReaderDrtv.js | 12 +- .../externs/formReader/formReaderSrvc.js | 30 +- vas/doc/index.phtml | 12 +- vas/doc/swagger.php | 5 +- vas/rest/index.phtml | 4 +- vas/rest/ws/vitis/Properties.class.inc | 26 +- vas/rest/ws/vitis/Versions.class.inc | 404 +++++++++--------- vas/util/printserver/client/map/map.js | 34 +- 14 files changed, 400 insertions(+), 236 deletions(-) create mode 100644 _install/client/fileToDelete.txt create mode 100644 _install/client/folderToDelete.txt create mode 100644 _install/client/listModuleApache.txt create mode 100644 _install/vas/apache.conf create mode 100644 _install/vas/listModuleApache.txt diff --git a/.gitignore b/.gitignore index e69de29b..fb23a1f3 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,6 @@ +vas/rest/class/* +vas/rest/class/!*/ +vas/rest/class/!*.* +vas/sql/* +vas/sql/!*/ +vas/sql/!*.* diff --git a/_install/client/fileToDelete.txt b/_install/client/fileToDelete.txt new file mode 100644 index 00000000..ca3a9114 --- /dev/null +++ b/_install/client/fileToDelete.txt @@ -0,0 +1,4 @@ +javascript/externs/formreader/formreader.js +javascript/externs/formreader/formreaderCtrl.js +javascript/externs/formreader/formreaderDrtv.js +javascript/externs/formreader/formreaderSrvc.js \ No newline at end of file diff --git a/_install/client/folderToDelete.txt b/_install/client/folderToDelete.txt new file mode 100644 index 00000000..a0e7984d --- /dev/null +++ b/_install/client/folderToDelete.txt @@ -0,0 +1,8 @@ +javascript/app +javascript/require +javascript/test +javascript/externs/openLayers/ol +javascript/externs/openLayers/ol.ext +javascript/externs/studio/properties +javascript/externs/studio/javascript +modules/vitis/javascript \ No newline at end of file diff --git a/_install/client/listModuleApache.txt b/_install/client/listModuleApache.txt new file mode 100644 index 00000000..2c0309e3 --- /dev/null +++ b/_install/client/listModuleApache.txt @@ -0,0 +1,5 @@ +alias +deflate +headers +rewrite +ssl \ No newline at end of file diff --git a/_install/vas/apache.conf b/_install/vas/apache.conf new file mode 100644 index 00000000..2281b2e2 --- /dev/null +++ b/_install/vas/apache.conf @@ -0,0 +1,70 @@ +PassEnv TEMP +Alias /rest[ENV] "[VASDIRECTORY]/rest" + <Directory "[VASDIRECTORY]/rest"> + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler application/x-httpd-php_vitis[ENV] + </FilesMatch> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc|php)$"> + Order allow,deny + Deny from all + </Files> + </Directory> + +Alias /doc[ENV] "[VASDIRECTORY]/doc" + <Directory "[VASDIRECTORY]/doc"> + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler application/x-httpd-php_vitis[ENV] + </FilesMatch> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + </Directory> + +Alias /public[ENV] "[VASDIRECTORY]/public" + <Directory "[VASDIRECTORY]/public"> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|inc|php)$"> + Order allow,deny + Deny from all + </Files> + SetHandler application/x-download + </Directory> +Alias /ws_data[ENV] "[VASDIRECTORY]/ws_data" + <Directory "[VASDIRECTORY]/ws_data"> + AllowOverride All + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc|php)$"> + Order allow,deny + Deny from all + </Files> + SetHandler application/x-download + </Directory> +Alias /proxy[ENV] "[VASDIRECTORY]/util/proxy" + <Directory "[VASDIRECTORY]/util/proxy"> + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler application/x-httpd-php_vitis[ENV] + </FilesMatch> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc)$"> + Order allow,deny + Deny from all + </Files> + </Directory> +Alias /printserver[ENV] "[VASDIRECTORY]/util/printserver" + <Directory "[VASDIRECTORY]/util/printserver"> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc|php)$"> + Order allow,deny + Deny from all + </Files> + </Directory> \ No newline at end of file diff --git a/_install/vas/listModuleApache.txt b/_install/vas/listModuleApache.txt new file mode 100644 index 00000000..c2626d94 --- /dev/null +++ b/_install/vas/listModuleApache.txt @@ -0,0 +1,16 @@ +actions +alias +cgi +deflate +headers +ldap +rewrite +ssl +proxy +proxy_ajp +proxy_connect +proxy_fcgi +proxy_ftp +proxy_http +proxy_scgi +proxy_wstunnel \ No newline at end of file diff --git a/client/javascript/externs/formReader/formReaderDrtv.js b/client/javascript/externs/formReader/formReaderDrtv.js index 283bbc43..48e7a37a 100644 --- a/client/javascript/externs/formReader/formReaderDrtv.js +++ b/client/javascript/externs/formReader/formReaderDrtv.js @@ -176,6 +176,8 @@ formReader.formReaderDirective = function ($q, formReaderService, propertiesSrvc } }); }); + } else { + console.error('Error: form not valid'); } }; @@ -711,6 +713,9 @@ formReader.appFormFieldSpecificParamsDrtv = function ($timeout, $translate, prop $(element)["datetimepicker"](oOptions); // Si sélection d'une date : mise à jour du modèle (NE PAS SUPPRIMER!). + $(element).on("dp.hide", function (e) { + scope["oFormValues"][scope["sFormDefinitionName"]][element[0].name] = element[0].value; + }); $(element).on("dp.change", function (e) { scope["oFormValues"][scope["sFormDefinitionName"]][element[0].name] = element[0].value; }); @@ -2151,8 +2156,8 @@ formReader.appSubformGridDrtv = function ($timeout, $translate, propertiesSrvc, // Récupère lélément en sélectionné formReaderService['getWebServiceData'](oFormWebService).then(function (aResult) { - var oSubformDefinition = aResult[0]['bo_json_form']; + var sSubformJSDefinition = aResult[0]['bo_json_form_js']; var oSubformValues = {}; var sModalId = 'formreader_' + scope['sFormUniqueName'] + '_grid_subform_modal'; @@ -2219,7 +2224,7 @@ formReader.appSubformGridDrtv = function ($timeout, $translate, propertiesSrvc, } }); - formReaderService['showModalSubform'](sModalId, oSubformScope, oSubformDefinition, sSubformDefinitionName, oSubformValues); + formReaderService['showModalSubform'](sModalId, oSubformScope, oSubformDefinition, sSubformDefinitionName, oSubformValues, sSubformJSDefinition); }); }; @@ -2247,6 +2252,7 @@ formReader.appSubformGridDrtv = function ($timeout, $translate, propertiesSrvc, }; var sModalId = 'formreader_' + scope['sFormUniqueName'] + '_grid_subform_modal'; var oSubformDefinition = oBusinessObject['json_form'][0]; + var sSubformJSDefinition = oBusinessObject['json_form_js']; var sSubformDefinitionName = 'insert'; // Grise le champ contenant la valeur du parent @@ -2288,7 +2294,7 @@ formReader.appSubformGridDrtv = function ($timeout, $translate, propertiesSrvc, }); }); }; - formReaderService['showModalSubform'](sModalId, oSubformScope, oSubformDefinition, sSubformDefinitionName, oSubformValues); + formReaderService['showModalSubform'](sModalId, oSubformScope, oSubformDefinition, sSubformDefinitionName, oSubformValues, sSubformJSDefinition); }; /** diff --git a/client/javascript/externs/formReader/formReaderSrvc.js b/client/javascript/externs/formReader/formReaderSrvc.js index 6ca6ef29..613652f9 100644 --- a/client/javascript/externs/formReader/formReaderSrvc.js +++ b/client/javascript/externs/formReader/formReaderSrvc.js @@ -1230,15 +1230,15 @@ formReader.formReaderService = function ($translate, $rootScope, $q, $log, $time * @param {object} oSubformDefinition * @param {object} oSubformDefinitionName * @param {object} oSubformValues + * @param {string|null} sSubformJSDefinition */ - "showModalSubform": function (sModalId, oSubformScope, oSubformDefinition, oSubformDefinitionName, oSubformValues) { + "showModalSubform": function (sModalId, oSubformScope, oSubformDefinition, oSubformDefinitionName, oSubformValues, sSubformJSDefinition) { $log.log("showModalSubform"); var sToken = this['sToken']; var oProperties = this['oProperties']; - if (goog.isDefAndNotNull(oSubformScope['loadSubForm'])) { - + var loadForm = function(){ oSubformScope['loadSubForm']({ 'sFormDefinitionName': oSubformDefinitionName, 'oFormDefinition': oSubformDefinition, @@ -1246,6 +1246,30 @@ formReader.formReaderService = function ($translate, $rootScope, $q, $log, $time 'oProperties': oProperties, 'sToken': sToken }); + } + + if (goog.isDefAndNotNull(oSubformScope['loadSubForm'])) { + + if (goog.isDefAndNotNull(sSubformJSDefinition)) { + var sUrl = sSubformJSDefinition; + oVmap.log("initHtmlForm : javascript assoc. to : " + sUrl); + loadExternalJs([sUrl], { + "callback": function () { + loadForm(); + try { + if (goog.isDef(constructor_form)) { + constructor_form(oSubformScope, sUrl); + } + } catch (e) { + oVmap.log("constructor_form does not exist"); + } + }, + "async": true, + "scriptInBody": true + }); + } else { + loadForm(); + } $('#' + sModalId).modal('show'); } diff --git a/vas/doc/index.phtml b/vas/doc/index.phtml index 086cb768..d4fedf02 100755 --- a/vas/doc/index.phtml +++ b/vas/doc/index.phtml @@ -1,6 +1,9 @@ <?php session_start(); -require_once '../rest/conf/properties.inc'; + +$_SERVER['VAS_PATH'] = pathinfo(dirname($_SERVER['SCRIPT_FILENAME']))['dirname']; + +require_once $_SERVER['VAS_PATH'] . '/rest/conf/properties.inc'; function returnOverview($sFolder, $parent) { $aModules = array(); @@ -17,10 +20,12 @@ function returnOverview($sFolder, $parent) { } } } + return $aModules; } -$aOverview = returnOverview(__DIR__ . "/../rest/ws", ""); +$aOverview = returnOverview($_SERVER['VAS_PATH'] . "/rest/ws", ""); +error_log('$aOverview: '. print_r($aOverview, true)); ?> <!DOCTYPE html> @@ -59,7 +64,7 @@ $aOverview = returnOverview(__DIR__ . "/../rest/ws", ""); sToken = json.PrivateToken.token; } else { sToken = code[0].outerText.split('<token>')[1].split('</token>')[0]; - } + } if (sToken != "") { $("input[name='token']").each(function () { $(this).attr("value", sToken); @@ -154,4 +159,3 @@ foreach ($aOverview as $key => $value) { </div> </body> </html> - diff --git a/vas/doc/swagger.php b/vas/doc/swagger.php index 3437171a..aca8acff 100755 --- a/vas/doc/swagger.php +++ b/vas/doc/swagger.php @@ -1,8 +1,9 @@ <?php +$_SERVER['VAS_PATH'] = pathinfo(dirname($_SERVER['SCRIPT_FILENAME']))['dirname']; header('Content-Type: application/json'); -require_once "../rest/conf/properties.inc"; +require_once $_SERVER['VAS_PATH'] . "/rest/conf/properties.inc"; require("vendor/autoload.php"); -$swagger = \Swagger\scan('../rest/ws/'.$_REQUEST['service']); +$swagger = \Swagger\scan($_SERVER['VAS_PATH'] . '/rest/ws/'.$_REQUEST['service']); $aServer = explode("://", $properties["web_server_name"]); $swagger = str_replace("[service_alias]", $properties["services_alias"], $swagger); $swagger = str_replace("[protocol]", $aServer[0], $swagger); diff --git a/vas/rest/index.phtml b/vas/rest/index.phtml index 86af3b21..d4b4cffa 100755 --- a/vas/rest/index.phtml +++ b/vas/rest/index.phtml @@ -1,5 +1,7 @@ <?php +$_SERVER['VAS_PATH'] = pathinfo(dirname($_SERVER['SCRIPT_FILENAME']))['dirname']; + require_once("class/vitis_lib/VitisError.class.inc"); require_once("class/vmlib/cryptUtil.inc"); require_once("conf/properties.inc"); @@ -199,4 +201,4 @@ function customErrorHandler ($errno, $errstr, $errfile, $errline, $context){ } include ("index.vhtml"); -?> \ No newline at end of file +?> diff --git a/vas/rest/ws/vitis/Properties.class.inc b/vas/rest/ws/vitis/Properties.class.inc index d363c986..c7f65b41 100755 --- a/vas/rest/ws/vitis/Properties.class.inc +++ b/vas/rest/ws/vitis/Properties.class.inc @@ -14,7 +14,7 @@ require_once(__DIR__ . '/../../class/vmlib/BdDataAccess.inc'); * \brief This file contains the Properties php class * * This class defines the rest api for properties - * + * */ class Properties extends Vitis { /** @@ -53,7 +53,7 @@ class Properties extends Vitis { } /** - * @SWG\Get(path="/properties", + * @SWG\Get(path="/properties", * tags={"Properties"}, * summary="Get properties", * description="Request to get properties", @@ -75,7 +75,7 @@ class Properties extends Vitis { */ /** - * + * * @return properties */ function GET() { @@ -85,19 +85,19 @@ class Properties extends Vitis { } else { $this->aFields = $this->aProperties; } - require_once __DIR__ . "/../../conf/version.inc"; + require_once dirname($_SERVER['SCRIPT_FILENAME']) . "/conf/version.inc"; if (VM_STATUS != "STABLE") { $this->aFields['VM_STATUS'] = "UNSTABLE"; } else { $this->aFields['VM_STATUS'] = "STABLE"; - if ($pointeur = opendir(__DIR__ . "/../../conf/")) { + if ($pointeur = opendir(dirname($_SERVER['SCRIPT_FILENAME']) . "/conf/")) { while (($fichier = readdir($pointeur)) !== false) { if (($fichier != '.') && ($fichier != '..')) { - if (is_dir(__DIR__ . "/../../conf/" . $fichier)) { - $sTexte = file_get_contents(__DIR__ . "/../../conf/" . $fichier . "/version.inc"); + if (is_dir(dirname($_SERVER['SCRIPT_FILENAME']) . "/conf/" . $fichier)) { + $sTexte = file_get_contents(dirname($_SERVER['SCRIPT_FILENAME']) . "/conf/" . $fichier . "/version.inc"); if (strpos($sTexte, "define (\"VM_STATUS\", \"STABLE\");") == false) { $this->aFields['VM_STATUS'] = "UNSTABLE"; @@ -216,7 +216,7 @@ class Properties extends Vitis { * description="Poprerties Response", * @SWG\Schema(ref="#/definitions/properties") * ), - * + * * ) */ @@ -299,7 +299,7 @@ class Properties extends Vitis { // Message de retour $aMessage = array('status' => REQUEST_SUCCESS); - // Ouverture de php + // Ouverture de php $sPropertiesFile = PHP_START . PHP_EOL; // Texte à ajouter avant le tableau des properties @@ -343,14 +343,14 @@ class Properties extends Vitis { $sPropertiesFile .= PROPERTIES_FOOTER . PHP_EOL; } - // Fermeture de php + // Fermeture de php $sPropertiesFile .= PHP_END; // Sauve le fichier (LOCK_EX = accés exclusif au fichier) if ($this->aValues['module_name'] == 'vitis') - $sPathProperties = __DIR__ . '/../../conf/properties.inc'; + $sPathProperties = dirname($_SERVER['SCRIPT_FILENAME']) . '/conf/properties.inc'; else - $sPathProperties = __DIR__ . '/../../conf/' . $this->aValues['module_name'] . '/properties.inc'; + $sPathProperties = dirname($_SERVER['SCRIPT_FILENAME']) . '/conf/' . $this->aValues['module_name'] . '/properties.inc'; // if (file_put_contents($sPathProperties, $sPropertiesFile, LOCK_EX) === false) $aReturn = array('status' => 0, 'message' => "FORM_ERROR_FILE_WRITING_CONFIGURATION"); @@ -424,4 +424,4 @@ class Properties extends Vitis { } -?> \ No newline at end of file +?> diff --git a/vas/rest/ws/vitis/Versions.class.inc b/vas/rest/ws/vitis/Versions.class.inc index 62b9cfcc..3a20a659 100755 --- a/vas/rest/ws/vitis/Versions.class.inc +++ b/vas/rest/ws/vitis/Versions.class.inc @@ -1,204 +1,202 @@ -<?php - -require_once 'Vitis.class.inc'; -require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc'; -require_once __DIR__ . '/../../class/vmlib/BdDataAccess.inc'; - -/** - * \file versions.class.inc - * \class Versions - * - * \author Yoann Perollet <yoann.perollet@veremes.com>. - * - * \brief This file contains the Versions php class - * - * This class defines the rest api for versions - * - */ -class Versions extends Vitis { - /** - * @SWG\Definition( - * definition="/versions", - * allOf={ - * @SWG\Schema(ref="#/definitions/versions") - * } - * ) - * @SWG\Tag( - * name="Versions", - * description="Operations about versions" - * ) - */ - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $versions ptroperties - */ - function __construct($aPath, $aValues, $properties) { - $this->aValues = $aValues; - $this->aPath = $aPath; - $this->aProperties = $properties; - if (!empty($this->aValues['token'])) { - $this->oConnection = new Connection($this->aValues, $this->aProperties); - } - } - - /** - * @SWG\Get(path="/versions", - * tags={"Versions"}, - * summary="Get versions", - * description="Request to get versions", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=false, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/versions") - * ) - * ) - */ - - /** - * - * @return versions - */ - function GET() { - if ($this->oConnection->oError == null) { - $this->getVersion(); - if (!empty($this->aValues['token']) && in_array("vitis_admin", $this->oConnection->aPrivileges)) { - - //$this->aFields = $this->aVersions; - $this->aFields['php_version'] = phpversion(); - - //*** PDO - $bPdo = false; - if (extension_loaded('pdo')) - $bPdo = true; - else - $bVeremap = false; - $this->aFields['pdo_extension_loaded'] = $bPdo; - - //*** PDO Postgresql - $bPdoPgsql = false; - if (extension_loaded('pdo_pgsql')) - $bPdoPgsql = true; - else - $bVeremap = false; - $this->aFields['pdo_pgsql_extension_loaded'] = $bPdoPgsql; - - //*** Curl - $bCurl = false; - if (extension_loaded('curl')) - $bCurl = true; - else - $bVeremap = false; - $this->aFields['curl_extension_loaded'] = $bCurl; - - //*** Xsl - $bXsl = false; - if (extension_loaded('xsl')) - $bXsl = true; - $this->aFields['xsl_extension_loaded'] = $bXsl; - - //*** Ldap - $bLdap = false; - if (extension_loaded('ldap')) - $bLdap = true; - $this->aFields['ldap_extension_loaded'] = $bLdap; - - // OS. - $this->aFields['os_version'] = php_uname(); - - // Info disque. - $this->aFields['disk_free_space'] = round(disk_free_space("/") / 1073741824) . ' Go'; - $this->aFields['disk_total_space'] = round(disk_total_space("/") / 1073741824) . ' Go'; - - // - $this->aFields['server_software'] = $_SERVER['SERVER_SOFTWARE']; - $this->aFields['server_addr'] = $_SERVER['SERVER_ADDR']; - $this->aFields['server_name'] = $_SERVER['SERVER_NAME']; - $this->aFields['server_port'] = $_SERVER['SERVER_PORT']; - - //** Postgresql et Postgis - $bPostgresql = false; - $bPostgis = false; - if (!$this->oConnection->oBd->erreurRencontree) { - $bPostgresql = true; - $sSql = "SHOW server_version"; - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); - $oPgVersion = $this->oConnection->oBd->objetSuivant($oPDOresult); - $sPostgresql = $oPgVersion->server_version; - $this->aFields['postgresql_version'] = $sPostgresql; - $this->oConnection->oBd->fermeResultat(); - - $aVersion = explode(".", $sPostgresql); - $bExtension = false; - if ($aVersion[0] >= 9) { - if ($aVersion[1] >= 1) { - $bExtension = true; - } - } - if ($bExtension == true) { - $sSql = "SELECT default_version FROM pg_catalog.pg_available_extensions where name = 'postgis';"; - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); - if ($aPostgis = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { - $bPostgis = true; - $sPostgis = $aPostgis['default_version']; - } else { - $bPostgis = false; - } - } else { - $sSql = "SELECT datname FROM pg_catalog.pg_database where datname = 'template_postgis_20';"; - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); - if ($aPostgis = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { - $bPostgis = true; - $sPostgis = '2.0'; - } else { - $bPostgis = false; - } - } - $this->aFields['postgis_version'] = $sPostgis; - $this->oConnection->oBd->fermeResultat(); - $sSql = 'SELECT distinct module_id from [sSchemaFramework].vm_mode'; - $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aParams); - while ($aLigne = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { - $aModules[] = $aLigne['module_id']; - } - $iRecordset = $this->oConnection->oBd->fermeResultat(); - } - $this->aFields['postgresql'] = $bPostgresql; - $this->aFields['postgis'] = $bPostgis; - - // Recherche de mise à jour - // - if (!empty($this->aValues['app'])) { - $sUrl = "http://update.veremes.net/vai/" . $this->aValues['app'] . ".json"; - $json = file_get_contents($sUrl); - $data = json_decode($json, TRUE); - $this->aFields['appVersion'] = $data['version']; - } - } - $aXmlRacineAttribute['status'] = 1; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - } else { - http_response_code(403); - $aXmlRacineAttribute['status'] = 0; - $this->aFields['errorMessage'] = "ERROR : invalid token"; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - } - - return $sMessage; - } - -} - +<?php + +require_once 'Vitis.class.inc'; +require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc'; +require_once __DIR__ . '/../../class/vmlib/BdDataAccess.inc'; + +/** + * \file versions.class.inc + * \class Versions + * + * \author Yoann Perollet <yoann.perollet@veremes.com>. + * + * \brief This file contains the Versions php class + * + * This class defines the rest api for versions + * + */ +class Versions extends Vitis { + /** + * @SWG\Definition( + * definition="/versions", + * allOf={ + * @SWG\Schema(ref="#/definitions/versions") + * } + * ) + * @SWG\Tag( + * name="Versions", + * description="Operations about versions" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $versions ptroperties + */ + function __construct($aPath, $aValues, $properties) { + $this->aValues = $aValues; + $this->aPath = $aPath; + $this->aProperties = $properties; + if (!empty($this->aValues['token'])) { + $this->oConnection = new Connection($this->aValues, $this->aProperties); + } + } + + /** + * @SWG\Get(path="/versions", + * tags={"Versions"}, + * summary="Get versions", + * description="Request to get versions", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=false, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/versions") + * ) + * ) + */ + + /** + * + * @return versions + */ + function GET() { + if ($this->oConnection->oError == null) { + $this->getVersion(); + if (!empty($this->aValues['token']) && in_array("vitis_admin", $this->oConnection->aPrivileges)) { + + //$this->aFields = $this->aVersions; + $this->aFields['php_version'] = phpversion(); + + //*** PDO + $bPdo = false; + if (extension_loaded('pdo')) + $bPdo = true; + else + $bVeremap = false; + $this->aFields['pdo_extension_loaded'] = $bPdo; + + //*** PDO Postgresql + $bPdoPgsql = false; + if (extension_loaded('pdo_pgsql')) + $bPdoPgsql = true; + else + $bVeremap = false; + $this->aFields['pdo_pgsql_extension_loaded'] = $bPdoPgsql; + + //*** Curl + $bCurl = false; + if (extension_loaded('curl')) + $bCurl = true; + else + $bVeremap = false; + $this->aFields['curl_extension_loaded'] = $bCurl; + + //*** Xsl + $bXsl = false; + if (extension_loaded('xsl')) + $bXsl = true; + $this->aFields['xsl_extension_loaded'] = $bXsl; + + //*** Ldap + $bLdap = false; + if (extension_loaded('ldap')) + $bLdap = true; + $this->aFields['ldap_extension_loaded'] = $bLdap; + + // OS. + $this->aFields['os_version'] = php_uname(); + + // Info disque. + $this->aFields['disk_free_space'] = round(disk_free_space("/") / 1073741824) . ' Go'; + $this->aFields['disk_total_space'] = round(disk_total_space("/") / 1073741824) . ' Go'; + + // + $this->aFields['server_software'] = $_SERVER['SERVER_SOFTWARE']; + $this->aFields['server_addr'] = $_SERVER['SERVER_ADDR']; + $this->aFields['server_name'] = $_SERVER['SERVER_NAME']; + $this->aFields['server_port'] = $_SERVER['SERVER_PORT']; + + //** Postgresql et Postgis + $bPostgresql = false; + $bPostgis = false; + if (!$this->oConnection->oBd->erreurRencontree) { + $bPostgresql = true; + $sSql = "SHOW server_version"; + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); + $oPgVersion = $this->oConnection->oBd->objetSuivant($oPDOresult); + $sPostgresql = $oPgVersion->server_version; + $this->aFields['postgresql_version'] = $sPostgresql; + $this->oConnection->oBd->fermeResultat(); + + $aVersion = explode(".", $sPostgresql); + $bExtension = false; + if ($aVersion[0] . $aVersion[1] >= 91) { + $bExtension = true; + } + if ($bExtension == true) { + $sSql = "SELECT default_version FROM pg_catalog.pg_available_extensions where name = 'postgis';"; + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); + if ($aPostgis = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { + $bPostgis = true; + $sPostgis = $aPostgis['default_version']; + } else { + $bPostgis = false; + } + } else { + $sSql = "SELECT datname FROM pg_catalog.pg_database where datname = 'template_postgis_20';"; + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); + if ($aPostgis = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { + $bPostgis = true; + $sPostgis = '2.0'; + } else { + $bPostgis = false; + } + } + $this->aFields['postgis_version'] = $sPostgis; + $this->oConnection->oBd->fermeResultat(); + $sSql = 'SELECT distinct module_id from [sSchemaFramework].vm_mode'; + $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aParams); + while ($aLigne = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { + $aModules[] = $aLigne['module_id']; + } + $iRecordset = $this->oConnection->oBd->fermeResultat(); + } + $this->aFields['postgresql'] = $bPostgresql; + $this->aFields['postgis'] = $bPostgis; + + // Recherche de mise à jour + // + if (!empty($this->aValues['app'])) { + $sUrl = "http://update.veremes.net/vai/" . $this->aValues['app'] . ".json"; + $json = file_get_contents($sUrl); + $data = json_decode($json, TRUE); + $this->aFields['appVersion'] = $data['version']; + } + } + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } else { + http_response_code(403); + $aXmlRacineAttribute['status'] = 0; + $this->aFields['errorMessage'] = "ERROR : invalid token"; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + + return $sMessage; + } + +} + ?> \ No newline at end of file diff --git a/vas/util/printserver/client/map/map.js b/vas/util/printserver/client/map/map.js index 2a870d9a..d6dcd882 100755 --- a/vas/util/printserver/client/map/map.js +++ b/vas/util/printserver/client/map/map.js @@ -7,7 +7,7 @@ PrintMap = function (opt_options) { var this_ = this; - + this.mapSize = [document.getElementById('map').offsetWidth, document.getElementById('map').offsetHeight]; this.tileSize = (isDef(window.oProperties.print.tile_size) && window.oProperties.print.features_zoom >= 0) ? window.oProperties.print.tile_size : 2048; @@ -29,7 +29,7 @@ PrintMap = function (opt_options) { this.mapJsonParser = new MapJSON({ 'properties': window.oProperties }); - + this.view = this.mapJsonParser.getViewFromDef(this.mapDefinition, { 'size': this.mapSize, 'tileSize': [this.tileSize, this.tileSize] @@ -39,13 +39,13 @@ PrintMap = function (opt_options) { this.extent = this.getExtent(opt_options); - this.tileGrid = this.getTileGridFromDefinition(this.tileSize); - + this.tileGrid = this.getTileGridFromDefinition(this.tileSize); + this.layers = this.mapJsonParser.getLayersFromDef(this.mapDefinition, { 'size': this.mapSize, 'tileSize': [this.tileSize, this.tileSize] }); - + this.map = this.setMap(this.layers, this.view); this.featuresOverlay = this.setFeaturesOverlay(this.map); @@ -63,6 +63,9 @@ PrintMap = function (opt_options) { // Supprime tous les controls par défaut this.removeMapControls(); + // Taille des icones en fonction de la résolution demandée + this.setMapSymbolsResolution(this.map, this.resolutionCoeff) + // Si aucune étendue a été donnée et que seul un point a été donné, alors zoom sur this.defaultScale if (!isDef(opt_options.extent) && !isDef(this.features)) { if (this.features.length === 1 && this.features[0].getGeometry().getType() === 'Point') { @@ -310,7 +313,7 @@ PrintMap.prototype.getFeaturesFromEWKT = function (aEWKTFeatures) { }; /** - * Return true if EWKTGeom is an EWKT geometry + * Return true if EWKTGeom is an EWKT geometry * @param {string} EWKTGeom * @returns {boolean} */ @@ -367,4 +370,21 @@ PrintMap.prototype.getGeomFromEWKT = function (EWKTGeom, proj) { return null; } -}; \ No newline at end of file +}; + +/** + * For WMS layers set MAP.RESOLUTION and MAP.DEFRESOLUTION to rise the symbols size + * + * @param {object} olMap + * @param {integer} resolutionCoeff + */ +PrintMap.prototype.setMapSymbolsResolution = function (olMap, resolutionCoeff) { + + var newRes = resolutionCoeff * 72; + var aLayers = olMap.getLayers().getArray(); + for (var i = 0; i < aLayers.length; i++) { + if (aLayers[i].get('type') === 'imagewms' || aLayers[i].get('type') === 'tilewms') { + aLayers[i].getSource().updateParams({'MAP.RESOLUTION': newRes, 'MAP.DEFRESOLUTION': 72}); + } + } +} -- GitLab