blacklight_range_limit 1.0.0pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. data/.gitignore +21 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +141 -0
  4. data/Rakefile +5 -0
  5. data/VERSION +1 -0
  6. data/app/helpers/range_limit_helper.rb +89 -0
  7. data/app/views/blacklight_range_limit/_range_limit_panel.html.erb +74 -0
  8. data/app/views/blacklight_range_limit/_range_segments.html.erb +14 -0
  9. data/blacklight_range_limit.gemspec +23 -0
  10. data/config/routes.rb +6 -0
  11. data/lib/blacklight_range_limit.rb +55 -0
  12. data/lib/blacklight_range_limit/controller_override.rb +139 -0
  13. data/lib/blacklight_range_limit/engine.rb +17 -0
  14. data/lib/blacklight_range_limit/route_sets.rb +12 -0
  15. data/lib/blacklight_range_limit/segment_calculation.rb +103 -0
  16. data/lib/blacklight_range_limit/version.rb +10 -0
  17. data/lib/blacklight_range_limit/view_helper_override.rb +82 -0
  18. data/lib/generators/blacklight_range_limit/assets_generator.rb +25 -0
  19. data/lib/generators/blacklight_range_limit/blacklight_range_limit_generator.rb +11 -0
  20. data/lib/generators/blacklight_range_limit/templates/public/javascripts/flot/excanvas.min.js +1 -0
  21. data/lib/generators/blacklight_range_limit/templates/public/javascripts/flot/jquery.flot.js +2513 -0
  22. data/lib/generators/blacklight_range_limit/templates/public/javascripts/flot/jquery.flot.selection.js +328 -0
  23. data/lib/generators/blacklight_range_limit/templates/public/javascripts/range_limit_distro_facets.js +211 -0
  24. data/lib/generators/blacklight_range_limit/templates/public/javascripts/range_limit_slider.js +83 -0
  25. data/lib/generators/blacklight_range_limit/templates/public/stylesheets/blacklight_range_limit.css +13 -0
  26. metadata +122 -0
