From 5cd5ab0569175f139162a6a8c39340e1ab500902 Mon Sep 17 00:00:00 2001 From: ArmandBahi <armand.bahi@veremes.com> Date: Thu, 18 Oct 2018 16:18:20 +0200 Subject: [PATCH] Squashed 'src/module_vmap/' changes from e7dabee..9804757 9804757 Merge branch 'master' of gitlab.veremes.net:Development/vitis_apps/sources/module_vmap 945b7ea Add storage from SVN f982df2 add subtree b7a4879 Squashed 'src/module_cadastre/' content from commit 0bb9b2fa9 52ebc13 add subtree 3f3d51c add subtree 41d5aec Squashed 'src/closure/' content from commit 622066db 91cd365 add subtree 7c3aef1 Squashed 'src/vitis/' content from commit 355b5f8b e859747 Reset sources 8fe041e Merge branch 'master' into next_version ce9e639 Merge branch 'master' into next_version 0bb9b2f pull subtree 1475871 Squashed 'src/module_cadastreV2/' changes from e678ee10..8158b9a2 a9b2699 pull subtree c499cef Squashed 'src/module_anc/' changes from b55c5e85..4321adc4 d82d485 pull subtree 1ad8c84 Squashed 'src/module_vm4ms/' changes from 4f506db7..373ef426 6702c1f pull subtree 94998ed Squashed 'src/module_vmap/' changes from cf75b106..e7dabee0 3a2b6fe pull subtree 97c993d Squashed 'src/vitis/' changes from 01d199ce..7a1818a4 213795d Resolve require problems 0c3ac32 Change dependency.xml c23b658 Rights on write folders 4ac589a Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) bc0e083 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) b51e622 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 3bd1ab1 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 53d5453 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 2d9fd6a Get rights to vas/server 0602efd Compilation grunt 75c89c8 Try on push subtrees 246ebd0 Add pull.sh 2e026c1 Add pull.sh 37d37d0 Add grunt to the install 5b9cffc Update readme 3f86c34 Ignore properties files 02a3be3 gitignore 578f982 Ingore properties files d1327b3 add subtree 59431f9 Squashed 'src/module_cadastre/' content from commit ee26cf16 950e5a1 Squashed 'src/module_cadastreV2/' content from commit e678ee10 c2e686c add subtree 92d769c Squashed 'src/module_anc/' content from commit b55c5e85 63a0562 add subtree 829e4cf Squashed 'src/module_vm4ms/' content from commit 4f506db7 3630a46 add subtree 8792eb7 Squashed 'src/module_vmap/' content from commit cf75b10 4fe41d6 add subtree 974b9dd add subtree 92032b6 Squashed 'src/closure/' content from commit 622066d 646709a Squashed 'src/vitis/' content from commit 01d199c 416c2c2 add subtree 06cc1a2 ignore properties files 192389a Get files from SVN 86c2aff Initial commit f20764c Update from SVN git-subtree-dir: src/module_vmap git-subtree-split: 980475751e046766dd4756d1063361cadce7c2bf --- module/css/vmap.less | 5 + .../vmap_admin_map_vmap_admin_map.json | 0 .../vmap_admin_map_vmap_layers.json | 0 ...ap_business_object_vmap_business_object.js | 0 ..._business_object_vmap_business_object.json | 0 .../app/modules/Cadastre/cadastre.js | 7 +- module/javascript/app/vmap/map/map.js | 15 +- .../app/vmap/mapmanager/layerstree.js | 15 +- .../app/vmap/mapmanager/maplegend.js | 0 .../app/vmap/mapmanager/mapmanager.js | 0 .../app/vmap/mapmanager/mapmodal/maplist.js | 0 .../vmap/mapmanager/mapmodal/maplistlitle.js | 0 .../javascript/app/vmap/tools/basictools.js | 2 + .../app/vmap/tools/infocontainer.js | 0 module/javascript/app/vmap/tools/insert.js | 8 +- module/javascript/app/vmap/tools/location.js | 95 +++ module/javascript/app/vmap/tools/print.js | 0 .../app/vmap/tools/select/advancedselect.js | 0 .../javascript/app/vmap/tools/urlexporter.js | 140 ++++ module/javascript/app/vmap/vmap.js | 45 +- module/javascript/vitis/script_module.js | 0 module/lang/lang-en.json | 0 module/lang/lang-fr.json | 0 module/template/layers/layertree.html | 0 module/template/layers/mapmodal/maplist.html | 0 .../layers/mapmodal/maplistlitle.html | 0 module/template/modules/cadastre.html | 0 module/template/tools/basicselect.html | 0 module/template/tools/basictools.html | 15 + module/template/tools/infocontainer.html | 0 module/template/tools/insert.html | 0 module/template/tools/location.html | 16 + module/template/tools/print.html | 0 module/template/tools/select.html | 0 module/template/tools/urlexporter.html | 11 + storage/veremes_demo_dessin/forms/custom.json | 629 ++++++++++++++++++ .../veremes_demo_dessin/forms/default.json | 629 ++++++++++++++++++ .../veremes_demo_dessin/forms/published.json | 629 ++++++++++++++++++ .../forms/ressources/custom.js | 109 +++ .../forms/ressources/default.js | 109 +++ .../forms/ressources/published.js | 109 +++ .../json/business_object.json | 20 + storage/veremes_demo_dessin/json/event.json | 4 + .../json/mapserver_layers.json | 65 ++ storage/veremes_demo_dessin/package.json | 5 + .../veremes_demo_dessin/sql/structure.json | 6 + storage/veremes_demo_dessin/sql/table.sql | 282 ++++++++ .../veremes_oads_dossier/forms/custom.json | 175 +++++ .../veremes_oads_dossier/forms/default.json | 259 ++++++++ .../veremes_oads_dossier/forms/published.json | 175 +++++ .../json/business_object.json | 20 + storage/veremes_oads_dossier/json/event.json | 1 + .../json/mapserver_layers.json | 45 ++ storage/veremes_oads_dossier/package.json | 5 + .../veremes_oads_dossier/sql/structure.json | 6 + storage/veremes_oads_dossier/sql/table.sql | 194 ++++++ .../json/business_object.json | 20 + storage/veremes_oads_parcelle/json/event.json | 1 + .../json/mapserver_layers.json | 23 + storage/veremes_oads_parcelle/package.json | 5 + .../veremes_oads_parcelle/sql/structure.json | 6 + storage/veremes_oads_parcelle/sql/table.sql | 0 web_service/conf/properties_server.inc | 1 + web_service/conf/selected_properties.inc | 6 +- web_service/ws/BusinessObject.class.inc | 0 web_service/ws/BusinessObjects.class.inc | 11 - web_service/ws/Layers.class.inc | 0 web_service/ws/Querys.class.inc | 0 web_service/ws/UserModules.class.inc | 0 web_service/ws/UserPrintStyles.class.inc | 0 web_service/ws/UserPrintTemplates.class.inc | 0 web_service/ws/VexExport.class.inc | 0 72 files changed, 3893 insertions(+), 30 deletions(-) mode change 100755 => 100644 module/css/vmap.less mode change 100755 => 100644 module/forms/vmap_admin_map/vmap_admin_map_vmap_admin_map.json mode change 100755 => 100644 module/forms/vmap_admin_map/vmap_admin_map_vmap_layers.json mode change 100755 => 100644 module/forms/vmap_business_object/vmap_business_object_vmap_business_object.js mode change 100755 => 100644 module/forms/vmap_business_object/vmap_business_object_vmap_business_object.json mode change 100755 => 100644 module/javascript/app/modules/Cadastre/cadastre.js mode change 100755 => 100644 module/javascript/app/vmap/map/map.js mode change 100755 => 100644 module/javascript/app/vmap/mapmanager/layerstree.js mode change 100755 => 100644 module/javascript/app/vmap/mapmanager/maplegend.js mode change 100755 => 100644 module/javascript/app/vmap/mapmanager/mapmanager.js mode change 100755 => 100644 module/javascript/app/vmap/mapmanager/mapmodal/maplist.js mode change 100755 => 100644 module/javascript/app/vmap/mapmanager/mapmodal/maplistlitle.js mode change 100755 => 100644 module/javascript/app/vmap/tools/basictools.js mode change 100755 => 100644 module/javascript/app/vmap/tools/infocontainer.js mode change 100755 => 100644 module/javascript/app/vmap/tools/location.js mode change 100755 => 100644 module/javascript/app/vmap/tools/print.js mode change 100755 => 100644 module/javascript/app/vmap/tools/select/advancedselect.js create mode 100644 module/javascript/app/vmap/tools/urlexporter.js mode change 100755 => 100644 module/javascript/app/vmap/vmap.js mode change 100755 => 100644 module/javascript/vitis/script_module.js mode change 100755 => 100644 module/lang/lang-en.json mode change 100755 => 100644 module/lang/lang-fr.json mode change 100755 => 100644 module/template/layers/layertree.html mode change 100755 => 100644 module/template/layers/mapmodal/maplist.html mode change 100755 => 100644 module/template/layers/mapmodal/maplistlitle.html mode change 100755 => 100644 module/template/modules/cadastre.html mode change 100755 => 100644 module/template/tools/basicselect.html mode change 100755 => 100644 module/template/tools/basictools.html mode change 100755 => 100644 module/template/tools/infocontainer.html mode change 100755 => 100644 module/template/tools/insert.html mode change 100755 => 100644 module/template/tools/location.html mode change 100755 => 100644 module/template/tools/print.html mode change 100755 => 100644 module/template/tools/select.html create mode 100644 module/template/tools/urlexporter.html create mode 100755 storage/veremes_demo_dessin/forms/custom.json create mode 100755 storage/veremes_demo_dessin/forms/default.json create mode 100755 storage/veremes_demo_dessin/forms/published.json create mode 100755 storage/veremes_demo_dessin/forms/ressources/custom.js create mode 100755 storage/veremes_demo_dessin/forms/ressources/default.js create mode 100755 storage/veremes_demo_dessin/forms/ressources/published.js create mode 100755 storage/veremes_demo_dessin/json/business_object.json create mode 100755 storage/veremes_demo_dessin/json/event.json create mode 100755 storage/veremes_demo_dessin/json/mapserver_layers.json create mode 100755 storage/veremes_demo_dessin/package.json create mode 100755 storage/veremes_demo_dessin/sql/structure.json create mode 100755 storage/veremes_demo_dessin/sql/table.sql create mode 100755 storage/veremes_oads_dossier/forms/custom.json create mode 100755 storage/veremes_oads_dossier/forms/default.json create mode 100755 storage/veremes_oads_dossier/forms/published.json create mode 100755 storage/veremes_oads_dossier/json/business_object.json create mode 100755 storage/veremes_oads_dossier/json/event.json create mode 100755 storage/veremes_oads_dossier/json/mapserver_layers.json create mode 100755 storage/veremes_oads_dossier/package.json create mode 100755 storage/veremes_oads_dossier/sql/structure.json create mode 100755 storage/veremes_oads_dossier/sql/table.sql create mode 100755 storage/veremes_oads_parcelle/json/business_object.json create mode 100755 storage/veremes_oads_parcelle/json/event.json create mode 100755 storage/veremes_oads_parcelle/json/mapserver_layers.json create mode 100755 storage/veremes_oads_parcelle/package.json create mode 100755 storage/veremes_oads_parcelle/sql/structure.json create mode 100755 storage/veremes_oads_parcelle/sql/table.sql mode change 100755 => 100644 web_service/conf/properties_server.inc mode change 100755 => 100644 web_service/conf/selected_properties.inc mode change 100755 => 100644 web_service/ws/BusinessObject.class.inc mode change 100644 => 100755 web_service/ws/BusinessObjects.class.inc mode change 100755 => 100644 web_service/ws/Layers.class.inc mode change 100755 => 100644 web_service/ws/Querys.class.inc mode change 100755 => 100644 web_service/ws/UserModules.class.inc mode change 100755 => 100644 web_service/ws/UserPrintStyles.class.inc mode change 100755 => 100644 web_service/ws/UserPrintTemplates.class.inc mode change 100755 => 100644 web_service/ws/VexExport.class.inc diff --git a/module/css/vmap.less b/module/css/vmap.less old mode 100755 new mode 100644 index 714bc72f..0afd13f1 --- a/module/css/vmap.less +++ b/module/css/vmap.less @@ -1482,6 +1482,11 @@ app-layertree button:hover { background-color: transparent; color: @color-text-1; } +.basic-tools-element.inactive, .basic-tools-element.inactive:hover{ + background-color: #838383 !important; + color: #A5A5A5 !important; + cursor : not-allowed !important; +} .basic-tools-element.active{ background-color: @basic-tool-active !important; color: @head-bar !important; diff --git a/module/forms/vmap_admin_map/vmap_admin_map_vmap_admin_map.json b/module/forms/vmap_admin_map/vmap_admin_map_vmap_admin_map.json old mode 100755 new mode 100644 diff --git a/module/forms/vmap_admin_map/vmap_admin_map_vmap_layers.json b/module/forms/vmap_admin_map/vmap_admin_map_vmap_layers.json old mode 100755 new mode 100644 diff --git a/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.js b/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.js old mode 100755 new mode 100644 diff --git a/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.json b/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.json old mode 100755 new mode 100644 diff --git a/module/javascript/app/modules/Cadastre/cadastre.js b/module/javascript/app/modules/Cadastre/cadastre.js old mode 100755 new mode 100644 index 6ec72c9e..91a57bf0 --- a/module/javascript/app/modules/Cadastre/cadastre.js +++ b/module/javascript/app/modules/Cadastre/cadastre.js @@ -269,7 +269,12 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController = function return oVmap.isLink(sString, 'link'); }; $scope['getRenderedParsedLink'] = function (sString) { - sString = oVmap.parseLink(sString, 'link'); + + if(sString.indexOf('<a') === 0 && sString.indexOf('[') !== 0 ){ + sString = oVmap.checkLink(sString); + }else{ + sString = oVmap.parseLink(sString, 'link'); + } return $sce.trustAsHtml(sString); }; }; diff --git a/module/javascript/app/vmap/map/map.js b/module/javascript/app/vmap/map/map.js old mode 100755 new mode 100644 index a57f5921..7c0ba9a4 --- a/module/javascript/app/vmap/map/map.js +++ b/module/javascript/app/vmap/map/map.js @@ -26,7 +26,7 @@ goog.require('goog.async.AnimationDelay'); * Class {@link nsVmap.Map}: initializes the map * * @constructor - * @export + * @export */ nsVmap.Map = function () { oVmap.log("nsVmap.Map"); @@ -1246,7 +1246,7 @@ nsVmap.Map.prototype.startMobileDraw = function (sGeomType, callback) { var this_ = this; - // Géométrie multiple ? + // Géométrie multiple ? this.mobileDrawMulti_ = false; if (sGeomType.substr(0, 5).toUpperCase() === 'MULTI') { this.mobileDrawMulti_ = true; @@ -1373,11 +1373,11 @@ nsVmap.Map.prototype.getDrawOutput_ = function (aPoints) { return new ol.geom.LineString(aPoints); break; case 'POLYGON': - + // Ajoute la même coord à la fin de la géométrie de manière à boucler le polygone var aTmpPoints = angular.copy(aPoints); aTmpPoints.push(aTmpPoints[0]); - + return new ol.geom.Polygon([aTmpPoints]); break; case 'CIRCLE': @@ -1420,7 +1420,7 @@ nsVmap.Map.prototype.displayDrawTmpFeature_ = function () { nsVmap.Map.prototype.finishMobileDraw = function () { oVmap.log('nsVmap.Map.prototype.finishMobileDraw'); - // Géométrie multiple ? + // Géométrie multiple ? var this_ = this; if (this.mobileDrawMulti_) { bootbox['dialog']({ @@ -1568,7 +1568,7 @@ nsVmap.Map.prototype.redoLastChange = function () { }; /** - * + * * @private */ nsVmap.Map.prototype.getMapMenuScope = function () { @@ -1893,7 +1893,6 @@ nsVmap.Map.prototype.mapController.prototype.emptyLoadErrorsEvents = function () oVmap.log('nsVmap.Map.prototype.emptyLoadErrorsEvents'); for (var i = 0; i < this.loadErrorEventsContainer_.length; i++) { -// this.loadErrorEventsContainer_[i].layer.getSource().unByKey(this.loadErrorEventsContainer_[i].event); ol.Observable.unByKey(this.loadErrorEventsContainer_[i].event); } }; @@ -2372,4 +2371,4 @@ nsVmap.Map.prototype.getLayerById = function (layerId) { // Si aucun layer ne correspondait return null; -}; \ No newline at end of file +}; diff --git a/module/javascript/app/vmap/mapmanager/layerstree.js b/module/javascript/app/vmap/mapmanager/layerstree.js old mode 100755 new mode 100644 index 137700c8..673cb4e0 --- a/module/javascript/app/vmap/mapmanager/layerstree.js +++ b/module/javascript/app/vmap/mapmanager/layerstree.js @@ -145,7 +145,11 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController = function ($scope, this['layerstree_collapsed'] = oVmap['properties']['vmap']['layerstree_collapsed']; } - this.loadTree(); + if (goog.isDefAndNotNull(oUrlParams['extent'])){ + var aExtent = decodeURI(oUrlParams['extent']).split("|"); + } + + this.loadTree(aExtent); // Événements sur les couches var keepLoadedTiles = true; @@ -351,9 +355,10 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.reloadTre /** * Load layers from the tree + * @param {array|undefined} aExtent exent to fit on * @returns {undefined} */ -nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree = function () { +nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree = function (aExtent) { oVmap.log('nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree'); if (this['map'].getLayers().getArray().length > 0) @@ -413,6 +418,12 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree this.addLayer(olLayers[i]); } + // Va à l'étendue fournie + if (goog.isDefAndNotNull(aExtent)) { + this['map'].getView().fit(aExtent, { + nearest : true + }); + } }; /** diff --git a/module/javascript/app/vmap/mapmanager/maplegend.js b/module/javascript/app/vmap/mapmanager/maplegend.js old mode 100755 new mode 100644 diff --git a/module/javascript/app/vmap/mapmanager/mapmanager.js b/module/javascript/app/vmap/mapmanager/mapmanager.js old mode 100755 new mode 100644 diff --git a/module/javascript/app/vmap/mapmanager/mapmodal/maplist.js b/module/javascript/app/vmap/mapmanager/mapmodal/maplist.js old mode 100755 new mode 100644 diff --git a/module/javascript/app/vmap/mapmanager/mapmodal/maplistlitle.js b/module/javascript/app/vmap/mapmanager/mapmodal/maplistlitle.js old mode 100755 new mode 100644 diff --git a/module/javascript/app/vmap/tools/basictools.js b/module/javascript/app/vmap/tools/basictools.js old mode 100755 new mode 100644 index abf0e9a4..f53955c4 --- a/module/javascript/app/vmap/tools/basictools.js +++ b/module/javascript/app/vmap/tools/basictools.js @@ -16,6 +16,7 @@ goog.require('nsVmap.nsToolsManager.Measure'); goog.require('nsVmap.nsToolsManager.Select'); goog.require('nsVmap.nsToolsManager.Insert'); goog.require('nsVmap.nsToolsManager.Print'); +goog.require('nsVmap.nsToolsManager.Urlexporter'); /** @@ -34,6 +35,7 @@ nsVmap.nsToolsManager.BasicTools = function () { this.oInsert_ = new nsVmap.nsToolsManager.Insert(); this.oPrint_ = new nsVmap.nsToolsManager.Print(); this.oControls_ = new nsVmap.nsToolsManager.Controls(); + this.oUrlExporter_ = new nsVmap.nsToolsManager.Urlexporter(); }; /** diff --git a/module/javascript/app/vmap/tools/infocontainer.js b/module/javascript/app/vmap/tools/infocontainer.js old mode 100755 new mode 100644 diff --git a/module/javascript/app/vmap/tools/insert.js b/module/javascript/app/vmap/tools/insert.js index f016afe6..803d13ad 100644 --- a/module/javascript/app/vmap/tools/insert.js +++ b/module/javascript/app/vmap/tools/insert.js @@ -1434,9 +1434,9 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController.prototype.getMobileB if (sGeomType === 'GEOMETRY' || sGeomType === 'GEOMETRYCOLLECTION') { bootbox.prompt({ - 'title': "Type de géométrie à insérer", - 'inputType': 'select', - 'inputOptions': [ + title: "Type de géométrie à insérer", + inputType: 'select', + inputOptions: [ { text: 'Point', value: 'POINT' @@ -1454,7 +1454,7 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController.prototype.getMobileB value: 'CIRCLE' } ], - 'callback': function (result) { + callback: function (result) { deferred.resolve(result); } }); diff --git a/module/javascript/app/vmap/tools/location.js b/module/javascript/app/vmap/tools/location.js old mode 100755 new mode 100644 index c4f32bfc..4cd96440 --- a/module/javascript/app/vmap/tools/location.js +++ b/module/javascript/app/vmap/tools/location.js @@ -127,6 +127,23 @@ nsVmap.nsToolsManager.Location.prototype.locationController = function ($scope, */ this['oBusinessObjects'] = []; + /** + * @type {array} + */ + this['aLocationHistory'] = [{ + center: this_.map_.getView().getCenter(), + zoom: this_.map_.getView().getZoom() + }]; + /** + * @type {integer} + */ + this['iHistoryOffset'] = 0; + /** + * @type {integer} + */ + this['iHistoryOffset_save'] = 0; + + /** * @tyle {number} */ @@ -169,8 +186,44 @@ nsVmap.nsToolsManager.Location.prototype.locationController = function ($scope, }); }); + // remplissage de l'historique des étendues + var fHistoryDelayHandler; + this_.map_.on("moveend", function(event){ + if(this_['iHistoryOffset'] === this_['iHistoryOffset_save']){ + //check wait + if (goog.isDefAndNotNull(fHistoryDelayHandler)){ + $timeout.cancel(fHistoryDelayHandler); + } + + fHistoryDelayHandler = $timeout(function () { + if(this_['iHistoryOffset'] === 0){ + this_["aLocationHistory"].push({ + center: this_.map_.getView().getCenter(), + zoom: this_.map_.getView().getZoom() + }); + } else { + // splice + var iHistoryPosition = this_['aLocationHistory'].length - (this_['iHistoryOffset']); + this_["aLocationHistory"].splice(iHistoryPosition, this_['iHistoryOffset'], { + center: this_.map_.getView().getCenter(), + zoom: this_.map_.getView().getZoom() + }); + + this_['iHistoryOffset'] = 0; + } + }, oVmap['properties']['vmap_history_timer']); + } else { + this_['iHistoryOffset_save'] = this_['iHistoryOffset']; + } + }); + // Vide les localisations quand on change de carte oVmap['scope'].$on('mapChanged', function () { + // purge de l'historique des étendues + this_['aLocationHistory'] = [{ + center: this_.map_.getView().getCenter(), + zoom: this_.map_.getView().getZoom() + }]; if (goog.isDef(this_.locationPopup)) { this_.locationPopup.remove(); } @@ -311,6 +364,48 @@ nsVmap.nsToolsManager.Location.prototype.locationController.prototype.goHome = f currentView.setResolution(originalPosition.resolution); }; + +/** + * Go on the previous extent + * @export + */ +nsVmap.nsToolsManager.Location.prototype.locationController.prototype.nextHistoryExtent = function () { + oVmap.log("nsVmap.nsToolsManager.Location.prototype.locationController.nextHistoryExtent"); + + if(this['iHistoryOffset'] > 0){ + this['iHistoryOffset'] -= 1; + this.selectHistoryExtent(); + } +}; + +/** + * Go on the next extent + * @export + */ +nsVmap.nsToolsManager.Location.prototype.locationController.prototype.previousHistoryExtent = function () { + oVmap.log("nsVmap.nsToolsManager.Location.prototype.locationController.previousHistoryExtent"); + + if(this['iHistoryOffset'] < this['aLocationHistory'].length - 1){ + this['iHistoryOffset'] += 1; + this.selectHistoryExtent(); + } +}; + +/** + * Go on the selected extent in history + * @export + */ +nsVmap.nsToolsManager.Location.prototype.locationController.prototype.selectHistoryExtent = function () { + oVmap.log("nsVmap.nsToolsManager.Location.prototype.locationController.selectHistoryExtent"); + + var currentView = oVmap.getMap().getOLMap().getView(); + + var iHistoryPosition = this['aLocationHistory'].length - ( 1 + this['iHistoryOffset']); + + currentView.setCenter(this['aLocationHistory'][iHistoryPosition].center); + currentView.setZoom(this['aLocationHistory'][iHistoryPosition].zoom); +}; + /** * Localise the map on the entry position * @param {string} CoordX html id to the X value diff --git a/module/javascript/app/vmap/tools/print.js b/module/javascript/app/vmap/tools/print.js old mode 100755 new mode 100644 diff --git a/module/javascript/app/vmap/tools/select/advancedselect.js b/module/javascript/app/vmap/tools/select/advancedselect.js old mode 100755 new mode 100644 diff --git a/module/javascript/app/vmap/tools/urlexporter.js b/module/javascript/app/vmap/tools/urlexporter.js new file mode 100644 index 00000000..85e757f8 --- /dev/null +++ b/module/javascript/app/vmap/tools/urlexporter.js @@ -0,0 +1,140 @@ +/* global oVmap, nsVmap, goog, ol, vitisApp */ + +/** + * @author: Anthony Borghi + * @Description: Fichier contenant la classe nsVmap.nsToolsManager.Urlexporter + * cette classe permet à l'utilisateur d'exporter une url pour un autre utilisateur + */ +goog.provide('nsVmap.nsToolsManager.Urlexporter'); + +goog.require('oVmap'); + +/** + * @classdesc + * Class {@link nsVmap.nsToolsManager.VmapUser} + * @constructor + * @export + */ +nsVmap.nsToolsManager.Urlexporter = function () { + oVmap.log('nsVmap.nsToolsManager.Urlexporter'); +}; + + + +/** + * Directive + * @return {angular.Directive} The directive specs. + * @constructor + */ +nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterDirective = function () { + oVmap.log("nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterDirective"); + return { + restrict: 'A', + scope: { + 'map': '=appMap', + 'lang': '=appLang' + }, + controller: 'AppUrlExporterController', + controllerAs: 'ctrl', + bindToController: true, + templateUrl: oVmap['properties']['vmap_folder'] + '/' + 'template/tools/' + (oVmap['properties']['is_mobile'] ? 'urlexporter_mobile.html' : 'urlexporter.html') + }; +}; + +/** + * Controler + * @constructor + * @param {object} $scope + * @returns {undefined} + * @ngInject + */ +nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController = function ($scope, $q, $element) { + oVmap.log("nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController"); + + var this_ = this; + + this.$scope_ = $scope; + + /** + * The current properties + */ + this['properties'] = oVmap['properties']; + + /** + * The current token + */ + this['token'] = oVmap['properties']['token']; + + /** + * @type {string} + */ + this["urlToExport"] = ""; + /** + * @type {boolean} + */ + this["usePublicToken"] = false; + + this["urlConstructor"](); + + // Affiche les modales en plein écran pour la version mobile + //if (oVmap['properties']['is_mobile']) { + // $element.find('.modal').on('shown.bs.modal', function () { + // $('.modal-backdrop.fade.in').hide(); + // $('.modal.fade.in').find('.modal-dialog').addClass('mobile-full-modal'); + // }); + //} + + console.log(this['properties']); + + // recalcule l'url quand on change de carte + oVmap['scope'].$on('mapChanged', function () { + this_["urlConstructor"](); + }); + + $scope.$watch("ctrl.usePublicToken", function(){ + this_["urlConstructor"](); + }) + + oVmap.getMap().getOLMap().on("moveend", function(event){ + this_["urlConstructor"](); + }); +}; + +/** + * Display the user form in display mode + * @returns {undefined} + * @export + */ +nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.urlConstructor = function () { + oVmap.log("nsVmap.nsToolsManager.Urlexporter.urlExporterController.urlConstructor"); + + var sUrl = this['properties']['web_server_name'] + "/" + this['properties']['application']; + + if (goog.isDefAndNotNull(this['properties']['environment'])){ + if (this['properties']['environment'] != ""){ + sUrl += "_" + this['properties']['environment']; + } + } + + sUrl += "?"; + + var oMapCatalog = oVmap.getMapManager().getMapCatalog(); + var iMapId = oMapCatalog["maps"][oMapCatalog["usedMap"]]["map_id"]; + + sUrl += "map_id=" + iMapId; + + // si public add token + if (this["usePublicToken"]){ + sUrl += "&token=" + this['properties']['public_token']; + } + + // get extent and add in url + var sExtent = oVmap.getMap().getOLMap().getView().calculateExtent(oVmap.getMap().getOLMap().getSize()).join("|"); + sUrl += "&extent=" + encodeURI(sExtent); + + this["urlToExport"] = sUrl; +}; + +// Définit la directive et le controller +oVmap.module.directive('appUrlExporter', nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterDirective); +oVmap.module.controller('AppUrlExporterController', nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController); \ No newline at end of file diff --git a/module/javascript/app/vmap/vmap.js b/module/javascript/app/vmap/vmap.js old mode 100755 new mode 100644 index 3c8347db..48dbc1ba --- a/module/javascript/app/vmap/vmap.js +++ b/module/javascript/app/vmap/vmap.js @@ -1174,6 +1174,12 @@ oVmap.isLink = function (item, tagIdentifier) { if (item.indexOf('[' + tagIdentifier) !== -1 && item.indexOf('[/' + tagIdentifier + ']') !== -1) { return true; } + + if (item.indexOf('<a') !== -1 && item.indexOf('</a>') !== -1) { + return true; + } + + return false; }; @@ -1211,18 +1217,53 @@ oVmap.parseLink = function (sString, tagIdentifier) { } }; +/** + * Parse a link and extract only good tags ex: <a href="https://www.google.fr" target="_blank">Lien</a> + * @param {String} sString + * @returns {String} + * @export + */ +oVmap.checkLink = function(sString){ + if (!goog.isDefAndNotNull(sString)) { + return ''; + } + if (!goog.isString(sString)) { + return ''; + } + var sLink = sString.substr(sString.indexOf('<a'), sString.indexOf('</a>') - sString.indexOf('<a') + 10); + var sLinkFirstTag = oVmap.getFirstLinkTag_(sLink, '>'); + var sLinkContent = oVmap.getLinkContent_(sLink, sLinkFirstTag, '</a>'); + var oLinkArgs = oVmap.getLinkTagArguments_(sLinkFirstTag); + // extract only required tags (href and target) + var sHref = goog.isDefAndNotNull(oLinkArgs['href']) ? oLinkArgs['href'] : null; + var sTarget = goog.isDefAndNotNull(oLinkArgs['target']) ? oLinkArgs['target'] : '_blank'; + var sContent = sLinkContent.length > 0 ? sLinkContent : sHref; + + if (goog.isDefAndNotNull(sHref)) { + var sLink = '<a href="' + sHref + '" target="' + sTarget + '">' + sContent + '</a>'; + return sLink; + } else { + console.error('cannot parse href'); + // return empty string to avoid Javascript injection + return ""; + } +} + + /** * Get the first tag * @param {String} sLink * @returns {String} */ -oVmap.getFirstLinkTag_ = function (sLink) { +oVmap.getFirstLinkTag_ = function (sLink, sLinkTagToFind) { var quoteIndex1 = null; var quoteIndex2 = null; var bInArgument = false; var sLinkFirstTag = ''; + sLinkTagToFind = (goog.isDefAndNotNull(sLinkTagToFind)) ? sLinkTagToFind : ']'; + for (var i = 0; i < sLink.length; i++) { sLinkFirstTag += sLink[i]; if (sLink[i] === '"') { @@ -1252,7 +1293,7 @@ oVmap.getFirstLinkTag_ = function (sLink) { } } - if (!bInArgument && sLink[i] === ']') { + if (!bInArgument && sLink[i] === sLinkTagToFind) { break; } } diff --git a/module/javascript/vitis/script_module.js b/module/javascript/vitis/script_module.js old mode 100755 new mode 100644 diff --git a/module/lang/lang-en.json b/module/lang/lang-en.json old mode 100755 new mode 100644 diff --git a/module/lang/lang-fr.json b/module/lang/lang-fr.json old mode 100755 new mode 100644 diff --git a/module/template/layers/layertree.html b/module/template/layers/layertree.html old mode 100755 new mode 100644 diff --git a/module/template/layers/mapmodal/maplist.html b/module/template/layers/mapmodal/maplist.html old mode 100755 new mode 100644 diff --git a/module/template/layers/mapmodal/maplistlitle.html b/module/template/layers/mapmodal/maplistlitle.html old mode 100755 new mode 100644 diff --git a/module/template/modules/cadastre.html b/module/template/modules/cadastre.html old mode 100755 new mode 100644 diff --git a/module/template/tools/basicselect.html b/module/template/tools/basicselect.html old mode 100755 new mode 100644 diff --git a/module/template/tools/basictools.html b/module/template/tools/basictools.html old mode 100755 new mode 100644 index 5dc8dd2a..e85c7476 --- a/module/template/tools/basictools.html +++ b/module/template/tools/basictools.html @@ -4,6 +4,21 @@ <ul class="nav nav-pills basic-tools-nav"> <!-- Outils de localisation --> <div app-location app-lang="ctrl.lang" app-map="ctrl.map"></div> + <!-- Outil d'export d'url --> + <div> + <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> + <a class="basic-tools-element pointer" + title="Générateur d'URL" + onclick="oVmap.getToolsManager().getBasicTools().toggleTool(this)"> + <span class="icon-at" aria-hidden="true"></span> + </a> + <div app-url-exporter app-lang="ctrl.lang" app-map="ctrl.map" + id="basic-tools-dropdown-urlexporter" + class="dropdown-menu basic-tools-dropdown-element" + style="margin: -10px -1px; width: 30%;"> + </div> + </li> + </div> <!-- Login de l'utilisateur --> <div class="right"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> diff --git a/module/template/tools/infocontainer.html b/module/template/tools/infocontainer.html old mode 100755 new mode 100644 diff --git a/module/template/tools/insert.html b/module/template/tools/insert.html old mode 100755 new mode 100644 diff --git a/module/template/tools/location.html b/module/template/tools/location.html old mode 100755 new mode 100644 index 61a41368..a9f3e9bc --- a/module/template/tools/location.html +++ b/module/template/tools/location.html @@ -168,6 +168,22 @@ </div> </li> +<!--Previous history--> +<li role="presentation"> + <a class="basic-tools-element pointer" title="Aller à l'étendue précédente" + ng-click="ctrl.previousHistoryExtent()" ng-class="{'inactive' : ctrl.iHistoryOffset >= ctrl.aLocationHistory.length - 1}"> + <span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> + </a> +</li> + +<!--Next history--> +<li role="presentation"> + <a class="basic-tools-element pointer" title="Aller à l'étendue suivante" + ng-click="ctrl.nextHistoryExtent()" ng-class="{'inactive' : ctrl.iHistoryOffset === 0}"> + <span class="glyphicon glyphicon-arrow-right" aria-hidden="true"></span> + </a> +</li> + <!-- Modal --> <div id="scale-modal" class="modal fade" role="dialog"> <div class="modal-dialog"> diff --git a/module/template/tools/print.html b/module/template/tools/print.html old mode 100755 new mode 100644 diff --git a/module/template/tools/select.html b/module/template/tools/select.html old mode 100755 new mode 100644 diff --git a/module/template/tools/urlexporter.html b/module/template/tools/urlexporter.html new file mode 100644 index 00000000..8219c051 --- /dev/null +++ b/module/template/tools/urlexporter.html @@ -0,0 +1,11 @@ +<!--UrlExporter--> +<div class="row margin-sides-0 margin-10"> + <div class="col-md-3" ng-show="ctrl.properties.allow_public_connection"> + <input type="checkbox" ng-model="ctrl.usePublicToken" id="publicAccountCheckbox"> + <label for="publicAccountCheckbox" class="control-label">Public</label> + </div> + <div class="" ng-class="{'col-md-9' : ctrl.properties.allow_public_connection, 'col-md-12': !ctrl.properties.allow_public_connection}"> + <label for="urlExporterField" class="control-label">URL</label> + <input type="text" class="form-control" ng-model="ctrl.urlToExport" id="urlExporterField"> + </div> +</div> \ No newline at end of file diff --git a/storage/veremes_demo_dessin/forms/custom.json b/storage/veremes_demo_dessin/forms/custom.json new file mode 100755 index 00000000..40d59f8f --- /dev/null +++ b/storage/veremes_demo_dessin/forms/custom.json @@ -0,0 +1,629 @@ +{ + "display": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "draw_id", + "label": "draw_id", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "draw_id_1_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "description", + "label": "description", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "description_2_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "text_size", + "label": "text_size", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "text_size_3_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "geom_size", + "label": "geom_size", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "geom_size_4_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "contour_color", + "label": "Couleur de contour", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "contour_color_5_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "background_color", + "label": "Couleur de fond", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "background_color_6_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "color_label", + "label": "couleur du texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "color_label_7_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "label", + "label": "label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_8_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "graph", + "label": "graph", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "graph_9_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "area", + "label": "area", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "area_10_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "area_label", + "label": "area_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "area_label_11_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "perimeter", + "label": "perimeter", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "perimeter_12_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "perimeter_label", + "label": "perimeter_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "perimeter_label_13_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "text_label", + "label": "text_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "text_label_14_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "theme", + "label": "theme", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "comments", + "label": "comments", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "comments_16_1" + } + ] + } + ] +}, +"search": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [] +}, +"insert": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "text_label", + "label": "Texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_text_14_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "theme", + "label": "Thème / Projet", + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "textarea", + "name": "comments", + "label": "Commentaires", + "required": false, + "nb_cols": 6, + "id": "comments_16_1", + "size": 4 + }, + { + "type": "textarea", + "name": "description", + "label": "Etiquette", + "required": false, + "nb_cols": 6, + "id": "description_2_1", + "size": 4 + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2206" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2207" + } + ] + }, + "name": "label", + "label": "Afficher le texte", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "label_8_1", + "default_value": true + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2218" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2219" + } + ] + }, + "name": "graph", + "label": "Afficher la partie graph", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "graphique_9_1", + "default_value": true + } + ] + }, + { + "fields": [ + { + "type": "integer", + "name": "text_size", + "label": "Taille du texte", + "nb_cols": 6, + "id": "taille_text_3_1", + "default_value": 10, + "required": true + }, + { + "type": "integer", + "name": "geom_size", + "label": "Épaisseur/taille", + "nb_cols": 6, + "id": "taille_geom_4_1", + "default_value": 15, + "required": true + } + ] + }, + { + "fields": [ + { + "type": "color_picker", + "name": "background_color_rgba", + "label": "Couleur de fond", + "nb_cols": 4, + "id": "couleur_fond_6_1", + "default_value": "0 0 0", + "required": true + }, + { + "type": "color_picker", + "name": "contour_color_rgba", + "label": "Couleur de contour", + "nb_cols": 4, + "id": "couleur_contour_5_1", + "default_value": "0 0 0", + "required": true + }, + { + "type": "color_picker", + "name": "color_label_rgba", + "label": "couleur du texte", + "nb_cols": 4, + "id": "couleur_label_7_1", + "default_value": "0 0 0", + "required": true + } + ] + }, { + "fields": [ + { + "type": "hidden", + "name": "background_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "contour_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "color_label", + "nb_cols": 12 + } + ] + } + ] +}, +"update": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "draw_id", + "label": "Id", + "id": "id_dessin_1_1", + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "text_label", + "label": "Texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_text_14_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "theme", + "label": "Thème / Projet", + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "textarea", + "name": "comments", + "label": "Commentaires", + "required": false, + "nb_cols": 6, + "id": "comments_16_1", + "size": 4 + }, + { + "type": "textarea", + "name": "description", + "label": "Etiquette", + "required": false, + "nb_cols": 6, + "id": "description_2_1", + "size": 4 + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2044" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2045" + } + ] + }, + "name": "label", + "label": "Afficher le texte", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "label_8_1" + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2056" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2057" + } + ] + }, + "name": "graph", + "label": "Afficher la partie graph", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "graphique_9_1" + } + ] + }, + { + "fields": [ + { + "type": "integer", + "name": "text_size", + "label": "Taille du texte", + "nb_cols": 6, + "id": "taille_text_3_1" + }, + { + "type": "integer", + "name": "geom_size", + "label": "Épaisseur/taille", + "nb_cols": 6, + "id": "taille_geom_4_1" + } + ] + }, + { + "fields": [ + { + "type": "color_picker", + "name": "background_color_rgba", + "label": "Couleur de fond", + "nb_cols": 4, + "id": "couleur_fond_6_1" + }, + { + "type": "color_picker", + "name": "contour_color_rgba", + "label": "Couleur de contour", + "nb_cols": 4, + "id": "couleur_contour_5_1" + }, + { + "type": "color_picker", + "name": "color_label_rgba", + "label": "couleur du texte", + "nb_cols": 4, + "id": "couleur_label_7_1" + } + ] + }, { + "fields": [ + { + "type": "hidden", + "name": "background_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "contour_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "color_label", + "nb_cols": 12 + } + ] + } + ] +}, +"datasources": {} +} diff --git a/storage/veremes_demo_dessin/forms/default.json b/storage/veremes_demo_dessin/forms/default.json new file mode 100755 index 00000000..40d59f8f --- /dev/null +++ b/storage/veremes_demo_dessin/forms/default.json @@ -0,0 +1,629 @@ +{ + "display": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "draw_id", + "label": "draw_id", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "draw_id_1_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "description", + "label": "description", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "description_2_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "text_size", + "label": "text_size", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "text_size_3_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "geom_size", + "label": "geom_size", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "geom_size_4_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "contour_color", + "label": "Couleur de contour", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "contour_color_5_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "background_color", + "label": "Couleur de fond", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "background_color_6_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "color_label", + "label": "couleur du texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "color_label_7_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "label", + "label": "label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_8_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "graph", + "label": "graph", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "graph_9_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "area", + "label": "area", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "area_10_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "area_label", + "label": "area_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "area_label_11_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "perimeter", + "label": "perimeter", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "perimeter_12_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "perimeter_label", + "label": "perimeter_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "perimeter_label_13_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "text_label", + "label": "text_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "text_label_14_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "theme", + "label": "theme", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "comments", + "label": "comments", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "comments_16_1" + } + ] + } + ] +}, +"search": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [] +}, +"insert": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "text_label", + "label": "Texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_text_14_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "theme", + "label": "Thème / Projet", + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "textarea", + "name": "comments", + "label": "Commentaires", + "required": false, + "nb_cols": 6, + "id": "comments_16_1", + "size": 4 + }, + { + "type": "textarea", + "name": "description", + "label": "Etiquette", + "required": false, + "nb_cols": 6, + "id": "description_2_1", + "size": 4 + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2206" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2207" + } + ] + }, + "name": "label", + "label": "Afficher le texte", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "label_8_1", + "default_value": true + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2218" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2219" + } + ] + }, + "name": "graph", + "label": "Afficher la partie graph", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "graphique_9_1", + "default_value": true + } + ] + }, + { + "fields": [ + { + "type": "integer", + "name": "text_size", + "label": "Taille du texte", + "nb_cols": 6, + "id": "taille_text_3_1", + "default_value": 10, + "required": true + }, + { + "type": "integer", + "name": "geom_size", + "label": "Épaisseur/taille", + "nb_cols": 6, + "id": "taille_geom_4_1", + "default_value": 15, + "required": true + } + ] + }, + { + "fields": [ + { + "type": "color_picker", + "name": "background_color_rgba", + "label": "Couleur de fond", + "nb_cols": 4, + "id": "couleur_fond_6_1", + "default_value": "0 0 0", + "required": true + }, + { + "type": "color_picker", + "name": "contour_color_rgba", + "label": "Couleur de contour", + "nb_cols": 4, + "id": "couleur_contour_5_1", + "default_value": "0 0 0", + "required": true + }, + { + "type": "color_picker", + "name": "color_label_rgba", + "label": "couleur du texte", + "nb_cols": 4, + "id": "couleur_label_7_1", + "default_value": "0 0 0", + "required": true + } + ] + }, { + "fields": [ + { + "type": "hidden", + "name": "background_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "contour_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "color_label", + "nb_cols": 12 + } + ] + } + ] +}, +"update": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "draw_id", + "label": "Id", + "id": "id_dessin_1_1", + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "text_label", + "label": "Texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_text_14_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "theme", + "label": "Thème / Projet", + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "textarea", + "name": "comments", + "label": "Commentaires", + "required": false, + "nb_cols": 6, + "id": "comments_16_1", + "size": 4 + }, + { + "type": "textarea", + "name": "description", + "label": "Etiquette", + "required": false, + "nb_cols": 6, + "id": "description_2_1", + "size": 4 + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2044" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2045" + } + ] + }, + "name": "label", + "label": "Afficher le texte", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "label_8_1" + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2056" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2057" + } + ] + }, + "name": "graph", + "label": "Afficher la partie graph", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "graphique_9_1" + } + ] + }, + { + "fields": [ + { + "type": "integer", + "name": "text_size", + "label": "Taille du texte", + "nb_cols": 6, + "id": "taille_text_3_1" + }, + { + "type": "integer", + "name": "geom_size", + "label": "Épaisseur/taille", + "nb_cols": 6, + "id": "taille_geom_4_1" + } + ] + }, + { + "fields": [ + { + "type": "color_picker", + "name": "background_color_rgba", + "label": "Couleur de fond", + "nb_cols": 4, + "id": "couleur_fond_6_1" + }, + { + "type": "color_picker", + "name": "contour_color_rgba", + "label": "Couleur de contour", + "nb_cols": 4, + "id": "couleur_contour_5_1" + }, + { + "type": "color_picker", + "name": "color_label_rgba", + "label": "couleur du texte", + "nb_cols": 4, + "id": "couleur_label_7_1" + } + ] + }, { + "fields": [ + { + "type": "hidden", + "name": "background_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "contour_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "color_label", + "nb_cols": 12 + } + ] + } + ] +}, +"datasources": {} +} diff --git a/storage/veremes_demo_dessin/forms/published.json b/storage/veremes_demo_dessin/forms/published.json new file mode 100755 index 00000000..40d59f8f --- /dev/null +++ b/storage/veremes_demo_dessin/forms/published.json @@ -0,0 +1,629 @@ +{ + "display": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "draw_id", + "label": "draw_id", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "draw_id_1_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "description", + "label": "description", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "description_2_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "text_size", + "label": "text_size", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "text_size_3_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "geom_size", + "label": "geom_size", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "geom_size_4_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "contour_color", + "label": "Couleur de contour", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "contour_color_5_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "background_color", + "label": "Couleur de fond", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "background_color_6_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "color_label", + "label": "couleur du texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "color_label_7_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "label", + "label": "label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_8_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "graph", + "label": "graph", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "graph_9_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "area", + "label": "area", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "area_10_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "area_label", + "label": "area_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "area_label_11_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "perimeter", + "label": "perimeter", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "perimeter_12_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "perimeter_label", + "label": "perimeter_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "perimeter_label_13_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "text_label", + "label": "text_label", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "text_label_14_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "theme", + "label": "theme", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "comments", + "label": "comments", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "comments_16_1" + } + ] + } + ] +}, +"search": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [] +}, +"insert": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "text_label", + "label": "Texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_text_14_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "theme", + "label": "Thème / Projet", + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "textarea", + "name": "comments", + "label": "Commentaires", + "required": false, + "nb_cols": 6, + "id": "comments_16_1", + "size": 4 + }, + { + "type": "textarea", + "name": "description", + "label": "Etiquette", + "required": false, + "nb_cols": 6, + "id": "description_2_1", + "size": 4 + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2206" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2207" + } + ] + }, + "name": "label", + "label": "Afficher le texte", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "label_8_1", + "default_value": true + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2218" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2219" + } + ] + }, + "name": "graph", + "label": "Afficher la partie graph", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "graphique_9_1", + "default_value": true + } + ] + }, + { + "fields": [ + { + "type": "integer", + "name": "text_size", + "label": "Taille du texte", + "nb_cols": 6, + "id": "taille_text_3_1", + "default_value": 10, + "required": true + }, + { + "type": "integer", + "name": "geom_size", + "label": "Épaisseur/taille", + "nb_cols": 6, + "id": "taille_geom_4_1", + "default_value": 15, + "required": true + } + ] + }, + { + "fields": [ + { + "type": "color_picker", + "name": "background_color_rgba", + "label": "Couleur de fond", + "nb_cols": 4, + "id": "couleur_fond_6_1", + "default_value": "0 0 0", + "required": true + }, + { + "type": "color_picker", + "name": "contour_color_rgba", + "label": "Couleur de contour", + "nb_cols": 4, + "id": "couleur_contour_5_1", + "default_value": "0 0 0", + "required": true + }, + { + "type": "color_picker", + "name": "color_label_rgba", + "label": "couleur du texte", + "nb_cols": 4, + "id": "couleur_label_7_1", + "default_value": "0 0 0", + "required": true + } + ] + }, { + "fields": [ + { + "type": "hidden", + "name": "background_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "contour_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "color_label", + "nb_cols": 12 + } + ] + } + ] +}, +"update": { + "name": "custom-form", + "title": "Dessin", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "draw_id", + "label": "Id", + "id": "id_dessin_1_1", + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "text_label", + "label": "Texte", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "label_text_14_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "theme", + "label": "Thème / Projet", + "required": false, + "nb_cols": 12, + "id": "theme_15_1" + } + ] + }, + { + "fields": [ + { + "type": "textarea", + "name": "comments", + "label": "Commentaires", + "required": false, + "nb_cols": 6, + "id": "comments_16_1", + "size": 4 + }, + { + "type": "textarea", + "name": "description", + "label": "Etiquette", + "required": false, + "nb_cols": 6, + "id": "description_2_1", + "size": 4 + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2044" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2045" + } + ] + }, + "name": "label", + "label": "Afficher le texte", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "label_8_1" + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "Oui", + "value": true, + "$$hashKey": "object:2056" + }, + { + "label": "Non", + "value": false, + "$$hashKey": "object:2057" + } + ] + }, + "name": "graph", + "label": "Afficher la partie graph", + "disabled": false, + "required": false, + "nb_cols": 6, + "id": "graphique_9_1" + } + ] + }, + { + "fields": [ + { + "type": "integer", + "name": "text_size", + "label": "Taille du texte", + "nb_cols": 6, + "id": "taille_text_3_1" + }, + { + "type": "integer", + "name": "geom_size", + "label": "Épaisseur/taille", + "nb_cols": 6, + "id": "taille_geom_4_1" + } + ] + }, + { + "fields": [ + { + "type": "color_picker", + "name": "background_color_rgba", + "label": "Couleur de fond", + "nb_cols": 4, + "id": "couleur_fond_6_1" + }, + { + "type": "color_picker", + "name": "contour_color_rgba", + "label": "Couleur de contour", + "nb_cols": 4, + "id": "couleur_contour_5_1" + }, + { + "type": "color_picker", + "name": "color_label_rgba", + "label": "couleur du texte", + "nb_cols": 4, + "id": "couleur_label_7_1" + } + ] + }, { + "fields": [ + { + "type": "hidden", + "name": "background_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "contour_color", + "nb_cols": 12 + },{ + "type": "hidden", + "name": "color_label", + "nb_cols": 12 + } + ] + } + ] +}, +"datasources": {} +} diff --git a/storage/veremes_demo_dessin/forms/ressources/custom.js b/storage/veremes_demo_dessin/forms/ressources/custom.js new file mode 100755 index 00000000..de066e6f --- /dev/null +++ b/storage/veremes_demo_dessin/forms/ressources/custom.js @@ -0,0 +1,109 @@ +/* global angular, goog */ +// CUSTOM +//bloque les delete du destructeur à éviter +//'use strict'; + +/*********************************************************************************** + vmap_dessin Javascript + ***********************************************************************************/ + +var oFormRequired = { + "sUrl": "", + "scope_": {}, + "toDestructor": [] +}; +/** + * constructor_form + * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true" + * @param {type} scope + * @param {type} s_url + * @returns {undefined} + */ +var constructor_form = function (scope, s_url) { + ////////////////////////////////////////////////////////// + //Ne pas toucher + console.log("constructor_form"); + + oFormRequired.sUrl = s_url; + oFormRequired.scope_ = scope; + + var parseColorFromRGBA = function (rgba) { + if (isRGBA(rgba)) { + var matchColors = /rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(\d{1,3})\)/; + var match = matchColors.exec(rgba); + var color = match[1] + ' ' + match[2] + ' ' + match[3]; + } else { + color = rgba; + } + return color; + }; + + var parseColorToRGBA = function (color) { + if (isRGBA(color)) + var rgba = color; + else + var rgba = 'rgba(' + color.replace(/ /g, ',') + ',1)'; + return rgba; + }; + + var isRGBA = function (color) { + if (color.substring(0, 4) === 'rgba') + return true; + else + return false; + }; + + var beforeEvent = function (sMode) { + console.log('beforeEvent !!!') + scope['oFormValues'][sMode]['background_color'] = parseColorFromRGBA(scope['oFormValues'][sMode]['background_color_rgba']); + scope['oFormValues'][sMode]['contour_color'] = parseColorFromRGBA(scope['oFormValues'][sMode]['contour_color_rgba']); + scope['oFormValues'][sMode]['color_label'] = parseColorFromRGBA(scope['oFormValues'][sMode]['color_label_rgba']); + }; + + if (angular.isDefined(scope['oFormValues']['update'])) { + scope['oFormValues']['update']['background_color_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['background_color']); + scope['oFormValues']['update']['contour_color_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['contour_color']); + scope['oFormValues']['update']['color_label_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['color_label']); + } + + // Ajoute BeforeEvent + scope['oFormDefinition']['update']['beforeEvent'] = function () { + beforeEvent('update'); + }; + scope['oFormDefinition']['insert']['beforeEvent'] = function () { + beforeEvent('insert'); + }; + + ////////////////////////////////////////////////////////// + // Ajouter vos Elément à détruire (variable, function, watcher) à oFormRequired.toDestructor +}; + + + +/** + * destructor_form + * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire + * @returns {undefined} + */ +var destructor_form = function () { + + for (var i = 0; i < oFormRequired.toDestructor.length; i++) { + oFormRequired.toDestructor[i] = undefined; + delete oFormRequired.toDestructor[i]; + } + + //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard + angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); + + oFormRequired = undefined; + delete oFormRequired; + + constructor_form = undefined; + delete constructor_form; + destructor_form = undefined; + delete destructor_form; +}; + +/**********************************************************************************/ + + diff --git a/storage/veremes_demo_dessin/forms/ressources/default.js b/storage/veremes_demo_dessin/forms/ressources/default.js new file mode 100755 index 00000000..de066e6f --- /dev/null +++ b/storage/veremes_demo_dessin/forms/ressources/default.js @@ -0,0 +1,109 @@ +/* global angular, goog */ +// CUSTOM +//bloque les delete du destructeur à éviter +//'use strict'; + +/*********************************************************************************** + vmap_dessin Javascript + ***********************************************************************************/ + +var oFormRequired = { + "sUrl": "", + "scope_": {}, + "toDestructor": [] +}; +/** + * constructor_form + * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true" + * @param {type} scope + * @param {type} s_url + * @returns {undefined} + */ +var constructor_form = function (scope, s_url) { + ////////////////////////////////////////////////////////// + //Ne pas toucher + console.log("constructor_form"); + + oFormRequired.sUrl = s_url; + oFormRequired.scope_ = scope; + + var parseColorFromRGBA = function (rgba) { + if (isRGBA(rgba)) { + var matchColors = /rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(\d{1,3})\)/; + var match = matchColors.exec(rgba); + var color = match[1] + ' ' + match[2] + ' ' + match[3]; + } else { + color = rgba; + } + return color; + }; + + var parseColorToRGBA = function (color) { + if (isRGBA(color)) + var rgba = color; + else + var rgba = 'rgba(' + color.replace(/ /g, ',') + ',1)'; + return rgba; + }; + + var isRGBA = function (color) { + if (color.substring(0, 4) === 'rgba') + return true; + else + return false; + }; + + var beforeEvent = function (sMode) { + console.log('beforeEvent !!!') + scope['oFormValues'][sMode]['background_color'] = parseColorFromRGBA(scope['oFormValues'][sMode]['background_color_rgba']); + scope['oFormValues'][sMode]['contour_color'] = parseColorFromRGBA(scope['oFormValues'][sMode]['contour_color_rgba']); + scope['oFormValues'][sMode]['color_label'] = parseColorFromRGBA(scope['oFormValues'][sMode]['color_label_rgba']); + }; + + if (angular.isDefined(scope['oFormValues']['update'])) { + scope['oFormValues']['update']['background_color_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['background_color']); + scope['oFormValues']['update']['contour_color_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['contour_color']); + scope['oFormValues']['update']['color_label_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['color_label']); + } + + // Ajoute BeforeEvent + scope['oFormDefinition']['update']['beforeEvent'] = function () { + beforeEvent('update'); + }; + scope['oFormDefinition']['insert']['beforeEvent'] = function () { + beforeEvent('insert'); + }; + + ////////////////////////////////////////////////////////// + // Ajouter vos Elément à détruire (variable, function, watcher) à oFormRequired.toDestructor +}; + + + +/** + * destructor_form + * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire + * @returns {undefined} + */ +var destructor_form = function () { + + for (var i = 0; i < oFormRequired.toDestructor.length; i++) { + oFormRequired.toDestructor[i] = undefined; + delete oFormRequired.toDestructor[i]; + } + + //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard + angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); + + oFormRequired = undefined; + delete oFormRequired; + + constructor_form = undefined; + delete constructor_form; + destructor_form = undefined; + delete destructor_form; +}; + +/**********************************************************************************/ + + diff --git a/storage/veremes_demo_dessin/forms/ressources/published.js b/storage/veremes_demo_dessin/forms/ressources/published.js new file mode 100755 index 00000000..de066e6f --- /dev/null +++ b/storage/veremes_demo_dessin/forms/ressources/published.js @@ -0,0 +1,109 @@ +/* global angular, goog */ +// CUSTOM +//bloque les delete du destructeur à éviter +//'use strict'; + +/*********************************************************************************** + vmap_dessin Javascript + ***********************************************************************************/ + +var oFormRequired = { + "sUrl": "", + "scope_": {}, + "toDestructor": [] +}; +/** + * constructor_form + * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true" + * @param {type} scope + * @param {type} s_url + * @returns {undefined} + */ +var constructor_form = function (scope, s_url) { + ////////////////////////////////////////////////////////// + //Ne pas toucher + console.log("constructor_form"); + + oFormRequired.sUrl = s_url; + oFormRequired.scope_ = scope; + + var parseColorFromRGBA = function (rgba) { + if (isRGBA(rgba)) { + var matchColors = /rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(\d{1,3})\)/; + var match = matchColors.exec(rgba); + var color = match[1] + ' ' + match[2] + ' ' + match[3]; + } else { + color = rgba; + } + return color; + }; + + var parseColorToRGBA = function (color) { + if (isRGBA(color)) + var rgba = color; + else + var rgba = 'rgba(' + color.replace(/ /g, ',') + ',1)'; + return rgba; + }; + + var isRGBA = function (color) { + if (color.substring(0, 4) === 'rgba') + return true; + else + return false; + }; + + var beforeEvent = function (sMode) { + console.log('beforeEvent !!!') + scope['oFormValues'][sMode]['background_color'] = parseColorFromRGBA(scope['oFormValues'][sMode]['background_color_rgba']); + scope['oFormValues'][sMode]['contour_color'] = parseColorFromRGBA(scope['oFormValues'][sMode]['contour_color_rgba']); + scope['oFormValues'][sMode]['color_label'] = parseColorFromRGBA(scope['oFormValues'][sMode]['color_label_rgba']); + }; + + if (angular.isDefined(scope['oFormValues']['update'])) { + scope['oFormValues']['update']['background_color_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['background_color']); + scope['oFormValues']['update']['contour_color_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['contour_color']); + scope['oFormValues']['update']['color_label_rgba'] = parseColorToRGBA(scope['oFormValues']['update']['color_label']); + } + + // Ajoute BeforeEvent + scope['oFormDefinition']['update']['beforeEvent'] = function () { + beforeEvent('update'); + }; + scope['oFormDefinition']['insert']['beforeEvent'] = function () { + beforeEvent('insert'); + }; + + ////////////////////////////////////////////////////////// + // Ajouter vos Elément à détruire (variable, function, watcher) à oFormRequired.toDestructor +}; + + + +/** + * destructor_form + * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire + * @returns {undefined} + */ +var destructor_form = function () { + + for (var i = 0; i < oFormRequired.toDestructor.length; i++) { + oFormRequired.toDestructor[i] = undefined; + delete oFormRequired.toDestructor[i]; + } + + //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard + angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); + + oFormRequired = undefined; + delete oFormRequired; + + constructor_form = undefined; + delete constructor_form; + destructor_form = undefined; + delete destructor_form; +}; + +/**********************************************************************************/ + + diff --git a/storage/veremes_demo_dessin/json/business_object.json b/storage/veremes_demo_dessin/json/business_object.json new file mode 100755 index 00000000..6e193daf --- /dev/null +++ b/storage/veremes_demo_dessin/json/business_object.json @@ -0,0 +1,20 @@ +{ + "business_object_id":"vmap_dessin", + "title":"Dessin", + "id_field":"draw_id", + "database":"vmap_angular", + "schema":"[TABLE_SCHEMA]", + "table":"v_draw", + "sql_summary":"select draw_id, description, text_label from [TABLE_SCHEMA].v_draw", + "sql_list":"select draw_id as \"Id\", text_label as \"Nom\" , area, perimeter from [TABLE_SCHEMA].v_draw", + "sorted_by":"draw_id", + "geom_column":"geom", + "search_field":"draw_id", + "result_field":"draw_id", + "search_use_strict":"left", + "event_id":null, + "index":0, + "add_form_size":1, + "edit_form_size":1, + "display_form_size":1 +} diff --git a/storage/veremes_demo_dessin/json/event.json b/storage/veremes_demo_dessin/json/event.json new file mode 100755 index 00000000..b1cc925b --- /dev/null +++ b/storage/veremes_demo_dessin/json/event.json @@ -0,0 +1,4 @@ +{ + "event_id":"veremes_demo_dessin_event", + "description":"Événement appelé lorsque veremes_demo_dessin change" +} diff --git a/storage/veremes_demo_dessin/json/mapserver_layers.json b/storage/veremes_demo_dessin/json/mapserver_layers.json new file mode 100755 index 00000000..5155634a --- /dev/null +++ b/storage/veremes_demo_dessin/json/mapserver_layers.json @@ -0,0 +1,65 @@ +[{ + "ms_layer_id":30, + "name":"Dessin_Point", + "title":"Dessin Point", + "coordsys_id":2154, + "coordsys_label":"[EPSG:2154]-RGF93\/Lambert-93", + "source_id":null, + "connection_id":2, + "tableschema":"[TABLE_SCHEMA]", + "tablename":"v_draw_point", + "tableidfield":"draw_id", + "definition":"LAYER\r\n\tNAME \"{LAYER_NAME}\"\r\n\tTYPE {LAYER_TYPE}\r\n\tSTATUS ON\r\n\t{CONNECTION}\r\n\tDATA \"geom from {TABLE_SCHEMA}.{TABLE_NAME} USING SRID={SRID} USING UNIQUE {TABLE_ID}\"\r\n\tOPACITY {LAYER_OPACITY}\r\n\t{COORDSYS}\r\n\r\n\tMETADATA\r\n\t\t\"wms_title\" \t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_srs\" \t\t\t\t\"EPSG:2154 EPSG:3857\"\r\n\t\t\"wms_name\" \t\t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_server_version\" \t\"1.3.0\"\r\n\t\t\"wms_format\" \t\t\t\"image\/png\"\r\n\tEND\r\n\r\n\tLABELITEM \"text_label\"\r\n\tCLASS\r\n\t\tNAME \"Dessin ponctuel\"\r\n\t\tEXPRESSION ('[graph]' eq \"t\" AND '[label]' eq \"t\")\r\n\t\tSTYLE\r\n\t\t\tSYMBOL \"circle\"\r\n\t\t\tOUTLINECOLOR [contour_color]\r\n\t\t\tCOLOR [background_color]\r\n\t\t\tSIZE [geom_size]\r\n\t\tEND\r\n\t\tLABEL\r\n\t\t\tTYPE TRUETYPE\r\n\t\t\tFONT \"Arial\"\r\n\t\t\tANGLE AUTO\r\n\t\t\tSIZE [text_size]\r\n\t\t\tPOSITION UC\r\n\t\t\tCOLOR [color_label]\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"Dessin ponctuel\"\r\n\t\tEXPRESSION ('[graph]' eq \"t\" AND '[label]' eq \"f\")\r\n\t\tSTYLE\r\n\t\t\tSYMBOL \"circle\"\r\n\t\t\tOUTLINECOLOR [contour_color]\r\n\t\t\tCOLOR [background_color]\r\n\t\t\tSIZE [geom_size]\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"Dessin ponctuel\"\r\n\t\tEXPRESSION ('[graph]' eq \"f\" AND '[label]' eq \"t\")\r\n\t\tSTYLE\r\n\t\tEND\r\n\t\tLABEL\r\n\t\t\tTYPE TRUETYPE\r\n\t\t\tFONT \"Arial\"\r\n\t\t\tANGLE AUTO\r\n\t\t\tSIZE [text_size]\r\n\t\t\tPOSITION UC\r\n\t\t\tCOLOR [color_label]\r\n\t\tEND\r\n\tEND\r\nEND\r\n\r\n", + "active":true, + "opacity":100, + "ms_layertype_id":"POINT", + "private_connection":true, + "connection_label":"Connexion privée", + "source_label":null, + "definitiontmp":null, + "database":null, + "wmsservices":"", + "wmsservices_label":"" +}, { + "ms_layer_id":31, + "name":"Dessin_Ligne", + "title":"Dessin Ligne", + "coordsys_id":2154, + "coordsys_label":"[EPSG:2154]-RGF93\/Lambert-93", + "source_id":null, + "connection_id":2, + "tableschema":"[TABLE_SCHEMA]", + "tablename":"v_draw_line", + "tableidfield":"draw_id", + "definition":"LAYER\r\n\tNAME \"{LAYER_NAME}\"\r\n\tTYPE {LAYER_TYPE}\r\n\tSTATUS ON\r\n\t{CONNECTION}\r\n\tDATA \"geom from {TABLE_SCHEMA}.{TABLE_NAME} USING SRID={SRID} USING UNIQUE {TABLE_ID}\"\r\n\tOPACITY {LAYER_OPACITY}\r\n\t{COORDSYS}\r\n\r\n\tMETADATA\r\n\t\t\"wms_title\" \t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_srs\" \t\t\t\t\"EPSG:2154 EPSG:3857\"\r\n\t\t\"wms_name\" \t\t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_server_version\" \t\"1.3.0\"\r\n\t\t\"wms_format\" \t\t\t\"image\/png\"\r\n\tEND\r\n\r\n\tLABELITEM \"text_label\"\r\n\tCLASS\r\n\t\tNAME \"Dessin lin\u00e9aire\"\r\n\t\tEXPRESSION ('[graph]' eq \"t\" AND '[label]' eq \"t\")\r\n\t\tSTYLE\r\n\t\t\tOUTLINECOLOR [contour_color]\r\n\t\t\tCOLOR [background_color]\r\n\t\t\tWIDTH [geom_size]\r\n\t\tEND\r\n\t\tLABEL\r\n\t\t\tTYPE TRUETYPE\r\n\t\t\tFONT \"Arial\"\r\n\t\t\tANGLE AUTO\r\n\t\t\tSIZE [text_size]\r\n\t\t\tPOSITION UC\r\n\t\t\tCOLOR [color_label]\r\n\t\t\tWRAP \"|\"\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"Dessin lin\u00e9aire\"\r\n\t\tEXPRESSION ('[graph]' eq \"t\" AND '[label]' eq \"f\")\r\n\t\tSTYLE\r\n\t\t\tOUTLINECOLOR [contour_color]\r\n\t\t\tCOLOR [background_color]\r\n\t\t\tWIDTH [geom_size]\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"Dessin lin\u00e9aire\"\r\n\t\tEXPRESSION ('[graph]' eq \"f\" AND '[label]' eq \"t\")\r\n\t\tSTYLE\r\n\t\tEND\r\n\t\tLABEL\r\n\t\t\tTYPE TRUETYPE\r\n\t\t\tFONT \"Arial\"\r\n\t\t\tANGLE AUTO\r\n\t\t\tSIZE [text_size]\r\n\t\t\tPOSITION UC\r\n\t\t\tCOLOR [color_label]\r\n\t\t\tWRAP \"|\"\r\n\t\tEND\r\n\tEND\r\nEND", + "active":true, + "opacity":100, + "ms_layertype_id":"LINE", + "private_connection":true, + "connection_label":"Connexion privée", + "source_label":null, + "database":null, + "wmsservices":"", + "wmsservices_label":"" +}, { + "ms_layer_id":32, + "name":"Dessin_Polygone", + "title":"Dessin Polygone", + "coordsys_id":2154, + "coordsys_label":"[EPSG:2154]-RGF93\/Lambert-93", + "source_id":null, + "connection_id":2, + "tableschema":"[TABLE_SCHEMA]", + "tablename":"v_draw_poly", + "tableidfield":"draw_id", + "definition":"LAYER\r\n\tNAME \"{LAYER_NAME}\"\r\n\tTYPE {LAYER_TYPE}\r\n\tSTATUS ON\r\n\t{CONNECTION}\r\n\tDATA \"geom from {TABLE_SCHEMA}.{TABLE_NAME} USING SRID={SRID} USING UNIQUE {TABLE_ID}\"\r\n\tOPACITY {LAYER_OPACITY}\r\n\t{COORDSYS}\r\n\t\r\n\tMETADATA\r\n\t\t\"wms_title\" \t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_srs\" \t\t\t\t\"EPSG:2154 EPSG:3857\"\r\n\t\t\"wms_name\" \t\t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_server_version\" \t\"1.1.0\"\r\n\t\t\"wms_format\" \t\t\t\"image\/png\"\r\n\tEND\r\n\r\n\tLABELITEM \"text_label\"\r\n\r\n\tCLASS\r\n\t\tNAME \"Dessin surfacique\"\r\n\t\tEXPRESSION ('[graph]' eq \"t\" AND '[label]' eq \"t\")\r\n\t\tSTYLE\r\n\t\t\tOUTLINECOLOR [contour_color]\r\n\t\t\tWIDTH [geom_size]\r\n\t\t\tCOLOR [background_color]\r\n\t\tEND\r\n\t\tLABEL\r\n\t\t\tTYPE TRUETYPE\r\n\t\t\tFONT \"Arial\"\r\n\t\t\tANGLE AUTO\r\n\t\t\tSIZE [text_size]\r\n\t\t\tPOSITION CC\r\n\t\t\tCOLOR [color_label]\r\n\t\t\tWRAP \"|\"\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"Dessin surfacique\"\r\n\t\tEXPRESSION ('[graph]' eq \"t\" AND '[label]' eq \"f\")\r\n\t\tSTYLE\r\n\t\t\tOUTLINECOLOR [contour_color]\r\n\t\t\tWIDTH [geom_size]\r\n\t\t\tCOLOR [background_color]\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"Dessin surfacique\"\r\n\t\tEXPRESSION ('[graph]' eq \"f\" AND '[label]' eq \"t\")\r\n\t\tSTYLE\r\n\t\tEND\r\n\t\tLABEL\r\n\t\t\tTYPE TRUETYPE\r\n\t\t\tFONT \"Arial\"\r\n\t\t\tANGLE AUTO\r\n\t\t\tSIZE [text_size]\r\n\t\t\tPOSITION CC\r\n\t\t\tCOLOR [color_label]\r\n\t\t\tWRAP \"|\"\r\n\t\tEND\r\n\tEND\r\nEND", + "active":true, + "opacity":100, + "ms_layertype_id":"POLYGON", + "private_connection":true, + "connection_label":"Connexion privée", + "source_label":null, + "database":null, + "wmsservices":"", + "wmsservices_label":"" +}] \ No newline at end of file diff --git a/storage/veremes_demo_dessin/package.json b/storage/veremes_demo_dessin/package.json new file mode 100755 index 00000000..9bf4d6f5 --- /dev/null +++ b/storage/veremes_demo_dessin/package.json @@ -0,0 +1,5 @@ +{ + "author": "Armand", + "mame": "veremes_demo_dessin", + "description": "Objet métier permettant la visualisation des dessins" +} diff --git a/storage/veremes_demo_dessin/sql/structure.json b/storage/veremes_demo_dessin/sql/structure.json new file mode 100755 index 00000000..f475b453 --- /dev/null +++ b/storage/veremes_demo_dessin/sql/structure.json @@ -0,0 +1,6 @@ +{ + "schema": "s_draw", + "srid": "2154", + "tables": ["draw, v_draw, v_draw_line, v_draw_poly, v_draw_point"], + "sequences": ["seq_draw"] +} \ No newline at end of file diff --git a/storage/veremes_demo_dessin/sql/table.sql b/storage/veremes_demo_dessin/sql/table.sql new file mode 100755 index 00000000..1b037df8 --- /dev/null +++ b/storage/veremes_demo_dessin/sql/table.sql @@ -0,0 +1,282 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 9.3.14 +-- Dumped by pg_dump version 9.5.6 + +-- Started on 2017-06-07 09:12:15 CEST + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET client_min_messages = warning; +-- SET row_security = off; + +SET search_path = [TABLE_SCHEMA], pg_catalog; + +-- +-- TOC entry 452 (class 1259 OID 67429) +-- Name: seq_draw; Type: SEQUENCE; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE SEQUENCE seq_draw + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +SET default_tablespace = ''; + +SET default_with_oids = true; + +-- +-- TOC entry 453 (class 1259 OID 67620) +-- Name: draw; Type: TABLE; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE TABLE draw ( + draw_id integer DEFAULT nextval('seq_draw'::regclass) NOT NULL, + theme character varying(50), + comments text, + description character varying(255), + text_size integer, + geom_size integer, + user_id integer, + label boolean DEFAULT true, + graph boolean DEFAULT true, + contour_color character varying(50), + background_color character varying(50), + color_label character varying(50), + area character varying(30), + area_label boolean, + perimeter character varying(30), + perimeter_label boolean, + text_label character varying(255), + geom public.geometry(Geometry,[SRID]), + CONSTRAINT enforce_dims_geom CHECK ((public.st_ndims(geom) = 2)), + CONSTRAINT enforce_srid_geom CHECK ((public.st_srid(geom) = [SRID])) +); + + +-- +-- TOC entry 490 (class 1259 OID 68425) +-- Name: v_draw; Type: VIEW; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE VIEW v_draw AS + SELECT draw.draw_id, + draw.theme, + draw.comments, + draw.description, + draw.text_size, + draw.geom_size, + draw.contour_color, + draw.background_color, + draw.color_label, + draw.user_id, + draw.label, + draw.graph, + draw.area, + draw.area_label, + draw.perimeter, + draw.perimeter_label, + draw.text_label, + "substring"(public.st_astext(draw.geom), 1, ("position"(public.st_astext(draw.geom), '('::text) - 1)) AS geom_type, + draw.geom, + "user".login + FROM (draw + JOIN s_vitis."user" ON ((draw.user_id = "user".user_id))) + WHERE (("user".login)::name = "current_user"()) + ORDER BY draw.draw_id DESC; + + +-- +-- TOC entry 454 (class 1259 OID 67686) +-- Name: v_draw_line; Type: VIEW; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE VIEW v_draw_line AS + SELECT draw.draw_id, + draw.theme, + draw.comments, + draw.description, + draw.text_size, + draw.geom_size, + draw.contour_color, + draw.background_color, + draw.color_label, + draw.user_id, + draw.label, + draw.graph, + draw.area, + draw.area_label, + draw.perimeter, + draw.perimeter_label, + draw.text_label, + "substring"(public.st_astext(draw.geom), 1, ("position"(public.st_astext(draw.geom), '('::text) - 1)) AS geom_type, + draw.geom, + "user".login + FROM (draw + JOIN s_vitis."user" ON ((draw.user_id = "user".user_id))) + WHERE ((public.st_geometrytype(draw.geom) ~~ '%Line%'::text) AND (("user".login)::name = "current_user"())); + + +-- +-- TOC entry 455 (class 1259 OID 67691) +-- Name: v_draw_point; Type: VIEW; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE VIEW v_draw_point AS + SELECT draw.draw_id, + draw.theme, + draw.comments, + draw.description, + draw.text_size, + draw.geom_size, + draw.contour_color, + draw.background_color, + draw.color_label, + draw.user_id, + draw.label, + draw.graph, + draw.area, + draw.area_label, + draw.perimeter, + draw.perimeter_label, + draw.text_label, + "substring"(public.st_astext(draw.geom), 1, ("position"(public.st_astext(draw.geom), '('::text) - 1)) AS geom_type, + draw.geom, + "user".login + FROM (draw + JOIN s_vitis."user" ON ((draw.user_id = "user".user_id))) + WHERE ((public.st_geometrytype(draw.geom) ~~ '%Point%'::text) AND (("user".login)::name = "current_user"())); + + +-- +-- TOC entry 456 (class 1259 OID 67696) +-- Name: v_draw_poly; Type: VIEW; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE VIEW v_draw_poly AS + SELECT draw.draw_id, + draw.theme, + draw.comments, + draw.description, + draw.text_size, + draw.geom_size, + draw.contour_color, + draw.background_color, + draw.color_label, + draw.user_id, + draw.label, + draw.graph, + draw.area, + draw.area_label, + draw.perimeter, + draw.perimeter_label, + draw.text_label, + "substring"(public.st_astext(draw.geom), 1, ("position"(public.st_astext(draw.geom), '('::text) - 1)) AS geom_type, + draw.geom, + "user".login + FROM (draw + JOIN s_vitis."user" ON ((draw.user_id = "user".user_id))) + WHERE ((public.st_geometrytype(draw.geom) ~~ '%Polygon%'::text) AND (("user".login)::name = "current_user"())); + + +-- +-- TOC entry 3985 (class 2606 OID 67632) +-- Name: pk_draw; Type: CONSTRAINT; Schema: [TABLE_SCHEMA]; Owner: - +-- + +ALTER TABLE ONLY draw + ADD CONSTRAINT pk_draw PRIMARY KEY (draw_id); + + +-- +-- TOC entry 3983 (class 1259 OID 67677) +-- Name: dessin_geom; Type: INDEX; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE INDEX dessin_geom ON draw USING gist (geom); + + +-- +-- TOC entry 4211 (class 2618 OID 68430) +-- Name: delete_v_draw; Type: RULE; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE RULE delete_v_draw AS + ON DELETE TO v_draw DO INSTEAD DELETE FROM draw + WHERE (draw.draw_id = old.draw_id); + + +-- +-- TOC entry 4212 (class 2618 OID 68431) +-- Name: insert_v_draw; Type: RULE; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE RULE insert_v_draw AS + ON INSERT TO v_draw DO INSTEAD INSERT INTO draw (theme, comments, description, text_size, user_id, label, contour_color, background_color, color_label, geom, graph, geom_size, area, area_label, perimeter, perimeter_label, text_label) + VALUES (new.theme, new.comments, new.description, new.text_size, ( SELECT "user".user_id + FROM s_vitis."user" + WHERE (("user".login)::name = "current_user"())), new.label, new.contour_color, new.background_color, new.color_label, new.geom, new.graph, new.geom_size, new.area, new.area_label, new.perimeter, new.perimeter_label, new.text_label) + RETURNING draw.draw_id, + draw.theme, + draw.comments, + draw.description, + draw.text_size, + draw.geom_size, + draw.contour_color, + draw.background_color, + draw.color_label, + draw.user_id, + draw.label, + draw.graph, + draw.area, + draw.area_label, + draw.perimeter, + draw.perimeter_label, + draw.text_label, + "substring"(public.st_astext(draw.geom), 1, ("position"(public.st_astext(draw.geom), '('::text) - 1)) AS geom_type, + draw.geom, + ''::character varying AS "varchar"; + + +-- +-- TOC entry 4213 (class 2618 OID 68433) +-- Name: update_v_draw; Type: RULE; Schema: [TABLE_SCHEMA]; Owner: - +-- + +CREATE RULE update_v_draw AS + ON UPDATE TO v_draw DO INSTEAD UPDATE draw SET draw_id = new.draw_id, theme = new.theme, comments = new.comments, description = new.description, text_size = new.text_size, user_id = new.user_id, label = new.label, contour_color = new.contour_color, background_color = new.background_color, color_label = new.color_label, geom = new.geom, graph = new.graph, geom_size = new.geom_size, area = new.area, area_label = new.area_label, perimeter = new.perimeter, perimeter_label = new.perimeter_label, text_label = new.text_label + WHERE (draw.draw_id = new.draw_id); + + +-- +-- TOC entry 3986 (class 2606 OID 67633) +-- Name: fk_user_login; Type: FK CONSTRAINT; Schema: [TABLE_SCHEMA]; Owner: - +-- + +ALTER TABLE ONLY draw + ADD CONSTRAINT fk_user_login FOREIGN KEY (user_id) REFERENCES s_vitis."user"(user_id) ON DELETE CASCADE; + + +GRANT USAGE ON SCHEMA [TABLE_SCHEMA] TO vmap_user; +GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE [TABLE_SCHEMA].v_draw TO vmap_user; +GRANT SELECT ON TABLE [TABLE_SCHEMA].v_draw_point TO vmap_user; +GRANT SELECT ON TABLE [TABLE_SCHEMA].v_draw_line TO vmap_user; +GRANT SELECT ON TABLE [TABLE_SCHEMA].v_draw_poly TO vmap_user; +GRANT SELECT, UPDATE ON SEQUENCE [TABLE_SCHEMA].seq_draw TO vmap_user; + + +-- Completed on 2017-06-07 09:12:21 CEST + +-- +-- PostgreSQL database dump complete +-- + diff --git a/storage/veremes_oads_dossier/forms/custom.json b/storage/veremes_oads_dossier/forms/custom.json new file mode 100755 index 00000000..ae1448e7 --- /dev/null +++ b/storage/veremes_oads_dossier/forms/custom.json @@ -0,0 +1,175 @@ +{ + "display": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_num_2_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "author", + "label": "author", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "author_3_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "create_date", + "label": "create_date", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "create_date_4_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "modifier", + "label": "modifier", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "modifier_5_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "update_date", + "label": "update_date", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "update_date_6_1" + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "dossier_num", + "author", + "create_date", + "modifier", + "update_date" + ] + } + ] + } + }, + "search": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [] + } + ] + } + }, + "insert": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_num_2_1" + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "dossier_num" + ] + } + ] + } + }, + "update": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_num_2_1" + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "dossier_num" + ] + } + ] + } + }, + "datasources": {} +} \ No newline at end of file diff --git a/storage/veremes_oads_dossier/forms/default.json b/storage/veremes_oads_dossier/forms/default.json new file mode 100755 index 00000000..6c38ec46 --- /dev/null +++ b/storage/veremes_oads_dossier/forms/default.json @@ -0,0 +1,259 @@ +{ + "display": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "dossier_id", + "label": "dossier_id", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "author", + "label": "author", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "create_date", + "label": "create_date", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "modifier", + "label": "modifier", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "update_date", + "label": "update_date", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + } + ] + }, + "search": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [] + }, + "insert": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "integer", + "name": "dossier_id", + "label": "dossier_id", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "author", + "label": "author", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "create_date", + "label": "create_date", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "modifier", + "label": "modifier", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "update_date", + "label": "update_date", + "disabled": false, + "required": false, + "nb_cols": 12 + } + ] + } + ] + }, + "update": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "integer", + "name": "dossier_id", + "label": "dossier_id", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_id_1_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_num_2_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "author", + "label": "author", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "author_3_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "create_date", + "label": "create_date", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "create_date_4_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "modifier", + "label": "modifier", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "modifier_5_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "update_date", + "label": "update_date", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "update_date_6_1" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/storage/veremes_oads_dossier/forms/published.json b/storage/veremes_oads_dossier/forms/published.json new file mode 100755 index 00000000..7dd25b34 --- /dev/null +++ b/storage/veremes_oads_dossier/forms/published.json @@ -0,0 +1,175 @@ +{ + "display": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_num_2_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "author", + "label": "author", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "author_3_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "create_date", + "label": "create_date", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "create_date_4_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "modifier", + "label": "modifier", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "modifier_5_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "update_date", + "label": "update_date", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "update_date_6_1" + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "dossier_num", + "author", + "create_date", + "modifier", + "update_date" + ] + } + ] + } + }, + "search": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [] + } + ] + } + }, + "insert": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_num_2_1" + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "dossier_num" + ] + } + ] + } + }, + "update": { + "name": "custom-form", + "title": "veremes_soads_dossier", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "dossier_num", + "label": "dossier_num", + "disabled": false, + "required": false, + "nb_cols": 12, + "id": "dossier_num_2_1" + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "dossier_num" + ] + } + ] + } + }, + "datasources": {} +} \ No newline at end of file diff --git a/storage/veremes_oads_dossier/json/business_object.json b/storage/veremes_oads_dossier/json/business_object.json new file mode 100755 index 00000000..77975551 --- /dev/null +++ b/storage/veremes_oads_dossier/json/business_object.json @@ -0,0 +1,20 @@ +{ + "business_object_id":"veremes_oads_dossier", + "title":"veremes_oads_dossier", + "id_field":"dossier_num", + "database":"vmap", + "schema":"[TABLE_SCHEMA]", + "table":"dossier", + "sql_summary":"SELECT commune as \"Commune\", code_insee as \"Code INSEE\", type_dossier as \"Type du dossier\", dossier_num as \"Numéro du dossier\", author as \"Créateur\", create_date as \"Date de création\", modifier as \"Mise à jour\", update_date as \"Date de màj\" FROM veremes_oads.v_dossier", + "sql_list":"SELECT dossier_num, code_insee, commune, division, annee_dossier, type_dossier, creation_automatique,author, create_date, modifier, update_date FROM [TABLE_SCHEMA].v_dossier", + "sorted_by":"dossier_num", + "geom_column":"geom", + "search_field":"dossier_num", + "result_field":"dossier_num", + "search_use_strict":"left", + "event_id":null, + "index":2, + "add_form_size":1, + "edit_form_size":1, + "display_form_size":1 +} \ No newline at end of file diff --git a/storage/veremes_oads_dossier/json/event.json b/storage/veremes_oads_dossier/json/event.json new file mode 100755 index 00000000..9e26dfee --- /dev/null +++ b/storage/veremes_oads_dossier/json/event.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/storage/veremes_oads_dossier/json/mapserver_layers.json b/storage/veremes_oads_dossier/json/mapserver_layers.json new file mode 100755 index 00000000..aeae16f8 --- /dev/null +++ b/storage/veremes_oads_dossier/json/mapserver_layers.json @@ -0,0 +1,45 @@ +[{ + "ms_layer_id":80, + "name":"Oads_dossier", + "title":"Oads_dossier", + "coordsys_id":2154, + "coordsys_label":"[EPSG:2154]-RGF93/Lambert-93", + "source_id":null, + "connection_id":6, + "tableschema":"veremes_oads", + "tablename":"v_dossier", + "tableidfield":"dossier_num", + "definition":"LAYER\r\n\tNAME \"{LAYER_NAME}\"\r\n\tTYPE {LAYER_TYPE}\r\n\tSTATUS DEFAULT\r\n\t{CONNECTION}\r\n\tDATA \"geom from {TABLE_SCHEMA}.{TABLE_NAME} USING SRID={SRID} USING UNIQUE {TABLE_ID}\"\r\n\tOPACITY {LAYER_OPACITY}\r\n\t{COORDSYS}\r\n\r\n\tMETADATA\r\n\t\t\"wms_title\" \t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_srs\" \t\t\t\t\"EPSG:2154 EPSG:3857\"\r\n\t\t\"wms_name\" \t\t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_server_version\" \t\"1.3.0\"\r\n\t\t\"wms_format\" \t\t\t\"image\/png\"\r\n\tEND\r\n\r\n\tCLASS\r\n\t\tNAME \"Dossier\"\r\n\t\tSTYLE\r\n\t\t\tCOLOR \"#FF9896\"\r\n\t\t\tOUTLINECOLOR \"#A553A5\"\r\n\t\t\tSIZE 1\r\n\t\tEND\r\n\tEND\r\nEND", + "active":true, + "opacity":70, + "ms_layertype_id":"POLYGON", + "private_connection":true, + "connection_label":"Connexion privée", + "source_label":null, + "definitiontmp":null, + "database":"vmap", + "wmsservices":"", + "wmsservices_label":"" +},{ + "ms_layer_id":90, + "name":"Oads_dossier_type", + "title":"Oads_dossier_type", + "coordsys_id":2154, + "coordsys_label":"[EPSG:2154]-RGF93/Lambert-93", + "source_id":null, + "connection_id":6, + "tableschema":"veremes_oads", + "tablename":"v_dossier", + "tableidfield":"dossier_num", + "definition":"LAYER\r\n\tNAME \"{LAYER_NAME}\"\r\n\tTYPE {LAYER_TYPE}\r\n\tSTATUS DEFAULT\r\n\t{CONNECTION}\r\n\tDATA \"geom from {TABLE_SCHEMA}.{TABLE_NAME} USING SRID={SRID} USING UNIQUE {TABLE_ID}\"\r\n\tOPACITY {LAYER_OPACITY}\r\n\tMAXSCALEDENOM 10000\r\n\t{COORDSYS}\r\n\tMETADATA\r\n\t\t\"wms_title\" \t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_srs\" \t\t\t\t\"EPSG:2154\"\r\n\t\t\"wms_name\" \t\t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_server_version\" \t\"1.3.0\"\r\n\t\t\"wms_format\" \t\t\t\"image/png\"\r\n\tEND\r\n\tFILTER ([type_dossier] = ''%type_dossier%'' or ''%type_dossier%'' = ''-1000000'')\r\n\tVALIDATION\r\n\t\t''type_dossier'' ''^[a-zA-Z0-9_|]*$''\r\n\t\t''default_type_dossier'' ''-1000000''\r\n\tEND\r\n\r\n\tCLASS\r\n\t\tNAME \"PC\"\r\n\t\tEXPRESSION (\"[type_dossier]\" = \"PC\")\r\n\t\tSTYLE\r\n\t\t\tGEOMTRANSFORM \"centroid\"\r\n\t\t\tSYMBOL 'circle'\r\n\t\t\tCOLOR \"#FFC240\"\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tSIZE 20\r\n\t\t\tWIDTH 1\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"AT\"\r\n\t\tEXPRESSION (\"[type_dossier]\" = \"AT\")\r\n\t\tSTYLE\r\n\t\t\tGEOMTRANSFORM \"centroid\"\r\n\t\t\tSYMBOL 'circle'\r\n\t\t\tCOLOR \"#4E7887\"\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tSIZE 20\r\n\t\t\tWIDTH 1\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"CU\"\r\n\t\tEXPRESSION (\"[type_dossier]\" = \"CU\")\r\n\t\tSTYLE\r\n\t\t\tGEOMTRANSFORM \"centroid\"\r\n\t\t\tSYMBOL 'circle'\r\n\t\t\tCOLOR \"#129E18\"\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tSIZE 20\r\n\t\t\tWIDTH 1\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"DIA\"\r\n\t\tEXPRESSION (\"[type_dossier]\" = \"DIA\")\r\n\t\tSTYLE\r\n\t\t\tGEOMTRANSFORM \"centroid\"\r\n\t\t\tSYMBOL 'circle'\r\n\t\t\tCOLOR \"#BDB300\"\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tSIZE 20\r\n\t\t\tWIDTH 1\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"DP\"\r\n\t\tEXPRESSION (\"[type_dossier]\" = \"DP\")\r\n\t\tSTYLE\r\n\t\t\tGEOMTRANSFORM \"centroid\"\r\n\t\t\tSYMBOL 'circle'\r\n\t\t\tCOLOR \"#2E9BE8\"\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tSIZE 20\r\n\t\t\tWIDTH 1\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"PA\"\r\n\t\tEXPRESSION (\"[type_dossier]\" = \"PA\")\r\n\t\tSTYLE\r\n\t\t\tGEOMTRANSFORM \"centroid\"\r\n\t\t\tSYMBOL 'circle'\r\n\t\t\tCOLOR \"#F200FF\"\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tSIZE 20\r\n\t\t\tWIDTH 1\r\n\t\tEND\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"PD\"\r\n\t\tEXPRESSION (\"[type_dossier]\" = \"PD\")\r\n\t\tSTYLE\r\n\t\t\tGEOMTRANSFORM \"centroid\"\r\n\t\t\tSYMBOL 'circle'\r\n\t\t\tCOLOR \"#FA2525\"\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tSIZE 20\r\n\t\t\tWIDTH 1\r\n\t\tEND\r\n\tEND\r\n\tEND", + "active":true, + "opacity":100, + "ms_layertype_id":"POLYGON", + "private_connection":true, + "connection_label":"Connexion privée", + "source_label":null, + "definitiontmp":null, + "database":"vmap", + "wmsservices":"", + "wmsservices_label":"" +}] \ No newline at end of file diff --git a/storage/veremes_oads_dossier/package.json b/storage/veremes_oads_dossier/package.json new file mode 100755 index 00000000..e509782f --- /dev/null +++ b/storage/veremes_oads_dossier/package.json @@ -0,0 +1,5 @@ +{ + "author": "Laurent", + "mame": "veremes_oads_dossier", + "description": "Objet métier permettant la visualisation des dossiers OpenAds" +} diff --git a/storage/veremes_oads_dossier/sql/structure.json b/storage/veremes_oads_dossier/sql/structure.json new file mode 100755 index 00000000..7dcd23b6 --- /dev/null +++ b/storage/veremes_oads_dossier/sql/structure.json @@ -0,0 +1,6 @@ +{ + "schema": "veremes_oads", + "srid": "2154", + "tables": ["dossier, parcelle_dossier, parcelle_oads, v_dossier, v_parcelle_dossier"], + "sequences": [""] +} \ No newline at end of file diff --git a/storage/veremes_oads_dossier/sql/table.sql b/storage/veremes_oads_dossier/sql/table.sql new file mode 100755 index 00000000..463a9356 --- /dev/null +++ b/storage/veremes_oads_dossier/sql/table.sql @@ -0,0 +1,194 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 9.3.14 +-- Dumped by pg_dump version 9.5.6 + +-- Started on 2017-06-07 09:12:15 CEST + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET client_min_messages = warning; +-- SET row_security = off; + +SET search_path = [TABLE_SCHEMA], public, pg_catalog; + +-- +-- TOC entry 452 (class 1259 OID 67429) +-- Name: seq_draw; Type: SEQUENCE; Schema: [TABLE_SCHEMA]; Owner: - +-- + + +SET default_tablespace = ''; + +SET default_with_oids = true; + +select s_vitis.create_role_if_not_exists('oads_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); +INSERT INTO s_vitis.privileges(rolname, description) VALUES ('oads_user', 'rôle utilisateur du module Open Ads de vMap"'); + +CREATE TABLE [TABLE_SCHEMA].dossier +( + dossier_num character varying(30) NOT NULL, + author character varying(50), + create_date date, + modifier character varying(50), + update_date date, + geom geometry(MultiPolygon,2154), + CONSTRAINT pk_dossier_num PRIMARY KEY (dossier_num), + CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2), + CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 2154) +) +WITH ( + OIDS=FALSE +); +COMMENT ON COLUMN [TABLE_SCHEMA].dossier.author IS 'Auteur de l''enregistrement'; +COMMENT ON COLUMN [TABLE_SCHEMA].dossier.create_date IS 'Date de création de l''enregistrement'; +COMMENT ON COLUMN [TABLE_SCHEMA].dossier.modifier IS 'Dernier modificateur de l''enregistrement'; +COMMENT ON COLUMN [TABLE_SCHEMA].dossier.update_date IS 'Date de la dernière mise à jour de l''enregistrement'; +COMMENT ON COLUMN [TABLE_SCHEMA].dossier.geom IS 'Emprise globale du dossier'; + + +CREATE TABLE [TABLE_SCHEMA].parcelle_dossier +( + dossier_num character varying(30) NOT NULL, + id_par character(14) NOT NULL, + CONSTRAINT pk_dossier_num_id_par PRIMARY KEY (dossier_num, id_par) +) +WITH ( + OIDS=FALSE +); + + +CREATE TABLE [TABLE_SCHEMA].parcelle_oads +( + id_par character(14) NOT NULL, + geom geometry(MultiPolygon,2154), + CONSTRAINT pk_id_par PRIMARY KEY (id_par), + CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2), + CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 2154) +) +WITH ( + OIDS=FALSE +); +COMMENT ON COLUMN [TABLE_SCHEMA].dossier.geom IS 'geométrie de la parcelle '; + +CREATE TRIGGER insert_author_date_dossier + BEFORE INSERT + ON [TABLE_SCHEMA].dossier + FOR EACH ROW + EXECUTE PROCEDURE s_vitis.insert_author_date(); + +CREATE TRIGGER update_modifier_date_dossier + BEFORE UPDATE + ON [TABLE_SCHEMA].dossier + FOR EACH ROW + EXECUTE PROCEDURE s_vitis.update_modifier_date(); + +-- Index: [TABLE_SCHEMA].dossier_geom +-- DROP INDEX [TABLE_SCHEMA].dossier_geom; + +CREATE INDEX dossier_geom + ON [TABLE_SCHEMA].dossier + USING gist + (geom); + +-- Index: [TABLE_SCHEMA].dossier_geom +-- DROP INDEX [TABLE_SCHEMA].dossier_geom; + +CREATE INDEX parcelle_oads_geom + ON [TABLE_SCHEMA].parcelle_oads + USING gist + (geom); + +CREATE OR REPLACE VIEW [TABLE_SCHEMA].v_dossier AS + SELECT dossier.dossier_num, + CASE + WHEN length(dossier.dossier_num::text) = 15 OR length(dossier.dossier_num::text) = 17 THEN substr(dossier.dossier_num::text, 4, 5) + WHEN length(dossier.dossier_num::text) = 16 OR length(dossier.dossier_num::text) = 18 THEN substr(dossier.dossier_num::text, 5, 5) + ELSE '50'::text + END AS code_insee, + v_vmap_commune.nom AS commune, + CASE + WHEN length(dossier.dossier_num::text) = 15 OR length(dossier.dossier_num::text) = 17 THEN substr(dossier.dossier_num::text, 11, 1) + WHEN length(dossier.dossier_num::text) = 16 OR length(dossier.dossier_num::text) = 18 THEN substr(dossier.dossier_num::text, 12, 1) + ELSE NULL::text + END AS division, + CASE + WHEN length(dossier.dossier_num::text) = 15 OR length(dossier.dossier_num::text) = 17 THEN substr(dossier.dossier_num::text, 9, 2) + WHEN length(dossier.dossier_num::text) = 16 OR length(dossier.dossier_num::text) = 18 THEN substr(dossier.dossier_num::text, 10, 2) + ELSE NULL::text + END AS annee_dossier, + CASE + WHEN length(dossier.dossier_num::text) = 15 OR length(dossier.dossier_num::text) = 17 THEN substr(dossier.dossier_num::text, 1, 2) + WHEN length(dossier.dossier_num::text) = 16 OR length(dossier.dossier_num::text) = 18 THEN substr(dossier.dossier_num::text, 1, 3) + ELSE NULL::text + END AS type_dossier, + CASE + WHEN dossier.author::text IS NULL THEN 'Oui'::text + ELSE 'Non'::text + END AS creation_automatique, + dossier.author, dossier.create_date, dossier.modifier, dossier.update_date, + dossier.geom + FROM [TABLE_SCHEMA].dossier + LEFT JOIN s_cadastre.v_vmap_commune ON + CASE + WHEN length(dossier.dossier_num::text) = 15 OR length(dossier.dossier_num::text) = 17 THEN substr(dossier.dossier_num::text, 4, 5) + WHEN length(dossier.dossier_num::text) = 16 OR length(dossier.dossier_num::text) = 18 THEN substr(dossier.dossier_num::text, 5, 5) + ELSE NULL::text + END = v_vmap_commune.id_com::text + WHERE + CASE + WHEN length(dossier.dossier_num::text) = 15 OR length(dossier.dossier_num::text) = 17 THEN substr(dossier.dossier_num::text, 4, 5) + WHEN length(dossier.dossier_num::text) = 16 OR length(dossier.dossier_num::text) = 18 THEN substr(dossier.dossier_num::text, 5, 5) + ELSE NULL::text + END ~ similar_escape(( SELECT "user".restriction + FROM s_vitis."user" + WHERE "user".login::name = "current_user"()), NULL::text) + ORDER BY dossier.dossier_num DESC; + +-- Rule: delete_v_dossier ON [TABLE_SCHEMA].v_dossier + +-- DROP RULE delete_v_dossier ON [TABLE_SCHEMA].v_dossier; + +CREATE OR REPLACE RULE delete_v_dossier AS + ON DELETE TO [TABLE_SCHEMA].v_dossier DO INSTEAD DELETE FROM [TABLE_SCHEMA].dossier + WHERE dossier.dossier_num = old.dossier_num; + +-- Rule: insert_v_dossier ON [TABLE_SCHEMA].v_dossier + +-- DROP RULE insert_v_dossier ON [TABLE_SCHEMA].v_dossier; + +CREATE OR REPLACE RULE insert_v_dossier AS + ON INSERT TO [TABLE_SCHEMA].v_dossier DO INSTEAD INSERT INTO [TABLE_SCHEMA].dossier ( dossier_num, author, create_date, geom) + VALUES (new.dossier_num, "current_user"()::text, 'now'::text::date, new.geom); + +-- Rule: update_v_dossier ON [TABLE_SCHEMA].v_dossier +-- DROP RULE update_v_dossier ON [TABLE_SCHEMA].v_dossier; + +CREATE OR REPLACE RULE update_v_dossier AS + ON UPDATE TO [TABLE_SCHEMA].v_dossier DO INSTEAD UPDATE [TABLE_SCHEMA].dossier SET geom = new.geom + WHERE dossier.dossier_num = new.dossier_num; + + +ALTER TABLE [TABLE_SCHEMA].dossier OWNER TO u_vitis; +GRANT ALL ON TABLE [TABLE_SCHEMA].dossier TO u_vitis; +GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE [TABLE_SCHEMA].dossier TO oads_user; + +ALTER TABLE [TABLE_SCHEMA].parcelle_dossier OWNER TO u_vitis; +GRANT ALL ON TABLE [TABLE_SCHEMA].parcelle_dossier TO u_vitis; +GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE [TABLE_SCHEMA].parcelle_dossier TO oads_user; + +ALTER TABLE [TABLE_SCHEMA].parcelle_oads OWNER TO u_vitis; +GRANT ALL ON TABLE [TABLE_SCHEMA].parcelle_oads TO u_vitis; +GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE [TABLE_SCHEMA].parcelle_oads TO oads_user; + +ALTER TABLE [TABLE_SCHEMA].v_dossier OWNER TO u_vitis; +GRANT ALL ON TABLE [TABLE_SCHEMA].v_dossier TO u_vitis; +GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE [TABLE_SCHEMA].v_dossier TO oads_user; + + + diff --git a/storage/veremes_oads_parcelle/json/business_object.json b/storage/veremes_oads_parcelle/json/business_object.json new file mode 100755 index 00000000..0b13c041 --- /dev/null +++ b/storage/veremes_oads_parcelle/json/business_object.json @@ -0,0 +1,20 @@ +{ + "business_object_id":"veremes_oads_parcelle", + "title":"veremes_oads_parcelle", + "id_field":"id_par", + "database":"vitis_angular_vmap", + "schema":"veremes_oads", + "table":"v_parcelle_dossier", + "sql_summary":"select id_par as \"Parcelle\", dossier as \"Dossier\", '[bo_link href=\"{{getPropertie(''serveur_oads'')}}'||lien_dossier||'\" target=\"_blank\"]Lien vers OpenAds[/bo_link]' as \"OpenAds\" from veremes_oads.v_parcelle_dossier", + "sql_list":"select id_par from veremes_oads.v_parcelle_dossier", + "sorted_by":"id_par", + "geom_column":"geom", + "search_field":"id_par", + "result_field":"id_par", + "search_use_strict":"false", + "event_id":"", + "index":1, + "add_form_size":1, + "edit_form_size":1, + "display_form_size":1 +} \ No newline at end of file diff --git a/storage/veremes_oads_parcelle/json/event.json b/storage/veremes_oads_parcelle/json/event.json new file mode 100755 index 00000000..9e26dfee --- /dev/null +++ b/storage/veremes_oads_parcelle/json/event.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/storage/veremes_oads_parcelle/json/mapserver_layers.json b/storage/veremes_oads_parcelle/json/mapserver_layers.json new file mode 100755 index 00000000..3fcc08f1 --- /dev/null +++ b/storage/veremes_oads_parcelle/json/mapserver_layers.json @@ -0,0 +1,23 @@ +[{ + "ms_layer_id":91, + "name":"Oads_parcelle", + "title":"Oads_parcelle", + "coordsys_id":2154, + "coordsys_label":"[EPSG:2154]-RGF93/Lambert-93", + "source_id":null, + "connection_id":6, + "tableschema":"veremes_oads", + "tablename":"parcelle_oads", + "tableidfield":"id_par", + "definition":"LAYER\r\n\tNAME \"{LAYER_NAME}\"\r\n\tTYPE {LAYER_TYPE}\r\n\tSTATUS DEFAULT\r\n\t{CONNECTION}\r\n\tDATA \"geom from {TABLE_SCHEMA}.{TABLE_NAME} USING SRID={SRID} USING UNIQUE {TABLE_ID}\"\r\n\tOPACITY {LAYER_OPACITY}\r\n\t{COORDSYS}\r\n\tMETADATA\r\n\t\t\"wms_title\" \t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_srs\" \t\t\t\t\"EPSG:2154\"\r\n\t\t\"wms_name\" \t\t\t\t\"{LAYER_NAME}\"\r\n\t\t\"wms_server_version\" \t\"1.3.0\"\r\n\t\t\"wms_format\" \t\t\t\"image/png\"\r\n\tEND\r\n\tCLASS\r\n\t\tNAME \"Dossier\"\r\n\t\tSTYLE\r\n\t\t\tCOLOR \"#FED4FE\"\r\n\tOPACITY 50\r\n\t\tEND\r\n\t\tSTYLE\r\n\t\t\tOUTLINECOLOR \"#FFFFFF\"\r\n\t\t\tWIDTH 5\r\n\t\tEND\r\n\t\tSTYLE\r\n\t\t\tOUTLINECOLOR \"#FF0000\"\r\n\t\t\tWIDTH 4\r\n\t\t\tLINECAP butt #[butt|round|square|triangle]\r\n\t\t\tLINEJOIN miter #[round|miter|bevel]\r\n\t\t\tLINEJOINMAXSIZE 2\r\n\t\t\tPATTERN 10 10 END\r\n\t\tEND\r\n\tEND\r\nEND", + "active":true, + "opacity":100, + "ms_layertype_id":"POLYGON", + "private_connection":true, + "connection_label":"Connexion privée", + "source_label":null, + "definitiontmp":"", + "database":"vmap", + "wmsservices":"", + "wmsservices_label":"" +}] \ No newline at end of file diff --git a/storage/veremes_oads_parcelle/package.json b/storage/veremes_oads_parcelle/package.json new file mode 100755 index 00000000..461fcecd --- /dev/null +++ b/storage/veremes_oads_parcelle/package.json @@ -0,0 +1,5 @@ +{ + "author": "Laurent", + "mame": "veremes_oads_parcelle", + "description": "Objet métier permettant la visualisation des parcelles d'un dossier OpenAds" +} diff --git a/storage/veremes_oads_parcelle/sql/structure.json b/storage/veremes_oads_parcelle/sql/structure.json new file mode 100755 index 00000000..5eb29353 --- /dev/null +++ b/storage/veremes_oads_parcelle/sql/structure.json @@ -0,0 +1,6 @@ +{ + "schema": "", + "srid": "", + "tables": [""], + "sequences": [""] +} \ No newline at end of file diff --git a/storage/veremes_oads_parcelle/sql/table.sql b/storage/veremes_oads_parcelle/sql/table.sql new file mode 100755 index 00000000..e69de29b diff --git a/web_service/conf/properties_server.inc b/web_service/conf/properties_server.inc old mode 100755 new mode 100644 index 67e38fad..5daa0556 --- a/web_service/conf/properties_server.inc +++ b/web_service/conf/properties_server.inc @@ -14,4 +14,5 @@ $properties['vmap_log_dir'] = "{$properties['vas_home']}/log/vmap"; $properties['vmap_map_log_file'] = $properties['vmap_log_dir'] . '/map/' . date($properties["log_period"]) . '/map.log'; $properties['vmap_geocoders'] = '{"osm":{"title":"OpenStreetMap","url":"https://nominatim.openstreetmap.org/search?format=json&addressdetails=1&limit=[limit]&extratags=1&namedetails=1&polygon_geojson=1&countrycodes=fr&q=[search]","data_field":"data","title_field":"display_name","geojson_field":"geojson","summary_fields":[{"key":"address.country","label":"Pays"},{"key":"address.state","label":"Région"},{"key":"address.postcode","label":"Code postal"},{"key":"extratags.population","label":"Population"}]},"national_adresse":{"title":"Base nationale","url":"https://api-adresse.data.gouv.fr/search/?q=[search]&limit=[limit]","data_field":"data.features","title_field":"properties.label","geojson_field":"geometry","summary_fields":[{"key":"properties.context","label":"Département"},{"key":"properties.city","label":"Ville"},{"key":"properties.postcode","label":"Code postal"}]}}'; $properties['vmap_default_geocoders'] = 'osm'; +$properties['vmap_history_timer'] = 0; ?> diff --git a/web_service/conf/selected_properties.inc b/web_service/conf/selected_properties.inc old mode 100755 new mode 100644 index 1de10c2e..51094a4a --- a/web_service/conf/selected_properties.inc +++ b/web_service/conf/selected_properties.inc @@ -18,7 +18,8 @@ $aAdminFields = Array( 'vmap_geocoders', 'vmap_default_geocoders', 'use_proxy_for_tiles', - 'vmap_export.*' + 'vmap_export.*', + 'vmap_history_timer' ); $aUserFields = Array( 'phantomjs_root_path', @@ -36,7 +37,8 @@ $aUserFields = Array( 'vmap_geocoders', 'vmap_default_geocoders', 'use_proxy_for_tiles', - 'vmap_export.*' + 'vmap_export.*', + 'vmap_history_timer' ); $properties['aAdminFields'] = array_merge($properties['aAdminFields'], $aAdminFields); diff --git a/web_service/ws/BusinessObject.class.inc b/web_service/ws/BusinessObject.class.inc old mode 100755 new mode 100644 diff --git a/web_service/ws/BusinessObjects.class.inc b/web_service/ws/BusinessObjects.class.inc old mode 100644 new mode 100755 index 4ab16f4a..413f93e4 --- a/web_service/ws/BusinessObjects.class.inc +++ b/web_service/ws/BusinessObjects.class.inc @@ -786,15 +786,6 @@ class BusinessObjects extends Vmap { $bo_id_field = $oBusinessObject->aFields['id_field']; $geom_column = $oBusinessObject->aFields['geom_column']; - $oVitisBase = $this->oConnection->oBd; - - // Connexion à la base de donées - if (!empty($bo_database) && $bo_database != $this->oConnection->oBd->base) { - $sLogin = $this->oConnection->oBd->login; - $sPassword = $this->oConnection->oBd->mdp; - $this->oConnection->oBd = new Vm($sLogin, $sPassword, $bo_database, $this->oConnection->oBd->serveur, $this->oConnection->oBd->port, $this->oConnection->oBd->sgbd, $this->oConnection->oBd->sPageEncoding); - } - $oForm = new Form($this->aProperties, $this->oConnection); $aTableColumns = $oForm->getTableColumns($bo_schema, $bo_table); @@ -836,8 +827,6 @@ class BusinessObjects extends Vmap { fclose($formFile); } - $this->oConnection->oBd = $oVitisBase; - return $JSONcontent; } diff --git a/web_service/ws/Layers.class.inc b/web_service/ws/Layers.class.inc old mode 100755 new mode 100644 diff --git a/web_service/ws/Querys.class.inc b/web_service/ws/Querys.class.inc old mode 100755 new mode 100644 diff --git a/web_service/ws/UserModules.class.inc b/web_service/ws/UserModules.class.inc old mode 100755 new mode 100644 diff --git a/web_service/ws/UserPrintStyles.class.inc b/web_service/ws/UserPrintStyles.class.inc old mode 100755 new mode 100644 diff --git a/web_service/ws/UserPrintTemplates.class.inc b/web_service/ws/UserPrintTemplates.class.inc old mode 100755 new mode 100644 diff --git a/web_service/ws/VexExport.class.inc b/web_service/ws/VexExport.class.inc old mode 100755 new mode 100644 -- GitLab