From 4b44e6b9fc71cb44db33820f22661679d7ed1018 Mon Sep 17 00:00:00 2001
From: Armand Bahi <armand.bahi@veremes.com>
Date: Tue, 30 Oct 2018 17:31:20 +0100
Subject: [PATCH] Squashed 'src/vitis/' changes from 12a22d70..4398b26d

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
ee4da38b Add gitignore
f53e707d Merge branch 'master' of gitlab.veremes.net:Development/vitis_apps/sources/vitis
6c984bed Add client/vas dependencies

git-subtree-dir: src/vitis
git-subtree-split: 4398b26d4ab4082f226a08bea5e3d581bb18e730
---
 .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/util/printserver/client/map/map.js        | 34 +++++++--
 12 files changed, 186 insertions(+), 20 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/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