diff --git a/module/javascript/app/vmap/tools/insert.js b/module/javascript/app/vmap/tools/insert.js index 803d13add3e95a2916e129c4eb60e6db3b981b01..36e8096d1d253a017a391572046c43214b9582c5 100644 --- a/module/javascript/app/vmap/tools/insert.js +++ b/module/javascript/app/vmap/tools/insert.js @@ -187,6 +187,7 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController = function ($scope, this['snapOptions']['mode'] = oVmap['properties']['snapping']['defaut_snapp_mode']; this['snapOptions']['limit'] = oVmap['properties']['snapping']['defaut_limit']; this['snapOptions']['visible'] = oVmap['properties']['snapping']['defaut_visibility']; + this['snapOptions']['avoidIntersections'] = {}; } /** @@ -1478,7 +1479,17 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController.prototype.getMobileB nsVmap.nsToolsManager.Insert.prototype.inserttoolController.prototype.showSnappingOptionsModal = function () { oVmap.log('nsVmap.nsToolsManager.Insert.prototype.inserttoolController.prototype.showSnappingOptionsModal'); + var this_ = this; this['tmpSnapOptions'] = angular.copy(this['snapOptions']); + + this.$scope_.$applyAsync(function(){ + for (var i = 0; i < this_.$scope_['aQueryableBOs'].length; i++) { + if (!goog.isDefAndNotNull(this_['tmpSnapOptions']['avoidIntersections'][this_.$scope_['aQueryableBOs'][i]['bo_id']])) { + this_['tmpSnapOptions']['avoidIntersections'][this_.$scope_['aQueryableBOs'][i]['bo_id']] = false; + } + } + }); + $('#vmap-insert-snap-options-modal').modal('show'); }; diff --git a/module/lang/lang-en.json b/module/lang/lang-en.json index 7c92b8f054c728c1f96d416e2e1391ff530b0b56..bb158c6f6099eb65a9507a04088704715477c5bc 100644 --- a/module/lang/lang-en.json +++ b/module/lang/lang-en.json @@ -288,6 +288,11 @@ "FORM_SELECTION_BUFFER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Buffer (en mm sur l'écran)", "FORM_SELECTION_MAX_SCALE_BUFFER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Buffer maximum (en mètres sur le terrain)", "TITLE_SNAPPING_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Snapping options", + "FORM_SNAPPING_LIMIT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Manimum limit of points per object", + "FORM_SNAPPING_TOLERANCE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Snapping tolerance (in pixels)", + "FORM_SNAPPING_TYPE_ACC_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Default snapping type", + "FORM_SNAPPING_VISIBILITY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Selected objects visibility", + "FORM_SNAPPING_AVOID_INTERSECTIONS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Avoid intersections", "FORM_SNAPPING_DEFAUT_LIMIT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Manimum limit of points per object", "FORM_SNAPPING_DEFAUT_TOLERANCE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Snapping tolerance (in pixels)", "FORM_SNAPPING_DEFAUT_TYPE_ACC_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Default snapping type", diff --git a/module/lang/lang-fr.json b/module/lang/lang-fr.json index 55c18086dcec9a711a29f4c873a34c3f2324d030..3e3bbb64968836dcbd18b1b31611a8708b5c803d 100644 --- a/module/lang/lang-fr.json +++ b/module/lang/lang-fr.json @@ -288,6 +288,11 @@ "FORM_SELECTION_BUFFER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Buffer de sélection (en mm sur l'écran)", "FORM_SELECTION_MAX_SCALE_BUFFER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Buffer maximum (en mètres sur le terrain)", "TITLE_SNAPPING_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Options d'accrochage", + "FORM_SNAPPING_LIMIT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Limite de points accrochables", + "FORM_SNAPPING_TOLERANCE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Tolérance d'accrochage (pixels)", + "FORM_SNAPPING_TYPE_ACC_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Type d'accrochage", + "FORM_SNAPPING_VISIBILITY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Visibilité des zones d'accrochage", + "FORM_SNAPPING_AVOID_INTERSECTIONS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Eviter les intersections", "FORM_SNAPPING_DEFAUT_LIMIT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Limite de points accrochables", "FORM_SNAPPING_DEFAUT_TOLERANCE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Tolérance d'accrochage (pixels)", "FORM_SNAPPING_DEFAUT_TYPE_ACC_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Type d'accrochage", diff --git a/module/template/tools/insert.html b/module/template/tools/insert.html index 8011c69fe13be35cb5aa0684448a4108da9abb2b..f10c71ac0081e963307028e10294191d20ffac79 100644 --- a/module/template/tools/insert.html +++ b/module/template/tools/insert.html @@ -242,32 +242,73 @@ <h4 class="modal-title" data-translate="TITLE_SNAPPING_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h4> </div> <div class="modal-body modal-body-big-with-footer-3 font-12"> - <div class="col-sm-6"> - <h5 data-translate="FORM_SNAPPING_DEFAUT_TYPE_ACC_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> - <select class="form-control" - ng-model="ctrl.tmpSnapOptions.mode"> - <option value="segment_edge_node" data-translate="FORM_SNAPPING_METHOD_SEN_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></option> - <option value="edge_node" data-translate="FORM_SNAPPING_METHOD_EN_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></option> - <option value="node" data-translate="FORM_SNAPPING_METHOD_N_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></option> - </select> - </div> - <div class="col-sm-6"> - <h5 data-translate="FORM_SNAPPING_DEFAUT_TOLERANCE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> - <input type="number" class="form-control" ng-model="ctrl.tmpSnapOptions.tolerance"> - </div> - <div class="col-sm-6"> - <h5 data-translate="FORM_SNAPPING_DEFAUT_LIMIT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> - <input type="number" class="form-control" ng-model="ctrl.tmpSnapOptions.limit"> + <div class="row"> + <div class="col-sm-6"> + <h5 data-translate="FORM_SNAPPING_TYPE_ACC_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> + <select class="form-control" + ng-model="ctrl.tmpSnapOptions.mode"> + <option value="segment_edge_node" data-translate="FORM_SNAPPING_METHOD_SEN_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></option> + <option value="edge_node" data-translate="FORM_SNAPPING_METHOD_EN_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></option> + <option value="node" data-translate="FORM_SNAPPING_METHOD_N_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></option> + </select> + </div> + <div class="col-sm-6"> + <h5 data-translate="FORM_SNAPPING_TOLERANCE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> + <input type="number" class="form-control" ng-model="ctrl.tmpSnapOptions.tolerance"> + </div> </div> - <div class="col-sm-6"> - <h5 data-translate="FORM_SNAPPING_DEFAUT_VISIBILITY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> - <div class="radio radio-inline"> - <input type="radio" name="vmap_insert_snap_visible" id="vmap_insert_snap_visible_1" ng-model="ctrl.tmpSnapOptions.visible" ng-value="true"> - <label for="vmap_insert_snap_visible_1">Oui</label> + <div class="row"> + <div class="col-sm-6"> + <h5 data-translate="FORM_SNAPPING_LIMIT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> + <input type="number" class="form-control" ng-model="ctrl.tmpSnapOptions.limit"> </div> - <div class="radio radio-inline"> - <input type="radio" name="vmap_insert_snap_visible" id="vmap_insert_snap_visible_2" ng-model="ctrl.tmpSnapOptions.visible" ng-value="false"> - <label for="vmap_insert_snap_visible_2">Non</label> + <div class="col-sm-6"> + <h5 data-translate="FORM_SNAPPING_VISIBILITY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> + <div class="radio radio-inline"> + <input type="radio" name="vmap_insert_snap_visible" id="vmap_insert_snap_visible_1" ng-model="ctrl.tmpSnapOptions.visible" ng-value="true"> + <label for="vmap_insert_snap_visible_1">Oui</label> + </div> + <div class="radio radio-inline"> + <input type="radio" name="vmap_insert_snap_visible" id="vmap_insert_snap_visible_2" ng-model="ctrl.tmpSnapOptions.visible" ng-value="false"> + <label for="vmap_insert_snap_visible_2">Non</label> + </div> + </div> + </div> + <div class="row"> + <div class="col-sm-6"> + <div class="row"> + <div class="col-sm-5"> + + </div> + <div class="col-sm-7"> + <h5 data-translate="FORM_SNAPPING_AVOID_INTERSECTIONS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG"></h5> + </div> + </div> + <div class="row" + ng-repeat="bo in aQueryableBOs" + ng-if="bo.bo_geom_type === 'POLYGON' || bo.bo_geom_type === 'MULTIPOLYGON' || bo.bo_geom_type === 'GEOMETRYCOLLECTION' || bo.bo_geom_type === 'GEOMETRY'"> + <div class="col-sm-5 text-right"> + <label>{{bo.bo_title}}</label> + </div> + <div class="col-sm-7 text-right"> + <div class="radio radio-inline"> + <input type="radio" + name="vmap_insert_snap_avoid_intersections_{{$index}}" + id="vmap_insert_snap_avoid_intersections_1_{{$index}}" + ng-model="ctrl.tmpSnapOptions.avoidIntersections[bo.bo_id]" + ng-value="true"> + <label for="vmap_insert_snap_avoid_intersections_1_{{$index}}">Oui</label> + </div> + <div class="radio radio-inline"> + <input type="radio" + name="vmap_insert_snap_avoid_intersections_{{$index}}" + id="vmap_insert_snap_avoid_intersections_2_{{$index}}" + ng-model="ctrl.tmpSnapOptions.avoidIntersections[bo.bo_id]" + ng-value="false"> + <label for="vmap_insert_snap_avoid_intersections_2_{{$index}}">Non</label> + </div> + </div> + </div> </div> </div> </div>