blacklight_range_limit 1.0.0pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+