From f7dedff413d0b4921b1d73c6bbce86a040c84238 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Thu, 15 Dec 2011 00:01:21 +0800 Subject: [PATCH] Add 'showlayercontrol' config setting and URL parameter, to allow hide of layer control --- .../dynmap/ClientConfigurationComponent.java | 1 + src/main/resources/configuration.txt | 8 ++--- web/js/map.js | 31 ++++++++++++++----- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/dynmap/ClientConfigurationComponent.java b/src/main/java/org/dynmap/ClientConfigurationComponent.java index d885bc0e..ea5e379e 100644 --- a/src/main/java/org/dynmap/ClientConfigurationComponent.java +++ b/src/main/java/org/dynmap/ClientConfigurationComponent.java @@ -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"; diff --git a/src/main/resources/configuration.txt b/src/main/resources/configuration.txt index 7d104a5a..4e7cbd4e 100644 --- a/src/main/resources/configuration.txt +++ b/src/main/resources/configuration.txt @@ -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 diff --git a/web/js/map.js b/web/js/map.js index f6471553..11d5fc10 100644 --- a/web/js/map.js +++ b/web/js/map.js @@ -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; } }