summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/public/js/taginfo.js19
-rw-r--r--web/views/key.erb10
-rw-r--r--web/views/reports/characters_in_keys.erb10
-rw-r--r--web/views/reports/key_lengths.erb25
-rw-r--r--web/views/search.erb16
-rw-r--r--web/views/search_tags.erb16
-rw-r--r--web/views/tag.erb8
7 files changed, 42 insertions, 62 deletions
diff --git a/web/public/js/taginfo.js b/web/public/js/taginfo.js
index 41d27cf..fc55bce 100644
--- a/web/public/js/taginfo.js
+++ b/web/public/js/taginfo.js
@@ -349,7 +349,6 @@ function calculate_flexigrid_rp(box) {
height -= 90; // table tools and header, possibly horizontal scrollbar
var rp = Math.floor(height / 26);
- console.log(rp);
return rp;
}
@@ -373,6 +372,24 @@ function create_flexigrid(domid, options) {
}
}
+function init_tabs(page, params) {
+ var tabset = create_flexigrid_for[page];
+ if (tabset === undefined) {
+ tabset = create_flexigrid_for[page.split(/\./)[0]][page.split(/\./)[1]];
+ }
+ return jQuery('#tabs').tabs({
+ show: function(event, ui) {
+ resize_box();
+ if (ui.index != 0 || window.location.hash != '') {
+ window.location.hash = ui.tab.hash;
+ }
+ if (ui.tab.hash.substring(1) in tabset) {
+ tabset[ui.tab.hash.substring(1)].apply(this, params);
+ }
+ }
+ });
+}
+
var create_flexigrid_for = {
keys: {
keys: function() {
diff --git a/web/views/key.erb b/web/views/key.erb
index 1fca4c0..f8859b8 100644
--- a/web/views/key.erb
+++ b/web/views/key.erb
@@ -123,15 +123,7 @@ function page_init() {
window.location.search = jQuery.param(qs);
});
- var tabs = jQuery('#tabs').tabs({
- show: function(event, ui) {
- resize_box();
- window.location.hash = ui.tab.hash;
- if (ui.tab.hash.substring(1) in create_flexigrid_for.key) {
- create_flexigrid_for.key[ui.tab.hash.substring(1)](#{ @key.to_json }, #{ @filter_type.to_json });
- }
- }
- });
+ init_tabs('key', [#{ @key.to_json }, #{ @filter_type.to_json }]);
var data = #{ @prevalent_values.to_json() };
diff --git a/web/views/reports/characters_in_keys.erb b/web/views/reports/characters_in_keys.erb
index bd823e4..8cc4998 100644
--- a/web/views/reports/characters_in_keys.erb
+++ b/web/views/reports/characters_in_keys.erb
@@ -58,15 +58,7 @@
JQuery.ready do
JS.raw(<<"JAVASCRIPT")
-var tabs = jQuery('#tabs').tabs({
- show: function(event, ui) {
- resize_box();
- window.location.hash = ui.tab.hash;
- if (create_flexigrid_for.reports.characters_in_keys[ui.tab.hash.substring(1)]) {
- create_flexigrid_for.reports.characters_in_keys[ui.tab.hash.substring(1)]();
- }
- }
-});
+init_tabs('reports.characters_in_keys', []);
var data = #{ i = '@'; %w(plain colon letters space problem rest).map{ |type| i=i.next; [ { :label => i, :value => @db.stats('characters_in_keys_' + type) } ] }.to_json() };
diff --git a/web/views/reports/key_lengths.erb b/web/views/reports/key_lengths.erb
index 0514c48..1f5e891 100644
--- a/web/views/reports/key_lengths.erb
+++ b/web/views/reports/key_lengths.erb
@@ -25,19 +25,13 @@
<div id="canvas"></div>
</div>
</div>
-<script type="text/javascript">
+<% javascript do
+ JQuery.ready do
+ JS.raw(<<"JAVASCRIPT")
-jQuery(function() {
- var tabs = jQuery('#tabs').tabs({
- show: function(event, ui) {
- resize_box();
- window.location.hash = ui.tab.hash;
- create_flexigrid_for.reports.key_lengths[ui.tab.hash.substring(1)]();
- }
- });
-});
+init_tabs('reports.key_lengths', []);
-var data = <%= hist.to_json %>;
+var data = #{ hist.to_json };
var w=900, h=400, bar_width=6;
@@ -68,8 +62,8 @@ vis.add(pv.Label)
.textAlign('center')
.textAngle(-Math.PI/2);
-var x = pv.Scale.linear(0, <%= hist.size %>).range(bar_width, w - bar_width);
-var y = pv.Scale.linear(0, <%= hist.max %>).range(0, h);
+var x = pv.Scale.linear(0, #{ hist.size }).range(bar_width, w - bar_width);
+var y = pv.Scale.linear(0, #{ hist.max }).range(0, h);
var bar = vis.add(pv.Bar)
.data(data)
@@ -102,4 +96,7 @@ vis.add(pv.Rule)
vis.render();
-</script>
+JAVASCRIPT
+ end
+end
+%>
diff --git a/web/views/search.erb b/web/views/search.erb
index 1b5d312..66a37de 100644
--- a/web/views/search.erb
+++ b/web/views/search.erb
@@ -19,16 +19,10 @@
</div>
</div>
<% javascript do
- JQuery.ready do
- JS.raw(%Q{
- var tabs = jQuery('#tabs').tabs({
- show: function(event, ui) {
- resize_box();
- window.location.hash = ui.tab.hash;
- create_flexigrid_for.search[ui.tab.hash.substring(1)](#{ @query.to_json });
- }
- });
- })
- end
+ JS.raw(%Q{
+function page_init() {
+ init_tabs('search', [#{ @query.to_json }]);
+}
+ })
end
%>
diff --git a/web/views/search_tags.erb b/web/views/search_tags.erb
index f88ff26..099261f 100644
--- a/web/views/search_tags.erb
+++ b/web/views/search_tags.erb
@@ -13,16 +13,10 @@
</div>
</div>
<% javascript do
- JQuery.ready do
- JS.raw(%Q{
- var tabs = jQuery('#tabs').tabs({
- show: function(event, ui) {
- resize_box();
- window.location.hash = ui.tab.hash;
- create_flexigrid_for.search[ui.tab.hash.substring(1)](#{ @query.to_json });
- }
- });
- })
- end
+ JS.raw(%Q{
+function page_init() {
+ init_tabs('search', [#{ @query.to_json }]);
+}
+ })
end
%>
diff --git a/web/views/tag.erb b/web/views/tag.erb
index 662cbc2..8026230 100644
--- a/web/views/tag.erb
+++ b/web/views/tag.erb
@@ -75,13 +75,7 @@ function page_init() {
window.location.search = 'filter=' + value;
});
- var tabs = jQuery('#tabs').tabs({
- show: function(event, ui) {
- resize_box();
- window.location.hash = ui.tab.hash;
- create_flexigrid_for.tag[ui.tab.hash.substring(1)](#{ @key.to_json }, #{ @value.to_json }, #{ @filter_type.to_json });
- }
- });
+ init_tabs('tag', [#{ @key.to_json }, #{ @value.to_json }, #{ @filter_type.to_json }]);
}
JAVASCRIPT
end