From 2a61dab2ed4361b880a318e2b1d68317f3a2ae43 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Thu, 26 Feb 2015 16:16:07 +0100 Subject: Add (hidden) similar keys tab on key page and similar keys report. This commit adds the new tab and new report but doesn't activate them, because they will not work until the database backend is updated. --- web/i18n/en.yml | 18 +++++++++++++++++ web/lib/reports.rb | 1 + web/views/key.erb | 6 ++++++ web/views/reports/similar_keys.erb | 16 +++++++++++++++ web/viewsjs/key.js.erb | 25 +++++++++++++++++++++++ web/viewsjs/reports/similar_keys.js.erb | 36 +++++++++++++++++++++++++++++++++ 6 files changed, 102 insertions(+) create mode 100644 web/views/reports/similar_keys.erb create mode 100644 web/viewsjs/reports/similar_keys.js.erb 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.

+ 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 @@
  • <%= h(t.taginfo.overview) %>
  • <%= h(t.osm.values) %>
  • <%= h(t.taginfo.key_combinations) %>
  • +
  • <%= h(t.taginfo.map) %>
  • <%= h(t.sources.wiki.name) %>
  • <%= h(t.taginfo.projects) %>
  • @@ -69,6 +70,11 @@
    +

    <%= h(t.pages.key.geographic_distribution.title) %>

    <% 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 @@ +
    +

    <%= t.reports.similar_keys.name %>

    + <%= t.reports.similar_keys.intro %> +
    +
    + +
    +
    +<% 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: '<%= h(misc.count) %>', name: 'count_all', width: 160, sortable: true, align: 'right' }, + { display: '<%= h(page.similar.similarity) %>', 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; + } + }); +} + -- cgit v1.2.3