diff --git a/src/module_vmap/module/css/mobile.less b/src/module_vmap/module/css/mobile.less
index a281bf0695a6f93a48f1e91b70ac5e9f288d6716..fd900b75f297d667806837678592ecc6c66f8f34 100755
--- a/src/module_vmap/module/css/mobile.less
+++ b/src/module_vmap/module/css/mobile.less
@@ -276,3 +276,14 @@ app-map > div {
 #select-bo-select{
     max-width: 23vw;
 }
+
+.basic-tools-dropdown-select-getFeatureInfo-content{
+    display: block;
+    top: 0px !important;
+    height: 100%;
+    padding: 0px !important;
+    margin: 0px !important;
+    right: 0px !important;
+    width: 100% !important;
+    min-width: auto;
+}
diff --git a/src/module_vmap/module/javascript/app/modules/Cadastre/cadastre.js b/src/module_vmap/module/javascript/app/modules/Cadastre/cadastre.js
index 91a57bf08b978aba916e302d0bbed6393037e661..eaed9561ddf04f859db73cc3d68093fbb45210e4 100644
--- a/src/module_vmap/module/javascript/app/modules/Cadastre/cadastre.js
+++ b/src/module_vmap/module/javascript/app/modules/Cadastre/cadastre.js
@@ -274,7 +274,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController = function
             sString = oVmap.checkLink(sString);
         }else{
             sString = oVmap.parseLink(sString, 'link');
-        }        
+        }
         return $sce.trustAsHtml(sString);
     };
 };
@@ -926,7 +926,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
             }
             tmp = Date.now();
             setTimeout(function () {
-                var aSelected = $(parcelleTable).bootstrapTable('getAllSelections');
+                var aSelected = $(parcelleTable).bootstrapTable('getSelections');
                 this_['tablesSelection'][parcelleTable] = aSelected;
             });
         };
