Skip to content

Commit

Permalink
Merge 0c5273a into 849552f
Browse files Browse the repository at this point in the history
  • Loading branch information
LePetitTim committed Mar 21, 2019
2 parents 849552f + 0c5273a commit 456cd07
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 67 deletions.
4 changes: 4 additions & 0 deletions geotrek/core/static/core/geotrek.forms.snap.js
Expand Up @@ -40,7 +40,11 @@ MapEntity.GeometryField.GeometryFieldPathMixin = {
* (At least for the fix to propagate events)
*/
buildPathsLayer: function (objectsLayer) {
var url_path = window.SETTINGS.urls.path_layer
var pathsLayer = MapEntity.pathsLayer({style: {clickable: true}, no_draft: objectsLayer.modelname != 'path'});
if (objectsLayer.modelname != 'path')
url_path += '?no_draft=true';
pathsLayer.load(url_path, true);

this._map.addLayer(pathsLayer);

Expand Down
33 changes: 20 additions & 13 deletions geotrek/core/static/core/main.js
Expand Up @@ -10,24 +10,16 @@ MapEntity.pathsLayer = function buildPathLayer(options) {
pathsLayer.showExtremities(window.SETTINGS.map.paths_line_marker);
});
}

// Start ajax loading at last
url = window.SETTINGS.urls.path_layer
if (options.no_draft){
pathsLayer.load(url + '?no_draft=true', true);
}
else {
pathsLayer.load(url, true);
}

return pathsLayer;
};

$(window).on('entity:map', function (e, data) {
var map = data.map;
var loaded_path = false;
// Show the path layer only if model is not path, and if we are not
// in an editing widget
var is_form_view = /add|update/.test(data.view);
var is_form_view = /add|update/.test(data.viewname);

if (!is_form_view && (data.viewname == 'detail' || data.modelname != 'path')) {

var pathsLayer = MapEntity.pathsLayer({
Expand All @@ -36,15 +28,30 @@ $(window).on('entity:map', function (e, data) {
modelname: 'path',
no_draft: data.modelname != 'path',
});
pathsLayer.addTo(map);

if (data.viewname == 'detail'){
pathsLayer.load(window.SETTINGS.urls.path_layer);
pathsLayer.addTo(map);
};
pathsLayer.on('loaded', function () {
if (pathsLayer._map)
pathsLayer.bringToBack();
});

map.on('layeradd', function (e) {
// Start ajax loading at last
url = window.SETTINGS.urls.path_layer

var options = e.layer.options || {'modelname': 'None'};
if (! loaded_path){
if (options.modelname == 'path' && data.viewname != 'detail'){
e.layer.load(url + '?no_draft=true', true);
loaded_path = true;
};

}

if (e.layer === pathsLayer) {

if (!e.layer._map) {
return;
}
Expand Down
78 changes: 51 additions & 27 deletions geotrek/land/static/land/main.js
@@ -1,38 +1,62 @@
$(window).on('entity:map', function (e, data) {

var map = data.map;

// Add management layers
var managementLayers = [{url: window.SETTINGS.urls.landedge_layer, name: tr('Land type'), id: 'land'},
{url: window.SETTINGS.urls.physicaledge_layer, name: tr('Physical type'), id: 'physical'},
{url: window.SETTINGS.urls.competenceedge_layer, name: tr('Competence'), id: 'competence'},
{url: window.SETTINGS.urls.signagemanagementedge_layer, name: tr('Signage management'), id: 'signagemanagement'},
{url: window.SETTINGS.urls.workmanagementedge_layer, name: tr('Work management'), id: 'workmanagement'}];

// We have a list of colors, each layer has a *color_index*, and will *consume* a color
// from the list. This way we may not have the same color twice on the map.
var loaded_land = false;
var loaded_physical = false;
var loaded_competence = false;
var loaded_signagemanagement = false;
var loaded_workmanagement = false;
var colorspools = L.Util.extend({}, window.SETTINGS.map.colorspool);

for (var i=0; i<managementLayers.length; i++) {
var managementLayer = managementLayers[i];

$.each([[tr('Land type'), 'land'], [tr('Physical type'), 'physical'], [tr('Competence'), 'competence'],
[tr('Signage management'), 'signagemanagement'],[tr('Work management'), 'workmanagement']], function (i, modelname) {
var style = L.Util.extend({clickable: false},
window.SETTINGS.map.styles[modelname[1]] || {});
var layer = new L.ObjectsLayer(null, {
indexing: false,
modelname: managementLayer.id,
style: L.Util.extend(window.SETTINGS.map.styles[managementLayer.id], {clickable:false}),
onEachFeature: initLandLayer(managementLayer),
modelname: modelname[1],
style: style,
onEachFeature: initLandLayer(modelname),
});
layer.load(managementLayer.url);

var colorspool = colorspools[managementLayer.id];
var colorspool = colorspools[modelname[1]];
var nameHTML = '';
for (var j=0; j<4; j++) {
nameHTML += ('<span style="color: '+ colorspool[j] + ';">|</span>');
}
nameHTML += ('&nbsp;' + managementLayer.name);
nameHTML += ('&nbsp;' + modelname[0]);
map.layerscontrol.addOverlay(layer, nameHTML, tr('Land edges'));
}

});
map.on('layeradd', function(e){
var options = e.layer.options || {'modelname': 'None'};
if (! loaded_land){
if (options.modelname == 'land'){
e.layer.load(window.SETTINGS.urls.landedge_layer);
loaded_land = true;
}
}
if (! loaded_physical){
if (options.modelname == 'physical'){
e.layer.load(window.SETTINGS.urls.physicaledge_layer);
loaded_physical = true;
}
}
if (! loaded_competence){
if (options.modelname == 'competence'){
e.layer.load(window.SETTINGS.urls.competenceedge_layer);
loaded_competence = true;
}
}
if (! loaded_signagemanagement){
if (options.modelname == 'signagemanagement'){
e.layer.load(window.SETTINGS.urls.signagemanagementedge_layer);
loaded_signagemanagement = true;
}
}
if (! loaded_workmanagement){
if (options.modelname == 'workmanagement'){
e.layer.load(window.SETTINGS.urls.workmanagementedge_layer);
loaded_workmanagement = true;
}
}
});

function initLandLayer(layergroup) {
return function (data, layer) {
Expand All @@ -41,7 +65,7 @@ $(window).on('entity:map', function (e, data) {
console.warn("No proper 'color_index' properties in GeoJSON properties.");
idx = 0;
}
var colorspool = colorspools[layergroup.id],
var colorspool = colorspools[layergroup[1]],
color = colorspool[idx % colorspool.length];
layer.setStyle({color: color});

Expand All @@ -50,8 +74,8 @@ $(window).on('entity:map', function (e, data) {
MapEntity.showLineLabel(layer, {
color: color,
text: data.properties.name,
title: layergroup.name,
className: 'landlabel ' + layergroup.id + ' ' + idx
title: layergroup[0],
className: 'landlabel ' + layergroup[1] + ' ' + idx
});
}
};
Expand Down
22 changes: 19 additions & 3 deletions geotrek/tourism/static/tourism/main.js
Expand Up @@ -5,16 +5,32 @@
$(window).on('entity:map', function (e, data) {

var map = data.map;

var loaded_event = false;
var loaded_touristic = false;
// Show tourism layer in application maps
$.each(['touristiccontent', 'touristicevent'], function (i, modelname) {
var layer = new L.ObjectsLayer(null, {
modelname: modelname,
style: L.Util.extend(window.SETTINGS.map.styles[modelname] || {}, {clickable:false}),
});
var url = window.SETTINGS.urls[modelname + '_layer'];
layer.load(url);
map.layerscontrol.addOverlay(layer, tr(modelname), tr('Tourism'));

map.on('layeradd', function(e){
var options = e.layer.options || {'modelname': 'None'};
if (! loaded_event){

if (options.modelname == 'touristicevent'){
e.layer.load(window.SETTINGS.urls.touristicevent_layer);
loaded_event = true;
}
}
if (! loaded_touristic){
if (options.modelname == 'touristiccontent'){
e.layer.load(window.SETTINGS.urls.touristiccontent_layer);
loaded_touristic = true;
}
}
});
});
});

Expand Down
49 changes: 25 additions & 24 deletions geotrek/zoning/static/zoning/main.js
@@ -1,33 +1,34 @@
$(window).on('entity:map', function (e, data) {

var map = data.map;
var loaded_district = false;
var loaded_city = false;

// Add land layers
var landLayers = [{url: window.SETTINGS.urls.district_layer, name: tr("Districts"), id: 'district'},
{url: window.SETTINGS.urls.city_layer, name: tr("Cities"), id: 'city'}];

landLayers = landLayers.concat(window.SETTINGS.map['restricted_area_types']);

for (var i=0; i<landLayers.length; i++) {
var landLayer = landLayers[i];
$.each([[tr("Districts"), 'district'], [tr("Cities"), 'city']], function (i, modelname, name) {
var style = L.Util.extend({clickable: false},
window.SETTINGS.map.styles[landLayer.id] || {});

var colorspools = L.Util.extend({}, window.SETTINGS.map.colorspool),
colorspool = colorspools[landLayer.id];
if (colorspool) {
var color = colorspool[i % colorspool.length];
style['color'] = color;
}

window.SETTINGS.map.styles[modelname[1]] || {});
var nameHTML = '<span style="color: '+ style['color'] + ';">&#x2B24;</span>&nbsp;' + modelname[0];
var layer = new L.ObjectsLayer(null, {
indexing: false,
style: style,
modelname: landLayer.id,
indexing: false,
modelname: modelname[1],
style: style,
});
layer.load(landLayer.url);

var nameHTML = '<span style="color: '+ style['color'] + ';">&#x2B24;</span>&nbsp;' + landLayer.name;
map.layerscontrol.addOverlay(layer, nameHTML, tr('Zoning'));
}

map.on('layeradd', function(e){
var options = e.layer.options || {'modelname': 'None'};
if (! loaded_district){
if (options.modelname == 'district'){
e.layer.load(window.SETTINGS.urls.district_layer);
loaded_district = true;
}
}
if (! loaded_city){
if (options.modelname == 'city'){
e.layer.load(window.SETTINGS.urls.city_layer);
loaded_city = true;
}
}
});
});
});

0 comments on commit 456cd07

Please sign in to comment.