blacklight-hierarchy 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +3 -1
  3. data/Rakefile +24 -17
  4. data/app/assets/{stylesheets/blacklight/hierarchy → images}/collapsed.png +0 -0
  5. data/app/assets/{stylesheets/blacklight/hierarchy → images}/empty_marker.png +0 -0
  6. data/app/assets/{stylesheets/blacklight/hierarchy → images}/expanded.png +0 -0
  7. data/app/assets/{stylesheets/blacklight/hierarchy → images}/minus_arrow.png +0 -0
  8. data/app/assets/{stylesheets/blacklight/hierarchy → images}/plus_arrow.png +0 -0
  9. data/app/assets/javascripts/blacklight/hierarchy/hierarchy.js +1 -1
  10. data/app/assets/stylesheets/blacklight/hierarchy/hierarchy.css.scss +2 -2
  11. data/app/helpers/blacklight/hierarchy_helper.rb +148 -111
  12. data/lib/blacklight/hierarchy.rb +2 -1
  13. data/lib/blacklight/hierarchy/engine.rb +2 -0
  14. data/lib/blacklight/hierarchy/version.rb +1 -1
  15. data/lib/generators/blacklight_hierarchy/install_generator.rb +12 -0
  16. data/lib/generators/blacklight_hierarchy/templates/blacklight_hierarchy.css.scss +3 -0
  17. data/lib/generators/blacklight_hierarchy/templates/blacklight_hierarchy.js +1 -0
  18. data/spec/features/basic_spec.rb +114 -0
  19. data/spec/helpers/hierarchy_helper_spec.rb +11 -0
  20. data/spec/internal/Gemfile +40 -0
  21. data/spec/internal/Gemfile.lock +151 -0
  22. data/spec/internal/README.rdoc +28 -0
  23. data/spec/internal/Rakefile +6 -0
  24. data/spec/internal/app/assets/javascripts/application.js +19 -0
  25. data/spec/internal/app/assets/javascripts/blacklight_hierarchy.js +1 -0
  26. data/spec/internal/app/assets/stylesheets/application.css +15 -0
  27. data/spec/internal/app/assets/stylesheets/blacklight.css.scss +5 -0
  28. data/spec/internal/app/assets/stylesheets/blacklight_hierarchy.css.scss +3 -0
  29. data/spec/internal/app/controllers/catalog_controller.rb +182 -0
  30. data/spec/internal/app/helpers/application_helper.rb +2 -0
  31. data/spec/internal/app/views/layouts/application.html.erb +14 -0
  32. data/spec/internal/bin/bundle +3 -0
  33. data/spec/internal/bin/rails +4 -0
  34. data/spec/internal/bin/rake +4 -0
  35. data/spec/internal/config.ru +4 -0
  36. data/spec/internal/config/application.rb +23 -0
  37. data/spec/internal/config/boot.rb +4 -0
  38. data/spec/internal/config/environment.rb +5 -0
  39. data/spec/internal/config/environments/development.rb +37 -0
  40. data/spec/internal/config/environments/production.rb +82 -0
  41. data/spec/internal/config/environments/test.rb +39 -0
  42. data/spec/internal/config/initializers/assets.rb +8 -0
  43. data/spec/internal/config/initializers/backtrace_silencers.rb +7 -0
  44. data/spec/internal/config/initializers/blacklight_initializer.rb +7 -0
  45. data/spec/internal/config/initializers/cookies_serializer.rb +3 -0
  46. data/spec/internal/config/initializers/filter_parameter_logging.rb +4 -0
  47. data/spec/internal/config/initializers/inflections.rb +16 -0
  48. data/spec/internal/config/initializers/mime_types.rb +4 -0
  49. data/spec/internal/config/initializers/session_store.rb +3 -0
  50. data/spec/internal/config/initializers/wrap_parameters.rb +14 -0
  51. data/spec/internal/config/locales/blacklight.en.yml +3 -0
  52. data/spec/internal/config/locales/en.yml +23 -0
  53. data/spec/internal/config/secrets.yml +22 -0
  54. data/spec/internal/config/solr.yml +18 -0
  55. data/spec/internal/db/development.sqlite3 +0 -0
  56. data/spec/internal/db/migrate/20141111225552_create_searches.blacklight.rb +19 -0
  57. data/spec/internal/db/migrate/20141111225553_create_bookmarks.blacklight.rb +18 -0
  58. data/spec/internal/db/migrate/20141111225554_add_polymorphic_type_to_bookmarks.blacklight.rb +9 -0
  59. data/spec/internal/db/seeds.rb +7 -0
  60. data/spec/internal/db/test.sqlite3 +0 -0
  61. data/spec/internal/lib/generators/test_app_generator.rb +28 -0
  62. data/spec/internal/log/development.log +49 -0
  63. data/spec/internal/log/test.log +56 -0
  64. data/spec/internal/public/404.html +67 -0
  65. data/spec/internal/public/422.html +67 -0
  66. data/spec/internal/public/500.html +66 -0
  67. data/spec/internal/public/robots.txt +5 -0
  68. data/spec/internal/test/test_helper.rb +10 -0
  69. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_alerts.scssc +0 -0
  70. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_badges.scssc +0 -0
  71. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_breadcrumbs.scssc +0 -0
  72. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_button-groups.scssc +0 -0
  73. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_buttons.scssc +0 -0
  74. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_carousel.scssc +0 -0
  75. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_close.scssc +0 -0
  76. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_code.scssc +0 -0
  77. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_component-animations.scssc +0 -0
  78. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_dropdowns.scssc +0 -0
  79. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_forms.scssc +0 -0
  80. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_glyphicons.scssc +0 -0
  81. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_grid.scssc +0 -0
  82. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_input-groups.scssc +0 -0
  83. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_jumbotron.scssc +0 -0
  84. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_labels.scssc +0 -0
  85. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_list-group.scssc +0 -0
  86. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_media.scssc +0 -0
  87. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_mixins.scssc +0 -0
  88. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_modals.scssc +0 -0
  89. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_navbar.scssc +0 -0
  90. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_navs.scssc +0 -0
  91. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_normalize.scssc +0 -0
  92. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_pager.scssc +0 -0
  93. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_pagination.scssc +0 -0
  94. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_panels.scssc +0 -0
  95. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_popovers.scssc +0 -0
  96. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_print.scssc +0 -0
  97. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_progress-bars.scssc +0 -0
  98. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_responsive-embed.scssc +0 -0
  99. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_responsive-utilities.scssc +0 -0
  100. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_scaffolding.scssc +0 -0
  101. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_tables.scssc +0 -0
  102. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_thumbnails.scssc +0 -0
  103. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_tooltip.scssc +0 -0
  104. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_type.scssc +0 -0
  105. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_utilities.scssc +0 -0
  106. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_variables.scssc +0 -0
  107. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_wells.scssc +0 -0
  108. data/spec/internal/tmp/cache/assets/test/sass/68dcee9be34904261460cf4a0e994beb05701732/blacklight.css.scssc +0 -0
  109. data/spec/internal/tmp/cache/assets/test/sass/68dcee9be34904261460cf4a0e994beb05701732/blacklight_hierarchy.css.scssc +0 -0
  110. data/spec/internal/tmp/cache/assets/test/sass/6d89983d04228b19fffeb0ffc236c10e9a0e1ee2/_bootstrap-sprockets.scssc +0 -0
  111. data/spec/internal/tmp/cache/assets/test/sass/6d89983d04228b19fffeb0ffc236c10e9a0e1ee2/bootstrap.scssc +0 -0
  112. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_blacklight_base.css.scssc +0 -0
  113. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_bookmark.css.scssc +0 -0
  114. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_catalog.css.scssc +0 -0
  115. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_facets.css.scssc +0 -0
  116. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_group.css.scssc +0 -0
  117. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_header.css.scssc +0 -0
  118. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_layout.css.scssc +0 -0
  119. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_modal.css.scssc +0 -0
  120. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_search_history.css.scssc +0 -0
  121. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/blacklight.css.scssc +0 -0
  122. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/blacklight_defaults.css.scssc +0 -0
  123. data/spec/internal/tmp/cache/assets/test/sass/c3fd5239c31441bb56d49be4a217da70f39ecc0a/hierarchy.css.scssc +0 -0
  124. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_alerts.scssc +0 -0
  125. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_background-variant.scssc +0 -0
  126. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_border-radius.scssc +0 -0
  127. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_buttons.scssc +0 -0
  128. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_center-block.scssc +0 -0
  129. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_clearfix.scssc +0 -0
  130. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_forms.scssc +0 -0
  131. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_gradients.scssc +0 -0
  132. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_grid-framework.scssc +0 -0
  133. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_grid.scssc +0 -0
  134. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_hide-text.scssc +0 -0
  135. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_image.scssc +0 -0
  136. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_labels.scssc +0 -0
  137. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_list-group.scssc +0 -0
  138. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_nav-divider.scssc +0 -0
  139. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_nav-vertical-align.scssc +0 -0
  140. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_opacity.scssc +0 -0
  141. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_pagination.scssc +0 -0
  142. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_panels.scssc +0 -0
  143. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_progress-bar.scssc +0 -0
  144. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_reset-filter.scssc +0 -0
  145. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_resize.scssc +0 -0
  146. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_responsive-visibility.scssc +0 -0
  147. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_size.scssc +0 -0
  148. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_tab-focus.scssc +0 -0
  149. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_table-row.scssc +0 -0
  150. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_text-emphasis.scssc +0 -0
  151. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_text-overflow.scssc +0 -0
  152. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_vendor-prefixes.scssc +0 -0
  153. data/spec/internal/tmp/cache/assets/test/sprockets/0ea779b3e0c121243bf582547101b1bf +0 -0
  154. data/spec/internal/tmp/cache/assets/test/sprockets/136ab1950eca13da4e894ff1b2b27de2 +0 -0
  155. data/spec/internal/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  156. data/spec/internal/tmp/cache/assets/test/sprockets/1966ca6fe626f223bc02aafae8d215d6 +0 -0
  157. data/spec/internal/tmp/cache/assets/test/sprockets/20933494402377b5a4ae573ec38089e3 +0 -0
  158. data/spec/internal/tmp/cache/assets/test/sprockets/21539670dc497a0e6393ad19df075b66 +0 -0
  159. data/spec/internal/tmp/cache/assets/test/sprockets/268df18aed2972da207f2e747bcf232c +0 -0
  160. data/spec/internal/tmp/cache/assets/test/sprockets/2e749ad3910712f029c8f9c22e87806b +0 -0
  161. data/spec/internal/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  162. data/spec/internal/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  163. data/spec/internal/tmp/cache/assets/test/sprockets/384e54eed00c0341519df9a625117650 +0 -0
  164. data/spec/internal/tmp/cache/assets/test/sprockets/439c2eeec401a8ab7397179ee2504ae3 +0 -0
  165. data/spec/internal/tmp/cache/assets/test/sprockets/4927f44cd4ccc2c884e82cedccde4a22 +0 -0
  166. data/spec/internal/tmp/cache/assets/test/sprockets/4a2c3a8e36587ca53b2b7e290c89b4b1 +0 -0
  167. data/spec/internal/tmp/cache/assets/test/sprockets/4b9cd5c4b234a84bbb3a69e13c83e1a4 +0 -0
  168. data/spec/internal/tmp/cache/assets/test/sprockets/4ff8d0bb5f0dcb3063b2920517715e0e +0 -0
  169. data/spec/internal/tmp/cache/assets/test/sprockets/5a064e6539708f214231ea360825b3c3 +0 -0
  170. data/spec/internal/tmp/cache/assets/test/sprockets/5e37ca964d93d3d7f4af368078665594 +0 -0
  171. data/spec/internal/tmp/cache/assets/test/sprockets/64c2e27e6730eb8be8e4037688652a29 +0 -0
  172. data/spec/internal/tmp/cache/assets/test/sprockets/6616d72225dab9428ddccc5930a08831 +0 -0
  173. data/spec/internal/tmp/cache/assets/test/sprockets/683ff1620ded8c9d80411699bafdb0ff +0 -0
  174. data/spec/internal/tmp/cache/assets/test/sprockets/69a0b39e8aec99edabb13313660e28f2 +0 -0
  175. data/spec/internal/tmp/cache/assets/test/sprockets/6cf100c049b646808cc7700f2ee3d125 +0 -0
  176. data/spec/internal/tmp/cache/assets/test/sprockets/6dc95768f586b1f6aafc2e5707c25180 +0 -0
  177. data/spec/internal/tmp/cache/assets/test/sprockets/6f546449c0ef031d9b207a3922074493 +0 -0
  178. data/spec/internal/tmp/cache/assets/test/sprockets/7048f4e2f244cc702d01c26562014d88 +0 -0
  179. data/spec/internal/tmp/cache/assets/test/sprockets/74a8e8cd6ec72e44e546b4155ef6b683 +0 -0
  180. data/spec/internal/tmp/cache/assets/test/sprockets/77ad53b1026d69b8468759e78b981bab +0 -0
  181. data/spec/internal/tmp/cache/assets/test/sprockets/81349b365a8ee3e987899f493404a773 +0 -0
  182. data/spec/internal/tmp/cache/assets/test/sprockets/82a17d90b083e4e3d65199d44611dfcf +0 -0
  183. data/spec/internal/tmp/cache/assets/test/sprockets/8c0b0cb5677cee6c8bea459404d33cc9 +0 -0
  184. data/spec/internal/tmp/cache/assets/test/sprockets/8d3af96d0accc2a659b97d5c8686b749 +0 -0
  185. data/spec/internal/tmp/cache/assets/test/sprockets/93aaa9231a32901266b05632f3d35ecd +0 -0
  186. data/spec/internal/tmp/cache/assets/test/sprockets/97be66cd58fc884d042f89a63ffca480 +0 -0
  187. data/spec/internal/tmp/cache/assets/test/sprockets/9942d6f024866931b4c6a4202eafd24f +0 -0
  188. data/spec/internal/tmp/cache/assets/test/sprockets/9c939b2d5c9084a7ab8e411f4045cdd8 +0 -0
  189. data/spec/internal/tmp/cache/assets/test/sprockets/a0d7ebce705ba4b4828c9f6792532a48 +0 -0
  190. data/spec/internal/tmp/cache/assets/test/sprockets/a43e23596cf407d9ac7eb883da3a9202 +0 -0
  191. data/spec/internal/tmp/cache/assets/test/sprockets/a792eacf67e82469b1fe83bf6fb0773d +0 -0
  192. data/spec/internal/tmp/cache/assets/test/sprockets/ac0afaf210ca89ebd3dc6798b44a923d +0 -0
  193. data/spec/internal/tmp/cache/assets/test/sprockets/ac3dd20c3079957e6543251f6c6565bc +0 -0
  194. data/spec/internal/tmp/cache/assets/test/sprockets/ac9e614f7d87003b8ef8fb55fab81db3 +0 -0
  195. data/spec/internal/tmp/cache/assets/test/sprockets/ad4a54c43c2a4c3874bfde1c9f08c248 +0 -0
  196. data/spec/internal/tmp/cache/assets/test/sprockets/b4d6f2b931b66f805dfeff1bbe3bd5ec +0 -0
  197. data/spec/internal/tmp/cache/assets/test/sprockets/b83ff1ff283372c8b643d490698ac5f2 +0 -0
  198. data/spec/internal/tmp/cache/assets/test/sprockets/bcf37edb17dbd10ffc3f86624b272a65 +0 -0
  199. data/spec/internal/tmp/cache/assets/test/sprockets/bdc6984a3b4d68f1fdcd9a88309645d2 +0 -0
  200. data/spec/internal/tmp/cache/assets/test/sprockets/beafdda6cada3ea47ad16bddbd74147e +0 -0
  201. data/spec/internal/tmp/cache/assets/test/sprockets/c336a8218b9e8beef9723db01f63bb93 +0 -0
  202. data/spec/internal/tmp/cache/assets/test/sprockets/c8297abf45d95e6b50a977ac286c4416 +0 -0
  203. data/spec/internal/tmp/cache/assets/test/sprockets/cb05c309abebfd78bfa687ea7ec893c9 +0 -0
  204. data/spec/internal/tmp/cache/assets/test/sprockets/cb6b2f5142c44b5c536e4f9974853c6a +0 -0
  205. data/spec/internal/tmp/cache/assets/test/sprockets/cba3dd7cc3802e4d5ac14a44c1846f08 +0 -0
  206. data/spec/internal/tmp/cache/assets/test/sprockets/cc1ae9d597a5f4ab4ff90b6ae37e5952 +0 -0
  207. data/spec/internal/tmp/cache/assets/test/sprockets/cff8e998f306908d16c122c3029e5b42 +0 -0
  208. data/spec/internal/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  209. data/spec/internal/tmp/cache/assets/test/sprockets/d2a9756a14b665060574742c4ea33429 +0 -0
  210. data/spec/internal/tmp/cache/assets/test/sprockets/d49ce2111c14bc8f827481d660ae2256 +0 -0
  211. data/spec/internal/tmp/cache/assets/test/sprockets/d69f621b8584a241ef83d7144b5bf05e +0 -0
  212. data/spec/internal/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  213. data/spec/internal/tmp/cache/assets/test/sprockets/d8a5d13c0222d0ed583276f64fdf6951 +0 -0
  214. data/spec/internal/tmp/cache/assets/test/sprockets/dd9f78a7dfe678c27939f19abf53d525 +0 -0
  215. data/spec/internal/tmp/cache/assets/test/sprockets/dedbb55c79535e15a1e57650e4c39659 +0 -0
  216. data/spec/internal/tmp/cache/assets/test/sprockets/df45f6613abfb235029866b5a1624150 +0 -0
  217. data/spec/internal/tmp/cache/assets/test/sprockets/dfebe186cbfff08ef68f2e4713af70a3 +0 -0
  218. data/spec/internal/tmp/cache/assets/test/sprockets/e12a325f7b89f9608f1ce67d0c8fc01c +0 -0
  219. data/spec/internal/tmp/cache/assets/test/sprockets/ea3067540ee9514e70e592a251d0ea14 +0 -0
  220. data/spec/internal/tmp/cache/assets/test/sprockets/f64fc5a7979fecfb0b31bee536ff4cbd +0 -0
  221. data/spec/internal/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  222. data/spec/internal/tmp/cache/assets/test/sprockets/fcbb570c156ad59bdcc099427cba1c4e +0 -0
  223. data/spec/internal/tmp/cache/assets/test/sprockets/ffa439acb56ac6162efb387270e055f2 +0 -0
  224. data/spec/spec_helper.rb +22 -0
  225. data/spec/test_app_templates/lib/generators/test_app_generator.rb +28 -0
  226. metadata +467 -65
  227. data/lib/tasks/blacklight_hierarchy_tasks.rake +0 -4
