Add 'showlayercontrol' config setting and URL parameter, to allow hide of layer control

This commit is contained in:
Mike Primm 2011-12-15 00:01:21 +08:00 committed by mikeprimm
parent d5e1bc1b4d
commit f7dedff413
3 changed files with 29 additions and 11 deletions

View File

@ -25,6 +25,7 @@ public class ClientConfigurationComponent extends Component {
s(t, "sidebaropened", c.getString("sidebaropened", "false"));
s(t, "dynmapversion", plugin.getDescription().getVersion());
s(t, "cyrillic", c.getBoolean("cyrillic-support", false));
s(t, "showlayercontrol", c.getBoolean("showlayercontrol", true));
String sn = plugin.getServer().getServerName();
if(sn.equals("Unknown Server"))
sn = "Minecraft Dynamic Map";

View File

@ -242,12 +242,12 @@ showplayerfacesinmenu: true
joinmessage: "%playername% joined"
quitmessage: "%playername% quit"
spammessage: "You may only chat once every %interval% seconds."
# webprefix and websuffix support using '&color;' as escape code for color code (deprecated: use webmsgformat)
#webprefix: "&color;2[WEB] "
#websuffix: "&color;f"
# format for messages from web: %playername% substitutes sender ID (typically IP), %message% includes text
webmsgformat: "&color;2[WEB] %playername%: &color;f%message%"
# Control whether layer control is presented on the UI (default is true)
showlayercontrol: true
# Enable checking for banned IPs via banned-ips.txt (internal web server only)
check-banned-ips: true
@ -257,7 +257,7 @@ defaultworld: world
defaultmap: flat
# Option to enable workaround for incorrectly encoded unicode in Cyrillic MC/Bukkit (not good for other code pages)
#cyrillic-support: true
cyrillic-support: false
# NOTE: the 'templates' section is now found in the 'templates' directory
# Templates CAN still be defined in configuration.txt, as before 0.20

View File

@ -107,6 +107,10 @@ DynMap.prototype = {
var urlzoom = me.getIntParameterByName('zoom');
if(urlzoom != null)
me.options.defaultzoom = urlzoom;
var showlayerctl = me.getBoolParameterByName('showlayercontrol');
if(showlayerctl != null)
me.options.showlayercontrol = showlayerctl;
if(typeof me.options.defaultzoom == 'undefined')
me.options.defaultzoom = 1;
@ -756,13 +760,23 @@ DynMap.prototype = {
}
return null;
},
getBoolParameterByName: function(name) {
var v = this.getParameterByName(name);
if(v != "") {
if(v == "true")
return true;
else if(v == "false")
return false;
}
return null;
},
layersetlist: [],
addToLayerSelector: function(layer, name, priority) {
var me = this;
if(!me.layercontrol) {
if(me.options.showlayercontrol && (!me.layercontrol)) {
me.layercontrol = new DynmapLayerControl();
map.addControl(me.layercontrol);
}
@ -784,11 +798,13 @@ DynMap.prototype = {
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);
if(me.options.showlayercontrol) {
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) {
@ -797,7 +813,8 @@ DynMap.prototype = {
for(i = 0; i < me.layersetlist.length; i++) {
if(me.layersetlist[i].layer === layer) {
me.layersetlist.splice(i, 1);
me.layercontrol.removeLayer(layer);
if(me.options.showlayercontrol)
me.layercontrol.removeLayer(layer);
break;
}
}