diff options
-rw-r--r-- | web/i18n/en.yml | 18 | ||||
-rw-r--r-- | web/lib/reports.rb | 1 | ||||
-rw-r--r-- | web/views/key.erb | 6 | ||||
-rw-r--r-- | web/views/reports/similar_keys.erb | 16 | ||||
-rw-r--r-- | web/viewsjs/key.js.erb | 25 | ||||
-rw-r--r-- | web/viewsjs/reports/similar_keys.js.erb | 36 |
6 files changed, 102 insertions, 0 deletions
diff --git a/web/i18n/en.yml b/web/i18n/en.yml index cb7ec28..8c9103d 100644 --- a/web/i18n/en.yml +++ b/web/i18n/en.yml @@ -342,6 +342,13 @@ pages: projects: title: Projects using this key description: How this key is used in the project + similar: + tab: Similar + title: Similar keys + other: Similar keys + count_all_tooltip: Number of objects with the similar key + similarity: Similarity + similarity_tooltip: Smaller numbers mean more similar tag: description_from_wiki: Description of this tag from the wiki (if available in your chosen language, otherwise in English). no_description_in_wiki: No English language description for this tag in the wiki. (See also the "Wiki" tab.) @@ -609,4 +616,15 @@ reports: it just shows the building blocks that can be used to describe languages irrespective of whether they are actually used in OSM. </p> + similar_keys: + name: Similar keys + intro: | + This reports shows keys used very often and similar keys used very + rarely. This exposes many misspellings of common keys, but is not + perfect. Take care when fixing the data! + key_common: Commonly used keys + key_rare: Rarely used keys + count_common: Count + count_rare: Count + similarity: Similarity diff --git a/web/lib/reports.rb b/web/lib/reports.rb index 0611744..a822476 100644 --- a/web/lib/reports.rb +++ b/web/lib/reports.rb @@ -60,4 +60,5 @@ Report.new 'Language comparison table for keys in the wiki', :wiki Report.new 'Languages', :wiki Report.new 'Wiki pages about non-existing keys', :db, :wiki Report.new 'Name tags' +#Report.new 'Similar keys', :db diff --git a/web/views/key.erb b/web/views/key.erb index b13aaf5..8724b24 100644 --- a/web/views/key.erb +++ b/web/views/key.erb @@ -38,6 +38,7 @@ <li><a href="#overview"><%= h(t.taginfo.overview) %></a></li> <li><a href="#values"><%= h(t.osm.values) %></a></li> <li><a href="#combinations"><%= h(t.taginfo.key_combinations) %></a></li> +<!-- <li><a href="#similar"><%= h(t.pages.key.similar.tab) %></a></li>--> <li><a href="#map"><%= h(t.taginfo.map) %></a></li> <li><a href="#wiki"><%= h(t.sources.wiki.name) %></a></li> <li><a href="#projects"><%= h(t.taginfo.projects) %></a></li> @@ -69,6 +70,11 @@ <table id="grid-keys"> </table> </div> +<!-- <div id="similar"> + <h2><%= h(t.pages.key.similar.title) %></h2> + <table id="grid-similar"> + </table> + </div>--> <div id="map"> <h2><%= h(t.pages.key.geographic_distribution.title) %></h2> <% if @filter_type == 'all' %> diff --git a/web/views/reports/similar_keys.erb b/web/views/reports/similar_keys.erb new file mode 100644 index 0000000..cc57929 --- /dev/null +++ b/web/views/reports/similar_keys.erb @@ -0,0 +1,16 @@ +<div class="pre"> + <h1><%= t.reports.similar_keys.name %></h1> + <%= t.reports.similar_keys.intro %> +</div> +<div class="box resize"> + <table id="grid-keys"> + </table> +</div> +<% javascript do + JS.raw(<<"JAVASCRIPT") +function page_init2() { +// create_flexigrid(); +} +JAVASCRIPT +end +%> diff --git a/web/viewsjs/key.js.erb b/web/viewsjs/key.js.erb index 165f91f..8f19ab2 100644 --- a/web/viewsjs/key.js.erb +++ b/web/viewsjs/key.js.erb @@ -83,6 +83,31 @@ var create_flexigrid_for = { } }); }, + similar: function(key) { + create_flexigrid('grid-similar', { + url: '/api/4/key/similar?key=' + encodeURIComponent(key), + colModel: [ + { display: '<%= h(page.similar.other) %>', name: 'other_key', width: 500, sortable: true }, + { display: '<span title="<%= h(page.similar.count_all_tooltip) %>"><%= h(misc.count) %></span>', name: 'count_all', width: 160, sortable: true, align: 'right' }, + { display: '<span title="<%= h(page.similar.similarity_tooltip) %>"><%= h(page.similar.similarity) %></span>', name: 'similarity', width: 100, sortable: true, align: 'right' } + ], + searchitems: [ + { display: '<%= h(page.similar.other) %>', name: 'other_key' } + ], + sortname: 'other_key', + sortorder: 'asc', + preProcess: function(data) { + data.rows = jQuery.map(data.data, function(row, i) { + return { 'cell': [ + link_to_key_with_highlight(row.other_key, key), + row.count_all, + row.similarity + ] }; + }); + return data; + } + }); + }, wiki: function(key, filter_type) { create_flexigrid('grid-wiki', { url: '/api/4/key/wiki_pages?key=' + encodeURIComponent(key), diff --git a/web/viewsjs/reports/similar_keys.js.erb b/web/viewsjs/reports/similar_keys.js.erb new file mode 100644 index 0000000..1ea191e --- /dev/null +++ b/web/viewsjs/reports/similar_keys.js.erb @@ -0,0 +1,36 @@ +<% + osm = @trans.t.osm + misc = @trans.t.misc + sim = @trans.t.reports.similar_keys + %> +function page_init() { + up = function() { window.location = '/reports'; }; + create_flexigrid('grid-keys', { + url: '/api/4/keys/similar', + colModel: [ + { display: '<%= h(sim.key_common) %>', name: 'key_common', width: 350, sortable: true }, + { display: '<%= h(sim.count_common) %>', name: 'count_all_common', width: 100, sortable: true, align: 'right' }, + { display: '<%= h(sim.key_rare) %>', name: 'key_rare', width: 350, sortable: true }, + { display: '<%= h(sim.count_rare) %>', name: 'count_all_rare', width: 100, sortable: true, align: 'right' }, + { display: '<%= h(sim.similarity) %>', name: 'similarity', width: 100, sortable: true, align: 'right' } + ], + searchitems: [ + { display: '<%= h(osm.key) %>', name: 'common_key' } + ], + sortname: 'count_all_common', + sortorder: 'desc', + preProcess: function(data) { + data.rows = jQuery.map(data.data, function(row, i) { + return { 'cell': [ + link_to_key(row.key_common), + row.count_all_common, + link_to_key(row.key_rare), + row.count_all_rare, + row.similarity + ] }; + }); + return data; + } + }); +} + |