blacklight-hierarchy 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/Rakefile +1 -3
- data/app/helpers/blacklight/hierarchy_helper.rb +44 -50
- data/lib/blacklight/hierarchy/version.rb +1 -1
- data/spec/features/basic_spec.rb +48 -26
- data/spec/internal/Gemfile +19 -12
- data/spec/internal/Gemfile.lock +117 -80
- data/spec/internal/app/assets/javascripts/application.js +2 -2
- data/spec/internal/app/assets/stylesheets/application.css +1 -1
- data/spec/internal/app/controllers/application_controller.rb +9 -0
- data/spec/internal/app/controllers/catalog_controller.rb +2 -3
- data/spec/internal/app/models/search_builder.rb +3 -0
- data/spec/internal/app/models/solr_document.rb +21 -0
- data/spec/internal/bin/rails +1 -1
- data/spec/internal/bin/setup +29 -0
- data/spec/internal/config.ru +1 -1
- data/spec/internal/config/application.rb +3 -0
- data/spec/internal/config/{solr.yml → blacklight.yml} +6 -3
- data/spec/internal/config/boot.rb +1 -2
- data/spec/internal/config/database.yml +25 -0
- data/spec/internal/config/environments/development.rb +4 -0
- data/spec/internal/config/environments/production.rb +14 -17
- data/spec/internal/config/environments/test.rb +5 -2
- data/spec/internal/config/initializers/assets.rb +3 -0
- data/spec/internal/config/initializers/blacklight_initializer.rb +1 -1
- data/spec/internal/config/initializers/cookies_serializer.rb +1 -1
- data/spec/internal/config/routes.rb +58 -0
- data/spec/internal/config/secrets.yml +2 -2
- data/spec/internal/db/development.sqlite3 +0 -0
- data/spec/internal/db/migrate/{20141111225552_create_searches.blacklight.rb → 20150401202514_create_searches.blacklight.rb} +0 -0
- data/spec/internal/db/migrate/{20141111225553_create_bookmarks.blacklight.rb → 20150401202515_create_bookmarks.blacklight.rb} +0 -0
- data/spec/internal/db/migrate/{20141111225554_add_polymorphic_type_to_bookmarks.blacklight.rb → 20150401202516_add_polymorphic_type_to_bookmarks.blacklight.rb} +0 -0
- data/spec/internal/db/schema.rb +38 -0
- data/spec/internal/db/test.sqlite3 +0 -0
- data/spec/internal/log/development.log +23 -21
- data/spec/internal/log/test.log +100 -50
- data/spec/internal/public/favicon.ico +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_alerts.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_badges.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_breadcrumbs.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_button-groups.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_buttons.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_carousel.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_close.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_code.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_component-animations.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_dropdowns.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_forms.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_glyphicons.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_grid.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_input-groups.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_jumbotron.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_labels.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_list-group.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_media.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_mixins.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_modals.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_navbar.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_navs.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_normalize.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_pager.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_pagination.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_panels.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_popovers.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_print.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_progress-bars.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_responsive-embed.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_responsive-utilities.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_scaffolding.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_tables.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_thumbnails.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_tooltip.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_type.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_utilities.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_variables.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_wells.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{6d89983d04228b19fffeb0ffc236c10e9a0e1ee2 → 51fd2eea4473e30fb7c6f38005b3e0e68e0051b7}/_bootstrap-sprockets.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{6d89983d04228b19fffeb0ffc236c10e9a0e1ee2/bootstrap.scssc → 51fd2eea4473e30fb7c6f38005b3e0e68e0051b7/_bootstrap.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_blacklight_base.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_blacklight_base.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_bookmark.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_bookmark.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/57179add66901e7071e270eb3dcbffbd94509626/_catalog.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_facets.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_facets.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_group.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_group.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_header.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_header.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/57179add66901e7071e270eb3dcbffbd94509626/_layout.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_modal.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_modal.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/57179add66901e7071e270eb3dcbffbd94509626/_search_history.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/blacklight.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/blacklight.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/blacklight_defaults.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/blacklight_defaults.scssc} +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{68dcee9be34904261460cf4a0e994beb05701732 → 640fe784801b6579b3cc7c5076d10c17a3d1fa15}/blacklight.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{68dcee9be34904261460cf4a0e994beb05701732 → 640fe784801b6579b3cc7c5076d10c17a3d1fa15}/blacklight_hierarchy.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{c3fd5239c31441bb56d49be4a217da70f39ecc0a → 66d46d89a6f50778e9d7c47153c7e4120d2e7ab9}/hierarchy.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_alerts.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_background-variant.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_border-radius.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/71aaf5883ae684c0f08620e833c1400f6f31a6f7/_buttons.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_center-block.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_clearfix.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/71aaf5883ae684c0f08620e833c1400f6f31a6f7/_forms.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_gradients.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_grid-framework.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_grid.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_hide-text.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_image.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_labels.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_list-group.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_nav-divider.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_nav-vertical-align.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_opacity.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_pagination.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_panels.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_progress-bar.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_reset-filter.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_resize.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_responsive-visibility.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_size.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_tab-focus.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_table-row.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_text-emphasis.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_text-overflow.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_vendor-prefixes.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{a0d7ebce705ba4b4828c9f6792532a48 → 08609bfe1ae1902b7f1717d982e5b4a7} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/08b1239c43458e285871d83216975134 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/0b10e5cb4a9a51090f43651fbd877bee +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{77ad53b1026d69b8468759e78b981bab → 15ef05c24f1f8ef3039f46b33ab8edcd} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/174b5a39e5091e8d7c78775e7e2070fe +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/20933494402377b5a4ae573ec38089e3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/212cef43c60c9d3e8ac8f88415b6f973 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{5a064e6539708f214231ea360825b3c3 → 229fc8ab6865660e396cf9fd1cb39c10} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/23cb18a699ce7dbdcf465be2a7a41811 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/24614ebd6d6f61f3b5b5319379d7fa46 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{74a8e8cd6ec72e44e546b4155ef6b683 → 274904ae6b05d982033ae9d6d5dbe862} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/2bfec80b4e6c87e27f88b9ee5d0bb41b +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/368b41619b173f4a9f545b6da21f928f +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{df45f6613abfb235029866b5a1624150 → 3f47167a7fb0c564a3e4822aa5a5dbdd} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{e12a325f7b89f9608f1ce67d0c8fc01c → 489789028348d4668912dadfced5664c} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/48c6aa23a63fcb0eb2abfd9851ee34ea +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/59747ade9c2bc4b15b9a5def26f510f9 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{64c2e27e6730eb8be8e4037688652a29 → 5c287dfee4faa9e30f836a57d9230e5c} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/5fa08d97b81ec0ae7f19f95006c5fc8c +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{dd9f78a7dfe678c27939f19abf53d525 → 6b2bccdce0b8a30bb633cfe11539e914} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{ac9e614f7d87003b8ef8fb55fab81db3 → 6b91422aae1939a2f363892dfc4616df} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/6cb2d81cef71f0c48fc9389b6afe01c5 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{cb6b2f5142c44b5c536e4f9974853c6a → 6e78d84dc664ac4afa16415e2872cb60} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/701b5a3b8142388e7371a6801cc44623 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{4a2c3a8e36587ca53b2b7e290c89b4b1 → 73232ffd4ba56c978aee3fb5ab28c5d2} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/83d2f436240b85f626ec119f7c9a5272 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/8625349bd7300eb9c9103e0155e3a8c3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/86492dd478a290aac1a6e1beaac746ea +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/883e4c9f2e7b94cece65d21ba64eac7c +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/8e5a76c17a713f0b722cf054454f1ecc +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/9125893025f624d16a8d8e052d0dbfcd +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/93aaa9231a32901266b05632f3d35ecd +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{ea3067540ee9514e70e592a251d0ea14 → 98d74d6877c75d0df7a07d751af1252b} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/9902d40f2d5719439375b71e9f92ccd1 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/9e17b7435224b4d2ca900240c32c195d +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{2e749ad3910712f029c8f9c22e87806b → a015684db07b197ed1856307abd82f42} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a05e957ff61060c057debd8dc7b6ef3b +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{6616d72225dab9428ddccc5930a08831 → a08976ed55e815f763dfcb22a7376ed7} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a432d9a6dad3588381eee9808663e060 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a7cfb2dc6e31842e16886d8fe5e565a6 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{cff8e998f306908d16c122c3029e5b42 → a83ecb9fd5ef9f4cd480816fd1991c63} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ad4a54c43c2a4c3874bfde1c9f08c248 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/b7b953d2bbbc2ed0afa90bfd470970bf +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/b83ff1ff283372c8b643d490698ac5f2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/b9cf057f4c9bbc89f7f1666bb9bc51ed +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/b9d34fb62a7133c9e354e15be8b97fd2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{a43e23596cf407d9ac7eb883da3a9202 → bb0e475cafd86ebdab11f01efe623dbe} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/beafdda6cada3ea47ad16bddbd74147e +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{81349b365a8ee3e987899f493404a773 → c45db95ac3b02d061b390954bd9f49d0} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{9c939b2d5c9084a7ab8e411f4045cdd8 → c545819b3e92e7cc0180242c111f2b5b} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/c6f2d2b6b4ff8b16bb9e7d39898c7de2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{8c0b0cb5677cee6c8bea459404d33cc9 → cb4976fa305e0f3f830cc11a68490abe} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d04cb44fedf1d7f934c4d82447e5d7be +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{d8a5d13c0222d0ed583276f64fdf6951 → d6fd3dc20efb1e4fe8fa3b90ad6d36da} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/dad1adba3c9893641803fe598ecbbbcf +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/db0799ffdd25f3b4b984c162e7da469e +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{c336a8218b9e8beef9723db01f63bb93 → dcb5e2fe8f8ba6cdad3ec3331bdea0df} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{0ea779b3e0c121243bf582547101b1bf → ddb8d8d3afcc4384d2590acf090215f8} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/df08d3c909c62ecba152cdc7b11d9fb3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e0663a4141d11a3841014005025172eb +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{bdc6984a3b4d68f1fdcd9a88309645d2 → e47ed05c114e67acb8ad43d2a2db784d} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e5eba0b50c4b277172db0f9f699a1d76 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ea022fee7bf6ba46a533438b49309665 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{dfebe186cbfff08ef68f2e4713af70a3 → efd0d28ea7420593f6323280daec5d94} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{bcf37edb17dbd10ffc3f86624b272a65 → f2a04b4afd8e701562135671116b3452} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/f2cf4862b1e7a04fd29eb30605f08979 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/{b4d6f2b931b66f805dfeff1bbe3bd5ec → f600496bff33972f86dc55b9f75df124} +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ffa439acb56ac6162efb387270e055f2 +0 -0
- metadata +319 -297
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_button-groups.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_buttons.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_carousel.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_forms.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_glyphicons.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_jumbotron.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_media.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_panels.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_popovers.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_print.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_progress-bars.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_responsive-embed.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_tables.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_tooltip.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_variables.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_catalog.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_layout.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_search_history.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_buttons.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_forms.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/136ab1950eca13da4e894ff1b2b27de2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1966ca6fe626f223bc02aafae8d215d6 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/21539670dc497a0e6393ad19df075b66 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/268df18aed2972da207f2e747bcf232c +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/384e54eed00c0341519df9a625117650 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/439c2eeec401a8ab7397179ee2504ae3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/4927f44cd4ccc2c884e82cedccde4a22 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/4b9cd5c4b234a84bbb3a69e13c83e1a4 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/4ff8d0bb5f0dcb3063b2920517715e0e +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/5e37ca964d93d3d7f4af368078665594 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/683ff1620ded8c9d80411699bafdb0ff +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/69a0b39e8aec99edabb13313660e28f2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/6cf100c049b646808cc7700f2ee3d125 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/6dc95768f586b1f6aafc2e5707c25180 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/6f546449c0ef031d9b207a3922074493 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/7048f4e2f244cc702d01c26562014d88 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/82a17d90b083e4e3d65199d44611dfcf +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/8d3af96d0accc2a659b97d5c8686b749 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/97be66cd58fc884d042f89a63ffca480 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/9942d6f024866931b4c6a4202eafd24f +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a792eacf67e82469b1fe83bf6fb0773d +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ac0afaf210ca89ebd3dc6798b44a923d +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ac3dd20c3079957e6543251f6c6565bc +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/c8297abf45d95e6b50a977ac286c4416 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/cb05c309abebfd78bfa687ea7ec893c9 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/cba3dd7cc3802e4d5ac14a44c1846f08 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/cc1ae9d597a5f4ab4ff90b6ae37e5952 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d2a9756a14b665060574742c4ea33429 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d49ce2111c14bc8f827481d660ae2256 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d69f621b8584a241ef83d7144b5bf05e +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/dedbb55c79535e15a1e57650e4c39659 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/f64fc5a7979fecfb0b31bee536ff4cbd +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/fcbb570c156ad59bdcc099427cba1c4e +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dff26a191435e6d7753f097045f0a9e60bc64804
|
4
|
+
data.tar.gz: 040f48a724627125fc035dfee1a4bfec1ab7ad4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aae9ca5d3d8a5460c01381eebd641ed102eb911958d6fb59b7cdfd6e8c1b4f72e2663957fedfe0a9b8ae7bb5d21b052495c2030d7d71ad8967526a2b9af56add
|
7
|
+
data.tar.gz: 20da7e130bf4b64e49efc0777f07fad61c548b6b14028dd7dc564c69e4f5ba7f193e2b79aa324b467dca1510efbc7af928db585e979f62e92e674d02855fe0a1
|
data/README.md
CHANGED
@@ -8,7 +8,6 @@ This plugin provides hierarchical facets for [Blacklight](https://github.com/pro
|
|
8
8
|
Add the plugin to your Blacklight app's Gemfile
|
9
9
|
|
10
10
|
gem 'blacklight-hierarchy'
|
11
|
-
#gem 'blacklight-hierarchy', :git => 'git@github.com:sul-dlss/blacklight-hierarchy.git'
|
12
11
|
|
13
12
|
Index your hierarchies in colon-separated list. For example, items in a "processing" queue with a "copy" action, might be indexed as
|
14
13
|
|
@@ -46,15 +45,16 @@ In your Blacklight controller configuration (usually `CatalogController`), tell
|
|
46
45
|
config.add_facet_field 'queue_status_facet', :label => 'Queue Status',
|
47
46
|
:partial => 'blacklight/hierarchy/facet_hierarchy'
|
48
47
|
|
49
|
-
Add the hierarchy-specific options to the controller configuration
|
48
|
+
Add the hierarchy-specific options to the controller configuration (values are arrays: 1st element is array, 2nd is delimiter string):
|
50
49
|
|
51
50
|
config.facet_display = {
|
52
51
|
:hierarchy => {
|
53
|
-
'
|
52
|
+
'wf' => [['wps','wsp','swp'], ':'],
|
53
|
+
'callnum' => [['top_facet'], '/']
|
54
54
|
}
|
55
55
|
}
|
56
56
|
|
57
|
-
|
57
|
+
Note that the delimiter MUST be specified at the present time, and MUST be the acual delimited used in the Solr field value.
|
58
58
|
|
59
59
|
## Caveats
|
60
60
|
|
data/Rakefile
CHANGED
@@ -18,9 +18,7 @@ task :default => :ci
|
|
18
18
|
require 'rspec/core/rake_task'
|
19
19
|
|
20
20
|
desc "Run specs"
|
21
|
-
RSpec::Core::RakeTask.new(:rspec)
|
22
|
-
spec.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb", "-t ~wip"]
|
23
|
-
end
|
21
|
+
RSpec::Core::RakeTask.new(:rspec)
|
24
22
|
task :spec => :rspec
|
25
23
|
|
26
24
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Blacklight::HierarchyHelper
|
2
2
|
|
3
|
-
# Putting bare HTML strings in a helper sucks. But in this case, with a
|
3
|
+
# Putting bare HTML strings in a helper sucks. But in this case, with a
|
4
4
|
# lot of recursive tree-walking going on, it's an order of magnitude faster
|
5
5
|
# than either render(:partial) or content_tag
|
6
6
|
def render_facet_hierarchy_item(field_name, data, key)
|
@@ -9,7 +9,7 @@ module Blacklight::HierarchyHelper
|
|
9
9
|
|
10
10
|
li_class = subset.empty? ? 'h-leaf' : 'h-node'
|
11
11
|
li = ul = ''
|
12
|
-
|
12
|
+
|
13
13
|
if item.nil?
|
14
14
|
li = key
|
15
15
|
elsif facet_in_params?(field_name, item.qvalue)
|
@@ -17,48 +17,44 @@ module Blacklight::HierarchyHelper
|
|
17
17
|
else
|
18
18
|
li = render_qfacet_value(field_name, item)
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
unless subset.empty?
|
22
|
-
subul = subset.keys.sort.collect do |subkey|
|
23
|
-
render_facet_hierarchy_item(field_name, subset[subkey], subkey)
|
22
|
+
subul = subset.keys.sort.collect do |subkey|
|
23
|
+
render_facet_hierarchy_item(field_name, subset[subkey], subkey)
|
24
24
|
end.join('')
|
25
25
|
ul = "<ul>#{subul}</ul>".html_safe
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
%{<li class="#{li_class}">#{li.html_safe}#{ul.html_safe}</li>}.html_safe
|
29
29
|
end
|
30
30
|
|
31
|
-
# TODO: remove baked in notion of
|
32
|
-
#
|
33
|
-
#
|
31
|
+
# TODO: remove baked in notion of _facet being the suffix of the Solr field name
|
32
|
+
#
|
34
33
|
# @param [Blacklight::Configuration::FacetField] as defined in controller with config.add_facet_field (and with :partial => 'blacklight/hierarchy/facet_hierarchy')
|
35
34
|
# @return [String] html for the facet tree
|
36
|
-
def render_hierarchy(bl_facet_field)
|
35
|
+
def render_hierarchy(bl_facet_field, delim='_')
|
37
36
|
field_name = bl_facet_field.field
|
38
|
-
prefix = field_name.gsub("
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
""
|
46
|
-
end
|
37
|
+
prefix = field_name.gsub("#{delim}#{field_name.split(/#{delim}/).last}", '')
|
38
|
+
facet_tree_for_prefix = facet_tree(prefix)
|
39
|
+
tree = facet_tree_for_prefix ? facet_tree_for_prefix[field_name] : nil
|
40
|
+
return '' unless tree
|
41
|
+
tree.keys.sort.collect do |key|
|
42
|
+
render_facet_hierarchy_item(field_name, tree[key], key)
|
43
|
+
end.join("\n").html_safe
|
47
44
|
end
|
48
45
|
|
49
46
|
def render_qfacet_value(facet_solr_field, item, options ={})
|
50
47
|
(link_to_unless(options[:suppress_link], item.value, add_facet_params(facet_solr_field, item.qvalue), :class=>"facet_select") + " " + render_facet_count(item.hits)).html_safe
|
51
48
|
end
|
52
49
|
|
53
|
-
# Standard display of a SELECTED facet value, no link, special span
|
54
|
-
# with class, and 'remove' button.
|
50
|
+
# Standard display of a SELECTED facet value, no link, special span with class, and 'remove' button.
|
55
51
|
def render_selected_qfacet_value(facet_solr_field, item)
|
56
52
|
content_tag(:span, render_qfacet_value(facet_solr_field, item, :suppress_link => true), :class => "selected") + " " +
|
57
53
|
link_to(content_tag(:span, '', :class => "glyphicon glyphicon-remove") + content_tag(:span, '[remove]', :class => 'sr-only'), remove_facet_params(facet_solr_field, item.qvalue, params), :class=>"remove")
|
58
54
|
end
|
59
55
|
|
60
56
|
HierarchicalFacetItem = Struct.new :qvalue, :value, :hits
|
61
|
-
|
57
|
+
|
62
58
|
# @param [String] hkey - a key to access the rest of the hierarchy tree, as defined in controller config.facet_display[:hierarchy] declaration.
|
63
59
|
# e.g. if you had this in controller:
|
64
60
|
# config.facet_display = {
|
@@ -70,42 +66,40 @@ module Blacklight::HierarchyHelper
|
|
70
66
|
# then possible hkey values would be 'wf' and 'callnum'
|
71
67
|
def facet_tree(hkey)
|
72
68
|
@facet_tree ||= {}
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
end
|
95
|
-
end
|
69
|
+
return @facet_tree[hkey] unless @facet_tree[hkey].nil?
|
70
|
+
return @facet_tree[hkey] unless blacklight_config.facet_display[:hierarchy] && blacklight_config.facet_display[:hierarchy][hkey]
|
71
|
+
@facet_tree[hkey] = {}
|
72
|
+
facet_config= blacklight_config.facet_display[:hierarchy][hkey]
|
73
|
+
split_regex = Regexp.new("\s*#{Regexp.escape(facet_config.length >= 2 ? facet_config[1] : ':')}\s*")
|
74
|
+
facet_config.first.each { |key|
|
75
|
+
# TODO: remove baked in notion of underscores being part of the blacklight facet field names
|
76
|
+
facet_field = [hkey,key].compact.join('_')
|
77
|
+
@facet_tree[hkey][facet_field] ||= {}
|
78
|
+
data = @response.facet_by_field_name(facet_field)
|
79
|
+
next if data.nil?
|
80
|
+
|
81
|
+
data.items.each { |facet_item|
|
82
|
+
path = facet_item.value.split(split_regex)
|
83
|
+
loc = @facet_tree[hkey][facet_field]
|
84
|
+
while path.length > 0
|
85
|
+
loc = loc[path.shift] ||= {}
|
86
|
+
end
|
87
|
+
loc[:_] = HierarchicalFacetItem.new(facet_item.value, facet_item.value.split(split_regex).last, facet_item.hits)
|
88
|
+
}
|
89
|
+
}
|
96
90
|
@facet_tree[hkey]
|
97
91
|
end
|
98
92
|
|
99
|
-
# --------------------------------------------------------------------------------------------------------------------------------
|
93
|
+
# --------------------------------------------------------------------------------------------------------------------------------
|
100
94
|
# below are methods pertaining to the "rotate" notion where you may want to look at the same tree data organized another way
|
101
|
-
# --------------------------------------------------------------------------------------------------------------------------------
|
102
|
-
|
95
|
+
# --------------------------------------------------------------------------------------------------------------------------------
|
96
|
+
|
103
97
|
# FIXME: remove baked in underscore separator in field name
|
104
98
|
def is_hierarchical?(field_name)
|
105
99
|
(prefix,order) = field_name.split(/_/, 2)
|
106
100
|
list = blacklight_config.facet_display[:hierarchy][prefix] and list.include?(order)
|
107
101
|
end
|
108
|
-
|
102
|
+
|
109
103
|
def facet_order(prefix)
|
110
104
|
param_name = "#{prefix}_facet_order".to_sym
|
111
105
|
params[param_name] || blacklight_config.facet_display[:hierarchy][prefix].first
|
@@ -125,7 +119,7 @@ module Blacklight::HierarchyHelper
|
|
125
119
|
false
|
126
120
|
end
|
127
121
|
end
|
128
|
-
|
122
|
+
|
129
123
|
# FIXME: remove baked in colon separator
|
130
124
|
def rotate_facet_value(val, from, to)
|
131
125
|
components = Hash[from.split(//).zip(val.split(/:/))]
|
data/spec/features/basic_spec.rb
CHANGED
@@ -1,22 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
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
|
3
|
+
shared_examples "catalog" do
|
20
4
|
|
21
5
|
context "facet tree without repeated nodes" do
|
22
6
|
before {
|
@@ -27,16 +11,16 @@ describe "catalog" do
|
|
27
11
|
'facet_fields' => {
|
28
12
|
'tag_facet' => [
|
29
13
|
'a:b:c', 30,
|
30
|
-
'a:b:d', 25,
|
31
|
-
'a:c:d', 5,
|
32
|
-
'p:r:q', 25,
|
33
|
-
'x:y', 5,
|
14
|
+
'a:b:d', 25,
|
15
|
+
'a:c:d', 5,
|
16
|
+
'p:r:q', 25,
|
17
|
+
'x:y', 5,
|
34
18
|
'n', 1 ],
|
35
19
|
'my_top_facet' => [
|
36
20
|
'f/g/h', 30,
|
37
|
-
'j/k', 5,
|
38
|
-
'z', 1 ],
|
39
|
-
},
|
21
|
+
'j/k', 5,
|
22
|
+
'z', 1 ],
|
23
|
+
},
|
40
24
|
'facet_dates' => {},
|
41
25
|
'facet_ranges' => {}
|
42
26
|
}
|
@@ -80,7 +64,7 @@ describe "catalog" do
|
|
80
64
|
expect(page).to have_selector('.facet-hierarchy > li.h-leaf', :text => 'z 1')
|
81
65
|
end
|
82
66
|
end # facet tree without repeated nodes
|
83
|
-
|
67
|
+
|
84
68
|
context "facet tree with repeated nodes" do
|
85
69
|
before do
|
86
70
|
facet_resp = {'responseHeader'=>{'status'=>0, 'QTime'=>4, 'params'=>{'wt'=>'ruby','rows'=>'0'}},
|
@@ -91,7 +75,7 @@ describe "catalog" do
|
|
91
75
|
'tag_facet' => [
|
92
76
|
'm:w:w:t', 15,
|
93
77
|
'm:w:v:z', 10],
|
94
|
-
},
|
78
|
+
},
|
95
79
|
'facet_dates' => {},
|
96
80
|
'facet_ranges' => {}
|
97
81
|
}
|
@@ -112,3 +96,41 @@ describe "catalog" do
|
|
112
96
|
end
|
113
97
|
|
114
98
|
end
|
99
|
+
|
100
|
+
describe "config_1" do
|
101
|
+
it_behaves_like "catalog" do
|
102
|
+
before do
|
103
|
+
CatalogController.blacklight_config = Blacklight::Configuration.new
|
104
|
+
CatalogController.configure_blacklight do |config|
|
105
|
+
# config.add_facet_field 'rotate_tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
|
106
|
+
config.add_facet_field 'tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
|
107
|
+
config.add_facet_field 'my_top_facet', :label => 'Slash Delim', :partial => 'blacklight/hierarchy/facet_hierarchy'
|
108
|
+
config.facet_display = {
|
109
|
+
:hierarchy => {
|
110
|
+
# 'rotate' => [['tag' ], ':'], # this would work if config.add_facet_field was called rotate_tag_facet, instead of tag_facet, I think.
|
111
|
+
'tag' => [['facet'], ':'], # stupidly, the facet field is expected to have an underscore followed by SOMETHING; in this case it is "facet"
|
112
|
+
'my_top' => [['facet'], '/']
|
113
|
+
}
|
114
|
+
}
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "config_2" do
|
121
|
+
it_behaves_like "catalog" do
|
122
|
+
before do
|
123
|
+
CatalogController.blacklight_config = Blacklight::Configuration.new
|
124
|
+
CatalogController.configure_blacklight do |config|
|
125
|
+
config.add_facet_field 'tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
|
126
|
+
config.add_facet_field 'my_top_facet', :label => 'Slash Delim', :partial => 'blacklight/hierarchy/facet_hierarchy'
|
127
|
+
config.facet_display = {
|
128
|
+
:hierarchy => {
|
129
|
+
'tag' => [['facet']], # rely on default delim
|
130
|
+
'my_top' => [['facet'], '/']
|
131
|
+
}
|
132
|
+
}
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
data/spec/internal/Gemfile
CHANGED
@@ -2,17 +2,17 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
|
4
4
|
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
5
|
-
gem 'rails', '4.1
|
5
|
+
gem 'rails', '4.2.1'
|
6
6
|
# Use sqlite3 as the database for Active Record
|
7
7
|
gem 'sqlite3'
|
8
8
|
# Use SCSS for stylesheets
|
9
|
-
gem 'sass-rails', '~>
|
9
|
+
gem 'sass-rails', '~> 5.0'
|
10
10
|
# Use Uglifier as compressor for JavaScript assets
|
11
11
|
gem 'uglifier', '>= 1.3.0'
|
12
|
-
# Use CoffeeScript for .
|
13
|
-
gem 'coffee-rails', '~> 4.
|
14
|
-
# See https://github.com/
|
15
|
-
# gem 'therubyracer',
|
12
|
+
# Use CoffeeScript for .coffee assets and views
|
13
|
+
gem 'coffee-rails', '~> 4.1.0'
|
14
|
+
# See https://github.com/rails/execjs#readme for more supported runtimes
|
15
|
+
# gem 'therubyracer', platforms: :ruby
|
16
16
|
|
17
17
|
# Use jquery as the JavaScript library
|
18
18
|
gem 'jquery-rails'
|
@@ -21,20 +21,27 @@ gem 'turbolinks'
|
|
21
21
|
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
22
22
|
gem 'jbuilder', '~> 2.0'
|
23
23
|
# bundle exec rake doc:rails generates the API under doc/api.
|
24
|
-
gem 'sdoc', '~> 0.4.0',
|
24
|
+
gem 'sdoc', '~> 0.4.0', group: :doc
|
25
25
|
|
26
26
|
# Use ActiveModel has_secure_password
|
27
27
|
# gem 'bcrypt', '~> 3.1.7'
|
28
28
|
|
29
|
-
# Use
|
29
|
+
# Use Unicorn as the app server
|
30
30
|
# gem 'unicorn'
|
31
31
|
|
32
32
|
# Use Capistrano for deployment
|
33
33
|
# gem 'capistrano-rails', group: :development
|
34
34
|
|
35
|
-
|
36
|
-
#
|
35
|
+
group :development, :test do
|
36
|
+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
37
|
+
gem 'byebug'
|
37
38
|
|
38
|
-
|
39
|
+
# Access an IRB console on exception pages or by using <%= console %> in views
|
40
|
+
gem 'web-console', '~> 2.0'
|
41
|
+
end
|
39
42
|
|
40
|
-
|
43
|
+
|
44
|
+
gem 'blacklight-hierarchy', :path => '/Users/ndushay/searchworks/blacklight-hierarchy'
|
45
|
+
|
46
|
+
gem 'blacklight'
|
47
|
+
gem 'rsolr', '~> 1.0.6'
|
data/spec/internal/Gemfile.lock
CHANGED
@@ -1,138 +1,172 @@
|
|
1
1
|
PATH
|
2
|
-
remote: /Users/
|
2
|
+
remote: /Users/ndushay/searchworks/blacklight-hierarchy
|
3
3
|
specs:
|
4
|
-
blacklight-hierarchy (1.
|
4
|
+
blacklight-hierarchy (0.1.1)
|
5
5
|
blacklight (~> 5, < 6)
|
6
6
|
rails (~> 4.1)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
actionmailer (4.1
|
12
|
-
actionpack (= 4.1
|
13
|
-
actionview (= 4.1
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
actionmailer (4.2.1)
|
12
|
+
actionpack (= 4.2.1)
|
13
|
+
actionview (= 4.2.1)
|
14
|
+
activejob (= 4.2.1)
|
15
|
+
mail (~> 2.5, >= 2.5.4)
|
16
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
17
|
+
actionpack (4.2.1)
|
18
|
+
actionview (= 4.2.1)
|
19
|
+
activesupport (= 4.2.1)
|
20
|
+
rack (~> 1.6)
|
19
21
|
rack-test (~> 0.6.2)
|
20
|
-
|
21
|
-
|
22
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
23
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.1)
|
24
|
+
actionview (4.2.1)
|
25
|
+
activesupport (= 4.2.1)
|
22
26
|
builder (~> 3.1)
|
23
27
|
erubis (~> 2.7.0)
|
24
|
-
|
25
|
-
|
28
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
29
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.1)
|
30
|
+
activejob (4.2.1)
|
31
|
+
activesupport (= 4.2.1)
|
32
|
+
globalid (>= 0.3.0)
|
33
|
+
activemodel (4.2.1)
|
34
|
+
activesupport (= 4.2.1)
|
26
35
|
builder (~> 3.1)
|
27
|
-
activerecord (4.1
|
28
|
-
activemodel (= 4.1
|
29
|
-
activesupport (= 4.1
|
30
|
-
arel (~>
|
31
|
-
activesupport (4.1
|
32
|
-
i18n (~> 0.
|
36
|
+
activerecord (4.2.1)
|
37
|
+
activemodel (= 4.2.1)
|
38
|
+
activesupport (= 4.2.1)
|
39
|
+
arel (~> 6.0)
|
40
|
+
activesupport (4.2.1)
|
41
|
+
i18n (~> 0.7)
|
33
42
|
json (~> 1.7, >= 1.7.7)
|
34
43
|
minitest (~> 5.1)
|
35
|
-
thread_safe (~> 0.
|
44
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
36
45
|
tzinfo (~> 1.1)
|
37
|
-
arel (
|
38
|
-
|
46
|
+
arel (6.0.0)
|
47
|
+
autoprefixer-rails (5.1.8)
|
48
|
+
execjs
|
49
|
+
json
|
50
|
+
binding_of_caller (0.7.2)
|
51
|
+
debug_inspector (>= 0.0.1)
|
52
|
+
blacklight (5.12.1)
|
39
53
|
bootstrap-sass (~> 3.2)
|
40
54
|
deprecation
|
41
|
-
kaminari (
|
55
|
+
kaminari (>= 0.15)
|
42
56
|
nokogiri (~> 1.6)
|
43
57
|
rails (>= 3.2.6, < 5)
|
44
|
-
rsolr (~> 1.0.
|
45
|
-
bootstrap-sass (3.
|
46
|
-
|
58
|
+
rsolr (~> 1.0.11)
|
59
|
+
bootstrap-sass (3.3.4.1)
|
60
|
+
autoprefixer-rails (>= 5.0.0.1)
|
61
|
+
sass (>= 3.2.19)
|
47
62
|
builder (3.2.2)
|
48
|
-
|
63
|
+
byebug (4.0.4)
|
64
|
+
columnize (= 0.9.0)
|
65
|
+
coffee-rails (4.1.0)
|
49
66
|
coffee-script (>= 2.2.0)
|
50
67
|
railties (>= 4.0.0, < 5.0)
|
51
68
|
coffee-script (2.3.0)
|
52
69
|
coffee-script-source
|
53
70
|
execjs
|
54
|
-
coffee-script-source (1.
|
55
|
-
|
71
|
+
coffee-script-source (1.9.1)
|
72
|
+
columnize (0.9.0)
|
73
|
+
debug_inspector (0.0.2)
|
74
|
+
deprecation (0.2.2)
|
56
75
|
activesupport
|
57
76
|
erubis (2.7.0)
|
58
|
-
execjs (2.
|
77
|
+
execjs (2.4.0)
|
78
|
+
globalid (0.3.3)
|
79
|
+
activesupport (>= 4.1.0)
|
59
80
|
hike (1.2.3)
|
60
|
-
i18n (0.
|
61
|
-
jbuilder (2.2.
|
81
|
+
i18n (0.7.0)
|
82
|
+
jbuilder (2.2.12)
|
62
83
|
activesupport (>= 3.0.0, < 5)
|
63
84
|
multi_json (~> 1.2)
|
64
|
-
jquery-rails (
|
65
|
-
|
85
|
+
jquery-rails (4.0.3)
|
86
|
+
rails-dom-testing (~> 1.0)
|
87
|
+
railties (>= 4.2.0)
|
66
88
|
thor (>= 0.14, < 2.0)
|
67
|
-
json (1.8.
|
68
|
-
kaminari (0.16.
|
89
|
+
json (1.8.2)
|
90
|
+
kaminari (0.16.3)
|
69
91
|
actionpack (>= 3.0.0)
|
70
92
|
activesupport (>= 3.0.0)
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
rack (1.
|
82
|
-
rack-test (0.6.
|
93
|
+
loofah (2.0.1)
|
94
|
+
nokogiri (>= 1.5.9)
|
95
|
+
mail (2.6.3)
|
96
|
+
mime-types (>= 1.16, < 3)
|
97
|
+
mime-types (2.4.3)
|
98
|
+
mini_portile (0.6.2)
|
99
|
+
minitest (5.5.1)
|
100
|
+
multi_json (1.11.0)
|
101
|
+
nokogiri (1.6.6.2)
|
102
|
+
mini_portile (~> 0.6.0)
|
103
|
+
rack (1.6.0)
|
104
|
+
rack-test (0.6.3)
|
83
105
|
rack (>= 1.0)
|
84
|
-
rails (4.1
|
85
|
-
actionmailer (= 4.1
|
86
|
-
actionpack (= 4.1
|
87
|
-
actionview (= 4.1
|
88
|
-
|
89
|
-
|
90
|
-
|
106
|
+
rails (4.2.1)
|
107
|
+
actionmailer (= 4.2.1)
|
108
|
+
actionpack (= 4.2.1)
|
109
|
+
actionview (= 4.2.1)
|
110
|
+
activejob (= 4.2.1)
|
111
|
+
activemodel (= 4.2.1)
|
112
|
+
activerecord (= 4.2.1)
|
113
|
+
activesupport (= 4.2.1)
|
91
114
|
bundler (>= 1.3.0, < 2.0)
|
92
|
-
railties (= 4.1
|
93
|
-
sprockets-rails
|
94
|
-
|
95
|
-
|
96
|
-
|
115
|
+
railties (= 4.2.1)
|
116
|
+
sprockets-rails
|
117
|
+
rails-deprecated_sanitizer (1.0.3)
|
118
|
+
activesupport (>= 4.2.0.alpha)
|
119
|
+
rails-dom-testing (1.0.6)
|
120
|
+
activesupport (>= 4.2.0.beta, < 5.0)
|
121
|
+
nokogiri (~> 1.6.0)
|
122
|
+
rails-deprecated_sanitizer (>= 1.0.1)
|
123
|
+
rails-html-sanitizer (1.0.2)
|
124
|
+
loofah (~> 2.0)
|
125
|
+
railties (4.2.1)
|
126
|
+
actionpack (= 4.2.1)
|
127
|
+
activesupport (= 4.2.1)
|
97
128
|
rake (>= 0.8.7)
|
98
129
|
thor (>= 0.18.1, < 2.0)
|
99
|
-
rake (10.
|
100
|
-
rdoc (4.
|
130
|
+
rake (10.4.2)
|
131
|
+
rdoc (4.2.0)
|
101
132
|
json (~> 1.4)
|
102
|
-
rsolr (1.0.
|
133
|
+
rsolr (1.0.12)
|
103
134
|
builder (>= 2.1.2)
|
104
|
-
sass (3.
|
105
|
-
sass-rails (
|
135
|
+
sass (3.4.13)
|
136
|
+
sass-rails (5.0.3)
|
106
137
|
railties (>= 4.0.0, < 5.0)
|
107
|
-
sass (~> 3.
|
108
|
-
sprockets (
|
109
|
-
sprockets-rails (
|
138
|
+
sass (~> 3.1)
|
139
|
+
sprockets (>= 2.8, < 4.0)
|
140
|
+
sprockets-rails (>= 2.0, < 4.0)
|
141
|
+
tilt (~> 1.1)
|
110
142
|
sdoc (0.4.1)
|
111
143
|
json (~> 1.7, >= 1.7.7)
|
112
144
|
rdoc (~> 4.0)
|
113
|
-
sprockets (2.
|
145
|
+
sprockets (2.12.3)
|
114
146
|
hike (~> 1.2)
|
115
147
|
multi_json (~> 1.0)
|
116
148
|
rack (~> 1.0)
|
117
149
|
tilt (~> 1.1, != 1.3.0)
|
118
|
-
sprockets-rails (2.2.
|
150
|
+
sprockets-rails (2.2.4)
|
119
151
|
actionpack (>= 3.0)
|
120
152
|
activesupport (>= 3.0)
|
121
153
|
sprockets (>= 2.8, < 4.0)
|
122
154
|
sqlite3 (1.3.10)
|
123
155
|
thor (0.19.1)
|
124
|
-
thread_safe (0.3.
|
156
|
+
thread_safe (0.3.5)
|
125
157
|
tilt (1.4.1)
|
126
|
-
|
127
|
-
polyglot
|
128
|
-
polyglot (>= 0.3.1)
|
129
|
-
turbolinks (2.5.2)
|
158
|
+
turbolinks (2.5.3)
|
130
159
|
coffee-rails
|
131
160
|
tzinfo (1.2.2)
|
132
161
|
thread_safe (~> 0.1)
|
133
|
-
uglifier (2.
|
162
|
+
uglifier (2.7.1)
|
134
163
|
execjs (>= 0.3.0)
|
135
164
|
json (>= 1.8.0)
|
165
|
+
web-console (2.1.2)
|
166
|
+
activemodel (>= 4.0)
|
167
|
+
binding_of_caller (>= 0.7.2)
|
168
|
+
railties (>= 4.0)
|
169
|
+
sprockets-rails (>= 2.0, < 4.0)
|
136
170
|
|
137
171
|
PLATFORMS
|
138
172
|
ruby
|
@@ -140,12 +174,15 @@ PLATFORMS
|
|
140
174
|
DEPENDENCIES
|
141
175
|
blacklight
|
142
176
|
blacklight-hierarchy!
|
143
|
-
|
177
|
+
byebug
|
178
|
+
coffee-rails (~> 4.1.0)
|
144
179
|
jbuilder (~> 2.0)
|
145
180
|
jquery-rails
|
146
|
-
rails (= 4.1
|
147
|
-
|
181
|
+
rails (= 4.2.1)
|
182
|
+
rsolr (~> 1.0.6)
|
183
|
+
sass-rails (~> 5.0)
|
148
184
|
sdoc (~> 0.4.0)
|
149
185
|
sqlite3
|
150
186
|
turbolinks
|
151
187
|
uglifier (>= 1.3.0)
|
188
|
+
web-console (~> 2.0)
|