diff --git a/docs/signs.rst b/docs/signs.rst index 8384694..675fe48 100644 --- a/docs/signs.rst +++ b/docs/signs.rst @@ -115,6 +115,9 @@ The following keys are accepted in the marker dictionary: ``createInfoWindow`` Optional. Specifies whether or not the icon displays an info window on click. Defaults to True +``checked`` + Optional. Specifies whether or not this marker group will be checked(visible) by default when + the map loads. Defaults to False Generating the POI Markers ========================== diff --git a/overviewer_core/aux_files/genPOI.py b/overviewer_core/aux_files/genPOI.py index f67e556..5d0c0b6 100755 --- a/overviewer_core/aux_files/genPOI.py +++ b/overviewer_core/aux_files/genPOI.py @@ -153,15 +153,18 @@ def main(): return 1 for f in render['markers']: - d = dict(icon="signpost_icon.png", createInfoWindow=True) - d.update(f) - markersets.add(((d['name'], d['filterFunction']), rset)) + markersets.add(((f['name'], f['filterFunction']), rset)) name = f['name'].replace(" ","_") + hex(hash(f['filterFunction']))[-4:] + "_" + hex(hash(rset))[-4:] + to_append = dict(groupName=name, + displayName = f['name'], + icon=f.get('icon', 'signpost_icon.png'), + createInfoWindow=f.get('createInfoWindow',True), + checked = f.get('checked', False)) try: l = markers[rname] - l.append(dict(groupName=name, displayName = f['name'], icon=d['icon'], createInfoWindow=d['createInfoWindow'])) + l.append(to_append) except KeyError: - markers[rname] = [dict(groupName=name, displayName=f['name'], icon=d['icon'], createInfoWindow=d['createInfoWindow']),] + markers[rname] = [to_append] handleSigns(rset, os.path.join(destdir, rname), render, rname) handlePlayers(rset, render, worldpath) diff --git a/overviewer_core/data/js_src/views.js b/overviewer_core/data/js_src/views.js index 23664d7..ac87ced 100644 --- a/overviewer_core/data/js_src/views.js +++ b/overviewer_core/data/js_src/views.js @@ -405,22 +405,6 @@ overviewer.views.SignControlView = Backbone.View.extend({ return; - var groupsForThisTileSet = jQuery.map(dataRoot, function(elem, i) { return elem.groupName;}) - for (markerSet in markersDB) { - if (jQuery.inArray(markerSet, groupsForThisTileSet) == -1){ - // hide these - if (markersDB[markerSet].created) { - jQuery.each(markersDB[markerSet].raw, function(i, elem) { - elem.markerObj.setVisible(false); - }); - } - markersDB[markerSet].checked=false; - } - // make sure the checkboxes checked if necessary - $("[_mc_groupname=" + markerSet + "]").attr("checked", markersDB[markerSet].checked); - - } - }); }, @@ -459,21 +443,6 @@ overviewer.views.SignControlView = Backbone.View.extend({ }); - // add some menus - for (i in dataRoot) { - var group = dataRoot[i]; - this.addItem({group: group, action:function(this_item, checked) { - this_item.group.checked = checked; - jQuery.each(this_item.group.markerObjs, function(i, markerObj) { - markerObj.setVisible(checked); - }); - }}); - if (group.checked) { - jQuery.each(group.markerObjs, function(i, markerObj) { - markerObj.setVisible(true); - }); - } - } //dataRoot['markers'] = []; // @@ -508,6 +477,22 @@ overviewer.views.SignControlView = Backbone.View.extend({ dataRoot[i].created = true; } } + + // add some menus + for (i in dataRoot) { + var group = dataRoot[i]; + this.addItem({group: group, action:function(this_item, checked) { + this_item.group.checked = checked; + jQuery.each(this_item.group.markerObjs, function(i, markerObj) { + markerObj.setVisible(checked); + }); + }}); + if (group.checked) { + jQuery.each(group.markerObjs, function(i, markerObj) { + markerObj.setVisible(true); + }); + } + } },