diff options
-rw-r--r-- | web/views/search.erb | 6 | ||||
-rw-r--r-- | web/viewsjs/search.js.erb | 27 |
2 files changed, 33 insertions, 0 deletions
diff --git a/web/views/search.erb b/web/views/search.erb index 8b0af63..b6bf5ce 100644 --- a/web/views/search.erb +++ b/web/views/search.erb @@ -6,6 +6,7 @@ <ul> <li><a href="#keys"><%= t.osm.keys %></a></li> <li><a href="#values"><%= t.osm.values %></a></li> + <li><a href="#relations"><%= t.osm.relation_types %></a></li> <li><a href="#roles"><%= t.osm.relation_member_roles %></a></li> <li><a href="#fulltext"><%= t.pages.search.fulltext %></a></li> </ul> @@ -19,6 +20,11 @@ <table id="grid-values"> </table> </div> + <div id="relations"> + <h2><%= t.osm.relation_types %></h2> + <table id="grid-relations"> + </table> + </div> <div id="roles"> <h2><%= t.osm.relation_member_roles %></h2> <table id="grid-roles"> diff --git a/web/viewsjs/search.js.erb b/web/viewsjs/search.js.erb index 9dcafa2..3e65214 100644 --- a/web/viewsjs/search.js.erb +++ b/web/viewsjs/search.js.erb @@ -22,6 +22,13 @@ function link_to_value_with_highlight(key, value, query) { ); } +function link_to_rtype_with_highlight(rtype, query) { + return link( + url_for_rtype(rtype), + highlight(rtype, query) + ); +} + var create_flexigrid_for = { keys: function(query) { create_flexigrid('grid-keys', { @@ -65,6 +72,26 @@ var create_flexigrid_for = { } }); }, + relations: function(query) { + create_flexigrid('grid-relations', { + url: '/api/4/relations/all?query=' + encodeURIComponent(query), + colModel: [ + { display: '<%= misc.count %>', name: 'count', width: 80, sortable: true, align: 'right' }, + { display: '<%= osm.relation_type %>', name: 'rtype', width: 500, sortable: true } + ], + sortname: 'count', + sortorder: 'desc', + preProcess: function(data) { + data.rows = jQuery.map(data.data, function(row, i) { + return { 'cell': [ + fmt_with_ts(row.count), + link_to_rtype_with_highlight(row.rtype, query) + ] }; + }); + return data; + } + }); + }, roles: function(query) { create_flexigrid('grid-roles', { url: '/api/4/search/by_role?query=' + encodeURIComponent(query), |