Fix incorrect URL pointing to the generated waypoint files by calling will_render() before first call to urlto().

Fixes
http://ikiwiki.info/bugs/osm_linkto__40____41___usage_breaks_map_rendering/
(cherry picked from commit 691312225789ff6cd5e3fcc4979c076791d67452)
master
Philippe Gauthier 2012-08-02 20:29:32 +00:00 committed by Joey Hess
parent 5b956932ba
commit 60ef4b1965
1 changed files with 22 additions and 12 deletions

View File

@ -62,6 +62,25 @@ sub getsetup () {
}, },
} }
sub register_rendered_files {
my $map = shift;
my $page = shift;
my $dest = shift;
if ($page eq $dest) {
my %formats = get_formats();
if ($formats{'GeoJSON'}) {
will_render($page, "$map/pois.json");
}
if ($formats{'CSV'}) {
will_render($page, "$map/pois.txt");
}
if ($formats{'KML'}) {
will_render($page, "$map/pois.kml");
}
}
}
sub preprocess { sub preprocess {
my %params=@_; my %params=@_;
my $page = $params{page}; my $page = $params{page};
@ -98,6 +117,8 @@ sub preprocess {
); );
} }
register_rendered_files($map, $page, $dest);
$pagestate{$page}{'osm'}{$map}{'displays'}{$name} = { $pagestate{$page}{'osm'}{$map}{'displays'}{$name} = {
height => $height, height => $height,
width => $width, width => $width,
@ -150,18 +171,7 @@ sub process_waypoint {
} }
$icon = urlto($icon, $dest, 1); $icon = urlto($icon, $dest, 1);
$tag = '' unless $tag; $tag = '' unless $tag;
if ($page eq $dest) { register_rendered_files($map, $page, $dest);
my %formats = get_formats();
if ($formats{'GeoJSON'}) {
will_render($page, "$map/pois.json");
}
if ($formats{'CSV'}) {
will_render($page, "$map/pois.txt");
}
if ($formats{'KML'}) {
will_render($page, "$map/pois.kml");
}
}
$pagestate{$page}{'osm'}{$map}{'waypoints'}{$name} = { $pagestate{$page}{'osm'}{$map}{'waypoints'}{$name} = {
page => $page, page => $page,
desc => $desc, desc => $desc,