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``
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
==========================

View File

@@ -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)

View File

@@ -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'] = [];
//
@@ -509,6 +478,22 @@ 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);
});
}
}
},
addItem: function(item) {