0

Allow marker groups to be checked(displayed) by default

Fixes #730
This commit is contained in:
Andrew Chin
2012-08-04 11:05:00 -04:00
parent 2685fe3595
commit 43d299ed92
3 changed files with 27 additions and 36 deletions

View File

@@ -115,6 +115,9 @@ The following keys are accepted in the marker dictionary:
``createInfoWindow`` ``createInfoWindow``
Optional. Specifies whether or not the icon displays an info window on click. Defaults to True 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 Generating the POI Markers
========================== ==========================

View File

@@ -153,15 +153,18 @@ def main():
return 1 return 1
for f in render['markers']: for f in render['markers']:
d = dict(icon="signpost_icon.png", createInfoWindow=True) markersets.add(((f['name'], f['filterFunction']), rset))
d.update(f)
markersets.add(((d['name'], d['filterFunction']), rset))
name = f['name'].replace(" ","_") + hex(hash(f['filterFunction']))[-4:] + "_" + hex(hash(rset))[-4:] 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: try:
l = markers[rname] l = markers[rname]
l.append(dict(groupName=name, displayName = f['name'], icon=d['icon'], createInfoWindow=d['createInfoWindow'])) l.append(to_append)
except KeyError: 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) handleSigns(rset, os.path.join(destdir, rname), render, rname)
handlePlayers(rset, render, worldpath) handlePlayers(rset, render, worldpath)

View File

@@ -405,22 +405,6 @@ overviewer.views.SignControlView = Backbone.View.extend({
return; 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'] = []; //dataRoot['markers'] = [];
// //
@@ -508,6 +477,22 @@ overviewer.views.SignControlView = Backbone.View.extend({
dataRoot[i].created = true; 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);
});
}
}
}, },