@@ -0,0 +1,114 @@
1
+ require 'spec_helper'
2
+
3
+ describe "catalog" do
4
+
5
+ before do
6
+ CatalogController.blacklight_config = Blacklight::Configuration.new
7
+ CatalogController.configure_blacklight do |config|
8
+ # config.add_facet_field 'rotate_tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
9
+ config.add_facet_field 'tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
10
+ config.add_facet_field 'my_top_facet', :label => 'Slash Delim', :partial => 'blacklight/hierarchy/facet_hierarchy'
11
+ config.facet_display = {
12
+ :hierarchy => {
13
+ # 'rotate' => [['tag'], ':'], # this would work if config.add_facet_field was called rotate_tag_facet, instead of tag_facet, I think.
14
+ 'tag' => [['facet'], ':'], # stupidly, the facet field is expected to have an underscore followed by SOMETHING; in this case it is "facet"
15
+ 'my_top' => [['facet'], '/']
16
+ }
17
+ }
18
+ end
19
+ end
20
+
21
+ context "facet tree without repeated nodes" do
22
+ before {
23
+ solr_facet_resp = {'responseHeader'=>{'status'=>0, 'QTime'=>4, 'params'=>{'wt'=>'ruby','rows'=>'0'}},
24
+ 'response'=>{'numFound'=>30, 'start'=>0, 'maxScore'=>1.0, 'docs' => []},
25
+ 'facet_counts' => {
26
+ 'facet_queries' => {},
27
+ 'facet_fields' => {
28
+ 'tag_facet' => [
29
+ 'a:b:c', 30,
30
+ 'a:b:d', 25,
31
+ 'a:c:d', 5,
32
+ 'p:r:q', 25,
33
+ 'x:y', 5,
34
+ 'n', 1 ],
35
+ 'my_top_facet' => [
36
+ 'f/g/h', 30,
37
+ 'j/k', 5,
38
+ 'z', 1 ],
39
+ },
40
+ 'facet_dates' => {},
41
+ 'facet_ranges' => {}
42
+ }
43
+ }
44
+ rsolr_client = double("rsolr_client")
45
+ expect(rsolr_client).to receive(:send_and_receive).and_return solr_facet_resp
46
+ expect(RSolr).to receive(:connect).and_return rsolr_client
47
+ }
48
+
49
+ it "should display the hierarchy" do
50
+ visit '/'
51
+ expect(page).to have_selector('li.h-node', :text => 'a')
52
+ expect(page).to have_selector('li.h-node > ul > li.h-node', :text => 'b')
53
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'c 30')
54
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'd 25')
55
+ expect(page).to have_selector('li.h-node > ul > li.h-node', :text => 'c')
56
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'd 5')
57
+ expect(page).to have_selector('li.h-node', :text => 'p')
58
+ expect(page).to have_selector('li.h-node > ul > li.h-node', :text => 'r')
59
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'q 25')
60
+ expect(page).to have_selector('li.h-node', :text => 'x')
61
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'y 5')
62
+ expect(page).to have_selector('.facet-hierarchy > li.h-leaf', :text => 'n 1')
63
+ end
64
+
65
+ it "should properly link the hierarchy", :wip => true do
66
+ visit '/'
67
+ # visit catalog_index_path
68
+ expect(page.all(:css, 'li.h-leaf a').map { |a| a[:href].to_s }).to include(catalog_index_path('f' => { 'tag_facet' => ['n'] }))
69
+ expect(page.all(:css, 'li.h-leaf a').map { |a| a[:href].to_s }).to include(catalog_index_path('f' => { 'tag_facet' => ['a:b:c'] }))
70
+ expect(page.all(:css, 'li.h-leaf a').map { |a| a[:href].to_s }).to include(catalog_index_path('f' => { 'tag_facet' => ['x:y'] }))
71
+ end
72
+
73
+ it "should work with a different value delimiter" do
74
+ visit '/'
75
+ expect(page).to have_selector('li.h-node', :text => 'f')
76
+ expect(page).to have_selector('li.h-node > ul > li.h-node', :text => 'g')
77
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'h 30')
78
+ expect(page).to have_selector('li.h-node', :text => 'j')
79
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'k 5')
80
+ expect(page).to have_selector('.facet-hierarchy > li.h-leaf', :text => 'z 1')
81
+ end
82
+ end # facet tree without repeated nodes
83
+
84
+ context "facet tree with repeated nodes" do
85
+ before do
86
+ facet_resp = {'responseHeader'=>{'status'=>0, 'QTime'=>4, 'params'=>{'wt'=>'ruby','rows'=>'0'}},
87
+ 'response'=>{'numFound'=>30, 'start'=>0, 'maxScore'=>1.0, 'docs' => []},
88
+ 'facet_counts' => {
89
+ 'facet_queries' => {},
90
+ 'facet_fields' => {
91
+ 'tag_facet' => [
92
+ 'm:w:w:t', 15,
93
+ 'm:w:v:z', 10],
94
+ },
95
+ 'facet_dates' => {},
96
+ 'facet_ranges' => {}
97
+ }
98
+ }
99
+ my_rsolr_client = double("rsolr_client")
100
+ expect(my_rsolr_client).to receive(:send_and_receive).and_return facet_resp
101
+ expect(RSolr).to receive(:connect).and_return my_rsolr_client
102
+ end
103
+ it "should display all child nodes when a node value is repeated at its child level" do
104
+ visit '/'
105
+ expect(page).to have_selector('li.h-node', :text => 'm')
106
+ expect(page).to have_selector('li.h-node > ul > li.h-node', :text => 'w')
107
+ expect(page).to have_selector('li.h-node > ul > li.h-node > ul > li.h-node', :text => 'w')
108
+ expect(page).to have_selector('li.h-node > ul > li.h-node > ul > li.h-node', :text => 'v')
109
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 't 15')
110
+ expect(page).to have_selector('li.h-node li.h-leaf', :text => 'z 10')
111
+ end
112
+ end
113
+
114
+ end
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ describe Blacklight::HierarchyHelper do
4
+ describe '#render_hierarchy' do
5
+ it 'should remove the _suffix from the field name' do
6
+ field = OpenStruct.new(field: "the_field_name_facet")
7
+ expect(helper).to receive(:facet_tree).with("the_field_name").and_return({})
8
+ helper.render_hierarchy(field)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,40 @@
1
+ source 'https://rubygems.org'
2
+
3
+
4
+ # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
5
+ gem 'rails', '4.1.5'
6
+ # Use sqlite3 as the database for Active Record
7
+ gem 'sqlite3'
8
+ # Use SCSS for stylesheets
9
+ gem 'sass-rails', '~> 4.0.3'
10
+ # Use Uglifier as compressor for JavaScript assets
11
+ gem 'uglifier', '>= 1.3.0'
12
+ # Use CoffeeScript for .js.coffee assets and views
13
+ gem 'coffee-rails', '~> 4.0.0'
14
+ # See https://github.com/sstephenson/execjs#readme for more supported runtimes
15
+ # gem 'therubyracer', platforms: :ruby
16
+
17
+ # Use jquery as the JavaScript library
18
+ gem 'jquery-rails'
19
+ # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
20
+ gem 'turbolinks'
21
+ # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
22
+ gem 'jbuilder', '~> 2.0'
23
+ # bundle exec rake doc:rails generates the API under doc/api.
24
+ gem 'sdoc', '~> 0.4.0', group: :doc
25
+
26
+ # Use ActiveModel has_secure_password
27
+ # gem 'bcrypt', '~> 3.1.7'
28
+
29
+ # Use unicorn as the app server
30
+ # gem 'unicorn'
31
+
32
+ # Use Capistrano for deployment
33
+ # gem 'capistrano-rails', group: :development
34
+
35
+ # Use debugger
36
+ # gem 'debugger', group: [:development, :test]
37
+
38
+ gem 'blacklight-hierarchy', :path => '/Users/jkeck/Projects/blacklight/blacklight-hierarchy'
39
+
40
+ gem "blacklight"
@@ -0,0 +1,151 @@
1
+ PATH
2
+ remote: /Users/jkeck/Projects/blacklight/blacklight-hierarchy
3
+ specs:
4
+ blacklight-hierarchy (1.0.0)
5
+ blacklight (~> 5, < 6)
6
+ rails (~> 4.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actionmailer (4.1.5)
12
+ actionpack (= 4.1.5)
13
+ actionview (= 4.1.5)
14
+ mail (~> 2.5.4)
15
+ actionpack (4.1.5)
16
+ actionview (= 4.1.5)
17
+ activesupport (= 4.1.5)
18
+ rack (~> 1.5.2)
19
+ rack-test (~> 0.6.2)
20
+ actionview (4.1.5)
21
+ activesupport (= 4.1.5)
22
+ builder (~> 3.1)
23
+ erubis (~> 2.7.0)
24
+ activemodel (4.1.5)
25
+ activesupport (= 4.1.5)
26
+ builder (~> 3.1)
27
+ activerecord (4.1.5)
28
+ activemodel (= 4.1.5)
29
+ activesupport (= 4.1.5)
30
+ arel (~> 5.0.0)
31
+ activesupport (4.1.5)
32
+ i18n (~> 0.6, >= 0.6.9)
33
+ json (~> 1.7, >= 1.7.7)
34
+ minitest (~> 5.1)
35
+ thread_safe (~> 0.1)
36
+ tzinfo (~> 1.1)
37
+ arel (5.0.1.20140414130214)
38
+ blacklight (5.7.1)
39
+ bootstrap-sass (~> 3.2)
40
+ deprecation
41
+ kaminari (~> 0.13)
42
+ nokogiri (~> 1.6)
43
+ rails (>= 3.2.6, < 5)
44
+ rsolr (~> 1.0.6)
45
+ bootstrap-sass (3.2.0.2)
46
+ sass (~> 3.2)
47
+ builder (3.2.2)
48
+ coffee-rails (4.0.1)
49
+ coffee-script (>= 2.2.0)
50
+ railties (>= 4.0.0, < 5.0)
51
+ coffee-script (2.3.0)
52
+ coffee-script-source
53
+ execjs
54
+ coffee-script-source (1.8.0)
55
+ deprecation (0.1.0)
56
+ activesupport
57
+ erubis (2.7.0)
58
+ execjs (2.2.2)
59
+ hike (1.2.3)
60
+ i18n (0.6.11)
61
+ jbuilder (2.2.4)
62
+ activesupport (>= 3.0.0, < 5)
63
+ multi_json (~> 1.2)
64
+ jquery-rails (3.1.2)
65
+ railties (>= 3.0, < 5.0)
66
+ thor (>= 0.14, < 2.0)
67
+ json (1.8.1)
68
+ kaminari (0.16.1)
69
+ actionpack (>= 3.0.0)
70
+ activesupport (>= 3.0.0)
71
+ mail (2.5.4)
72
+ mime-types (~> 1.16)
73
+ treetop (~> 1.4.8)
74
+ mime-types (1.25.1)
75
+ mini_portile (0.6.0)
76
+ minitest (5.4.2)
77
+ multi_json (1.10.1)
78
+ nokogiri (1.6.3.1)
79
+ mini_portile (= 0.6.0)
80
+ polyglot (0.3.5)
81
+ rack (1.5.2)
82
+ rack-test (0.6.2)
83
+ rack (>= 1.0)
84
+ rails (4.1.5)
85
+ actionmailer (= 4.1.5)
86
+ actionpack (= 4.1.5)
87
+ actionview (= 4.1.5)
88
+ activemodel (= 4.1.5)
89
+ activerecord (= 4.1.5)
90
+ activesupport (= 4.1.5)
91
+ bundler (>= 1.3.0, < 2.0)
92
+ railties (= 4.1.5)
93
+ sprockets-rails (~> 2.0)
94
+ railties (4.1.5)
95
+ actionpack (= 4.1.5)
96
+ activesupport (= 4.1.5)
97
+ rake (>= 0.8.7)
98
+ thor (>= 0.18.1, < 2.0)
99
+ rake (10.3.2)
100
+ rdoc (4.1.2)
101
+ json (~> 1.4)
102
+ rsolr (1.0.10)
103
+ builder (>= 2.1.2)
104
+ sass (3.2.19)
105
+ sass-rails (4.0.4)
106
+ railties (>= 4.0.0, < 5.0)
107
+ sass (~> 3.2.2)
108
+ sprockets (~> 2.8, < 2.12)
109
+ sprockets-rails (~> 2.0)
110
+ sdoc (0.4.1)
111
+ json (~> 1.7, >= 1.7.7)
112
+ rdoc (~> 4.0)
113
+ sprockets (2.11.3)
114
+ hike (~> 1.2)
115
+ multi_json (~> 1.0)
116
+ rack (~> 1.0)
117
+ tilt (~> 1.1, != 1.3.0)
118
+ sprockets-rails (2.2.0)
119
+ actionpack (>= 3.0)
120
+ activesupport (>= 3.0)
121
+ sprockets (>= 2.8, < 4.0)
122
+ sqlite3 (1.3.10)
123
+ thor (0.19.1)
124
+ thread_safe (0.3.4)
125
+ tilt (1.4.1)
126
+ treetop (1.4.15)
127
+ polyglot
128
+ polyglot (>= 0.3.1)
129
+ turbolinks (2.5.2)
130
+ coffee-rails
131
+ tzinfo (1.2.2)
132
+ thread_safe (~> 0.1)
133
+ uglifier (2.5.3)
134
+ execjs (>= 0.3.0)
135
+ json (>= 1.8.0)
136
+
137
+ PLATFORMS
138
+ ruby
139
+
140
+ DEPENDENCIES
141
+ blacklight
142
+ blacklight-hierarchy!
143
+ coffee-rails (~> 4.0.0)
144
+ jbuilder (~> 2.0)
145
+ jquery-rails
146
+ rails (= 4.1.5)
147
+ sass-rails (~> 4.0.3)
148
+ sdoc (~> 0.4.0)
149
+ sqlite3
150
+ turbolinks
151
+ uglifier (>= 1.3.0)
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,19 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require turbolinks
16
+ //
17
+ // Required by Blacklight
18
+ //= require blacklight/blacklight
19
+ //= require_tree .
@@ -0,0 +1 @@
1
+ //= require blacklight/hierarchy/hierarchy
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,5 @@
1
+ @import 'bootstrap-sprockets';
2
+
3
+ @import 'bootstrap';
4
+
5
+ @import 'blacklight/blacklight';
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require blacklight/hierarchy/hierarchy
3
+ */
@@ -0,0 +1,182 @@
1
+ # -*- encoding : utf-8 -*-
2
+ #
3
+ class CatalogController < ApplicationController
4
+
5
+ include Blacklight::Catalog
6
+
7
+ configure_blacklight do |config|
8
+ ## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params
9
+ config.default_solr_params = {
10
+ :qt => 'search',
11
+ :rows => 10
12
+ }
13
+
14
+ # solr path which will be added to solr base url before the other solr params.
15
+ #config.solr_path = 'select'
16
+
17
+ # items to show per page, each number in the array represent another option to choose from.
18
+ #config.per_page = [10,20,50,100]
19
+
20
+ ## Default parameters to send on single-document requests to Solr. These settings are the Blackligt defaults (see SolrHelper#solr_doc_params) or
21
+ ## parameters included in the Blacklight-jetty document requestHandler.
22
+ #
23
+ #config.default_document_solr_params = {
24
+ # :qt => 'document',
25
+ # ## These are hard-coded in the blacklight 'document' requestHandler
26
+ # # :fl => '*',
27
+ # # :rows => 1
28
+ # # :q => '{!raw f=id v=$id}'
29
+ #}
30
+
31
+ # solr field configuration for search results/index views
32
+ config.index.title_field = 'title_display'
33
+ config.index.display_type_field = 'format'
34
+
35
+ # solr field configuration for document/show views
36
+ #config.show.title_field = 'title_display'
37
+ #config.show.display_type_field = 'format'
38
+
39
+ # solr fields that will be treated as facets by the blacklight application
40
+ # The ordering of the field names is the order of the display
41
+ #
42
+ # Setting a limit will trigger Blacklight's 'more' facet values link.
43
+ # * If left unset, then all facet values returned by solr will be displayed.
44
+ # * If set to an integer, then "f.somefield.facet.limit" will be added to
45
+ # solr request, with actual solr request being +1 your configured limit --
46
+ # you configure the number of items you actually want _displayed_ in a page.
47
+ # * If set to 'true', then no additional parameters will be sent to solr,
48
+ # but any 'sniffed' request limit parameters will be used for paging, with
49
+ # paging at requested limit -1. Can sniff from facet.limit or
50
+ # f.specific_field.facet.limit solr request params. This 'true' config
51
+ # can be used if you set limits in :default_solr_params, or as defaults
52
+ # on the solr side in the request handler itself. Request handler defaults
53
+ # sniffing requires solr requests to be made with "echoParams=all", for
54
+ # app code to actually have it echo'd back to see it.
55
+ #
56
+ # :show may be set to false if you don't want the facet to be drawn in the
57
+ # facet bar
58
+ config.add_facet_field 'format', :label => 'Format'
59
+ config.add_facet_field 'pub_date', :label => 'Publication Year', :single => true
60
+ config.add_facet_field 'subject_topic_facet', :label => 'Topic', :limit => 20
61
+ config.add_facet_field 'language_facet', :label => 'Language', :limit => true
62
+ config.add_facet_field 'lc_1letter_facet', :label => 'Call Number'
63
+ config.add_facet_field 'subject_geo_facet', :label => 'Region'
64
+ config.add_facet_field 'subject_era_facet', :label => 'Era'
65
+
66
+ config.add_facet_field 'example_pivot_field', :label => 'Pivot Field', :pivot => ['format', 'language_facet']
67
+
68
+ config.add_facet_field 'example_query_facet_field', :label => 'Publish Date', :query => {
69
+ :years_5 => { :label => 'within 5 Years', :fq => "pub_date:[#{Time.now.year - 5 } TO *]" },
70
+ :years_10 => { :label => 'within 10 Years', :fq => "pub_date:[#{Time.now.year - 10 } TO *]" },
71
+ :years_25 => { :label => 'within 25 Years', :fq => "pub_date:[#{Time.now.year - 25 } TO *]" }
72
+ }
73
+
74
+
75
+ # Have BL send all facet field names to Solr, which has been the default
76
+ # previously. Simply remove these lines if you'd rather use Solr request
77
+ # handler defaults, or have no facets.
78
+ config.add_facet_fields_to_solr_request!
79
+
80
+ # solr fields to be displayed in the index (search results) view
81
+ # The ordering of the field names is the order of the display
82
+ config.add_index_field 'title_display', :label => 'Title'
83
+ config.add_index_field 'title_vern_display', :label => 'Title'
84
+ config.add_index_field 'author_display', :label => 'Author'
85
+ config.add_index_field 'author_vern_display', :label => 'Author'
86
+ config.add_index_field 'format', :label => 'Format'
87
+ config.add_index_field 'language_facet', :label => 'Language'
88
+ config.add_index_field 'published_display', :label => 'Published'
89
+ config.add_index_field 'published_vern_display', :label => 'Published'
90
+ config.add_index_field 'lc_callnum_display', :label => 'Call number'
91
+
92
+ # solr fields to be displayed in the show (single result) view
93
+ # The ordering of the field names is the order of the display
94
+ config.add_show_field 'title_display', :label => 'Title'
95
+ config.add_show_field 'title_vern_display', :label => 'Title'
96
+ config.add_show_field 'subtitle_display', :label => 'Subtitle'
97
+ config.add_show_field 'subtitle_vern_display', :label => 'Subtitle'
98
+ config.add_show_field 'author_display', :label => 'Author'
99
+ config.add_show_field 'author_vern_display', :label => 'Author'
100
+ config.add_show_field 'format', :label => 'Format'
101
+ config.add_show_field 'url_fulltext_display', :label => 'URL'
102
+ config.add_show_field 'url_suppl_display', :label => 'More Information'
103
+ config.add_show_field 'language_facet', :label => 'Language'
104
+ config.add_show_field 'published_display', :label => 'Published'
105
+ config.add_show_field 'published_vern_display', :label => 'Published'
106
+ config.add_show_field 'lc_callnum_display', :label => 'Call number'
107
+ config.add_show_field 'isbn_t', :label => 'ISBN'
108
+
109
+ # "fielded" search configuration. Used by pulldown among other places.
110
+ # For supported keys in hash, see rdoc for Blacklight::SearchFields
111
+ #
112
+ # Search fields will inherit the :qt solr request handler from
113
+ # config[:default_solr_parameters], OR can specify a different one
114
+ # with a :qt key/value. Below examples inherit, except for subject
115
+ # that specifies the same :qt as default for our own internal
116
+ # testing purposes.
117
+ #
118
+ # The :key is what will be used to identify this BL search field internally,
119
+ # as well as in URLs -- so changing it after deployment may break bookmarked
120
+ # urls. A display label will be automatically calculated from the :key,
121
+ # or can be specified manually to be different.
122
+
123
+ # This one uses all the defaults set by the solr request handler. Which
124
+ # solr request handler? The one set in config[:default_solr_parameters][:qt],
125
+ # since we aren't specifying it otherwise.
126
+
127
+ config.add_search_field 'all_fields', :label => 'All Fields'
128
+
129
+
130
+ # Now we see how to over-ride Solr request handler defaults, in this
131
+ # case for a BL "search field", which is really a dismax aggregate
132
+ # of Solr search fields.
133
+
134
+ config.add_search_field('title') do |field|
135
+ # solr_parameters hash are sent to Solr as ordinary url query params.
136
+ field.solr_parameters = { :'spellcheck.dictionary' => 'title' }
137
+
138
+ # :solr_local_parameters will be sent using Solr LocalParams
139
+ # syntax, as eg {! qf=$title_qf }. This is neccesary to use
140
+ # Solr parameter de-referencing like $title_qf.
141
+ # See: http://wiki.apache.org/solr/LocalParams
142
+ field.solr_local_parameters = {
143
+ :qf => '$title_qf',
144
+ :pf => '$title_pf'
145
+ }
146
+ end
147
+
148
+ config.add_search_field('author') do |field|
149
+ field.solr_parameters = { :'spellcheck.dictionary' => 'author' }
150
+ field.solr_local_parameters = {
151
+ :qf => '$author_qf',
152
+ :pf => '$author_pf'
153
+ }
154
+ end
155
+
156
+ # Specifying a :qt only to show it's possible, and so our internal automated
157
+ # tests can test it. In this case it's the same as
158
+ # config[:default_solr_parameters][:qt], so isn't actually neccesary.
159
+ config.add_search_field('subject') do |field|
160
+ field.solr_parameters = { :'spellcheck.dictionary' => 'subject' }
161
+ field.qt = 'search'
162
+ field.solr_local_parameters = {
163
+ :qf => '$subject_qf',
164
+ :pf => '$subject_pf'
165
+ }
166
+ end
167
+
168
+ # "sort results by" select (pulldown)
169
+ # label in pulldown is followed by the name of the SOLR field to sort by and
170
+ # whether the sort is ascending or descending (it must be asc or desc
171
+ # except in the relevancy case).
172
+ config.add_sort_field 'score desc, pub_date_sort desc, title_sort asc', :label => 'relevance'
173
+ config.add_sort_field 'pub_date_sort desc, title_sort asc', :label => 'year'
174
+ config.add_sort_field 'author_sort asc, title_sort asc', :label => 'author'
175
+ config.add_sort_field 'title_sort asc, pub_date_sort desc', :label => 'title'
176
+
177
+ # If there are more than this many search results, no spelling ("did you
178
+ # mean") suggestion is offered.
179
+ config.spell_max = 5
180
+ end
181
+
182
+ end