From a338547eafeed14eae74befbe706eadcf6a9fb4e Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Tue, 12 May 2015 18:20:38 +0200 Subject: Add experimental new home page. This could replace the current home page at some point. --- web/viewsjs/test-index.js.erb | 53 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 web/viewsjs/test-index.js.erb (limited to 'web/viewsjs') diff --git a/web/viewsjs/test-index.js.erb b/web/viewsjs/test-index.js.erb new file mode 100644 index 0000000..8920c3c --- /dev/null +++ b/web/viewsjs/test-index.js.erb @@ -0,0 +1,53 @@ +<% +# This is the maximum number of keys/tags/relations in the lists. Javascript +# code will only show as many of them as will fit in the window. +tagcloud_number_of_keys = 100 +tagcloud_number_of_tags = 100 +tagcloud_number_of_rels = 100 +keys = @db.select("SELECT key FROM popular_keys ORDER BY scale1 DESC LIMIT #{ tagcloud_number_of_keys }").execute() +tags = @db.select("SELECT skey, svalue FROM top_tags WHERE skey NOT IN ('source', 'source_ref', 'attribution') ORDER BY count_all DESC LIMIT #{ tagcloud_number_of_tags }").execute() +rels = @db.select("SELECT rtype FROM db.relation_types WHERE count >= 1000 ORDER BY count DESC LIMIT #{ tagcloud_number_of_rels }").execute() +%> + +var data = { + 'keys': <%= keys.map{ |tag| tag['key'] }.to_json %>, + 'tags': <%= tags.map{ |entry| [ entry['skey'], entry['svalue'] ] }.to_json %>, + 'rels': <%= rels.map{ |row| row['rtype'] }.to_json %> +}; + +up = function() {}; + +function create_list(element, max_height, data, decrease, func) { + var i = 0, + size = 160; + + while (element.innerHeight() < max_height && data[i]) { + element.append(func(data[i], size)); + element.append(''); + i++; + size -= decrease; + } + + element.append('...'); +} + +function resize_home() { + + create_list(jQuery('#key_list').empty(), 120, data.keys, 1, function(d, size) { + return link_to_key(d, { 'style': 'font-size: ' + size + "%;" }); + }); + + create_list(jQuery('#tag_list').empty(), 120, data.tags, 2, function(d, size) { + return ' ' + link_to_tag(d[0], d[1]) + ' ' + }); + + create_list(jQuery('#relation_list').empty(), 120, data.rels, 5, function(d, size) { + return link_to_rtype(d, { 'style': 'font-size: ' + size + "%;" }); + }); + +} + +function page_init() { + jQuery(window).resize(resize_home); + resize_home(); +} -- cgit v1.2.3