@@ -0,0 +1,83 @@
1
+ jQuery(document).ready(function($) {
2
+
3
+
4
+
5
+
6
+
7
+ $(".range_limit .profile .range.slider_js").each(function() {
8
+ var range_element = $(this);
9
+
10
+ var boundaries = min_max(this);
11
+ var min = boundaries[0];
12
+ var max = boundaries[1];
13
+
14
+ if (min && max) {
15
+ $(this).contents().wrapAll('<div style="display:none" />');
16
+
17
+ var range_element = $(this);
18
+ var form = $(range_element).closest(".range_limit").find("form.range_limit");
19
+ var begin_el = form.find("input.range_begin");
20
+ var end_el = form.find("input.range_end");
21
+
22
+ $(this).slider({
23
+ range: true,
24
+ min: min,
25
+ max: max+1,
26
+ values: [min, max+1],
27
+ slide: function(event, ui) {
28
+ begin_el.val(ui.values[0]);
29
+
30
+ end_el.val(Math.max(ui.values[1]-1, ui.values[0]));
31
+ }
32
+ });
33
+
34
+
35
+ begin_el.val(min);
36
+ end_el.val(max);
37
+
38
+ begin_el.change( function() {
39
+ var val = parseInt($(this).val());
40
+ if ( isNaN(val) || val < min) {
41
+ //for weird data, set slider at min
42
+ val = min;
43
+ }
44
+ range_element.slider("values", 0, val);
45
+ });
46
+
47
+ end_el.change( function() {
48
+ var val = parseInt($(this).val());
49
+ if ( isNaN(val) || val > max ) {
50
+ //weird entry, set slider to max
51
+ val = max;
52
+ }
53
+ range_element.slider("values", 1, val+1);
54
+ });
55
+
56
+ }
57
+ });
58
+
59
+ // returns two element array min/max as numbers. If there is a limit applied,
60
+ // it's boundaries are are limits. Otherwise, min/max in current result
61
+ // set as sniffed from HTML. Pass in a DOM element for a div.range
62
+ // Will return NaN as min or max in case of error or other weirdness.
63
+ function min_max(range_element) {
64
+ var current_limit = $(range_element).closest(".limit_content.range_limit").find(".current")
65
+
66
+
67
+
68
+ var min = max = parseInt(current_limit.find(".single").text())
69
+ if ( isNaN(min)) {
70
+ min = parseInt(current_limit.find(".from").first().text());
71
+ max = parseInt(current_limit.find(".to").first().text());
72
+ }
73
+
74
+ if (isNaN(min) || isNaN(max)) {
75
+ //no current limit, take from results min max included in spans
76
+ min = parseInt($(range_element).find(".min").first().text());
77
+ max = parseInt($(range_element).find(".max").first().text());
78
+ }
79
+
80
+ return [min, max]
81
+ }
82
+
83
+ });
@@ -0,0 +1,13 @@
1
+ form.range_limit input.range_begin, form.range_limit input.range_end {
2
+ border:1px solid #DDDDDD;
3
+ width: 4em;
4
+ }
5
+
6
+ .limit_content .subsection {
7
+ margin-top: 1em;
8
+ }
9
+
10
+ .hover_legend {
11
+ border: 1px solid #C4DAFE;
12
+ padding: 0.25em;
13
+ }
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blacklight_range_limit
3
+ version: !ruby/object:Gem::Version
4
+ hash: 1923831947
5
+ prerelease: 5
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ - pre
11
+ - 1
12
+ version: 1.0.0pre1
13
+ platform: ruby
14
+ authors:
15
+ - Jonathan Rochkind
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2011-06-22 00:00:00 Z
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: rails
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ hash: 7
31
+ segments:
32
+ - 3
33
+ - 0
34
+ version: "3.0"
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: blacklight
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ description:
52
+ email:
53
+ - blacklight-development@googlegroups.com
54
+ executables: []
55
+
56
+ extensions: []
57
+
58
+ extra_rdoc_files: []
59
+
60
+ files:
61
+ - .gitignore
62
+ - MIT-LICENSE
63
+ - README.rdoc
64
+ - Rakefile
65
+ - VERSION
66
+ - app/helpers/range_limit_helper.rb
67
+ - app/views/blacklight_range_limit/_range_limit_panel.html.erb
68
+ - app/views/blacklight_range_limit/_range_segments.html.erb
69
+ - blacklight_range_limit.gemspec
70
+ - config/routes.rb
71
+ - lib/blacklight_range_limit.rb
72
+ - lib/blacklight_range_limit/controller_override.rb
73
+ - lib/blacklight_range_limit/engine.rb
74
+ - lib/blacklight_range_limit/route_sets.rb
75
+ - lib/blacklight_range_limit/segment_calculation.rb
76
+ - lib/blacklight_range_limit/version.rb
77
+ - lib/blacklight_range_limit/view_helper_override.rb
78
+ - lib/generators/blacklight_range_limit/assets_generator.rb
79
+ - lib/generators/blacklight_range_limit/blacklight_range_limit_generator.rb
80
+ - lib/generators/blacklight_range_limit/templates/public/javascripts/flot/excanvas.min.js
81
+ - lib/generators/blacklight_range_limit/templates/public/javascripts/flot/jquery.flot.js
82
+ - lib/generators/blacklight_range_limit/templates/public/javascripts/flot/jquery.flot.selection.js
83
+ - lib/generators/blacklight_range_limit/templates/public/javascripts/range_limit_distro_facets.js
84
+ - lib/generators/blacklight_range_limit/templates/public/javascripts/range_limit_slider.js
85
+ - lib/generators/blacklight_range_limit/templates/public/stylesheets/blacklight_range_limit.css
86
+ homepage: http://projectblacklight.org/
87
+ licenses: []
88
+
89
+ post_install_message:
90
+ rdoc_options: []
91
+
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ">"
107
+ - !ruby/object:Gem::Version
108
+ hash: 25
109
+ segments:
110
+ - 1
111
+ - 3
112
+ - 1
113
+ version: 1.3.1
114
+ requirements: []
115
+
116
+ rubyforge_project: blacklight
117
+ rubygems_version: 1.7.2
118
+ signing_key:
119
+ specification_version: 3
120
+ summary: Blacklight Range Limit plugin
121
+ test_files: []
122
+