@@ -986,7 +986,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayParcelleDescriptiveSheetByTable = function (parcelleTable) {
     oVmap.log('nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayParcelleDescriptiveSheetByTable');
 
-    var selectedParcelles = $(parcelleTable).bootstrapTable('getAllSelections');
+    var selectedParcelles = $(parcelleTable).bootstrapTable('getSelections');
 
     if (selectedParcelles.length !== 1) {
         $.notify('Veuillez sélectionner une unique parcelle', 'info');
@@ -1128,7 +1128,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayUrbanismeSheetByTable = function (parcelleTable) {
     oVmap.log('nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayUrbanismeSheetByTable');
 
-    var selectedParcelles = $(parcelleTable).bootstrapTable('getAllSelections');
+    var selectedParcelles = $(parcelleTable).bootstrapTable('getSelections');
 
     if (selectedParcelles.length !== 1) {
         $.notify('Veuillez sélectionner une unique parcelle', 'info');
@@ -1482,7 +1482,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayReleveDeProprieteSheetParcelle = function (parcelleTable) {
     oVmap.log('nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayReleveDeProprieteSheetTiers');
 
-    var selectedParcelles = $(parcelleTable).bootstrapTable('getAllSelections');
+    var selectedParcelles = $(parcelleTable).bootstrapTable('getSelections');
 
     if (selectedParcelles.length !== 1) {
         $.notify('Veuillez sélectionner une unique parcelle', 'info');
@@ -1508,7 +1508,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayReleveDeProprieteSheetStandard = function (compteTable) {
     oVmap.log('nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayReleveDeProprieteSheetStandard');
 
-    var selectedComptes = $(compteTable).bootstrapTable('getAllSelections');
+    var selectedComptes = $(compteTable).bootstrapTable('getSelections');
 
     if (selectedComptes.length !== 1) {
         $.notify('Veuillez sélectionner un unique compte', 'info');
@@ -1535,7 +1535,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayReleveDeProprieteSheetTiers = function (compteTable) {
     oVmap.log('nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayReleveDeProprieteSheetTiers');
 
-    var selectedComptes = $(compteTable).bootstrapTable('getAllSelections');
+    var selectedComptes = $(compteTable).bootstrapTable('getSelections');
 
     if (selectedComptes.length !== 1) {
         $.notify('Veuillez sélectionner un unique compte', 'info');
@@ -1583,7 +1583,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayRapportParcelle = function (parcelleTable, rapportType, bOpenWindow) {
     oVmap.log('nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.displayRapportParcelle');
 
-    var selectedParcelles = $(parcelleTable).bootstrapTable('getAllSelections');
+    var selectedParcelles = $(parcelleTable).bootstrapTable('getSelections');
 
     bOpenWindow = goog.isDef(bOpenWindow) ? bOpenWindow : true;
 
@@ -2084,7 +2084,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
  */
 nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.addSelectionFromTable = function (path, param, tableId, tabCode, callBack) {
     oVmap.log('nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.addSelectionFromTable');
-    var tableSelections = $(tableId).bootstrapTable('getAllSelections');
+    var tableSelections = $(tableId).bootstrapTable('getSelections');
     if (this['cadastreAPI_'] === "cadastre") {
         var paramField = param;
     } else {
@@ -2235,7 +2235,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     tableParam = goog.isDef(tableParam) ? tableParam : param;
 
     var cadastreController = this;
-    var tableSelections = $(tableId).bootstrapTable('getAllSelections');
+    var tableSelections = $(tableId).bootstrapTable('getSelections');
     var url = oVmap['properties']['api_url'] + '/' + path;
 
     var loadHttp = function () {
@@ -2628,7 +2628,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 
             var data = response['data']['data'];
 
-            // Ajoute le type de voie 
+            // Ajoute le type de voie
             for (var i = 0; i < data.length; i++) {
                 if (goog.isDefAndNotNull(data[i]['L_NATURE_VOIE'])) {
                     data[i]['NOM_VOIE'] = data[i]['L_NATURE_VOIE'] + ' ' + data[i]['DVOILIB'];
@@ -2925,7 +2925,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
             $(tableId).off('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table');
             $(tableId).on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function (e, row) {
                 $(parcelleTableId).bootstrapTable('removeAll');
-                cadastreController.getBaseParcellesByProprietaireOnTable(row['ID_COM'], $(tableId).bootstrapTable('getAllSelections'), parcelleTableId);
+                cadastreController.getBaseParcellesByProprietaireOnTable(row['ID_COM'], $(tableId).bootstrapTable('getSelections'), parcelleTableId);
             });
             // Si une seule ligne est proposée, alors on la sélectionne
             if (data.length === 1) {
@@ -3212,7 +3212,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
                 $(invariantsTableId).bootstrapTable('removeAll');
                 $(parcellesTableId).bootstrapTable('removeAll');
 
-                cadastreController.getBatiBaseInvariantsOnTable($(tableId).bootstrapTable('getAllSelections'), invariantsTableId, parcellesTableId);
+                cadastreController.getBatiBaseInvariantsOnTable($(tableId).bootstrapTable('getSelections'), invariantsTableId, parcellesTableId);
             });
 
             // Si une seule ligne est proposée, alors on la sélectionne
@@ -3305,7 +3305,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
                 $(tableId).off('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table');
                 $(tableId).on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function (e, row) {
                     $(parcellesTableId).bootstrapTable('removeAll');
-                    cadastreController.getBatiBaseParcellesOnTable($(tableId).bootstrapTable('getAllSelections'), parcellesTableId);
+                    cadastreController.getBatiBaseParcellesOnTable($(tableId).bootstrapTable('getSelections'), parcellesTableId);
                 });
 
                 // Si une seule ligne est proposée, alors on la sélectionne
@@ -3500,7 +3500,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos de la section
-    if ($(tableSection).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableSection).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_section');
 
         // Crée l'onglet correspondant
@@ -3550,7 +3550,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos du lieu dit
-    if ($(tableLieuDit).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableLieuDit).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_lieu_dit');
 
         // Crée l'onglet correspondant
@@ -3615,7 +3615,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos de la Parcelle
-    if ($(tableParcelle).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableParcelle).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_parcelle');
 
         // Crée l'onglet correspondant
@@ -3668,7 +3668,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos de la Voie
-    if ($(tableVoie).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableVoie).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_voie');
 
         // Crée l'onglet correspondant
@@ -3703,7 +3703,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
         this.addSelectionFromSelect(oVmap["properties"]["cadastre"]["api"] + '/parcelles', 'id_par', selectAdresse, 'veremes_cadastre_parcelle');
 
         // Si on choisit de voir toutes les géométries
-    } else if ($(tableVoie).bootstrapTable('getAllSelections').length > 0 && this['aAdresses'].length > 0) {
+    } else if ($(tableVoie).bootstrapTable('getSelections').length > 0 && this['aAdresses'].length > 0) {
         this.aFormList_.push('veremes_cadastre_parcelle');
 
         // Crée l'onglet correspondant
@@ -3730,7 +3730,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
 
     if ($(selectAdresse).val() !== "")
         this.localiseFromSelect(oVmap["properties"]["cadastre"]["api"] + '/parcelles', 'id_par', selectAdresse);
-    else if ($(tableVoie).bootstrapTable('getAllSelections').length > 0) {
+    else if ($(tableVoie).bootstrapTable('getSelections').length > 0) {
         this.localiseFromArray(oVmap["properties"]["cadastre"]["api"] + '/parcelles', 'id_par', this['aAdresses'], 'ID_PAR');
     }
 };
@@ -3775,7 +3775,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos du propriétaire
-    if ($(tableProprietaires).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableProprietaires).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_proprietaire');
 
         // Crée l'onglet correspondant
@@ -3783,13 +3783,13 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
             oVmap.getToolsManager().getInfoContainer().addTab({tabCode: 'veremes_cadastre_proprietaire', tabName: 'Propriétaire', actions: ['delete']});
 
         // Ajoute les infos
-        var proprietaire = $(tableProprietaires).bootstrapTable('getAllSelections')[0];
+        var proprietaire = $(tableProprietaires).bootstrapTable('getSelections')[0];
         this.addSelectionFrom2Values(oVmap["properties"]["cadastre"]["api"] + '/proprietaires', 'DDENOM', proprietaire['DDENOM'], 'ID_COM', proprietaire['ID_COM'], 'veremes_cadastre_proprietaire');
 
     }
 
     // Ajoute les infos du compte
-    if ($(tableComptes).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableComptes).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_compte');
 
         // Crée l'onglet correspondant
@@ -3797,7 +3797,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
             oVmap.getToolsManager().getInfoContainer().addTab({tabCode: 'veremes_cadastre_compte', tabName: 'Compte', actions: ['delete']});
 
         // Ajoute les infos
-        var aComptes = $(tableComptes).bootstrapTable('getAllSelections');
+        var aComptes = $(tableComptes).bootstrapTable('getSelections');
         if (this['cadastreAPI_'] === "cadastre") {
             var id_com = 'ID_COM';
             var dnupro = 'DNUPRO';
@@ -3829,7 +3829,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos de la parcelle
-    if ($(tableParcelles).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableParcelles).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_parcelle');
 
         // Crée l'onglet correspondant
@@ -3837,7 +3837,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
             oVmap.getToolsManager().getInfoContainer().addTab({tabCode: 'veremes_cadastre_parcelle', tabName: 'Parcelle', actions: ['zoom', 'delete']});
 
         // Ajoute les infos
-        var aParcelles = $(tableParcelles).bootstrapTable('getAllSelections');
+        var aParcelles = $(tableParcelles).bootstrapTable('getSelections');
         this.addSelectionFromArray(oVmap["properties"]["cadastre"]["api"] + '/parcelles', 'id_par', aParcelles, 'ID_PAR', 'veremes_cadastre_parcelle');
     }
 
@@ -3897,7 +3897,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos du propriétaire
-    if ($(tableProprietaires).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableProprietaires).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_proprietaire');
 
         // Crée l'onglet correspondant
@@ -3905,19 +3905,19 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
             oVmap.getToolsManager().getInfoContainer().addTab({tabCode: 'veremes_cadastre_proprietaire', tabName: 'Propriétaire', actions: ['delete']});
 
         // Ajoute les infos
-        var proprietaire = $(tableProprietaires).bootstrapTable('getAllSelections')[0];
+        var proprietaire = $(tableProprietaires).bootstrapTable('getSelections')[0];
         this.addSelectionFrom2Values(oVmap["properties"]["cadastre"]["api"] + '/proprietaires', ddenomF, proprietaire['DDENOM'], id_comF, proprietaire['ID_COM'], 'veremes_cadastre_proprietaire');
     }
 
     // Ajoute les infos du compte
-    if ($(tableComptes).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableComptes).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_compte');
 
         // Crée l'onglet correspondant
         if (oVmap.getToolsManager().getInfoContainer().getTabByCode('veremes_cadastre_compte') === undefined)
             oVmap.getToolsManager().getInfoContainer().addTab({tabCode: 'veremes_cadastre_compte', tabName: 'Compte', actions: ['delete']});
 
-        var aComptes = $(tableComptes).bootstrapTable('getAllSelections');
+        var aComptes = $(tableComptes).bootstrapTable('getSelections');
         if (this['cadastreAPI_'] === "cadastre") {
             var id_com = 'ID_COM';
             var dnupro = 'DNUPRO';
@@ -3951,7 +3951,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos de l'invariant
-    if ($(tableInvariants).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableInvariants).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_invariant');
 
         // Crée l'onglet correspondant
@@ -3963,7 +3963,7 @@ nsVmap.nsToolsManager.nsModules.Cadastre.prototype.cadastreController.prototype.
     }
 
     // Ajoute les infos de la parcelle
-    if ($(tableParcelles).bootstrapTable('getAllSelections').length > 0) {
+    if ($(tableParcelles).bootstrapTable('getSelections').length > 0) {
         this.aFormList_.push('veremes_cadastre_parcelle');
 
         // Crée l'onglet correspondant
diff --git a/src/module_vmap/module/javascript/app/vmap/tools/print.js b/src/module_vmap/module/javascript/app/vmap/tools/print.js
index 342c526f9fc29d74118bafb824bad036e118c50d..8c779787a04216d8ac5ca2ec60d40e2b2bd29a12 100644
--- a/src/module_vmap/module/javascript/app/vmap/tools/print.js
+++ b/src/module_vmap/module/javascript/app/vmap/tools/print.js
@@ -558,7 +558,6 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.print = function
     today = dd + '/' + mm + '/' + yyyy;
 
     // Valeurs par défaut
-    var resolutionCoeff = goog.isDefAndNotNull(opt_options.resolutionCoeff) ? opt_options.resolutionCoeff : 1;
     var templateId = opt_options.templateId;
     var printStyleId = opt_options.printStyleId;
 
@@ -573,51 +572,6 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.print = function
     oPrintScope['date'] = goog.isDefAndNotNull(oPrintScope['date']) ? oPrintScope['date'] : today;
     var sScope = JSON.stringify(oPrintScope);
 
-    // Set mapId/mapJson
-    var sMapId;
-    var sMapJSON;
-    if (goog.isDefAndNotNull(opt_options.mapId)) {
-        sMapId = opt_options.mapId;
-    } else {
-        sMapJSON = oVmap.getMapManager().getJSONLayersTree();
-    }
-
-    // set EWKTFeatures
-    var aFeatures = goog.isDefAndNotNull(opt_options.features) ? opt_options.features : [];
-    var sEWKTFeatures = '';
-    for (var i = 0; i < aFeatures.length; i++) {
-        if (i > 0)
-            sEWKTFeatures += '|';
-        sEWKTFeatures += oVmap.getEWKTFromGeom(aFeatures[i].getGeometry());
-    }
-
-    // set extent
-    var aExtent = goog.isDefAndNotNull(opt_options.extent) ? opt_options.extent : [];
-    var sExtent = '';
-    var aOverviewExtent = [
-        aExtent[0] - (aExtent[2] - aExtent[0]),
-        aExtent[1] - (aExtent[3] - aExtent[1]),
-        aExtent[2] + (aExtent[2] - aExtent[0]),
-        aExtent[3] + (aExtent[3] - aExtent[1])
-    ];
-    var sOverviewExtent = '';
-    for (var i = 0; i < aExtent.length; i++) {
-        if (i > 0) {
-            sExtent += '|';
-            sOverviewExtent += '|';
-        }
-        sExtent += aExtent[i];
-        sOverviewExtent += aOverviewExtent[i];
-    }
-
-    // Features zoom
-    var sFeaturesZoom = 100;
-    if (goog.isDefAndNotNull(opt_options.featuresZoom)) {
-        sFeaturesZoom = opt_options.featuresZoom;
-    } else if (goog.isDefAndNotNull(oVmap['properties']['print']['features_zoom'])) {
-        sFeaturesZoom = oVmap['properties']['print']['features_zoom'];
-    }
-
     // Ouvre la fenêtre d'impression
     var printWindow = window.open("", '_blank', 'height=400,width=600');
 
@@ -664,46 +618,17 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.print = function
             template.innerHTML = response['data']['data'][0]['definition'];
 
             var mapImageSize = this_.getTemplateTargetSize(template, '#map_image');
-            var overviezSize = this_.getTemplateTargetSize(template, '#map_overview');
-
-            if (goog.isDefAndNotNull(mapImageSize)) {
-                var oMapDef = {
-                    'map_id': sMapId,
-                    'map_json': sMapJSON,
-                    'image_size': (mapImageSize[0] * resolutionCoeff) + '|' + (mapImageSize[1] * resolutionCoeff),
-                    'resolution_coeff': resolutionCoeff,
-                    'extent': sExtent,
-                    'features': sEWKTFeatures,
-                    'features_zoom': sFeaturesZoom
-                };
-            }
-
-            if (goog.isDefAndNotNull(overviezSize)) {
-                var oOverviewDef = {
-                    'map_id': sMapId,
-                    'map_json': sMapJSON,
-                    'image_size': (overviezSize[0] * resolutionCoeff) + '|' + (overviezSize[1] * resolutionCoeff),
-                    'resolution_coeff': resolutionCoeff,
-                    'extent': sOverviewExtent,
-                    'features': sEWKTFeatures,
-                    'features_zoom': 400
-                };
-            }
-
-            var oMapsJson = [];
-            if (goog.isDefAndNotNull(oMapDef)) {
-                oMapsJson.push({
-                    'target': '#map_image',
-                    'map_definition': oMapDef
-                });
-            }
-            if (goog.isDefAndNotNull(oOverviewDef)) {
-                oMapsJson.push({
-                    'target': '#map_overview',
-                    'map_definition': oOverviewDef
-                });
-            }
-            var mapsJson = JSON.stringify(oMapsJson);
+            var overviewSize = this_.getTemplateTargetSize(template, '#map_overview');
+
+            var mapsJson = this_.getMapsJsonDef({
+                mapId: opt_options.mapId,
+                resolutionCoeff: opt_options.resolutionCoeff,
+                extent: opt_options.extent,
+                features: opt_options.features,
+                featuresZoom: opt_options.featuresZoom,
+                mapImageSize: mapImageSize,
+                overviewSize: overviewSize
+            })
 
             // Récupère les infos de l'utilisateur
             this_.getUserInfos_().then(function (oUserInfos) {
@@ -773,6 +698,99 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.print = function
     return 1;
 };
 
+nsVmap.nsToolsManager.Print.prototype.printController.prototype.getMapsJsonDef = function (opt_options) {
+    oVmap.log('nsVmap.nsToolsManager.Print.prototype.printController.prototype.getMapsJsonDef');
+
+    // Resolution
+    var resolutionCoeff = goog.isDefAndNotNull(opt_options.resolutionCoeff) ? opt_options.resolutionCoeff : 1;
+
+    // mapId/mapJson
+    var sMapId;
+    var sMapJSON;
+    if (goog.isDefAndNotNull(opt_options.mapId)) {
+        sMapId = opt_options.mapId;
+    } else {
+        sMapJSON = oVmap.getMapManager().getJSONLayersTree();
+    }
+
+    // Extent
+    var aExtent = goog.isDefAndNotNull(opt_options.extent) ? opt_options.extent : [];
+    var sExtent = '';
+    var aOverviewExtent = [
+        aExtent[0] - (aExtent[2] - aExtent[0]),
+        aExtent[1] - (aExtent[3] - aExtent[1]),
+        aExtent[2] + (aExtent[2] - aExtent[0]),
+        aExtent[3] + (aExtent[3] - aExtent[1])
+    ];
+    var sOverviewExtent = '';
+    for (var i = 0; i < aExtent.length; i++) {
+        if (i > 0) {
+            sExtent += '|';
+            sOverviewExtent += '|';
+        }
+        sExtent += aExtent[i];
+        sOverviewExtent += aOverviewExtent[i];
+    }
+
+    // Features
+    var aFeatures = goog.isDefAndNotNull(opt_options.features) ? opt_options.features : [];
+    var sEWKTFeatures = '';
+    for (var i = 0; i < aFeatures.length; i++) {
+        if (i > 0)
+            sEWKTFeatures += '|';
+        sEWKTFeatures += oVmap.getEWKTFromGeom(aFeatures[i].getGeometry());
+    }
+
+    var sFeaturesZoom = 100;
+    if (goog.isDefAndNotNull(opt_options.featuresZoom)) {
+        sFeaturesZoom = opt_options.featuresZoom;
+    } else if (goog.isDefAndNotNull(oVmap['properties']['print']['features_zoom'])) {
+        sFeaturesZoom = oVmap['properties']['print']['features_zoom'];
+    }
+
+    if (goog.isDefAndNotNull(opt_options.mapImageSize)) {
+        var oMapDef = {
+            'map_id': sMapId,
+            'map_json': sMapJSON,
+            'image_size': (opt_options.mapImageSize[0] * resolutionCoeff) + '|' + (opt_options.mapImageSize[1] * resolutionCoeff),
+            'resolution_coeff': resolutionCoeff,
+            'extent': sExtent,
+            'features': sEWKTFeatures,
+            'features_zoom': sFeaturesZoom
+        };
+    }
+
+    if (goog.isDefAndNotNull(opt_options.overviewSize)) {
+        var oOverviewDef = {
+            'map_id': sMapId,
+            'map_json': sMapJSON,
+            'image_size': (opt_options.overviewSize[0] * resolutionCoeff) + '|' + (opt_options.overviewSize[1] * resolutionCoeff),
+            'resolution_coeff': resolutionCoeff,
+            'extent': sOverviewExtent,
+            'features': sEWKTFeatures,
+            'features_zoom': 400
+        };
+    }
+
+    var oMapsJson = [];
+    if (goog.isDefAndNotNull(oMapDef)) {
+        oMapsJson.push({
+            'target': '#map_image',
+            'map_definition': oMapDef
+        });
+    }
+    if (goog.isDefAndNotNull(oOverviewDef)) {
+        oMapsJson.push({
+            'target': '#map_overview',
+            'map_definition': oOverviewDef
+        });
+    }
+
+    var mapsJson = JSON.stringify(oMapsJson);
+
+    return mapsJson;
+}
+
 /**
  * Get the size of a target in a template
  * @param {string} template
diff --git a/src/module_vmap/module/javascript/vitis/script_module.js b/src/module_vmap/module/javascript/vitis/script_module.js
index f14e1f323236a857733612f3f3c22a24fa55164c..00d7bea38f0f130a3f1f55460702749cb216fc1f 100644
--- a/src/module_vmap/module/javascript/vitis/script_module.js
+++ b/src/module_vmap/module/javascript/vitis/script_module.js
@@ -915,7 +915,9 @@ vitisApp.on('appMainDrtvLoaded', function () {
         }
 
         this['getCapabilities'](serviceUrl, {
-            'version': serviceVersion
+            'version': serviceVersion,
+            'service_login': envSrvc["oFormValues"][envSrvc['sFormDefinitionName']]['service_login'],
+            'service_password': envSrvc["oFormValues"][envSrvc['sFormDefinitionName']]['service_password']
         }).then(function (oResult) {
             if (goog.isDefAndNotNull(oResult)) {
                 if (goog.isDefAndNotNull(oResult['json'])) {
@@ -1098,6 +1100,12 @@ vitisApp.on('appMainDrtvLoaded', function () {
                 if (goog.isDefAndNotNull(scope['oServices'][sServiceId]['service_type_version'])) {
                     envSrvc["oFormValues"][envSrvc['sFormDefinitionName']]["service_type_version"] = scope['oServices'][sServiceId]['service_type_version'];
                 }
+                if (goog.isDefAndNotNull(scope['oServices'][sServiceId]['service_login'])) {
+                    envSrvc["oFormValues"][envSrvc['sFormDefinitionName']]["service_login"] = scope['oServices'][sServiceId]['service_login'];
+                }
+                if (goog.isDefAndNotNull(scope['oServices'][sServiceId]['service_password'])) {
+                    envSrvc["oFormValues"][envSrvc['sFormDefinitionName']]["service_password"] = scope['oServices'][sServiceId]['service_password'];
+                }
             }
         } else {
             sServiceType = envSrvc['oFormValues'][envSrvc['sFormDefinitionName']]['service_type_id'];
@@ -2497,11 +2505,15 @@ vitisApp.on('appMainDrtvLoaded', function () {
 
         $translate(["BTN_ADD_LAYERS_VMAP_MAP_LAYER"]).then(function (oTranslations) {
             var sServiceUrl = envSrvc["oFormValues"][sParentFormDefinitionName]["service_url"];
+            var sServiceLogin = envSrvc["oFormValues"][sParentFormDefinitionName]["service_login"];
+            var sServicePassword = envSrvc["oFormValues"][sParentFormDefinitionName]["service_password"];
             var sVersion = envSrvc["oFormValues"][sParentFormDefinitionName]["service_type_version"];
             sServiceUrl = sServiceUrl.replace("[token]", sha256(sessionSrvc["token"]));
             sServiceUrl = sServiceUrl.replace("[ms_cgi_url]", propertiesSrvc["ms_cgi_url"]);
             this_['showLayerModalWindow']({
                 'service_url': sServiceUrl,
+                'service_login': sServiceLogin,
+                'service_password': sServicePassword,
                 'service_version': sVersion,
                 'buttons': [{
                         "label": oTranslations["BTN_ADD_LAYERS_VMAP_MAP_LAYER"],
@@ -2874,7 +2886,9 @@ vitisApp.on('appMainDrtvLoaded', function () {
         } else if (goog.isDefAndNotNull(sServiceUrl)) {
             // Calques du service wms.
             scope.$root['getCapabilities'](sServiceUrl, {
-                'version': opt_options['service_version']
+                'version': opt_options['service_version'],
+                'service_login': opt_options['service_login'],
+                'service_password': opt_options['service_password']
             }).then(function (oGetCapabilities) {
                 oCapabilities = oGetCapabilities;
                 if (goog.isDefAndNotNull(oCapabilities)) {
@@ -2906,6 +2920,9 @@ vitisApp.on('appMainDrtvLoaded', function () {
             "showErrorMessage": true,
             "version": "1.3.0"
         };
+        var oHeaders = {
+            "charset": "charset=utf-8"
+        };
         if (typeof (oOptions) == "undefined")
             oOptions = oDefaultOptions;
         else {
@@ -2918,6 +2935,11 @@ vitisApp.on('appMainDrtvLoaded', function () {
         if (!goog.isDefAndNotNull(oOptions['showErrorMessage'])) {
             oOptions['showErrorMessage'] = true;
         }
+        if (goog.isDefAndNotNull(oOptions['service_login']) && goog.isDefAndNotNull(oOptions['service_password'])) {
+            if (oOptions['service_login'].length > 0 && oOptions['service_password'].length > 0) {
+                oHeaders['Authorization'] = "Basic " + btoa(oOptions['service_login'] + ":" + oOptions['service_password']);
+            }
+        }
         // Création de l'url vers le service.
         if (sServiceUrl.indexOf("?") === -1)
             sServiceUrl += "?";
@@ -2941,6 +2963,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
                 "method": "GET",
                 "url": propertiesSrvc['proxy_url'],
                 "params": {"url": sServiceUrl},
+                'headers': oHeaders,
                 "scope": scope,
                 "responseType": "text",
                 "success": function (response) {
diff --git a/src/module_vmap/module/template/tools/print.html b/src/module_vmap/module/template/tools/print.html
index 92421e58d937a6c2116346ef30a024b87037e46d..0a1fd62b4dcf92147ce7b543f37d661637c5f70c 100644
--- a/src/module_vmap/module/template/tools/print.html
+++ b/src/module_vmap/module/template/tools/print.html
@@ -45,8 +45,8 @@
             <option value="100">1:100</option>
         </select>
 
-        <div class="hidden print-form-label">Résolution</div>
-        <select id="select-print-resolution" class="hidden form-control minus" ng-model="ctrl.dpi">
+        <div class="print-form-label">Résolution</div>
+        <select id="select-print-resolution" class="form-control minus" ng-model="ctrl.dpi">
             <option value="1">72 dpi</option>
             <option value="2" ng-show="ctrl.resolution <= 4">144 dpi</option>
             <option value="4" ng-show="ctrl.resolution <= 2">288 dpi</option>
diff --git a/src/module_vmap/storage/veremes_demo_dessin/forms/custom.json b/src/module_vmap/storage/veremes_demo_dessin/forms/custom.json
new file mode 100755
index 0000000000000000000000000000000000000000..40d59f8f0d8349d47d4f0f3d4a9b5170d17f78f1
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/forms/default.json b/src/module_vmap/storage/veremes_demo_dessin/forms/default.json
new file mode 100755
index 0000000000000000000000000000000000000000..40d59f8f0d8349d47d4f0f3d4a9b5170d17f78f1
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/forms/published.json b/src/module_vmap/storage/veremes_demo_dessin/forms/published.json
new file mode 100755
index 0000000000000000000000000000000000000000..40d59f8f0d8349d47d4f0f3d4a9b5170d17f78f1
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/forms/ressources/custom.js b/src/module_vmap/storage/veremes_demo_dessin/forms/ressources/custom.js
new file mode 100755
index 0000000000000000000000000000000000000000..de066e6fbd1e478806f3a70d18c66444d6624d81
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/forms/ressources/default.js b/src/module_vmap/storage/veremes_demo_dessin/forms/ressources/default.js
new file mode 100755
index 0000000000000000000000000000000000000000..de066e6fbd1e478806f3a70d18c66444d6624d81
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/forms/ressources/published.js b/src/module_vmap/storage/veremes_demo_dessin/forms/ressources/published.js
new file mode 100755
index 0000000000000000000000000000000000000000..de066e6fbd1e478806f3a70d18c66444d6624d81
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/json/business_object.json b/src/module_vmap/storage/veremes_demo_dessin/json/business_object.json
new file mode 100755
index 0000000000000000000000000000000000000000..6e193dafff5fdf77677c0e477528edd0f98d7b6d
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/json/event.json b/src/module_vmap/storage/veremes_demo_dessin/json/event.json
new file mode 100755
index 0000000000000000000000000000000000000000..b1cc925ba0806aea91147e0d6f24138d16dc8fed
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/json/mapserver_layers.json b/src/module_vmap/storage/veremes_demo_dessin/json/mapserver_layers.json
new file mode 100755
index 0000000000000000000000000000000000000000..5155634a2c2295191865d567b50548d370d1af44
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/package.json b/src/module_vmap/storage/veremes_demo_dessin/package.json
new file mode 100755
index 0000000000000000000000000000000000000000..9bf4d6f5d5352f715d621d0dc0e242a4cea01bec
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/sql/structure.json b/src/module_vmap/storage/veremes_demo_dessin/sql/structure.json
new file mode 100755
index 0000000000000000000000000000000000000000..f475b4532a7340d10f1fe9f7f55dd927be466c29
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_demo_dessin/sql/table.sql b/src/module_vmap/storage/veremes_demo_dessin/sql/table.sql
new file mode 100755
index 0000000000000000000000000000000000000000..1b037df8a4c2628c91e09dddd04cb350d8664a56
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/forms/custom.json b/src/module_vmap/storage/veremes_oads_dossier/forms/custom.json
new file mode 100755
index 0000000000000000000000000000000000000000..ae1448e7e7194b560893a1745c9c07af253b30a8
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/forms/default.json b/src/module_vmap/storage/veremes_oads_dossier/forms/default.json
new file mode 100755
index 0000000000000000000000000000000000000000..6c38ec4625b9209da63c12cde01665c990a9dabf
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/forms/published.json b/src/module_vmap/storage/veremes_oads_dossier/forms/published.json
new file mode 100755
index 0000000000000000000000000000000000000000..7dd25b34d74901abb86a2b664e61b8e1473a4f14
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/json/business_object.json b/src/module_vmap/storage/veremes_oads_dossier/json/business_object.json
new file mode 100755
index 0000000000000000000000000000000000000000..77975551b01082b308ecb63c546e4f9c10e9dbca
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/json/event.json b/src/module_vmap/storage/veremes_oads_dossier/json/event.json
new file mode 100755
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/src/module_vmap/storage/veremes_oads_dossier/json/event.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/src/module_vmap/storage/veremes_oads_dossier/json/mapserver_layers.json b/src/module_vmap/storage/veremes_oads_dossier/json/mapserver_layers.json
new file mode 100755
index 0000000000000000000000000000000000000000..aeae16f8a4579be2be0e52b787524fa99918b2a1
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/package.json b/src/module_vmap/storage/veremes_oads_dossier/package.json
new file mode 100755
index 0000000000000000000000000000000000000000..e509782f3ec924bdc7d9501d8ad05c99e65b08b4
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/sql/structure.json b/src/module_vmap/storage/veremes_oads_dossier/sql/structure.json
new file mode 100755
index 0000000000000000000000000000000000000000..7dcd23b6b249f98b8af4beac1abedc13c7ad508d
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_dossier/sql/table.sql b/src/module_vmap/storage/veremes_oads_dossier/sql/table.sql
new file mode 100755
index 0000000000000000000000000000000000000000..463a9356cf78bfd56d30b7465e51786c7990f0b4
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_parcelle/json/business_object.json b/src/module_vmap/storage/veremes_oads_parcelle/json/business_object.json
new file mode 100755
index 0000000000000000000000000000000000000000..0b13c041db3596b2abd17c3ad5991a9410baa822
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_parcelle/json/event.json b/src/module_vmap/storage/veremes_oads_parcelle/json/event.json
new file mode 100755
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/src/module_vmap/storage/veremes_oads_parcelle/json/event.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/src/module_vmap/storage/veremes_oads_parcelle/json/mapserver_layers.json b/src/module_vmap/storage/veremes_oads_parcelle/json/mapserver_layers.json
new file mode 100755
index 0000000000000000000000000000000000000000..3fcc08f190c6bb79528b1cbca39d63b357b763cd
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_parcelle/package.json b/src/module_vmap/storage/veremes_oads_parcelle/package.json
new file mode 100755
index 0000000000000000000000000000000000000000..461fcecdd13e7a4fb59d955713e58c571d7e39d1
--- /dev/null
+++ b/src/module_vmap/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/src/module_vmap/storage/veremes_oads_parcelle/sql/structure.json b/src/module_vmap/storage/veremes_oads_parcelle/sql/structure.json
new file mode 100755
index 0000000000000000000000000000000000000000..5eb29353e070d15f766bc882dc5d45efbcf6e55f
--- /dev/null
+++ b/src/module_vmap/storage/veremes_oads_parcelle/sql/structure.json
@@ -0,0 +1,6 @@
+{
+	"schema": "",
+	"srid": "",
+	"tables": [""],
+	"sequences": [""]
+}
\ No newline at end of file
diff --git a/src/module_vmap/storage/veremes_oads_parcelle/sql/table.sql b/src/module_vmap/storage/veremes_oads_parcelle/sql/table.sql
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/module_vmap/web_service/sql/sqlQueries.xml b/src/module_vmap/web_service/sql/sqlQueries.xml
index e96354f4c9b16f78e67a075817424635d108985e..cbe6c7bfb1c8f72f64dc354137eeb98e981f4d00 100644
--- a/src/module_vmap/web_service/sql/sqlQueries.xml
+++ b/src/module_vmap/web_service/sql/sqlQueries.xml
@@ -1140,6 +1140,8 @@
 			<version>2018.04.00</version>
 			<code>
 				<![CDATA[
+					-- Armand 06/11/2018 enlever le mode onfiguration quand on est vmap_admin
+					DELETE FROM s_vitis.vm_mode_rolname WHERE mode_id='configuration' AND rolname='vmap_admin';
 				]]>
 			</code>
 		</query>
diff --git a/src/module_vmap/web_service/ws/PrintMapServices.class.inc b/src/module_vmap/web_service/ws/PrintMapServices.class.inc
index 34623aa9e67138ed38103a4660df48aa16457ba8..8c656d82a79f0611936a05c7a3bb8220adcab8db 100755
--- a/src/module_vmap/web_service/ws/PrintMapServices.class.inc
+++ b/src/module_vmap/web_service/ws/PrintMapServices.class.inc
@@ -15,7 +15,7 @@ require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vmlib/BdDataAccess.i
  *  \brief This file contains the PrintMapServices php class
  *
  * This class defines the rest api for printmapservices
- * 
+ *
  */
 class PrintMapServices extends PrintServices {
     /**
@@ -241,14 +241,6 @@ class PrintMapServices extends PrintServices {
             }
         }
 
-        // Change la taille de l'image en fonction de la résolution
-        if (isset($this->aValues['resolution_coeff'])) {
-            $aImageSize = explode('|', $sImageSize);
-            $aImageSize[0] = $aImageSize[0] * $this->aValues['resolution_coeff'];
-            $aImageSize[1] = $aImageSize[1] * $this->aValues['resolution_coeff'];
-            $sImageSize = implode('|', $aImageSize);
-        }
-
         // Écrit les paramètres gros dans des fichiers
         if (is_dir($this->aProperties['vas_home'])) {
             if (!is_dir($this->aProperties['vas_home'] . '/public')) {
@@ -343,4 +335,4 @@ class PrintMapServices extends PrintServices {
 
 }
 
-?>
\ No newline at end of file
+?>