Be a bit more intelligent when trying to update the arguments on a link.
This commit is contained in:
parent
945e4ddcc8
commit
c99992f85f
2 changed files with 47 additions and 4 deletions
|
@ -25,8 +25,8 @@
|
|||
|
||||
<span id="greeting">
|
||||
<% if @user %>
|
||||
Welcome, <%= link_to @user.display_name, {:controller => 'user', :action => 'view', :display_name => @user.display_name}, {:id => 'loginanchor'}%> |
|
||||
<%= link_to 'logout', {:controller => 'user', :action => 'logout', :referer => request.request_uri}, {:id => 'loginanchor'}%>
|
||||
Welcome, <%= link_to @user.display_name, {:controller => 'user', :action => 'view', :display_name => @user.display_name}%> |
|
||||
<%= link_to 'logout', {:controller => 'user', :action => 'logout', :referer => request.request_uri}, {:id => 'logoutanchor'}%>
|
||||
<% else %>
|
||||
<%= link_to 'log in', {:controller => 'user', :action => 'login', :referer => request.request_uri}, {:id => 'loginanchor'}%> |
|
||||
<%= link_to 'sign up', {:controller => 'user', :action => 'new'}, {:id => 'registeranchor'} %>
|
||||
|
|
|
@ -12,13 +12,21 @@ function updatelinks(lon,lat,zoom) {
|
|||
for (anchor in links) {
|
||||
node = document.getElementById(anchor);
|
||||
if (! node) { continue; }
|
||||
node.href = links[anchor] + "?lat=" + lat + "&lon=" + lon + "&zoom=" + zoom;
|
||||
var args = getArgs(node.href);
|
||||
args["lat"] = lat;
|
||||
args["lon"] = lon;
|
||||
args["zoom"] = zoom;
|
||||
node.href = setArgs(node.href, args);
|
||||
}
|
||||
|
||||
node = document.getElementById("editanchor");
|
||||
if (node) {
|
||||
if ( zoom >= 14) {
|
||||
node.href = '/edit.html?lat=' + lat + '&lon=' + lon + "&zoom=" + zoom;
|
||||
var args = getArgs(node.href);
|
||||
args.lat = lat;
|
||||
args.lon = lon;
|
||||
args.zoom = zoom;
|
||||
node.href = setArgs(node.href, args);
|
||||
node.style.fontStyle = 'normal';
|
||||
} else {
|
||||
node.href = 'javascript:alert("zoom in to edit map");';
|
||||
|
@ -26,3 +34,38 @@ function updatelinks(lon,lat,zoom) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getArgs(url) {
|
||||
var args = new Object();
|
||||
var querystart = url.indexOf("?");
|
||||
|
||||
if (querystart >= 0) {
|
||||
var querystring = url.substring(querystart + 1);
|
||||
var queryitems = querystring.split("&");
|
||||
|
||||
for (var i = 0; i < queryitems.length; i++) {
|
||||
if (match = queryitems[i].match(/^(.*)=(.*)$/)) {
|
||||
args[unescape(match[1])] = unescape(match[2]);
|
||||
} else {
|
||||
args[unescape(queryitems[i])] = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return args;
|
||||
}
|
||||
|
||||
function setArgs(url, args) {
|
||||
var queryitems = new Array();
|
||||
|
||||
for (arg in args)
|
||||
{
|
||||
if (args[arg] == null) {
|
||||
queryitems.push(escape(arg));
|
||||
} else {
|
||||
queryitems.push(escape(arg) + "=" + escape(args[arg]));
|
||||
}
|
||||
}
|
||||
|
||||
return url.replace(/\?.*$/, "") + "?" + queryitems.join("&");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue