atrium 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (382) hide show
  1. data/.gitignore +9 -1
  2. data/.rspec +2 -0
  3. data/.rvmrc +1 -1
  4. data/CONTRIBUTING.md +73 -0
  5. data/Gemfile +27 -2
  6. data/Gemfile.lock +122 -246
  7. data/Guardfile +40 -10
  8. data/LICENSE +14 -0
  9. data/README.mkd +23 -39
  10. data/ROADMAP.mkd +41 -9
  11. data/Rakefile +39 -4
  12. data/app/assets/images/atrium/remove.png +0 -0
  13. data/app/assets/images/atrium/white-arrow.png +0 -0
  14. data/app/assets/javascripts/{atrium/atrium.js → atrium.js} +8 -153
  15. data/app/assets/stylesheets/{atrium/atrium.css → atrium.css} +110 -37
  16. data/app/assets/stylesheets/atrium/collections.css +4 -0
  17. data/app/assets/stylesheets/atrium/descriptions.css +4 -0
  18. data/app/assets/stylesheets/atrium/exhibits.css +4 -0
  19. data/app/assets/stylesheets/atrium/reset.css +69 -0
  20. data/app/assets/stylesheets/atrium/showcases.css +4 -0
  21. data/app/assets/stylesheets/atrium/theme.css +248 -0
  22. data/app/controllers/atrium/application_controller.rb +12 -0
  23. data/app/controllers/atrium/browse_levels_controller.rb +22 -0
  24. data/app/controllers/atrium/collections_controller.rb +42 -138
  25. data/app/controllers/atrium/descriptions_controller.rb +27 -146
  26. data/app/controllers/atrium/exhibits_controller.rb +51 -77
  27. data/app/controllers/atrium/order_controller.rb +74 -0
  28. data/app/controllers/atrium/showcases_controller.rb +96 -117
  29. data/app/helpers/atrium/application_helper.rb +8 -0
  30. data/app/helpers/atrium/collections_helper.rb +44 -0
  31. data/app/helpers/atrium/descriptions_helper.rb +4 -0
  32. data/app/helpers/atrium/exhibits_helper.rb +4 -0
  33. data/app/helpers/atrium/showcases_helper.rb +34 -0
  34. data/app/models/atrium/browse_level.rb +21 -11
  35. data/app/models/atrium/collection.rb +70 -36
  36. data/app/models/atrium/configuration.rb +66 -0
  37. data/app/models/atrium/description.rb +39 -88
  38. data/app/models/atrium/essay.rb +4 -5
  39. data/app/models/atrium/exhibit.rb +28 -19
  40. data/app/models/atrium/is_showcased_mixin.rb +34 -0
  41. data/app/models/atrium/query_param_mixin.rb +105 -0
  42. data/app/models/atrium/search/facet.rb +14 -25
  43. data/app/models/atrium/search/facet_selection.rb +10 -12
  44. data/app/models/atrium/showcase.rb +105 -95
  45. data/app/models/atrium/showcase/facet_selection.rb +18 -18
  46. data/app/models/atrium/showcase/featured_selection.rb +15 -0
  47. data/app/services/browse_level_evaluation_service.rb +131 -0
  48. data/app/services/current_filter_query_params_extraction_service.rb +91 -0
  49. data/app/services/navigation_tree.rb +13 -0
  50. data/app/services/params_adaptor_for_filter.rb +18 -0
  51. data/app/views/atrium/collections/_form.html.erb +149 -72
  52. data/app/views/atrium/collections/_head.html.erb +3 -0
  53. data/app/views/atrium/collections/edit.html.erb +1 -4
  54. data/app/views/atrium/collections/index.html.erb +14 -0
  55. data/app/views/atrium/collections/new.html.erb +2 -5
  56. data/app/views/atrium/collections/show.html.erb +11 -29
  57. data/app/views/atrium/descriptions/_form.html.erb +47 -49
  58. data/app/views/atrium/descriptions/edit.html.erb +1 -2
  59. data/app/views/atrium/descriptions/index.html.erb +2 -8
  60. data/app/views/atrium/descriptions/new.html.erb +2 -1
  61. data/app/views/atrium/descriptions/show.html.erb +2 -20
  62. data/app/views/atrium/exhibits/_exhibit.html.erb +1 -0
  63. data/app/views/atrium/exhibits/_form.html.erb +143 -96
  64. data/app/views/atrium/exhibits/edit.html.erb +1 -8
  65. data/app/views/atrium/exhibits/index.html.erb +2 -0
  66. data/app/views/atrium/exhibits/new.html.erb +0 -5
  67. data/app/views/atrium/exhibits/show.html.erb +2 -34
  68. data/app/views/atrium/showcases/_configure_menu.html.erb +55 -0
  69. data/app/views/atrium/showcases/_form.html.erb +40 -0
  70. data/app/views/atrium/showcases/edit.html.erb +3 -0
  71. data/app/views/atrium/showcases/index.html.erb +32 -0
  72. data/app/views/atrium/showcases/new.html.erb +3 -0
  73. data/app/views/atrium/showcases/show.html.erb +2 -1
  74. data/app/views/layouts/atrium.html.erb +16 -24
  75. data/app/views/layouts/atrium/application.html.erb +49 -0
  76. data/app/views/layouts/atrium/themes/default.html.erb +15 -0
  77. data/app/views/shared/_list_searchs.html.erb +4 -0
  78. data/app/views/shared/_navigation.html.erb +19 -0
  79. data/atrium.gemspec +31 -64
  80. data/config/routes.rb +40 -10
  81. data/{lib/generators/atrium/templates/migrations/create_atrium_collections.rb → db/migrate/20120730170406_create_atrium_collections.rb} +2 -1
  82. data/{lib/generators/atrium/templates/migrations/create_atrium_showcases.rb → db/migrate/20120731134846_create_atrium_showcases.rb} +3 -4
  83. data/{lib/generators/atrium/templates/migrations/create_atrium_exhibits.rb → db/migrate/20120731134856_create_atrium_exhibits.rb} +2 -1
  84. data/{lib/generators/atrium/templates/migrations/create_atrium_descriptions.rb → db/migrate/20120731134904_create_atrium_descriptions.rb} +2 -1
  85. data/{lib/generators/atrium/templates/migrations/create_atrium_essays.rb → db/migrate/20120731135534_create_atrium_essays.rb} +3 -2
  86. data/{lib/generators/atrium/templates/migrations/create_atrium_search_facets.rb → db/migrate/20120731135721_create_atrium_search_facets.rb} +1 -1
  87. data/{lib/generators/atrium/templates/migrations/create_atrium_showcase_facet_selections.rb → db/migrate/20120731140621_create_atrium_showcase_facet_selections.rb} +6 -2
  88. data/{lib/generators/atrium/templates/migrations/create_atrium_browse_levels.rb → db/migrate/20120801145241_create_atrium_browse_levels.rb} +1 -1
  89. data/db/migrate/20120820183808_create_selected_items.rb +16 -0
  90. data/db/migrate/20120823135716_update_atrium_collection_indices.rb +13 -0
  91. data/db/migrate/20120823143315_add_lookup_indices_as_required.rb +11 -0
  92. data/lib/atrium.rb +40 -36
  93. data/lib/atrium/engine.rb +4 -8
  94. data/lib/atrium/exceptions.rb +10 -0
  95. data/lib/atrium/version.rb +2 -2
  96. data/lib/generators/atrium/install/USAGE +8 -0
  97. data/lib/generators/atrium/install/install_generator.rb +86 -0
  98. data/lib/generators/atrium/install/templates/atrium_initializer.rb +21 -0
  99. data/lib/generators/atrium/install/templates/controllers/atrium_base_controller.rb +18 -0
  100. data/lib/generators/atrium/install/templates/controllers/collections_controller.rb +40 -0
  101. data/lib/generators/atrium/install/templates/controllers/descriptions_controller.rb +36 -0
  102. data/lib/generators/atrium/install/templates/controllers/exhibits_controller.rb +47 -0
  103. data/lib/generators/atrium/install/templates/controllers/selected_items_controller.rb +26 -0
  104. data/lib/generators/atrium/install/templates/helpers/application_helper.rb +42 -0
  105. data/lib/generators/atrium/install/templates/helpers/collections_helper.rb +15 -0
  106. data/lib/generators/atrium/install/templates/helpers/navigation_helper.rb +62 -0
  107. data/lib/generators/atrium/install/templates/helpers/solr_helper.rb +138 -0
  108. data/lib/generators/atrium/install/templates/models/selected_item.rb +7 -0
  109. data/lib/generators/atrium/install/templates/views/collections/_document.html.erb +19 -0
  110. data/lib/generators/atrium/install/templates/views/collections/_exhibits.html.erb +3 -0
  111. data/lib/generators/atrium/install/templates/views/collections/_pagination.html.erb +6 -0
  112. data/lib/generators/atrium/install/templates/views/collections/browse.html.erb +16 -0
  113. data/lib/generators/atrium/install/templates/views/collections/show.html.erb +19 -0
  114. data/lib/generators/atrium/install/templates/views/descriptions/show.html.erb +8 -0
  115. data/lib/generators/atrium/install/templates/views/exhibits/_document.html.erb +19 -0
  116. data/lib/generators/atrium/install/templates/views/exhibits/_pagination.html.erb +6 -0
  117. data/lib/generators/atrium/install/templates/views/exhibits/show.html.erb +28 -0
  118. data/lib/generators/atrium/install/templates/views/folder/_selected_items_form.html.erb +8 -0
  119. data/lib/generators/atrium/install/templates/views/folder/index.html.erb +45 -0
  120. data/lib/generators/atrium/install/templates/views/shared/_document_list.html.erb +14 -0
  121. data/lib/generators/atrium/install/templates/views/shared/_featured_sources.html.erb +19 -0
  122. data/lib/generators/atrium/install/templates/views/shared/_list_descriptions.html.erb +25 -0
  123. data/lib/generators/atrium/install/templates/views/shared/_masthead.html.erb +19 -0
  124. data/lib/generators/atrium/install/templates/views/shared/_navigation_browse_level.html.erb +34 -0
  125. data/lib/generators/atrium/install/templates/views/shared/_showcases.html.erb +12 -0
  126. data/lib/generators/atrium/install/templates/views/shared/_side_bar_navigation.html.erb +20 -0
  127. data/lib/generators/atrium/service/USAGE +9 -0
  128. data/lib/generators/atrium/service/service_generator.rb +16 -0
  129. data/lib/generators/atrium/service/templates/service.rb.erb +2 -0
  130. data/lib/generators/atrium/service/templates/service_spec.rb.erb +4 -0
  131. data/lib/generators/atrium/theme/USAGE +8 -0
  132. data/lib/generators/atrium/theme/templates/theme.html.erb +14 -0
  133. data/lib/generators/atrium/theme/theme_generator.rb +11 -0
  134. data/lib/tasks/atrium_tasks.rake +4 -0
  135. data/script/rails +10 -0
  136. data/spec/atrium_spec.rb +10 -0
  137. data/spec/controllers/atrium/application_controller_spec.rb +7 -0
  138. data/spec/controllers/atrium/collections_controller_spec.rb +125 -0
  139. data/spec/controllers/atrium/descriptions_controller_spec.rb +142 -0
  140. data/spec/controllers/atrium/exhibits_controller_spec.rb +102 -0
  141. data/spec/controllers/atrium/order_controller_spec.rb +100 -0
  142. data/spec/controllers/atrium/showcases_controller_spec.rb +217 -0
  143. data/spec/dummy/README.rdoc +261 -0
  144. data/spec/dummy/Rakefile +7 -0
  145. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  146. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  147. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  148. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  149. data/spec/dummy/app/mailers/.gitkeep +0 -0
  150. data/spec/dummy/app/models/.gitkeep +0 -0
  151. data/spec/dummy/app/models/collection.rb +3 -0
  152. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  153. data/spec/dummy/config.ru +4 -0
  154. data/spec/dummy/config/application.rb +59 -0
  155. data/spec/dummy/config/boot.rb +10 -0
  156. data/spec/dummy/config/database.yml +25 -0
  157. data/spec/dummy/config/environment.rb +5 -0
  158. data/spec/dummy/config/environments/development.rb +37 -0
  159. data/spec/dummy/config/environments/production.rb +67 -0
  160. data/spec/dummy/config/environments/test.rb +37 -0
  161. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  162. data/spec/dummy/config/initializers/inflections.rb +15 -0
  163. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  164. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  165. data/spec/dummy/config/initializers/session_store.rb +8 -0
  166. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  167. data/spec/dummy/config/locales/en.yml +5 -0
  168. data/spec/dummy/config/routes.rb +4 -0
  169. data/spec/dummy/db/schema.rb +124 -0
  170. data/spec/dummy/lib/assets/.gitkeep +0 -0
  171. data/spec/dummy/log/.gitkeep +0 -0
  172. data/spec/dummy/public/404.html +26 -0
  173. data/spec/dummy/public/422.html +26 -0
  174. data/spec/dummy/public/500.html +25 -0
  175. data/spec/dummy/public/favicon.ico +0 -0
  176. data/spec/dummy/script/rails +6 -0
  177. data/spec/dummy/test/fixtures/collections.yml +11 -0
  178. data/spec/dummy/test/unit/collection_test.rb +7 -0
  179. data/spec/factories/atrium_collections.rb +8 -0
  180. data/spec/factories/atrium_exhibits.rb +9 -0
  181. data/spec/factories/atrium_search_facets.rb +8 -0
  182. data/spec/factories/atrium_showcases.rb +25 -0
  183. data/spec/helpers/atrium/collections_helper_spec.rb +57 -0
  184. data/spec/helpers/atrium/showcases_helper_spec.rb +56 -0
  185. data/spec/models/atrium/browse_level_spec.rb +56 -0
  186. data/spec/models/atrium/collection_spec.rb +76 -0
  187. data/spec/models/atrium/configuration_spec.rb +114 -0
  188. data/spec/models/atrium/description_spec.rb +56 -0
  189. data/spec/models/atrium/essay_spec.rb +16 -0
  190. data/spec/models/atrium/exhibit_spec.rb +90 -0
  191. data/spec/models/atrium/search/facet_selection_spec.rb +23 -0
  192. data/{test_support/spec → spec}/models/atrium/search/facet_spec.rb +2 -4
  193. data/{test_support/spec → spec}/models/atrium/showcase/facet_selection_spec.rb +5 -5
  194. data/spec/models/atrium/showcase/featured_selection_spec.rb +18 -0
  195. data/spec/models/atrium/showcase_spec.rb +97 -0
  196. data/spec/services/browse_level_evaluation_service_spec.rb +33 -0
  197. data/spec/services/current_filter_query_params_extraction_service_spec.rb +34 -0
  198. data/spec/services/navigation_tree_spec.rb +18 -0
  199. data/spec/services/params_adaptor_for_filter_spec.rb +8 -0
  200. data/spec/spec_helper.rb +39 -0
  201. data/spec/support/accept_nested_attributes_for.rb +39 -0
  202. data/{test_support/spec → spec}/support/be_accessible_matcher.rb +0 -0
  203. data/{test_support/spec → spec}/support/be_routed_mixin.rb +0 -0
  204. data/spec/support/controller_hacks.rb +35 -0
  205. data/spec/support/routes.rb +5 -0
  206. data/spec/support/shared_examples/is_showcased_mixin.rb +20 -0
  207. data/spec/support/shared_examples/query_param_mixin.rb +179 -0
  208. data/{app/assets/stylesheets/atrium → vendor/assets/images}/chosen-sprite.png +0 -0
  209. data/{app → vendor}/assets/javascripts/chosen.jquery.js +0 -0
  210. data/{app → vendor}/assets/javascripts/ckeditor.warning.js +0 -0
  211. data/{app → vendor}/assets/javascripts/ckeditor/config.js.coffee +0 -0
  212. data/{app → vendor}/assets/javascripts/ckeditor/jquery.generateId.js +0 -0
  213. data/{app → vendor}/assets/javascripts/ckeditor/jquery.jeditable.ckeditor.js +0 -0
  214. data/{app → vendor}/assets/javascripts/ckeditor/plugins/linkItem/application_link.png +0 -0
  215. data/{app → vendor}/assets/javascripts/ckeditor/plugins/linkItem/dialogs/linkItem.js +0 -0
  216. data/{app → vendor}/assets/javascripts/ckeditor/plugins/linkItem/plugin.js +0 -0
  217. data/{app → vendor}/assets/javascripts/ckeditor/plugins/linkItem/ui_toolbar_pencil.png +0 -0
  218. data/vendor/assets/javascripts/jquery-ui-1.8.23.custom.min.js +41 -0
  219. data/vendor/assets/javascripts/jquery-ui-build.txt +8 -0
  220. data/{app → vendor}/assets/javascripts/jquery.jeditable.js +0 -0
  221. data/{app/assets/stylesheets/atrium → vendor/assets/stylesheets}/chosen.css +4 -4
  222. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  223. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  224. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  225. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  226. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  227. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  228. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  229. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  230. data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  231. data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  232. data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  233. data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  234. data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  235. data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  236. data/vendor/assets/stylesheets/ui-lightness/jquery-ui-1.8.23.custom.css +334 -0
  237. metadata +431 -949
  238. data/GETTING_STARTED.textile +0 -102
  239. data/app/assets/images/atrium/ajax-loader.gif +0 -0
  240. data/app/assets/images/atrium/lightbox-ico-loading.gif +0 -0
  241. data/app/assets/images/atrium/logo.png +0 -0
  242. data/app/assets/javascripts/jquery.colorbox.js +0 -864
  243. data/app/assets/stylesheets/colorbox.css +0 -42
  244. data/app/assets/stylesheets/controls.png +0 -0
  245. data/app/assets/stylesheets/loading.gif +0 -0
  246. data/app/controllers/atrium/base_controller.rb +0 -25
  247. data/app/controllers/atrium/collection_exhibit_order_controller.rb +0 -21
  248. data/app/controllers/atrium/customization_controller.rb +0 -41
  249. data/app/controllers/atrium/exhibit_facet_order_controller.rb +0 -19
  250. data/app/helpers/atrium/base_helper.rb +0 -6
  251. data/app/models/ability.rb +0 -14
  252. data/app/models/atrium/showcase/item.rb +0 -19
  253. data/app/models/role_mapper.rb +0 -23
  254. data/app/views/_user_util_links.html.erb +0 -25
  255. data/app/views/atrium/collections/_bookmark_control.html.erb +0 -25
  256. data/app/views/atrium/collections/_browse_index.html.erb +0 -20
  257. data/app/views/atrium/collections/_collection_items_index.html.erb +0 -10
  258. data/app/views/atrium/collections/_document.html.erb +0 -24
  259. data/app/views/atrium/collections/_document_list.html.erb +0 -6
  260. data/app/views/atrium/collections/_edit_navigation.html.erb +0 -20
  261. data/app/views/atrium/collections/_folder_control.html.erb +0 -12
  262. data/app/views/atrium/collections/_listing.html.erb +0 -18
  263. data/app/views/atrium/collections/_navigation.html.erb +0 -50
  264. data/app/views/atrium/collections/_results_pagination.html.erb +0 -9
  265. data/app/views/atrium/collections/_sort_and_per_page.html.erb +0 -23
  266. data/app/views/atrium/exhibits/_bookmark_control.html.erb +0 -25
  267. data/app/views/atrium/exhibits/_folder_control.html.erb +0 -12
  268. data/app/views/atrium/exhibits/_navigation.html.erb +0 -30
  269. data/app/views/atrium/showcases/_showcase_navigation.html.erb +0 -23
  270. data/app/views/catalog/_collection_home_text.html.erb +0 -6
  271. data/app/views/catalog/_constraints.html.erb +0 -9
  272. data/app/views/catalog/_default_collection_text.html.erb +0 -18
  273. data/app/views/catalog/_default_home_text.html.erb +0 -6
  274. data/app/views/catalog/_home_text.html.erb +0 -6
  275. data/app/views/catalog/_index_partials/_description.html.erb +0 -8
  276. data/app/views/catalog/_search_form.html.erb +0 -66
  277. data/app/views/catalog/_show_partials/_description.html.erb +0 -15
  278. data/app/views/catalog/browse_show.html.erb +0 -18
  279. data/app/views/catalog/index.html.erb +0 -41
  280. data/app/views/catalog/list_description.html.erb +0 -24
  281. data/app/views/catalog/list_item.html.erb +0 -3
  282. data/app/views/layouts/atrium_themes/default.html.erb +0 -4
  283. data/app/views/layouts/item_listing.html.erb +0 -36
  284. data/app/views/listing/_document.html.erb +0 -27
  285. data/app/views/listing/_document_list.html.erb +0 -3
  286. data/app/views/listing/_item_search.html.erb +0 -27
  287. data/app/views/shared/_banner.html.erb +0 -5
  288. data/app/views/shared/_collection_complete_list.html.erb +0 -33
  289. data/app/views/shared/_collection_search_form.html.erb +0 -12
  290. data/app/views/shared/_collection_title_header.html.erb +0 -3
  291. data/app/views/shared/_featured_sources.html.erb +0 -23
  292. data/app/views/shared/_list_descriptions.html.erb +0 -39
  293. data/app/views/shared/_navigation_browse_levels.html.erb +0 -34
  294. data/app/views/shared/_showcase_configure_menu.html.erb +0 -22
  295. data/app/views/shared/_top_navigation.html.erb +0 -9
  296. data/init.rb +0 -3
  297. data/lib/application_controller.rb +0 -24
  298. data/lib/atrium/application_helper.rb +0 -24
  299. data/lib/atrium/atrium_helper_behavior.rb +0 -159
  300. data/lib/atrium/catalog.rb +0 -203
  301. data/lib/atrium/collections_helper.rb +0 -172
  302. data/lib/atrium/controller.rb +0 -10
  303. data/lib/atrium/descriptions_helper.rb +0 -27
  304. data/lib/atrium/layout_helper.rb +0 -13
  305. data/lib/atrium/routes.rb +0 -100
  306. data/lib/atrium/solr_helper.rb +0 -440
  307. data/lib/generators/atrium/assets_generator.rb +0 -44
  308. data/lib/generators/atrium/atrium_generator.rb +0 -149
  309. data/lib/generators/atrium/cucumber_support_generator.rb +0 -29
  310. data/lib/generators/atrium/templates/config/role_map_cucumber.yml +0 -2
  311. data/lib/generators/atrium/templates/config/role_map_development.yml +0 -2
  312. data/lib/generators/atrium/templates/config/role_map_production.yml +0 -2
  313. data/lib/generators/atrium/templates/config/role_map_test.yml +0 -2
  314. data/lib/generators/atrium/templates/config/solr.yml +0 -10
  315. data/lib/generators/atrium/templates/db/seeds.rb +0 -87
  316. data/lib/generators/atrium/templates/migrations/create_atrium_showcase_items.rb +0 -17
  317. data/lib/generators/atrium/templates/themes/example.html.erb +0 -21
  318. data/lib/railties/all_tests.rake +0 -23
  319. data/lib/railties/atrium_cucumber.rake +0 -121
  320. data/lib/railties/index.rake +0 -37
  321. data/tasks/atrium.rake +0 -268
  322. data/tasks/atrium_rspec.rake +0 -91
  323. data/test_support/etc/Gemfile +0 -33
  324. data/test_support/etc/bundle_config +0 -3
  325. data/test_support/etc/rvmrc +0 -32
  326. data/test_support/features/atrium_collections.feature +0 -162
  327. data/test_support/features/atrium_exhibits.feature +0 -164
  328. data/test_support/features/step_definitions/atrium_collection_steps.rb +0 -102
  329. data/test_support/features/step_definitions/atrium_exhibit_steps.rb +0 -53
  330. data/test_support/features/step_definitions/bookmarks_steps.rb +0 -6
  331. data/test_support/features/step_definitions/error_steps.rb +0 -5
  332. data/test_support/features/step_definitions/folder_steps.rb +0 -27
  333. data/test_support/features/step_definitions/general_steps.rb +0 -50
  334. data/test_support/features/step_definitions/record_view_steps.rb +0 -12
  335. data/test_support/features/step_definitions/saved_searches_steps.rb +0 -22
  336. data/test_support/features/step_definitions/search_facets_steps.rb +0 -29
  337. data/test_support/features/step_definitions/search_history_steps.rb +0 -9
  338. data/test_support/features/step_definitions/search_result_steps.rb +0 -114
  339. data/test_support/features/step_definitions/search_steps.rb +0 -103
  340. data/test_support/features/step_definitions/user_steps.rb +0 -5
  341. data/test_support/features/step_definitions/web_steps.rb +0 -213
  342. data/test_support/features/support/env.rb +0 -67
  343. data/test_support/features/support/paths.rb +0 -76
  344. data/test_support/features/support/selectors.rb +0 -40
  345. data/test_support/fixtures/atrium_exhibits.yml +0 -3
  346. data/test_support/spec/controllers/atrium/base_controller_spec.rb +0 -13
  347. data/test_support/spec/controllers/atrium/collection_exhibit_order_controller_spec.rb +0 -29
  348. data/test_support/spec/controllers/atrium/collections_controller_spec.rb +0 -185
  349. data/test_support/spec/controllers/atrium/customization_controller_spec.rb +0 -38
  350. data/test_support/spec/controllers/atrium/descriptions_controller_spec.rb +0 -150
  351. data/test_support/spec/controllers/atrium/exhibit_facet_order_controller_spec.rb +0 -36
  352. data/test_support/spec/controllers/atrium/exhibits_controller_spec.rb +0 -192
  353. data/test_support/spec/controllers/atrium/showcases_controller_spec.rb +0 -219
  354. data/test_support/spec/helpers/atrium_collections_helper_spec.rb +0 -147
  355. data/test_support/spec/helpers/atrium_description_helper_spec.rb +0 -47
  356. data/test_support/spec/helpers/atrium_solr_helper_spec.rb +0 -522
  357. data/test_support/spec/models/atrium/browse_level_spec.rb +0 -31
  358. data/test_support/spec/models/atrium/collection_spec.rb +0 -30
  359. data/test_support/spec/models/atrium/description_spec.rb +0 -67
  360. data/test_support/spec/models/atrium/essay_spec.rb +0 -12
  361. data/test_support/spec/models/atrium/exhibit_spec.rb +0 -76
  362. data/test_support/spec/models/atrium/search/facet_selection_spec.rb +0 -24
  363. data/test_support/spec/models/atrium/search_facet_spec.rb +0 -54
  364. data/test_support/spec/models/atrium/showcase/item_spec.rb +0 -12
  365. data/test_support/spec/models/atrium/showcase_facet_selection_spec.rb +0 -65
  366. data/test_support/spec/models/atrium/showcase_spec.rb +0 -134
  367. data/test_support/spec/rcov.opts +0 -3
  368. data/test_support/spec/routing/atrium/collections_routing_spec.rb +0 -33
  369. data/test_support/spec/spec.opts +0 -4
  370. data/test_support/spec/spec_helper.rb +0 -47
  371. data/test_support/tmp/step_definitions/catalog_index_steps.rb +0 -14
  372. data/test_support/tmp/step_definitions/edit_document_steps.rb +0 -67
  373. data/test_support/tmp/step_definitions/hydra_metadata_steps.rb +0 -3
  374. data/test_support/tmp/step_definitions/hydra_steps.rb +0 -8
  375. data/test_support/tmp/step_definitions/search_steps.rb +0 -86
  376. data/test_support/tmp/step_definitions/searching_steps.rb +0 -22
  377. data/test_support/tmp/step_definitions/select_steps.rb +0 -8
  378. data/test_support/tmp/step_definitions/show_document_steps.rb +0 -73
  379. data/test_support/tmp/step_definitions/user_steps.rb +0 -15
  380. data/test_support/tmp/step_definitions/web_steps.rb +0 -273
  381. data/test_support/tmp/support/env.rb +0 -54
  382. data/test_support/tmp/support/paths.rb +0 -57
data/Guardfile CHANGED
@@ -1,10 +1,40 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
- notification :gntp
4
- guard 'rspec', :notrify => 'true', :cli => '--color', :spec_paths => 'test_support/spec' do
5
- watch(%r|^app/(.*)\.rb|) { |m|
6
- "test_support/spec/#{m[1]}_spec.rb"
7
- }
8
- watch(%r|^test_support/spec/(.*)_spec\.rb|)
9
- watch('test_support/spec/spec_helper.rb') { 'test_support/spec' }
10
- end
1
+ guard 'rspec', :cli => '--color --format nested' do
2
+ if RUBY_PLATFORM =~ /linux/
3
+ require 'libnotify'
4
+ notification :libnotify
5
+ end
6
+ if RUBY_PLATFORM =~ /darwin/
7
+ require 'ruby_gntp'
8
+ notification :ruby_gntp
9
+ end
10
+ watch('spec/spec_helper.rb') {
11
+ 'spec'
12
+ }
13
+ watch('config/routes.rb') {
14
+ 'spec/routing'
15
+ }
16
+ watch('app/controllers/atrium/application_controller.rb') {
17
+ 'spec/controllers'
18
+ }
19
+
20
+ watch(%r{^spec/.+_spec\.rb$})
21
+ watch(%r{^spec/\w*/atrium/.+_spec\.rb$})
22
+
23
+ watch(%r{^app/(.+)\.rb$}) { |m|
24
+ "spec/#{m[1]}_spec.rb"
25
+ }
26
+
27
+ watch(%r{^app/(.*)(\.erb)$}) { |m|
28
+ "spec/#{m[1]}#{m[2]}_spec.rb"
29
+ }
30
+
31
+ watch(%r{^lib/(.+)\.rb$}) { |m|
32
+ "spec/lib/#{m[1]}_spec.rb"
33
+ }
34
+
35
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| [
36
+ "spec/routing/#{m[1]}_routing_spec.rb",
37
+ "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb",
38
+ "spec/acceptance/#{m[1]}_spec.rb"
39
+ ]}
40
+ end
data/LICENSE ADDED
@@ -0,0 +1,14 @@
1
+ ##########################################################################
2
+ # Copyright 2012 University of Notre Dame
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
data/README.mkd CHANGED
@@ -1,53 +1,37 @@
1
1
  # Atrium
2
2
 
3
- ## A note from the developers
3
+ Atrium is a [mountable Rails engine](http://guides.rubyonrails.org/engines.html)
4
+ that adds additional functionality to the
5
+ [blacklight](https://github.com/projectblacklight/blacklight) Rails engine.
4
6
 
5
- _0.0.1 is an alpha release. Treat it accordingly_
7
+ Think of Atrium as a lightweight Content Management System for your Blacklight
8
+ application. An Atrium::Collection is analogous to one of your managed sites. An
9
+ Atrium::Exhibit is analogous to one of the top-level pages of your site. These
10
+ "pages" can be decorated with additional information via the Atrium::Showcase.
6
11
 
7
- _"master" is going through a major refactor. THINGS MAY BREAK. THE WORLD MAY
8
- END_
12
+ The Atrium::BrowseLevel is similar to a group of pages (i.e. directory) at some
13
+ location in your site's navigation. However, instead of explicitly creating
14
+ pages in each directory, the Atrium::BrowseLevel interacts with your Blacklight
15
+ configuration and Solr index to auto-generate these pages.
9
16
 
10
- Atrium is a project that has been gestating for a while. Consider the present
11
- state of the code a proof-of-concept implementation. There are lots of things we
12
- would do differently if we started over again. For more information see
13
- `ROADMAP.mkd`. The development process is coordinated in a [public-facing
14
- JIRA][1]
17
+ ## Getting Started
15
18
 
16
- ## What it's for
19
+ Make sure your Rails application first has
20
+ [blacklight](https://github.com/projectblacklight/blacklight) installed. Then,
21
+ from the command line:
17
22
 
18
- Atrium is a tool for extending a [Blacklight][2]-enabled application by:
23
+ $ cd /path/to/rails-project
24
+ $ rake atrium:install:migrations
25
+ $ rails generate atrium:install
26
+ $ rake db:migrate
19
27
 
20
- - Grouping items
21
- - Adding context
22
- - Customizing presentation
28
+ In the all too likely scenario that you want a custom theme for an
29
+ Atrium::Collection use the following command:
23
30
 
24
- Atrium provides four mechanisms to achieve this end:
25
-
26
- - Collections
27
- - Exhibits
28
- - Showcases
29
- - Themes
30
-
31
- ### Collections
32
- A collection contains a subset of the items in the complete index as defined by
33
- a Solr query. An explicitly declared subset of the total facets can be applied
34
- to these items. A collection description and or featured items form the
35
- collection can be displayed at the top level collection page. Collections can be
36
- themed independently of the base application and other collections.
37
-
38
- ### Exhibits
39
- An exhibit is a customizable view of a single topic (as defined by a facet),
40
- further scoped by an optional Solr query. An exhibit defines it's own
41
- hierarchical list of facets. An exhibit may also have a description and a list
42
- of featured items.
43
-
44
- ### Showcases
45
- A showcase is a container for storing feature items and descriptions. A showcase
46
- can be attached to a collection, exhibit, or to specific combinations of
47
- selected facets and facet values within an exhibit. There can be multiple
48
- showcases in an exhibit.
31
+ $ rails generate atrium:theme NAME_OF_THEME
49
32
 
50
33
  ### Themes
34
+
51
35
  At present, themes are a wrapper around the existing rails templating system. A
52
36
  theme is simply a [nested layout][3] that works in conjunction with some `yeild`
53
37
  blocks in the base atrium layout. This is a pretty flexible solution but
@@ -3,6 +3,36 @@
3
3
  The following issues need to be addressed before it would be considered a 1.0
4
4
  release candidate:
5
5
 
6
+ ## Milestone 0.1.0
7
+
8
+ * Saved Search Integration with Collection and Exhibit creation
9
+ * Write a two sentence explanation of each of the models
10
+ * Collection presentation (i.e. an exhibit is displayed in the left navigation
11
+ as item #2 in the display)
12
+ * Update GETTING_STARTED
13
+ * Atrium in-development app put up on Github
14
+
15
+ * Get the in-development app running for Dan and Jeremy
16
+ * Banu walks Dan and Jeremy through the current "temp" app
17
+ * Tour of the admin
18
+ * Add Currency and Inquisition solr docs into one index (for in-development
19
+ app)
20
+
21
+ * Steps to create the collection/showcase/etc.
22
+ * Review routes, with an eye on what needs to be there. Reference
23
+ Routing.mdown
24
+ * Add ability to create a Showcase in the admin
25
+ * Tweak existing admin pages
26
+ * Extract display helpers from Blacklight
27
+
28
+ * Steps to render the collection/showcase/etc.
29
+ * Do the work in the atrium_temp_app
30
+ * Extract the views/helpers into generators
31
+ * Consider Liquid templating for views
32
+ * End-to-end specs for the in-development app (i.e. how does Blacklight tie-in
33
+ to the Atrium application)
34
+
35
+
6
36
  ### Atrium should be a mountable Rails engine -- but isn't
7
37
  Atrium was based on an early version of [hydra-head][1] which, in turn, shared
8
38
  code with [Blacklight][5] which was a Rails 2 plugin at the time. As such the
@@ -17,13 +47,23 @@ Blacklight in undesirable ways. Now that [Blacklight][5] provides Solr helper
17
47
  methods for both the Lucene query handler as well as the DisMax query handler we
18
48
  should be able to avoid this problem.
19
49
 
20
- ### The routs are ugly
50
+ ### The routes are ugly
21
51
  The routes of an application is it's public API. They should be human-readable
22
52
  and should try to conform to be [resourceful][3] whenever possible. The routes
23
53
  in Atrium will be overhauled when the gem is converted to a modern Rails engine.
24
54
  The days of `/atrium_*` are numbered. Bonus points if collections have a
25
55
  [frendliy_id][4] style identifier. See `doc/Routing.mdown` for more.
26
56
 
57
+ ### The management interface is confusing
58
+ There is a collision of concerns when managing a collection and the exhibits and
59
+ showcases it contains. Keeping all of the possible customizations straight and
60
+ conveying _what they actually mean_ hasn't been done effectively. There are lots
61
+ of little changes that could be made to the present interface that would make a
62
+ difference but more dramatic refactoring may be required to achieve the desired
63
+ result.
64
+
65
+ ## Milestone 0.2.0
66
+
27
67
  ### Keeping track of the internal application state is fragile
28
68
  The application behaves as it should under normal circumstances but it lacks
29
69
  resilience. This stems from the complexity of interacting with the same data in
@@ -47,14 +87,6 @@ Some of these issues may be able to be addressed with better routes but
47
87
  preventing these kinds of problems entirely will require refactoring a lot of
48
88
  the application logic to make stateless interactions possible.
49
89
 
50
- ### The management interface is confusing
51
- There is a collision of concerns when managing a collection and the exhibits and
52
- showcases it contains. Keeping all of the possible customizations straight and
53
- conveying _what they actually mean_ hasn't been done effectively. There are lots
54
- of little changes that could be made to the present interface that would make a
55
- difference but more dramatic refactoring may be required to achieve the desired
56
- result.
57
-
58
90
  ### The theming and templating options are underwhelming
59
91
  In order to make significant changes in the look and feel of a collection in
60
92
  Atrium you will need to know HTML, CSS, be familiar with [how Rails renders
data/Rakefile CHANGED
@@ -1,6 +1,41 @@
1
- require 'rake/testtask'
2
- require 'rake/rdoctask'
3
- require 'bundler'
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+
8
+ require 'yard/rake/yardoc_task'
9
+
10
+ namespace :doc do
11
+ YARD::Rake::YardocTask.new(:app) do |t|
12
+ t.files += [
13
+ 'app/**/*.rb',
14
+ 'spec/**/*_spec.rb',
15
+ '-',
16
+ "*.md",
17
+ "*.mkd"
18
+ ]
19
+ end
20
+ end
21
+
22
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
23
+ load 'rails/tasks/engine.rake'
24
+
25
+
26
+
4
27
  Bundler::GemHelper.install_tasks
5
28
 
6
- Dir.glob('tasks/*.rake').each { |r| import r }
29
+ #require 'rake/testtask'
30
+ #
31
+ #Rake::TestTask.new(:test) do |t|
32
+ # t.libs << 'lib'
33
+ # t.libs << 'test'
34
+ # t.pattern = 'test/**/*_test.rb'
35
+ # t.verbose = false
36
+ #end
37
+
38
+ require 'rspec/core/rake_task'
39
+ RSpec::Core::RakeTask.new(:spec)
40
+
41
+ task :default => :spec
@@ -1,12 +1,13 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
3
+ //= require jquery-ui-1.8.23.custom.min
1
4
  //= require chosen.jquery
2
- //= require ckeditor-jquery
3
- //= include jquery.colorbox
4
5
  //= require jquery.jeditable
6
+ //= require ckeditor-jquery
5
7
  //= require ckeditor/jquery.generateId
6
8
  //= require ckeditor/jquery.jeditable.ckeditor
7
9
 
8
10
 
9
-
10
11
  (function($){
11
12
 
12
13
  $.fn.outerHTML = function() {
@@ -36,13 +37,14 @@
36
37
 
37
38
  $('.sortable').sortable({
38
39
  update: function(e, ui){
39
- var $target = $(e.target).closest('ol'),
40
+ var $target = $(e.target),
40
41
  orderedItems = {},
41
42
  resourceURL = $target.attr('data-resource'),
42
- childTag = $target.children().first()[0].nodeName.toLowerCase(),
43
+ childTag = $target.children()[0].nodeName.toLowerCase(),
43
44
  primaryLabel = $target.attr('data-primary-label'),
44
45
  secondaryLabel = $target.attr('data-secondary-label');
45
- $(childTag, $(e.target).closest('ol')).each(function(index, element){
46
+
47
+ $(childTag, $target).each(function(index, element){
46
48
  var objectId = $(element).attr('data-id');
47
49
  orderedItems[objectId] = (index + 1);
48
50
  });
@@ -65,123 +67,6 @@
65
67
  }
66
68
  });
67
69
 
68
- $('.select_colorbox').colorbox({
69
- width:'880px',
70
- height:'80%',
71
- iframe:true,
72
- onClosed:function(){
73
- var url = $(this).attr('action');
74
- $.ajax({
75
- type: 'GET',
76
- url: url,
77
- dataType: 'html',
78
- cache: true,
79
- beforeSend: function() {
80
- $('#cboxLoadedContent').empty();
81
- $('#cboxLoadingGraphic').show();
82
- },
83
- complete: function() {
84
- $('#cboxLoadingGraphic').hide();
85
- },
86
- success: function(data) {
87
- $('#show-selected').html(data);
88
- $('#catalog-form').show();
89
- }
90
- });
91
- }
92
- });
93
-
94
- $('.description_colorbox').colorbox({
95
- width:'880px',
96
- height:'80%',
97
- iframe:true,
98
- onClosed:function(){
99
- var url = $(this).attr('action');
100
- $.ajax({
101
- type: 'GET',
102
- url: url,
103
- cache: true,
104
- beforeSend: function() {
105
- $('#cboxLoadedContent').empty();
106
- $('#cboxLoadingGraphic').show();
107
- },
108
- complete: function() {
109
- $('#cboxLoadingGraphic').hide();
110
- },
111
- success: function(data) {
112
- var html= loadMore(data);
113
- $('#show-description').html(html);
114
- $('#catalog-form').show();
115
-
116
-
117
- }
118
- });
119
- }
120
- });
121
-
122
- function getParams() {
123
- var $html = $(response);
124
- $html.find('a.description_colorbox').colorbox({ width: '960px', height: '90%', iframe: true });
125
- return $html;
126
- }
127
-
128
- function loadMore(response) {
129
- var $html = $(response);
130
- $html.find('a.description_colorbox').colorbox({ width: '960px', height: '90%', iframe: true });
131
- return $html;
132
- }
133
-
134
-
135
- //$('.description').hide();
136
- $('.add_description').click(function(){
137
- var $this = $(this);
138
- $this.parent()
139
- .children('.description')
140
- .slideToggle(300, function(){
141
- if ($this.text() == 'Add Description'){
142
- $this.text('Hide Description');
143
- }else{
144
- $this.text('Add Description');
145
- }
146
- });
147
- });
148
-
149
- $("a.destroy_description", this).live("click", function(e) {
150
- var $descNode = $(this).closest('dl')
151
- var url = $(this).attr('action');
152
- $.ajax({
153
- type: "DELETE",
154
- url: url,
155
- dataType: "html",
156
- beforeSend: function() {
157
- $descNode.animate({'backgroundColor':'#fb6c6c'},300);
158
- },
159
- success: function() {
160
- $descNode.slideUp(300,function() {
161
- $descNode.remove();
162
- });
163
- }
164
- });
165
- });
166
-
167
- $("a.remove_featured", this).live("click", function(e) {
168
- var $docNode = $(this).closest('div.document')
169
- var url = $(this).attr('action');
170
- $.ajax({
171
- type: "POST",
172
- url: url,
173
- dataType: "html",
174
- beforeSend: function() {
175
- $docNode.animate({'backgroundColor':'#fb6c6c'},300);
176
- },
177
- success: function(data) {
178
- $docNode.slideUp(300,function() {
179
- $docNode.remove();
180
- });
181
- //$("#show-selected").before('<div id="flash_notice"> data </div>'); // This could be implemented better
182
- }
183
- });
184
- });
185
70
 
186
71
  $('.edit-text').editable(submitEditableText,{
187
72
  indicator : 'Saving...',
@@ -266,35 +151,5 @@
266
151
  $(this).text($(this).text() == '[Read the complete essay]' ? '[Hide essay]' : '[Read the complete essay]');
267
152
  });
268
153
 
269
- $("div.ckeditor h3.index_title a").click( function(){
270
- var href = $(this).attr('href');
271
- var dialog = window.opener.CKEDITOR.dialog.getCurrent();
272
- var parent = window.opener.document;
273
- dialog.setValueOf('info','url',href); // Populates the URL field in the Links dialogue.
274
- dialog.setValueOf('info','protocol',''); // This sets the Link's Protocol to Other which loads the file from the same folder the link is on
275
- dialog.setValueOf('info','displayField',$(this).html()); // Populates the display field in the Links dialogue
276
- window.close(); // closes the popup window
277
- return false;
278
- });
279
-
280
- $(".add_description h3.index_title a").click( function(){
281
- var href = $(this).attr('href');
282
- alert(href)
283
- $.ajax({
284
- type: "GET",
285
- url: url,
286
- dataType: "html",
287
- beforeSend: function() {
288
- $descNode.animate({'backgroundColor':'#fb6c6c'},300);
289
- },
290
- success: function() {
291
- $descNode.slideUp(300,function() {
292
- $descNode.remove();
293
- });
294
- }
295
- });
296
- return false;
297
- });
298
-
299
154
  });
300
155
  })(jQuery);