summaryrefslogtreecommitdiff
path: root/web/lib
diff options
context:
space:
mode:
authorJochen Topf <jochen@topf.org>2010-10-19 20:34:29 +0200
committerJochen Topf <jochen@topf.org>2010-10-19 20:34:29 +0200
commit5bf9f8996e5157f9b431bb44a2d04a2695eb143d (patch)
tree8b95ab96496cd188f83a71da3a1eff841f771191 /web/lib
parent081af65ffa742e56e3d637bc9bc6a0c7e01680b8 (diff)
downloadtaginfo-5bf9f8996e5157f9b431bb44a2d04a2695eb143d.tar
taginfo-5bf9f8996e5157f9b431bb44a2d04a2695eb143d.tar.gz
fixed XAPI links
Diffstat (limited to 'web/lib')
-rw-r--r--web/lib/utils.rb22
1 files changed, 17 insertions, 5 deletions
diff --git a/web/lib/utils.rb b/web/lib/utils.rb
index 254055b..415553b 100644
--- a/web/lib/utils.rb
+++ b/web/lib/utils.rb
@@ -53,16 +53,28 @@ def title
@title.join(' | ')
end
-def xapi_url(element, predicate)
+# Escape tag key or value for XAPI according to
+# http://wiki.openstreetmap.org/wiki/XAPI#Escaping
+def xapi_escape(text)
+ text.gsub(/([|\[\]*\/=()\\])/, '\\\\\1')
+end
+
+def xapi_url(element, key, value=nil)
+ predicate = xapi_escape(key) + '='
+ if value.nil?
+ predicate += '*'
+ else
+ predicate += xapi_escape(value)
+ end
"http://www.informationfreeway.org/api/0.6/#{ element }[#{ Rack::Utils::escape(predicate) }]"
end
-def xapi_link(element, predicate)
- "<a id='xapi' href='#{ xapi_url(element, predicate) }'>XAPI</a>"
+def xapi_link(element, key, value=nil)
+ "<a id='xapi' href='#{ xapi_url(element, key, value) }'>XAPI</a>"
end
-def josm_link(element, predicate)
- "<a id='josm' href='http://localhost:8111/import?url=#{ xapi_url(element, predicate) }'>JOSM</a>"
+def josm_link(element, key, value=nil)
+ "<a id='josm' href='http://localhost:8111/import?url=#{ xapi_url(element, key, value) }'>JOSM</a>"
end
def tagcloud_size(tag)