Add sorting and ordering controls for layer control (layerprio attribute)
This commit is contained in:
parent
eaaa5ceb49
commit
dfcd34d4dd
8 changed files with 112 additions and 12 deletions
|
|
@ -698,6 +698,46 @@ DynMap.prototype = {
|
|||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
layersetlist: [],
|
||||
|
||||
addToLayerSelector: function(layer, name, priority) {
|
||||
var me = this;
|
||||
var i;
|
||||
for(i = 0; i < me.layersetlist.length; i++) {
|
||||
if(me.layersetlist[i].layer === layer) {
|
||||
me.layersetlist[i].priority = priority;
|
||||
me.layersetlist[i].name = name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(i >= me.layersetlist.length) {
|
||||
me.layersetlist[i] = { layer: layer, priority: priority, name: name };
|
||||
}
|
||||
me.layersetlist.sort(function(a, b) {
|
||||
if(a.priority != b.priority)
|
||||
return a.priority - b.priority;
|
||||
else
|
||||
return ((a.name < b.name) ? -1 : ((a.name > b.name) ? 1 : 0));
|
||||
});
|
||||
for(i = 0; i < me.layersetlist.length; i++) {
|
||||
me.layercontrol.removeLayer(me.layersetlist[i].layer);
|
||||
}
|
||||
for(i = 0; i < me.layersetlist.length; i++) {
|
||||
me.layercontrol.addOverlay(me.layersetlist[i].layer, me.layersetlist[i].name);
|
||||
}
|
||||
},
|
||||
removeFromLayerSelector: function(layer) {
|
||||
var me = this;
|
||||
var i;
|
||||
for(i = 0; i < me.layersetlist.length; i++) {
|
||||
if(me.layersetlist[i].layer === layer) {
|
||||
me.layersetlist.splice(i, 1);
|
||||
me.layercontrol.removeLayer(layer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO: Enable hash-links.
|
||||
/* updateLink: function() {
|
||||
|
|
|
|||
|
|
@ -20,14 +20,15 @@ componentconstructors['markers'] = function(dynmap, configuration) {
|
|||
$.each(data.sets, function(name, markerset) {
|
||||
var ms = dynmapmarkersets[name];
|
||||
if(!ms) {
|
||||
ms = { label: markerset.label, hide: markerset.hide, markers: {} } ;
|
||||
ms = { label: markerset.label, hide: markerset.hide, layerprio: markerset.layerprio, markers: {} } ;
|
||||
createMarkerSet(ms, ts);
|
||||
}
|
||||
else {
|
||||
if(ms.label != markerset.label) {
|
||||
ms.label = markerset.label;
|
||||
dynmap.layercontrol.removeLayer(ms.layergroup);
|
||||
dynmap.layercontrol.addOverlay(ms.layergroup, ms.label);
|
||||
//dynmap.layercontrol.removeLayer(ms.layergroup);
|
||||
//dynmap.layercontrol.addOverlay(ms.layergroup, ms.label);
|
||||
dynmap.addToLayerSelector(ms.layergroup, ms.label, ms.layerprio || 0);
|
||||
}
|
||||
ms.markers = {};
|
||||
ms.hide = markerset.hide;
|
||||
|
|
@ -73,7 +74,9 @@ componentconstructors['markers'] = function(dynmap, configuration) {
|
|||
set.timestamp = ts;
|
||||
if(!set.hide)
|
||||
dynmap.map.addLayer(set.layergroup);
|
||||
dynmap.layercontrol.addOverlay(set.layergroup, set.label);
|
||||
// dynmap.layercontrol.addOverlay(set.layergroup, set.label);
|
||||
dynmap.addToLayerSelector(set.layergroup, set.label, set.layerprio || 0);
|
||||
|
||||
}
|
||||
|
||||
$(dynmap).bind('component.markers', function(event, msg) {
|
||||
|
|
@ -96,20 +99,24 @@ componentconstructors['markers'] = function(dynmap, configuration) {
|
|||
}
|
||||
else if(msg.msg == 'setupdated') {
|
||||
if(!dynmapmarkersets[msg.id]) {
|
||||
dynmapmarkersets[msg.id] = { label: msg.label, markers:{} };
|
||||
dynmapmarkersets[msg.id] = { label: msg.label, layerprio: msg.layerprio, markers:{} };
|
||||
createMarkerSet(dynmapmarkersets[msg.id]);
|
||||
}
|
||||
else {
|
||||
if(dynmapmarkersets[msg.id].label != msg.label) {
|
||||
dynmapmarkersets[msg.id].label = msg.label;
|
||||
dynmap.layercontrol.removeLayer(dynmapmarkersets[msg.id].layergroup);
|
||||
dynmap.layercontrol.addOverlay(dynmapmarkersets[msg.id].layergroup, dynmapmarkersets[msg.id].label);
|
||||
//dynmap.layercontrol.removeLayer(dynmapmarkersets[msg.id].layergroup);
|
||||
//dynmap.layercontrol.addOverlay(dynmapmarkersets[msg.id].layergroup, dynmapmarkersets[msg.id].label);
|
||||
dynmap.addToLayerSelector(dynmapmarkersets[msg.id].layergroup, dynmapmarkersets[msg.id].label,
|
||||
dynmapmarkersets[msg.id].layerprio || 0);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(msg.msg == 'setdeleted') {
|
||||
if(dynmapmarkersets[msg.id]) {
|
||||
dynmap.layercontrol.removeLayer(dynmapmarkersets[msg.id].layergroup);
|
||||
//dynmap.layercontrol.removeLayer(dynmapmarkersets[msg.id].layergroup);
|
||||
dynmap.removeFromLayerSelector(dynmapmarkersets[msg.id].layergroup);
|
||||
delete dynmapmarkersets[msg.id].layergroup;
|
||||
delete dynmapmarkersets[msg.id];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,5 +130,6 @@ componentconstructors['playermarkers'] = function(dynmap, configuration) {
|
|||
dynmap.playermarkergroup = new L.LayerGroup();
|
||||
if(!configuration.hidebydefault)
|
||||
dynmap.map.addLayer(dynmap.playermarkergroup);
|
||||
dynmap.layercontrol.addOverlay(dynmap.playermarkergroup, 'Players');
|
||||
//dynmap.layercontrol.addOverlay(dynmap.playermarkergroup, 'Players');
|
||||
dynmap.addToLayerSelector(dynmap.playermarkergroup, configuration.label || 'Players', configuration.layerprio || 0);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -190,7 +190,8 @@ componentconstructors['regions'] = function(dynmap, configuration) {
|
|||
configuration.activeLayer = regionsLayer;
|
||||
if(!configuration.hidebydefault)
|
||||
dynmap.map.addLayer(configuration.activeLayer);
|
||||
dynmap.layercontrol.addOverlay(configuration.activeLayer, regionType);
|
||||
//dynmap.layercontrol.addOverlay(configuration.activeLayer, regionType);
|
||||
dynmap.addToLayerSelector(configuration.activeLayer, regionType, configuration.layerprio || 0);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue