zizia 4.0.3.alpha.01 → 4.0.4.alpha.01

Sign up to get free protection for your applications and to get access to all the features.
Files changed (868) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +45 -0
  3. data/.gitignore +17 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +80 -0
  6. data/.rubocop_todo.yml +21 -0
  7. data/.solr_wrapper +8 -0
  8. data/.travis.yml +12 -0
  9. data/Gemfile +12 -0
  10. data/Rakefile +38 -0
  11. data/app/assets/config/zizia_manifest.js +2 -0
  12. data/app/assets/images/zizia/.keep +0 -0
  13. data/app/assets/javascripts/zizia/DisplayUploadedFile.es6 +43 -0
  14. data/app/assets/javascripts/zizia/application.js +13 -0
  15. data/app/assets/javascripts/zizia/zizia.js +6 -0
  16. data/app/assets/stylesheets/zizia/_file_upload.scss +17 -0
  17. data/app/assets/stylesheets/zizia/application.css +15 -0
  18. data/app/assets/stylesheets/zizia/zizia.scss +1 -0
  19. data/app/controllers/zizia/application_controller.rb +6 -0
  20. data/app/controllers/zizia/csv_imports_controller.rb +54 -0
  21. data/app/controllers/zizia/importer_documentation_controller.rb +11 -0
  22. data/app/helpers/importer_documentation_helper.rb +13 -0
  23. data/app/helpers/zizia/application_helper.rb +14 -0
  24. data/app/importers/modular_importer.rb +52 -0
  25. data/app/jobs/zizia/application_job.rb +5 -0
  26. data/app/jobs/zizia/start_csv_import_job.rb +14 -0
  27. data/app/models/zizia/application_record.rb +6 -0
  28. data/app/models/zizia/csv_import.rb +21 -0
  29. data/app/models/zizia/csv_import_detail.rb +20 -0
  30. data/app/models/zizia/pre_ingest_file.rb +6 -0
  31. data/app/models/zizia/pre_ingest_work.rb +6 -0
  32. data/app/uploaders/zizia/csv_manifest_uploader.rb +62 -0
  33. data/app/uploaders/zizia/csv_manifest_validator.rb +163 -0
  34. data/app/views/layouts/zizia/application.html.erb +14 -0
  35. data/app/views/zizia/csv_imports/_actions.html.erb +3 -0
  36. data/app/views/zizia/csv_imports/_collection_selection.html.erb +3 -0
  37. data/app/views/zizia/csv_imports/_error.html.erb +10 -0
  38. data/app/views/zizia/csv_imports/_file_upload.html.erb +3 -0
  39. data/app/views/zizia/csv_imports/_form.html.erb +83 -0
  40. data/app/views/zizia/csv_imports/_no_collection.html.erb +7 -0
  41. data/app/views/zizia/csv_imports/_record_count.html.erb +8 -0
  42. data/app/views/zizia/csv_imports/_start_import_form.html.erb +10 -0
  43. data/app/views/zizia/csv_imports/_update_actor_stack.html.erb +5 -0
  44. data/app/views/zizia/csv_imports/index.html.erb +21 -0
  45. data/app/views/zizia/csv_imports/new.html.erb +2 -0
  46. data/app/views/zizia/csv_imports/preview.html.erb +76 -0
  47. data/app/views/zizia/csv_imports/show.html.erb +31 -0
  48. data/app/views/zizia/importer_documentation/guide.html.erb +1 -0
  49. data/bin/rails +15 -0
  50. data/config/routes.rb +9 -0
  51. data/db/migrate/201901162141281_create_zizia_csv_imports.rb +9 -0
  52. data/db/migrate/201901162203121_add_manifest_to_zizia_csv_imports.rb +6 -0
  53. data/db/migrate/201901241536541_add_fedora_collection_id_to_zizia_csv_imports.rb +5 -0
  54. data/db/migrate/201901241536542_add_update_actor_stack_to_zizia_csv_imports.rb +5 -0
  55. data/db/migrate/20190911133657_create_zizia_pre_ingest_files.rb +12 -0
  56. data/db/migrate/20190911134002_create_zizia_pre_ingest_works.rb +9 -0
  57. data/db/migrate/20190911142616_create_zizia_csv_import_details.rb +8 -0
  58. data/db/migrate/20190918214137_drop_users.rb +11 -0
  59. data/db/migrate/20190919145012_user_roles.rb +18 -0
  60. data/db/migrate/20190921153802_add_depositor_id_to_csv_import_detail.rb +5 -0
  61. data/db/migrate/20190921153851_add_collection_id_to_csv_import_detail.rb +5 -0
  62. data/db/migrate/20190921153933_add_batch_id_to_csv_import_detail.rb +5 -0
  63. data/db/migrate/20190921154009_add_success_count_to_csv_import_detail.rb +5 -0
  64. data/db/migrate/20190921154038_add_failure_count_to_csv_import_detail.rb +5 -0
  65. data/db/migrate/20190921154221_add_deduplication_field_to_csv_import_detail.rb +5 -0
  66. data/db/migrate/20190923182946_add_update_actor_stack_to_csv_import_detail.rb +5 -0
  67. data/docs/_config.yml +1 -0
  68. data/docs/customizing_metadata.md +41 -0
  69. data/docs/index.md +113 -0
  70. data/lib/zizia/always_invalid_validator.rb +17 -0
  71. data/lib/zizia/csv_template.rb +9 -0
  72. data/lib/zizia/engine.rb +32 -0
  73. data/lib/zizia/hash_mapper.rb +44 -0
  74. data/lib/zizia/hyrax/hyrax_basic_metadata_mapper.rb +149 -0
  75. data/lib/zizia/hyrax/hyrax_default_updater.rb +11 -0
  76. data/lib/zizia/hyrax/hyrax_delete_files_updater.rb +16 -0
  77. data/lib/zizia/hyrax/hyrax_metadata_only_updater.rb +58 -0
  78. data/lib/zizia/hyrax/hyrax_record_importer.rb +247 -0
  79. data/lib/zizia/hyrax/metadata_only_stack.rb +70 -0
  80. data/lib/zizia/importer.rb +58 -0
  81. data/lib/zizia/input_record.rb +65 -0
  82. data/lib/zizia/metadata_mapper.rb +83 -0
  83. data/lib/zizia/parser.rb +132 -0
  84. data/lib/zizia/parsers/csv_parser.rb +45 -0
  85. data/lib/zizia/record_importer.rb +44 -0
  86. data/lib/zizia/spec/fakes/fake_parser.rb +22 -0
  87. data/lib/zizia/spec/shared_examples/a_mapper.rb +32 -0
  88. data/lib/zizia/spec/shared_examples/a_parser.rb +73 -0
  89. data/lib/zizia/spec/shared_examples/a_validator.rb +29 -0
  90. data/lib/zizia/spec.rb +14 -0
  91. data/lib/zizia/validator.rb +106 -0
  92. data/lib/zizia/validators/csv_format_validator.rb +26 -0
  93. data/lib/zizia/validators/title_validator.rb +30 -0
  94. data/lib/zizia/version.rb +5 -0
  95. data/lib/zizia.rb +66 -0
  96. data/log/.keep +0 -0
  97. data/solr/config/_rest_managed.json +3 -0
  98. data/solr/config/admin-extra.html +31 -0
  99. data/solr/config/elevate.xml +36 -0
  100. data/solr/config/mapping-ISOLatin1Accent.txt +246 -0
  101. data/solr/config/protwords.txt +21 -0
  102. data/solr/config/routes.rb +9 -0
  103. data/solr/config/schema.xml +366 -0
  104. data/solr/config/scripts.conf +24 -0
  105. data/solr/config/solrconfig.xml +322 -0
  106. data/solr/config/spellings.txt +2 -0
  107. data/solr/config/stopwords.txt +58 -0
  108. data/solr/config/stopwords_en.txt +58 -0
  109. data/solr/config/synonyms.txt +31 -0
  110. data/solr/config/xslt/example.xsl +132 -0
  111. data/solr/config/xslt/example_atom.xsl +67 -0
  112. data/solr/config/xslt/example_rss.xsl +66 -0
  113. data/solr/config/xslt/luke.xsl +337 -0
  114. data/spec/controllers/importer_documentation_controller_spec.rb +14 -0
  115. data/spec/dummy/.fcrepo_wrapper +4 -0
  116. data/spec/dummy/.gitignore +23 -0
  117. data/spec/dummy/.rspec +1 -0
  118. data/spec/dummy/.ruby-version +1 -0
  119. data/spec/dummy/.solr_wrapper +8 -0
  120. data/spec/dummy/.solr_wrapper.yml +5 -0
  121. data/spec/dummy/Gemfile +75 -0
  122. data/spec/dummy/README.md +24 -0
  123. data/spec/dummy/Rakefile +8 -0
  124. data/spec/dummy/app/actors/hyrax/actors/work_actor.rb +8 -0
  125. data/spec/dummy/app/assets/config/manifest.js +3 -0
  126. data/spec/dummy/app/assets/images/.keep +0 -0
  127. data/spec/dummy/app/assets/images/unauthorized.png +0 -0
  128. data/spec/dummy/app/assets/images/us_404.svg +91 -0
  129. data/spec/dummy/app/assets/javascripts/application.js +25 -0
  130. data/spec/dummy/app/assets/javascripts/blacklight_gallery.js +1 -0
  131. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  132. data/spec/dummy/app/assets/javascripts/channels/.keep +0 -0
  133. data/spec/dummy/app/assets/javascripts/openseadragon.js +2 -0
  134. data/spec/dummy/app/assets/stylesheets/application.css +16 -0
  135. data/spec/dummy/app/assets/stylesheets/hyrax.scss +16 -0
  136. data/spec/dummy/app/assets/stylesheets/openseadragon.css +3 -0
  137. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  138. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  139. data/spec/dummy/app/controllers/application_controller.rb +16 -0
  140. data/spec/dummy/app/controllers/catalog_controller.rb +298 -0
  141. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  142. data/spec/dummy/app/controllers/hyrax/works_controller.rb +14 -0
  143. data/spec/dummy/app/forms/hyrax/work_form.rb +9 -0
  144. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  145. data/spec/dummy/app/helpers/hyrax_helper.rb +5 -0
  146. data/spec/dummy/app/indexers/work_indexer.rb +18 -0
  147. data/spec/dummy/app/jobs/application_job.rb +2 -0
  148. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  149. data/spec/dummy/app/models/ability.rb +23 -0
  150. data/spec/dummy/app/models/application_record.rb +3 -0
  151. data/spec/dummy/app/models/collection.rb +7 -0
  152. data/spec/dummy/app/models/concerns/.keep +0 -0
  153. data/spec/dummy/app/models/file_set.rb +4 -0
  154. data/spec/dummy/app/models/qa/local_authority.rb +2 -0
  155. data/spec/dummy/app/models/qa/local_authority_entry.rb +3 -0
  156. data/spec/dummy/app/models/qa.rb +5 -0
  157. data/spec/dummy/app/models/search_builder.rb +16 -0
  158. data/spec/dummy/app/models/solr_document.rb +28 -0
  159. data/spec/dummy/app/models/user.rb +29 -0
  160. data/spec/dummy/app/models/work.rb +14 -0
  161. data/spec/dummy/app/presenters/hyrax/work_presenter.rb +6 -0
  162. data/spec/dummy/app/views/hyrax/works/_work.html.erb +2 -0
  163. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  164. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  165. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  166. data/spec/dummy/bin/bundle +3 -0
  167. data/spec/dummy/bin/rails +9 -0
  168. data/spec/dummy/bin/rake +9 -0
  169. data/spec/dummy/bin/setup +38 -0
  170. data/spec/dummy/bin/spring +17 -0
  171. data/spec/dummy/bin/update +29 -0
  172. data/spec/dummy/bin/yarn +11 -0
  173. data/spec/dummy/config/analytics.yml +9 -0
  174. data/spec/dummy/config/application.rb +18 -0
  175. data/spec/dummy/config/authorities/licenses.yml +46 -0
  176. data/spec/dummy/config/authorities/resource_types.yml +41 -0
  177. data/spec/dummy/config/authorities/rights_statements.yml +37 -0
  178. data/spec/dummy/config/blacklight.yml +9 -0
  179. data/spec/dummy/config/boot.rb +3 -0
  180. data/spec/dummy/config/cable.yml +10 -0
  181. data/spec/dummy/config/credentials.yml.enc +1 -0
  182. data/spec/dummy/config/database.yml +25 -0
  183. data/spec/dummy/config/environment.rb +5 -0
  184. data/spec/dummy/config/environments/development.rb +54 -0
  185. data/spec/dummy/config/environments/production.rb +91 -0
  186. data/spec/dummy/config/environments/test.rb +44 -0
  187. data/spec/dummy/config/fcrepo_wrapper_test.yml +4 -0
  188. data/spec/dummy/config/fedora.yml +15 -0
  189. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  190. data/spec/dummy/config/initializers/assets.rb +14 -0
  191. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  192. data/spec/dummy/config/initializers/bundler.rb +1 -0
  193. data/spec/dummy/config/initializers/clamav.rb +1 -0
  194. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  195. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  196. data/spec/dummy/config/initializers/devise.rb +299 -0
  197. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  198. data/spec/dummy/config/initializers/hydra_config.rb +24 -0
  199. data/spec/dummy/config/initializers/hyrax.rb +283 -0
  200. data/spec/dummy/config/initializers/inflections.rb +16 -0
  201. data/spec/dummy/config/initializers/mailboxer.rb +22 -0
  202. data/spec/dummy/config/initializers/mime_types.rb +8 -0
  203. data/spec/dummy/config/initializers/mini_magick.rb +5 -0
  204. data/spec/dummy/config/initializers/redis_config.rb +3 -0
  205. data/spec/dummy/config/initializers/riiif.rb +26 -0
  206. data/spec/dummy/config/initializers/simple_form.rb +170 -0
  207. data/spec/dummy/config/initializers/simple_form_bootstrap.rb +150 -0
  208. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  209. data/spec/dummy/config/locales/blacklight.en.yml +3 -0
  210. data/spec/dummy/config/locales/devise.en.yml +65 -0
  211. data/spec/dummy/config/locales/en.yml +33 -0
  212. data/spec/dummy/config/locales/hyrax.de.yml +58 -0
  213. data/spec/dummy/config/locales/hyrax.en.yml +58 -0
  214. data/spec/dummy/config/locales/hyrax.es.yml +58 -0
  215. data/spec/dummy/config/locales/hyrax.fr.yml +58 -0
  216. data/spec/dummy/config/locales/hyrax.it.yml +58 -0
  217. data/spec/dummy/config/locales/hyrax.pt-BR.yml +58 -0
  218. data/spec/dummy/config/locales/hyrax.zh.yml +58 -0
  219. data/spec/dummy/config/master.key +1 -0
  220. data/spec/dummy/config/puma.rb +56 -0
  221. data/spec/dummy/config/redis.yml +9 -0
  222. data/spec/dummy/config/role_map.yml +23 -0
  223. data/spec/dummy/config/routes.rb +33 -0
  224. data/spec/dummy/config/secrets.yml +32 -0
  225. data/spec/dummy/config/solr.yml +7 -0
  226. data/spec/dummy/config/solr_wrapper_test.yml +8 -0
  227. data/spec/dummy/config/spring.rb +6 -0
  228. data/spec/dummy/config/storage.yml +34 -0
  229. data/spec/dummy/config/tinymce.yml +12 -0
  230. data/spec/dummy/config/workflows/default_workflow.json +21 -0
  231. data/spec/dummy/config/workflows/mediated_deposit_workflow.json +76 -0
  232. data/spec/dummy/config.ru +5 -0
  233. data/spec/dummy/db/migrate/20190918192626_create_searches.blacklight.rb +17 -0
  234. data/spec/dummy/db/migrate/20190918192627_create_bookmarks.blacklight.rb +19 -0
  235. data/spec/dummy/db/migrate/20190918192628_add_polymorphic_type_to_bookmarks.blacklight.rb +9 -0
  236. data/spec/dummy/db/migrate/20190918192704_devise_create_users.rb +44 -0
  237. data/spec/dummy/db/migrate/20190918192715_add_devise_guests_to_users.rb +15 -0
  238. data/spec/dummy/db/migrate/20190918192840_create_version_committers.hyrax.rb +15 -0
  239. data/spec/dummy/db/migrate/20190918192841_create_checksum_audit_logs.hyrax.rb +19 -0
  240. data/spec/dummy/db/migrate/20190918192842_create_single_use_links.hyrax.rb +12 -0
  241. data/spec/dummy/db/migrate/20190918192843_add_social_to_users.hyrax.rb +13 -0
  242. data/spec/dummy/db/migrate/20190918192844_add_ldap_attrs_to_user.hyrax.rb +27 -0
  243. data/spec/dummy/db/migrate/20190918192845_add_avatars_to_users.hyrax.rb +15 -0
  244. data/spec/dummy/db/migrate/20190918192846_create_trophies.hyrax.rb +10 -0
  245. data/spec/dummy/db/migrate/20190918192847_add_linkedin_to_users.hyrax.rb +5 -0
  246. data/spec/dummy/db/migrate/20190918192848_create_tinymce_assets.hyrax.rb +8 -0
  247. data/spec/dummy/db/migrate/20190918192849_create_content_blocks.hyrax.rb +10 -0
  248. data/spec/dummy/db/migrate/20190918192850_create_featured_works.hyrax.rb +12 -0
  249. data/spec/dummy/db/migrate/20190918192851_add_external_key_to_content_blocks.hyrax.rb +6 -0
  250. data/spec/dummy/db/migrate/20190918192852_create_proxy_deposit_rights.hyrax.rb +10 -0
  251. data/spec/dummy/db/migrate/20190918192853_create_proxy_deposit_requests.hyrax.rb +15 -0
  252. data/spec/dummy/db/migrate/20190918192854_create_file_view_stats.hyrax.rb +12 -0
  253. data/spec/dummy/db/migrate/20190918192855_create_file_download_stats.hyrax.rb +12 -0
  254. data/spec/dummy/db/migrate/20190918192856_add_orcid_to_users.hyrax.rb +5 -0
  255. data/spec/dummy/db/migrate/20190918192857_create_user_stats.hyrax.rb +19 -0
  256. data/spec/dummy/db/migrate/20190918192858_create_work_view_stats.hyrax.rb +12 -0
  257. data/spec/dummy/db/migrate/20190918192859_add_works_to_user_stats.hyrax.rb +13 -0
  258. data/spec/dummy/db/migrate/20190918192860_change_trophy_generic_file_id_to_work_id.hyrax.rb +5 -0
  259. data/spec/dummy/db/migrate/20190918192861_change_proxy_deposit_generic_file_id_to_work_id.hyrax.rb +5 -0
  260. data/spec/dummy/db/migrate/20190918192862_change_audit_log_generic_file_id_to_file_set_id.hyrax.rb +5 -0
  261. data/spec/dummy/db/migrate/20190918192863_change_proxy_deposit_request_generic_file_id_to_work_id.hyrax.rb +5 -0
  262. data/spec/dummy/db/migrate/20190918192864_create_uploaded_files.hyrax.rb +10 -0
  263. data/spec/dummy/db/migrate/20190918192865_create_features.hyrax.rb +10 -0
  264. data/spec/dummy/db/migrate/20190918192866_create_operations.hyrax.rb +23 -0
  265. data/spec/dummy/db/migrate/20190918192867_change_featured_work_generic_file_id_to_work_id.hyrax.rb +6 -0
  266. data/spec/dummy/db/migrate/20190918192868_add_arkivo_to_users.hyrax.rb +8 -0
  267. data/spec/dummy/db/migrate/20190918192869_create_sipity.hyrax.rb +163 -0
  268. data/spec/dummy/db/migrate/20190918192870_create_sipity_workflow_methods.hyrax.rb +10 -0
  269. data/spec/dummy/db/migrate/20190918192871_create_permission_template.hyrax.rb +11 -0
  270. data/spec/dummy/db/migrate/20190918192872_create_permission_template_access.hyrax.rb +11 -0
  271. data/spec/dummy/db/migrate/20190918192873_add_release_to_permission_templates.hyrax.rb +6 -0
  272. data/spec/dummy/db/migrate/20190918192874_add_permission_template_to_sipity_workflow.hyrax.rb +26 -0
  273. data/spec/dummy/db/migrate/20190918192875_tidy_up_because_of_bad_exception.hyrax.rb +13 -0
  274. data/spec/dummy/db/migrate/20190918192876_add_allows_access_grant_to_workflow.hyrax.rb +5 -0
  275. data/spec/dummy/db/migrate/20190918192877_change_checksum_audit_log.hyrax.rb +18 -0
  276. data/spec/dummy/db/migrate/20190918192878_create_job_io_wrappers.hyrax.rb +15 -0
  277. data/spec/dummy/db/migrate/20190918192879_create_collection_types.hyrax.rb +17 -0
  278. data/spec/dummy/db/migrate/20190918192880_update_collection_type_column_names.hyrax.rb +9 -0
  279. data/spec/dummy/db/migrate/20190918192881_update_collection_type_column_options.hyrax.rb +17 -0
  280. data/spec/dummy/db/migrate/20190918192882_create_collection_branding_infos.hyrax.rb +15 -0
  281. data/spec/dummy/db/migrate/20190918192883_create_collection_type_participants.hyrax.rb +11 -0
  282. data/spec/dummy/db/migrate/20190918192884_rename_admin_set_id_to_source_id.hyrax.rb +5 -0
  283. data/spec/dummy/db/migrate/20190918192885_add_preferred_locale_to_users.hyrax.rb +5 -0
  284. data/spec/dummy/db/migrate/20190918192886_add_collection_type_sharing_options.hyrax.rb +5 -0
  285. data/spec/dummy/db/migrate/20190918192887_add_unique_constraint_to_permission_template_accesses.hyrax.rb +8 -0
  286. data/spec/dummy/db/migrate/20190918192888_add_branding_to_collection_type.hyrax.rb +5 -0
  287. data/spec/dummy/db/migrate/20190918192889_add_badge_color_to_collection_types.hyrax.rb +5 -0
  288. data/spec/dummy/db/migrate/20190918192914_create_mailboxer.mailboxer_engine.rb +65 -0
  289. data/spec/dummy/db/migrate/20190918192915_add_conversation_optout.mailboxer_engine.rb +15 -0
  290. data/spec/dummy/db/migrate/20190918192916_add_missing_indices.mailboxer_engine.rb +20 -0
  291. data/spec/dummy/db/migrate/20190918192917_add_delivery_tracking_info_to_mailboxer_receipts.mailboxer_engine.rb +8 -0
  292. data/spec/dummy/db/migrate/20190918192937_create_qa_local_authorities.rb +10 -0
  293. data/spec/dummy/db/migrate/20190918192948_create_qa_local_authority_entries.rb +12 -0
  294. data/spec/dummy/db/migrate/20190918193045_create_minter_states.noid_rails_engine.rb +17 -0
  295. data/spec/dummy/db/migrate/20190918193046_rename_minter_state_random_to_rand.noid_rails_engine.rb +8 -0
  296. data/spec/dummy/db/schema.rb +608 -0
  297. data/spec/dummy/db/seeds.rb +7 -0
  298. data/spec/dummy/lib/assets/.keep +0 -0
  299. data/spec/dummy/lib/tasks/.keep +0 -0
  300. data/spec/dummy/log/.keep +0 -0
  301. data/spec/dummy/package.json +5 -0
  302. data/spec/dummy/public/404.html +67 -0
  303. data/spec/dummy/public/422.html +67 -0
  304. data/spec/dummy/public/500.html +66 -0
  305. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  306. data/spec/dummy/public/apple-touch-icon.png +0 -0
  307. data/spec/dummy/public/assets/.sprockets-manifest-6a791b26afc0064d45ad6c9c7834c971.json +1 -0
  308. data/spec/dummy/public/assets/application-19a48f32b51ff0cbcf36875591de326026d5594d66e05aa640bd3ad61cc96f9e.js +91588 -0
  309. data/spec/dummy/public/assets/application-19a48f32b51ff0cbcf36875591de326026d5594d66e05aa640bd3ad61cc96f9e.js.gz +0 -0
  310. data/spec/dummy/public/assets/application-c66e5ddf197c4624336180640f7928a84eece4ef5868c26d430e6e45c9a83ae3.css +19965 -0
  311. data/spec/dummy/public/assets/application-c66e5ddf197c4624336180640f7928a84eece4ef5868c26d430e6e45c9a83ae3.css.gz +0 -0
  312. data/spec/dummy/public/assets/audio-5133b642ee875760dbd85bfab48649d009efd4bd29db1165f891b48a90b4f37e.png +0 -0
  313. data/spec/dummy/public/assets/blacklight/gallery/view-icon-masonry-94cb2f417ca00047d6e4603644bebaa67037ef9b3efcc9c95b42229c1c571345.png +0 -0
  314. data/spec/dummy/public/assets/blacklight/gallery/view-icon-masonry@2x-da61b9e430c6b3f007aaa8073c062b147c909746c254f0adb81eaf476dc1a26d.png +0 -0
  315. data/spec/dummy/public/assets/blacklight/logo-e368f4faad4c5310352e175e1fba8220b57aab2e29cbe0f3ca1189a2ef085f9b.png +0 -0
  316. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot +0 -0
  317. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot.gz +0 -0
  318. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg +288 -0
  319. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg.gz +0 -0
  320. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff +0 -0
  321. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf +0 -0
  322. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf.gz +0 -0
  323. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2 +0 -0
  324. data/spec/dummy/public/assets/browse_everything-0bc39e0e4f7158f7de0b75f0bf1cffee0dc75901e8a0d1ab62fe57615ae92903.css +12766 -0
  325. data/spec/dummy/public/assets/browse_everything-0bc39e0e4f7158f7de0b75f0bf1cffee0dc75901e8a0d1ab62fe57615ae92903.css.gz +0 -0
  326. data/spec/dummy/public/assets/browse_everything-771abc13184782ddcdb092a916b42013516bb8d172351e1c6415c293c556118f.js +3648 -0
  327. data/spec/dummy/public/assets/browse_everything-771abc13184782ddcdb092a916b42013516bb8d172351e1c6415c293c556118f.js.gz +0 -0
  328. data/spec/dummy/public/assets/collection-a38b932554788aa578debf2319e8c4ba8a7db06b3ba57ecda1391a548a4b6e0a.png +0 -0
  329. data/spec/dummy/public/assets/dataTables/back_disabled-6950463a4f9db9435b8df01fa276eaf88aa65b8913b82e979317d741305bb5d6.png +0 -0
  330. data/spec/dummy/public/assets/dataTables/back_enabled-9fd6f47b90ca92e855bdf80a0d57178af3a59c307e5c0246bb24dc781d3ae69b.png +0 -0
  331. data/spec/dummy/public/assets/dataTables/back_enabled_hover-b3a398bdb9afa40edff875c14c972ac9329e018e2e5e175ebb8e104c59be37e1.png +0 -0
  332. data/spec/dummy/public/assets/dataTables/extras/background-c15341923393fd36f738e5240b31c86b30da3c1e13438cc65a325f58e255074a.png +0 -0
  333. data/spec/dummy/public/assets/dataTables/extras/button-4b15f6f40d20396a3a485d7f3a587138a9d68da923ce9a48ec40e25b8d2391f8.png +0 -0
  334. data/spec/dummy/public/assets/dataTables/extras/collection-bbd8b7d27060bd17a10af4143f1e716ffaee2f652af70381bf71057aefa5e0f4.png +0 -0
  335. data/spec/dummy/public/assets/dataTables/extras/collection_hover-eaab9c30ceead4610031a39b77a08d80c87f8c97bdfa6e52aa7e6e1dcaaeb4e1.png +0 -0
  336. data/spec/dummy/public/assets/dataTables/extras/copy-a0feeab39e2b27cd966f77ebac68be4b3638eae7b51b61431bf860a1bb6da929.png +0 -0
  337. data/spec/dummy/public/assets/dataTables/extras/copy_hover-cde411862f25c1f66a2f54da665968e4b5be58e5eb6ef5769fc69fde1cf8915e.png +0 -0
  338. data/spec/dummy/public/assets/dataTables/extras/csv-d1ddfd7d80b19736d956c00dbe6a9dde454e0b48e732975a89f0d9ec8ca5646c.png +0 -0
  339. data/spec/dummy/public/assets/dataTables/extras/csv_hover-671101bdd0b393cd51c28b34fb5fa24c08932e654c75b47df2d7ef8b021ce289.png +0 -0
  340. data/spec/dummy/public/assets/dataTables/extras/filler-641b9f55bbce36baf21b2611ba7a6373a8a23727b111590129d411f24b5d4559.png +0 -0
  341. data/spec/dummy/public/assets/dataTables/extras/insert-945e4b99b340f6622d545081443a10871345105c14d009cd6c4d0536d790032f.png +0 -0
  342. data/spec/dummy/public/assets/dataTables/extras/loading-background-ea6b39e733ae4ef8b41540bb3052a5715d1293bd3506582a9f001441f41445a0.png +0 -0
  343. data/spec/dummy/public/assets/dataTables/extras/pdf-178bccf4fa6246c4e983e1b45bd521c929fa197321ccafdc0c8c0dce799699b2.png +0 -0
  344. data/spec/dummy/public/assets/dataTables/extras/pdf_hover-a0c883c30bf77280618eba2ce08de7e1377bff15955ebf024deee72819f33945.png +0 -0
  345. data/spec/dummy/public/assets/dataTables/extras/print-56efc7161f8c36454f011542fd51c4c515fd8a64e4e499834daaf0415bc55bd1.png +0 -0
  346. data/spec/dummy/public/assets/dataTables/extras/print_hover-dfd041e39e9342f1706335301e65b2fe1bbed3ecce90aeed1b6880b3177dc5c9.png +0 -0
  347. data/spec/dummy/public/assets/dataTables/extras/xls-7995e42ff963255fb782c1b858e7d01be93f204befade7e7a41961e42d285d44.png +0 -0
  348. data/spec/dummy/public/assets/dataTables/extras/xls_hover-4aeef987c05055d78ff769f7ad4d871b897fced597d77fcc92ace6945d99f5bd.png +0 -0
  349. data/spec/dummy/public/assets/dataTables/favicon-6e1bbb9a62636471771c683fc0589a487f74296503c9e4b6d2d92e7fda3faff6.ico +0 -0
  350. data/spec/dummy/public/assets/dataTables/favicon-6e1bbb9a62636471771c683fc0589a487f74296503c9e4b6d2d92e7fda3faff6.ico.gz +0 -0
  351. data/spec/dummy/public/assets/dataTables/forward_disabled-ede9f1003cef25add5cc2b13f531a014ed9bea78154d4fba008b21f353030295.png +0 -0
  352. data/spec/dummy/public/assets/dataTables/forward_enabled-bcb3b13b5aaf9015767aff77d621f1f9557adcd8eb8284d06f0b51e2475556b0.png +0 -0
  353. data/spec/dummy/public/assets/dataTables/forward_enabled_hover-4fa2d689a633713d9fb8900611a646c5df0ba24deb9597ab955c62cba77ae3b4.png +0 -0
  354. data/spec/dummy/public/assets/dataTables/foundation/sort_asc-ee6010bb0a8d17e58307136a0fbf0b196d949ab6c50eb66d1ff8f0a7d2a4d48b.png +0 -0
  355. data/spec/dummy/public/assets/dataTables/foundation/sort_asc_disabled-fd53b2df2d10bac2af507450a9d89c1283acbb6be750a02b401aa3f6c38a350d.png +0 -0
  356. data/spec/dummy/public/assets/dataTables/foundation/sort_both-624f0a471a2535c4754e1f6974b0e64ee70d6907738346e2a11d0bff20258b8c.png +0 -0
  357. data/spec/dummy/public/assets/dataTables/foundation/sort_desc-26da8e7eaf746a08dec2928977be21aa67212484540a12042b86aa2d904b80e8.png +0 -0
  358. data/spec/dummy/public/assets/dataTables/foundation/sort_desc_disabled-3450cc1e5a1585690226a713a726753b3fa2d177e41338a36e0a3188e3f02663.png +0 -0
  359. data/spec/dummy/public/assets/dataTables/minus-334c4ab08c4bfdbed5a82bdeaa7fb3f240c730b04dee5206184dc8067a5d0e6b.png +0 -0
  360. data/spec/dummy/public/assets/dataTables/plus-eb27ce978b61a3763680c02c1f8c9bc92c2fc86ebb8cc3aef6a5e538e9562265.png +0 -0
  361. data/spec/dummy/public/assets/dataTables/sort_asc-ee6010bb0a8d17e58307136a0fbf0b196d949ab6c50eb66d1ff8f0a7d2a4d48b.png +0 -0
  362. data/spec/dummy/public/assets/dataTables/sort_asc_disabled-50f0e16f8289b1f09eb0d0494d0eee7ae4717e857a4ed77997bb06cefecb2528.png +0 -0
  363. data/spec/dummy/public/assets/dataTables/sort_both-624f0a471a2535c4754e1f6974b0e64ee70d6907738346e2a11d0bff20258b8c.png +0 -0
  364. data/spec/dummy/public/assets/dataTables/sort_desc-26da8e7eaf746a08dec2928977be21aa67212484540a12042b86aa2d904b80e8.png +0 -0
  365. data/spec/dummy/public/assets/dataTables/sort_desc_disabled-3450cc1e5a1585690226a713a726753b3fa2d177e41338a36e0a3188e3f02663.png +0 -0
  366. data/spec/dummy/public/assets/default-f936e9c3ea7a38e2c2092099586a71380b11258697b37fb4df376704495a849a.png +0 -0
  367. data/spec/dummy/public/assets/favicon-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.ico +0 -0
  368. data/spec/dummy/public/assets/favicon-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.ico.gz +0 -0
  369. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-1b7f3de49d68b01f415574ebb82e6110a1d09cda2071ad8451bdb5124131a292.ttf +0 -0
  370. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-1b7f3de49d68b01f415574ebb82e6110a1d09cda2071ad8451bdb5124131a292.ttf.gz +0 -0
  371. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-3c4a1bb7ce3234407184f0d80cc4dec075e4ad616b44dcc5778e1cfb1bc24019.woff2 +0 -0
  372. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-7414288c272f6cc10304aa18e89bf24fb30f40afd644623f425c2c3d71fbe06a.svg +640 -0
  373. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-7414288c272f6cc10304aa18e89bf24fb30f40afd644623f425c2c3d71fbe06a.svg.gz +0 -0
  374. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-a7c7e4930090e038a280fd61d88f0dc03dad4aeaedbd8c9be3dd9aa4c3b6f8d1.woff +0 -0
  375. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-d4f5a99224154f2a808e42a441ddc9248ffe78b7a4083684ce159270b30b912a.eot +0 -0
  376. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-d4f5a99224154f2a808e42a441ddc9248ffe78b7a4083684ce159270b30b912a.eot.gz +0 -0
  377. data/spec/dummy/public/assets/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2 +0 -0
  378. data/spec/dummy/public/assets/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot +0 -0
  379. data/spec/dummy/public/assets/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot.gz +0 -0
  380. data/spec/dummy/public/assets/fontawesome-webfont-9428f8b023ac16cd31335614569668ccc199588550d1d1f274873da8211a9fcd.ttf +0 -0
  381. data/spec/dummy/public/assets/fontawesome-webfont-9428f8b023ac16cd31335614569668ccc199588550d1d1f274873da8211a9fcd.ttf.gz +0 -0
  382. data/spec/dummy/public/assets/fontawesome-webfont-c49e830da6dd1917d752afc4947bcf0bae316b14f81a27395993d6e66b1d2853.svg +255 -0
  383. data/spec/dummy/public/assets/fontawesome-webfont-c49e830da6dd1917d752afc4947bcf0bae316b14f81a27395993d6e66b1d2853.svg.gz +0 -0
  384. data/spec/dummy/public/assets/fontawesome-webfont-d45f5fb1fb4e1a101a8ad8722af443272f6c3d409d912e8175e6268d48e0b091.woff +0 -0
  385. data/spec/dummy/public/assets/hydra/powered_by_hydra-df621100d14d209a52ec4d645e81a6c84fcbd503bfafa1c6d6d6937984d81c98.png +0 -0
  386. data/spec/dummy/public/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-ae65a7ae22c4c23115948fdeb5c05c9137dbd13ca2d426b3c4c3c4183451e410.png +0 -0
  387. data/spec/dummy/public/assets/jquery-ui/ui-icons_444444_256x240-31d988765b4e6f56553c29588c500381dc3e6f0aa2980c8212202e5644aefd5d.png +0 -0
  388. data/spec/dummy/public/assets/jquery-ui/ui-icons_555555_256x240-32175261daee76c82bb0edf0eea16a56421866fbc31e94f3c1d570aa114502f5.png +0 -0
  389. data/spec/dummy/public/assets/jquery-ui/ui-icons_777620_256x240-0b020fc6e696d88d296e7bb1f61f1eb2ad827848e2c7382a4c3e0999e702dd9b.png +0 -0
  390. data/spec/dummy/public/assets/jquery-ui/ui-icons_777777_256x240-faf32007ae120c302213557626e660dd10e711c5dd4f1113d35f26dc05b78d2f.png +0 -0
  391. data/spec/dummy/public/assets/jquery-ui/ui-icons_cc0000_256x240-40985a64b4d5dd213fba27fcd862a1bd1b337a97674f6ff0b9ec20abcee4bc69.png +0 -0
  392. data/spec/dummy/public/assets/jquery-ui/ui-icons_ffffff_256x240-350df1b7131037de20e83c5c0f3a41a770d2ac48b5762ea772b3f4a8a7b9d47a.png +0 -0
  393. data/spec/dummy/public/assets/loading-b84750cc5a395288fcfd0cf42e3a60d6135e2f14db83fce05e97e5abacc2f9b4.gif +0 -0
  394. data/spec/dummy/public/assets/openseadragon/button_grouphover-2e64df18c27b1a51955c47cbe7535fa2a25548cefb7d1a2de625b59f31853cb6.png +0 -0
  395. data/spec/dummy/public/assets/openseadragon/button_hover-b1086485b0d055d468a729f5a6a79f78fc06fdfa814710dedb7021a7d6206fde.png +0 -0
  396. data/spec/dummy/public/assets/openseadragon/button_pressed-01f1c05bdee216ec417e3475552cd053ce3199bfd2c9e1660f2c7cdc60d0be11.png +0 -0
  397. data/spec/dummy/public/assets/openseadragon/button_rest-5c693c3b03e6efc5c491ab2e8e1ba81800de423a16da8c7f348c19ae8924d142.png +0 -0
  398. data/spec/dummy/public/assets/openseadragon/fullpage_grouphover-f96415fcf86eff56b664f2328ffd61972b98738874d995e077091344f59fc26b.png +0 -0
  399. data/spec/dummy/public/assets/openseadragon/fullpage_hover-3cc954037484edb4a74d97a374605301b4da04c034981af70ec0ec3e1bb509a8.png +0 -0
  400. data/spec/dummy/public/assets/openseadragon/fullpage_pressed-7b3d188695ec59993a09cf27dde280b1da93fd43360f721642b42229b9e5e817.png +0 -0
  401. data/spec/dummy/public/assets/openseadragon/fullpage_rest-1b7ae93b3fe5d0df99e196bfe22b93c7f05d2d5e0fdf97b8b8e957e5476ff586.png +0 -0
  402. data/spec/dummy/public/assets/openseadragon/home_grouphover-2f2dfd6ed6fd11c1aec5491c36f071cf51a96712ddac54b803a8fee917ce27d8.png +0 -0
  403. data/spec/dummy/public/assets/openseadragon/home_hover-170fc906037fe8707d3757775ea4ccb3ebbf883329c44473cd247d0f22c320d9.png +0 -0
  404. data/spec/dummy/public/assets/openseadragon/home_pressed-e8a08eb8d9862e63c8df96fbe508956ae031b09d85533adf83e094c5b187833c.png +0 -0
  405. data/spec/dummy/public/assets/openseadragon/home_rest-6fd27483f507bf8b4a15d6c60d43e9bb3bd14b84959973d61a622bbb4777dfc9.png +0 -0
  406. data/spec/dummy/public/assets/openseadragon/next_grouphover-e7c76fb2c8a792a63efe2ad76da276fd079f50ec0df2b03b04bfc36cfc217103.png +0 -0
  407. data/spec/dummy/public/assets/openseadragon/next_hover-67210c1194693f480cfe9935281fd447a86c46b65e67ce182632cb518dfd2bb9.png +0 -0
  408. data/spec/dummy/public/assets/openseadragon/next_pressed-95afb05783b4c599eec66a21a2b98ea09d6b0be41cce42ed512239cede37a1ab.png +0 -0
  409. data/spec/dummy/public/assets/openseadragon/next_rest-d9b1965f3bcddd3db23e63037a27152c1b7528811582c68b7b4bf25b8673fe07.png +0 -0
  410. data/spec/dummy/public/assets/openseadragon/previous_grouphover-c7e82a94049ff615a7dc6f78ae3758d7d33eab41a69093d9c1101c164c07fe8b.png +0 -0
  411. data/spec/dummy/public/assets/openseadragon/previous_hover-94126f0047e7901b3d2e408abb58b20744a7251786746d7508624db5b4c81bce.png +0 -0
  412. data/spec/dummy/public/assets/openseadragon/previous_pressed-b80145c436ff5cd94c3f672eed9f1723fcd13077870337874171e99dee9f9929.png +0 -0
  413. data/spec/dummy/public/assets/openseadragon/previous_rest-56999fcbe41a0ebb5d701fb463caea0e3850478d1f869e2e7a73b7dc363ca2e2.png +0 -0
  414. data/spec/dummy/public/assets/openseadragon/rotateleft_grouphover-35d3cf9efe958bd88ae0c532648403824df252fa6835aa586301b19c80c264e3.png +0 -0
  415. data/spec/dummy/public/assets/openseadragon/rotateleft_hover-59fee051c2aff4c8491255be664f87671c089db4863f933989b10263818cf435.png +0 -0
  416. data/spec/dummy/public/assets/openseadragon/rotateleft_pressed-97d28095eb471109d0aee65f9f4dc5ee6dba6d7fed433e3a910dcda69ca4a977.png +0 -0
  417. data/spec/dummy/public/assets/openseadragon/rotateleft_rest-ab4731e3c7d7a4b40ea07c16269e8117ce58506177dc438cc00cdf837f513f09.png +0 -0
  418. data/spec/dummy/public/assets/openseadragon/rotateright_grouphover-ebdaf54f82601db210a5ac2e0a54790c0decd8dea5bd115f7d6d0d2bf04c5e00.png +0 -0
  419. data/spec/dummy/public/assets/openseadragon/rotateright_hover-a9124016ebe30ec16f3691a16cc57997174652f480f3002d45beaf918b1230c1.png +0 -0
  420. data/spec/dummy/public/assets/openseadragon/rotateright_pressed-a75e74dab723a0587d365e4b076572d1440df9f31c424ef4a6be62f3a45d472b.png +0 -0
  421. data/spec/dummy/public/assets/openseadragon/rotateright_rest-c201ce35f6651e824eee3eb5ca3e42fc40035d2070eec9ce1261c8b7bc126526.png +0 -0
  422. data/spec/dummy/public/assets/openseadragon/zoomin_grouphover-ecd40589890cdfd81911752c4af02c691a201c21d74bbad5f3d9336463b52604.png +0 -0
  423. data/spec/dummy/public/assets/openseadragon/zoomin_hover-6a2c08cf07b12162f73e80417d6e49e7da4b219981c9929abf89fbd1a18b58a2.png +0 -0
  424. data/spec/dummy/public/assets/openseadragon/zoomin_pressed-b9eb902ca333aaabd8cf77c1184a6aa24311bcba0d836dc6ebded4c5d7146475.png +0 -0
  425. data/spec/dummy/public/assets/openseadragon/zoomin_rest-674258f78d924bfe2454a637ecf912fe7069105ab68980f69674ff5c25521ed9.png +0 -0
  426. data/spec/dummy/public/assets/openseadragon/zoomout_grouphover-b582631f7ede7c640c46a29d74728814d3b7332b14748054ae460aa9be929e77.png +0 -0
  427. data/spec/dummy/public/assets/openseadragon/zoomout_hover-b752facaf76d197e235dd789929e86577339ffa280b6a51621388f2cad9900e1.png +0 -0
  428. data/spec/dummy/public/assets/openseadragon/zoomout_pressed-99ce17d25e10d07ebe3a21642eb350bfd80c603cbb6a4b0af705fbcdf8ca57dc.png +0 -0
  429. data/spec/dummy/public/assets/openseadragon/zoomout_rest-a4ff50ab46d8de87c720cb9cbccc9b4bef1cdda1394b9c8a2b4e6fb2f63e13aa.png +0 -0
  430. data/spec/dummy/public/assets/orcid-cb273c1ff10d304ce1b6108a172bfd1660561e7fd8133b083cd66ee0f4a0a944.png +0 -0
  431. data/spec/dummy/public/assets/progressbar-a45ab53b619988cefd45f49cfacc604dd499b93f53a96927cf7b2d965f421f48.gif +0 -0
  432. data/spec/dummy/public/assets/qa/application-f9e7c1541e1b8783561468c59162bd896007380f5a3799ef2169d3a3fdf40bed.css +14 -0
  433. data/spec/dummy/public/assets/qa/application-f9e7c1541e1b8783561468c59162bd896007380f5a3799ef2169d3a3fdf40bed.css.gz +0 -0
  434. data/spec/dummy/public/assets/qa/application-fed7594354f41c527f9e8dab7f766cd780129ed1fd04e8c0646a72b825ad8e8b.js +14 -0
  435. data/spec/dummy/public/assets/qa/application-fed7594354f41c527f9e8dab7f766cd780129ed1fd04e8c0646a72b825ad8e8b.js.gz +0 -0
  436. data/spec/dummy/public/assets/select2-d6b5d8d83dbc18fb8d77c8761d331cd9e5123c9684950bab0406e98a24ac5ae8.png +0 -0
  437. data/spec/dummy/public/assets/select2-spinner-f6ecff617ec2ba7f559e6f535cad9b70a3f91120737535dab4d4548a6c83576c.gif +0 -0
  438. data/spec/dummy/public/assets/select2x2-6fe28d687dc0ed4d96016238c608ba1e7198c9c9accfa0b360b78018b9fb9bc2.png +0 -0
  439. data/spec/dummy/public/assets/tinymce/jquery.tinymce-db2bc0a724d3123cc432dc4d9d8029736b4afc8c8502967e359dce2ed3170c16.js +1 -0
  440. data/spec/dummy/public/assets/tinymce/jquery.tinymce-db2bc0a724d3123cc432dc4d9d8029736b4afc8c8502967e359dce2ed3170c16.js.gz +0 -0
  441. data/spec/dummy/public/assets/tinymce/jquery.tinymce.js +1 -0
  442. data/spec/dummy/public/assets/tinymce/jquery.tinymce.js.gz +1 -0
  443. data/spec/dummy/public/assets/tinymce/langs/readme-5a8b6a04d57b5c88e3fb7f2a870b8e2d3a48ec03ce6474206c41df78c155b2de.md +3 -0
  444. data/spec/dummy/public/assets/tinymce/langs/readme.md +1 -0
  445. data/spec/dummy/public/assets/tinymce/license-47a9dcd2574891a5a465112fd9dfcebcc7e61844edec27fa936a64642008fe66.txt +504 -0
  446. data/spec/dummy/public/assets/tinymce/license-47a9dcd2574891a5a465112fd9dfcebcc7e61844edec27fa936a64642008fe66.txt.gz +0 -0
  447. data/spec/dummy/public/assets/tinymce/license.txt +1 -0
  448. data/spec/dummy/public/assets/tinymce/license.txt.gz +1 -0
  449. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin-7b5bed8c5b41dbabee490dca68a3fc215c6c2d08ad1174d20fd4ebc27feb9b18.js +1 -0
  450. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin-7b5bed8c5b41dbabee490dca68a3fc215c6c2d08ad1174d20fd4ebc27feb9b18.js.gz +0 -0
  451. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin.js +1 -0
  452. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin.js.gz +1 -0
  453. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin-8fc6aac86dcfda2df29f3e402541e9f5ed45743f0dce76b80bc4e3c6a16be585.js +1 -0
  454. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin-8fc6aac86dcfda2df29f3e402541e9f5ed45743f0dce76b80bc4e3c6a16be585.js.gz +0 -0
  455. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin.js +1 -0
  456. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin.js.gz +1 -0
  457. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin-aacef7388395131adb8a2d04e3d130c13150b04a39ba15bfebdd8b5673e74b56.js +1 -0
  458. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin-aacef7388395131adb8a2d04e3d130c13150b04a39ba15bfebdd8b5673e74b56.js.gz +0 -0
  459. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin.js +1 -0
  460. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin.js.gz +1 -0
  461. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin-79ff6671020ca454d50be43a8cd68e51bbbab80f6f11d3ef1afc29df593a9cc0.js +1 -0
  462. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin-79ff6671020ca454d50be43a8cd68e51bbbab80f6f11d3ef1afc29df593a9cc0.js.gz +0 -0
  463. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin.js +1 -0
  464. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin.js.gz +1 -0
  465. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin-0d17bcbc8383db5d592ca5e213dd898106273274ff07ede506b8f8b6ff1f6ac0.js +1 -0
  466. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin-0d17bcbc8383db5d592ca5e213dd898106273274ff07ede506b8f8b6ff1f6ac0.js.gz +0 -0
  467. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin.js +1 -0
  468. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin.js.gz +1 -0
  469. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin-8acda51f6565daa44af5423768602b2296eff9cbc3b2355f82a1ae4490428833.js +1 -0
  470. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin-8acda51f6565daa44af5423768602b2296eff9cbc3b2355f82a1ae4490428833.js.gz +0 -0
  471. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin.js +1 -0
  472. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin.js.gz +1 -0
  473. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin-f0d451ae7fcfa1f30f73c2d9185c58173e1a8e44d893d752778b226b665f020b.js +1 -0
  474. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin-f0d451ae7fcfa1f30f73c2d9185c58173e1a8e44d893d752778b226b665f020b.js.gz +0 -0
  475. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin.js +1 -0
  476. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin.js.gz +1 -0
  477. data/spec/dummy/public/assets/tinymce/plugins/code/plugin-46957c79ea5f5757444d628fdb90bac81f078d87bc9601df76cc087d4976564b.js +1 -0
  478. data/spec/dummy/public/assets/tinymce/plugins/code/plugin-46957c79ea5f5757444d628fdb90bac81f078d87bc9601df76cc087d4976564b.js.gz +0 -0
  479. data/spec/dummy/public/assets/tinymce/plugins/code/plugin.js +1 -0
  480. data/spec/dummy/public/assets/tinymce/plugins/code/plugin.js.gz +1 -0
  481. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism-29127f13286ec42e411a82279280ccbb6c62d70a68a388b42fa34d8929d87995.css +139 -0
  482. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism-29127f13286ec42e411a82279280ccbb6c62d70a68a388b42fa34d8929d87995.css.gz +0 -0
  483. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism.css +1 -0
  484. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism.css.gz +1 -0
  485. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin-e477d85104bf7a6119ebe07bb02feb290325074ff222bf526a563151177d1b9d.js +1 -0
  486. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin-e477d85104bf7a6119ebe07bb02feb290325074ff222bf526a563151177d1b9d.js.gz +0 -0
  487. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin.js +1 -0
  488. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin.js.gz +1 -0
  489. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin-48d6719fa10b7bc1b3982d9d9f952d320ebba056102701e49e3945ce3bf8911d.js +1 -0
  490. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin-48d6719fa10b7bc1b3982d9d9f952d320ebba056102701e49e3945ce3bf8911d.js.gz +0 -0
  491. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin.js +1 -0
  492. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin.js.gz +1 -0
  493. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin-1b3d07a3487dbbf4eb7f0ce2252bdfc13cb849d1e8749b75c3523b22ea8f4761.js +1 -0
  494. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin-1b3d07a3487dbbf4eb7f0ce2252bdfc13cb849d1e8749b75c3523b22ea8f4761.js.gz +0 -0
  495. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin.js +1 -0
  496. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin.js.gz +1 -0
  497. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin-0893c42f76c330cbae77ee849d287028e03574dcf50b6a0770d4b771f7324f1c.js +1 -0
  498. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin-0893c42f76c330cbae77ee849d287028e03574dcf50b6a0770d4b771f7324f1c.js.gz +0 -0
  499. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin.js +1 -0
  500. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin.js.gz +1 -0
  501. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cool-bb0e93a050a32df7913e4026b3c88a176998e0e3e073ba06e9b73f6c24227c9c.gif +0 -0
  502. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cool.gif +1 -0
  503. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cry-a0c5f3e7a682449c973c9d9f7c46342081c46920686d2353f57aff91ab907f68.gif +0 -0
  504. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cry.gif +1 -0
  505. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-embarassed-d3cafcb50b335672cb5e9f4600ea9ea261dac7828dd28844d4927c393a25618f.gif +0 -0
  506. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-embarassed.gif +1 -0
  507. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-foot-in-mouth-03fe04d3ed533423ac81f05146584b0c451be3d4a30e76687ceef283ed07071f.gif +0 -0
  508. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif +1 -0
  509. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-frown-1b984bf98931dd1debb54461eb9d83e985f2b2999fe14bcb556d6c0921bc83b0.gif +0 -0
  510. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-frown.gif +1 -0
  511. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-innocent-8db353ef102196f2c6ddf5c4666446de955d7b14fc0957c806c9dbfb48fb0c29.gif +0 -0
  512. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-innocent.gif +1 -0
  513. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-kiss-3154c3665356c13ab10fefdbac1fe187fff978a0052037c99cdc4a97103413f2.gif +0 -0
  514. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-kiss.gif +1 -0
  515. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-laughing-8f6adedcd091975ffead171867a6304d908bb6541a6ccb4919286ec6b7d4551e.gif +0 -0
  516. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-laughing.gif +1 -0
  517. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-money-mouth-f0b9f4f22e237f5dbc851f900fed8d7eca4c954ae6fbc606c0cd8be431d0ac80.gif +0 -0
  518. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-money-mouth.gif +1 -0
  519. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-sealed-9933b442636b6e537df7b564e2c3f7a2873526eea6b022a98eb1e468e5204c32.gif +0 -0
  520. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-sealed.gif +1 -0
  521. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-smile-fd89cd460ffcacb7e725e00c0275ef5b3924ce468248e5ff4fb43545571cfa65.gif +0 -0
  522. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-smile.gif +1 -0
  523. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-surprised-3871f356cb41976d7ae8a5f005e8739e4d014352a8adef9b33f773d81b6e6c01.gif +0 -0
  524. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-surprised.gif +1 -0
  525. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-tongue-out-5843c85667a8226dc43be83749fd9fbbc5d20b1577de2b763915d99815d37d47.gif +0 -0
  526. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-tongue-out.gif +1 -0
  527. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-undecided-d8b9bcbb433951ff3c4ca8dd959ac3844239b98e6d52218833e1485a91f67347.gif +0 -0
  528. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-undecided.gif +1 -0
  529. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-wink-2af75ad7b1c08488505513503e34b15f40005e04a2a9568f698f0945d2d8ba1f.gif +0 -0
  530. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-wink.gif +1 -0
  531. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-yell-bba903fbcb46fce8c68b9e01863fd095b3b1d0e6aa72161f3a88d762a5f90a79.gif +0 -0
  532. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-yell.gif +1 -0
  533. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin-287cc5d2f0fba168841d0d0dab3c6f8f958fb0e80adada67cc1e64d88a69704e.js +1 -0
  534. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin-287cc5d2f0fba168841d0d0dab3c6f8f958fb0e80adada67cc1e64d88a69704e.js.gz +0 -0
  535. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin.js +1 -0
  536. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin.js.gz +1 -0
  537. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin-0bd712ddf83de5ad37a6822dc4c5832d82a5e2cd1da918d5b0e41bd09f65e1f6.js +1 -0
  538. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin-0bd712ddf83de5ad37a6822dc4c5832d82a5e2cd1da918d5b0e41bd09f65e1f6.js.gz +0 -0
  539. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin.js +1 -0
  540. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin.js.gz +1 -0
  541. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin-715b77a6ec2a2bade5ea0cc1658f4ab9fff89bd9a00619deb3e73145d0ada00e.js +1 -0
  542. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin-715b77a6ec2a2bade5ea0cc1658f4ab9fff89bd9a00619deb3e73145d0ada00e.js.gz +0 -0
  543. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin.js +1 -0
  544. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin.js.gz +1 -0
  545. data/spec/dummy/public/assets/tinymce/plugins/help/img/logo-95b06f8538b11c4c30170075a09f93cf5871f74dd2541e95ad3d9da31976fcac.png +0 -0
  546. data/spec/dummy/public/assets/tinymce/plugins/help/img/logo.png +1 -0
  547. data/spec/dummy/public/assets/tinymce/plugins/help/plugin-09c06aa8a6b13eb5aef6dfc2f25abb4b86f8c27accb396cee254b116cc99b6c7.js +1 -0
  548. data/spec/dummy/public/assets/tinymce/plugins/help/plugin-09c06aa8a6b13eb5aef6dfc2f25abb4b86f8c27accb396cee254b116cc99b6c7.js.gz +0 -0
  549. data/spec/dummy/public/assets/tinymce/plugins/help/plugin.js +1 -0
  550. data/spec/dummy/public/assets/tinymce/plugins/help/plugin.js.gz +1 -0
  551. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin-7efaeee8fa1f71745d5726205bbb4fd8c0f4eba1edf2baf5a31a3b59bb677622.js +1 -0
  552. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin-7efaeee8fa1f71745d5726205bbb4fd8c0f4eba1edf2baf5a31a3b59bb677622.js.gz +0 -0
  553. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin.js +1 -0
  554. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin.js.gz +1 -0
  555. data/spec/dummy/public/assets/tinymce/plugins/image/plugin-f228bcf7f9653e4c6ff1aae2bd06faeb46fcabc598ce4bb27a77bc174ed68ff3.js +1 -0
  556. data/spec/dummy/public/assets/tinymce/plugins/image/plugin-f228bcf7f9653e4c6ff1aae2bd06faeb46fcabc598ce4bb27a77bc174ed68ff3.js.gz +0 -0
  557. data/spec/dummy/public/assets/tinymce/plugins/image/plugin.js +1 -0
  558. data/spec/dummy/public/assets/tinymce/plugins/image/plugin.js.gz +1 -0
  559. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin-c39a78da27870681a7187f91831de204769c4b64708d167164443769c8c8fcdf.js +1 -0
  560. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin-c39a78da27870681a7187f91831de204769c4b64708d167164443769c8c8fcdf.js.gz +0 -0
  561. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin.js +1 -0
  562. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin.js.gz +1 -0
  563. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin-381b078db51fcc021a6220cf9f57609ed35ee67dd932669abafa5e5837460bbc.js +1 -0
  564. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin-381b078db51fcc021a6220cf9f57609ed35ee67dd932669abafa5e5837460bbc.js.gz +0 -0
  565. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin.js +1 -0
  566. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin.js.gz +1 -0
  567. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin-246b2dd91f69e2b7d268c35c6aaca0569b0366bc18e85c15eca000564683b71d.js +1 -0
  568. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin-246b2dd91f69e2b7d268c35c6aaca0569b0366bc18e85c15eca000564683b71d.js.gz +0 -0
  569. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin.js +1 -0
  570. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin.js.gz +1 -0
  571. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin-e8c2876525a55671c4ee55a2c298d3ba0eff6a8307c057893e42558eba637652.js +1 -0
  572. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin-e8c2876525a55671c4ee55a2c298d3ba0eff6a8307c057893e42558eba637652.js.gz +0 -0
  573. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin.js +1 -0
  574. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin.js.gz +1 -0
  575. data/spec/dummy/public/assets/tinymce/plugins/link/plugin-3429067e3c88378ddedc39f2bb42ea630e7ceb9dffa5f1a07d5b0e04180f94c4.js +1 -0
  576. data/spec/dummy/public/assets/tinymce/plugins/link/plugin-3429067e3c88378ddedc39f2bb42ea630e7ceb9dffa5f1a07d5b0e04180f94c4.js.gz +0 -0
  577. data/spec/dummy/public/assets/tinymce/plugins/link/plugin.js +1 -0
  578. data/spec/dummy/public/assets/tinymce/plugins/link/plugin.js.gz +1 -0
  579. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin-05b3aac526219ee583f49151d587f89a5002261d7dfb1663d5200c77894a48f9.js +1 -0
  580. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin-05b3aac526219ee583f49151d587f89a5002261d7dfb1663d5200c77894a48f9.js.gz +0 -0
  581. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin.js +1 -0
  582. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin.js.gz +1 -0
  583. data/spec/dummy/public/assets/tinymce/plugins/media/plugin-570acbace4fda902012c1c0596a586b521dc75cc89a4742f1bb2ecb15680b809.js +1 -0
  584. data/spec/dummy/public/assets/tinymce/plugins/media/plugin-570acbace4fda902012c1c0596a586b521dc75cc89a4742f1bb2ecb15680b809.js.gz +0 -0
  585. data/spec/dummy/public/assets/tinymce/plugins/media/plugin.js +1 -0
  586. data/spec/dummy/public/assets/tinymce/plugins/media/plugin.js.gz +1 -0
  587. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin-6438a2f260ffa4724f0d13e99fe8fb1a85c00f16df416468ccd0bf6f722aaee6.js +1 -0
  588. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin-6438a2f260ffa4724f0d13e99fe8fb1a85c00f16df416468ccd0bf6f722aaee6.js.gz +0 -0
  589. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin.js +1 -0
  590. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin.js.gz +1 -0
  591. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin-f3be489845e7a724465d7a2bcf8f033b8b91eda2c29193b354e634da697d2f27.js +1 -0
  592. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin-f3be489845e7a724465d7a2bcf8f033b8b91eda2c29193b354e634da697d2f27.js.gz +0 -0
  593. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin.js +1 -0
  594. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin.js.gz +1 -0
  595. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin-f4c2fa4074a982fc576ea586ee09e99091bc52d14597223c533e0967188d3a2d.js +1 -0
  596. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin-f4c2fa4074a982fc576ea586ee09e99091bc52d14597223c533e0967188d3a2d.js.gz +0 -0
  597. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin.js +1 -0
  598. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin.js.gz +1 -0
  599. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin-e5d9b3d8e7d071e74b7cfc90c3b1c85e7ed5e4245d805194f9f79fb872d39d3d.js +1 -0
  600. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin-e5d9b3d8e7d071e74b7cfc90c3b1c85e7ed5e4245d805194f9f79fb872d39d3d.js.gz +0 -0
  601. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin.js +1 -0
  602. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin.js.gz +1 -0
  603. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin-bdf1d10d1e637f00598d3f482895e276933c1e16b1b543d2120fb70c4fbf3d18.js +1 -0
  604. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin-bdf1d10d1e637f00598d3f482895e276933c1e16b1b543d2120fb70c4fbf3d18.js.gz +0 -0
  605. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin.js +1 -0
  606. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin.js.gz +1 -0
  607. data/spec/dummy/public/assets/tinymce/plugins/print/plugin-1ba88c314fa4c0c47ab0af0aa908c03d7906a77fef6a319a302ffff44099fe26.js +1 -0
  608. data/spec/dummy/public/assets/tinymce/plugins/print/plugin-1ba88c314fa4c0c47ab0af0aa908c03d7906a77fef6a319a302ffff44099fe26.js.gz +0 -0
  609. data/spec/dummy/public/assets/tinymce/plugins/print/plugin.js +1 -0
  610. data/spec/dummy/public/assets/tinymce/plugins/print/plugin.js.gz +1 -0
  611. data/spec/dummy/public/assets/tinymce/plugins/save/plugin-a944096bba3f8519c898163008a334509d0f4efdbcd9500d752170fdbef570b3.js +1 -0
  612. data/spec/dummy/public/assets/tinymce/plugins/save/plugin-a944096bba3f8519c898163008a334509d0f4efdbcd9500d752170fdbef570b3.js.gz +0 -0
  613. data/spec/dummy/public/assets/tinymce/plugins/save/plugin.js +1 -0
  614. data/spec/dummy/public/assets/tinymce/plugins/save/plugin.js.gz +1 -0
  615. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin-f92c077beef380fec6358458a27442d22eaca83a81fb3c4d71d9103e2f8b9c7a.js +1 -0
  616. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin-f92c077beef380fec6358458a27442d22eaca83a81fb3c4d71d9103e2f8b9c7a.js.gz +0 -0
  617. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin.js +1 -0
  618. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin.js.gz +1 -0
  619. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin-2421bc7102c088705c6d524c402aa8091adced77d046c2e6a210a431314f9b39.js +1 -0
  620. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin-2421bc7102c088705c6d524c402aa8091adced77d046c2e6a210a431314f9b39.js.gz +0 -0
  621. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin.js +1 -0
  622. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin.js.gz +1 -0
  623. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin-8222fce64dd367dccf3262baa1b881f2664d17704cc77e7bea991f2a2ef277e5.js +1 -0
  624. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin-8222fce64dd367dccf3262baa1b881f2664d17704cc77e7bea991f2a2ef277e5.js.gz +0 -0
  625. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin.js +1 -0
  626. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin.js.gz +1 -0
  627. data/spec/dummy/public/assets/tinymce/plugins/table/plugin-9a47d6e1a247fa9d364bbbd3f4369c008a90b8dc3ca58dccc078d96e35c309ff.js +1 -0
  628. data/spec/dummy/public/assets/tinymce/plugins/table/plugin-9a47d6e1a247fa9d364bbbd3f4369c008a90b8dc3ca58dccc078d96e35c309ff.js.gz +0 -0
  629. data/spec/dummy/public/assets/tinymce/plugins/table/plugin.js +1 -0
  630. data/spec/dummy/public/assets/tinymce/plugins/table/plugin.js.gz +1 -0
  631. data/spec/dummy/public/assets/tinymce/plugins/template/plugin-c8d1a75d3ed920d3a8c5a1de1a154fde85dad3540521734f7226f8ab7fa9a83f.js +1 -0
  632. data/spec/dummy/public/assets/tinymce/plugins/template/plugin-c8d1a75d3ed920d3a8c5a1de1a154fde85dad3540521734f7226f8ab7fa9a83f.js.gz +0 -0
  633. data/spec/dummy/public/assets/tinymce/plugins/template/plugin.js +1 -0
  634. data/spec/dummy/public/assets/tinymce/plugins/template/plugin.js.gz +1 -0
  635. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin-ebf778e6028f2d073e3ff9219c8d49ae5f066d4819cfe7fd72bcf6be84e0f014.js +1 -0
  636. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin-ebf778e6028f2d073e3ff9219c8d49ae5f066d4819cfe7fd72bcf6be84e0f014.js.gz +0 -0
  637. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin.js +1 -0
  638. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin.js.gz +1 -0
  639. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin-0e4e48f87210d9b6e23c4dc597d9eea97b6496c30cc5bcbddab76bb8c8bfc464.js +1 -0
  640. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin-0e4e48f87210d9b6e23c4dc597d9eea97b6496c30cc5bcbddab76bb8c8bfc464.js.gz +0 -0
  641. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin.js +1 -0
  642. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin.js.gz +1 -0
  643. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin-a73e6c327940360e18736b041e3345c9b678ecf553c9a1540f1c6f5275589b34.js +1 -0
  644. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin-a73e6c327940360e18736b041e3345c9b678ecf553c9a1540f1c6f5275589b34.js.gz +0 -0
  645. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin.js +1 -0
  646. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin.js.gz +1 -0
  647. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks-38af77cad34b0cc4beed256e10d7f2a6dfdde074c25d27d7e147505e5fd334ba.css +154 -0
  648. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks-38af77cad34b0cc4beed256e10d7f2a6dfdde074c25d27d7e147505e5fd334ba.css.gz +0 -0
  649. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks.css +1 -0
  650. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks.css.gz +1 -0
  651. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin-0b55625bb357cb6113a43de563efa3b6142f7502534ebc705315ef785d052c44.js +1 -0
  652. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin-0b55625bb357cb6113a43de563efa3b6142f7502534ebc705315ef785d052c44.js.gz +0 -0
  653. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin.js +1 -0
  654. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin.js.gz +1 -0
  655. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin-ae2a936285b3d920eb3ff184d8502811cbfb59cf6b1c06c81343a57505fd9f84.js +1 -0
  656. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin-ae2a936285b3d920eb3ff184d8502811cbfb59cf6b1c06c81343a57505fd9f84.js.gz +0 -0
  657. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin.js +1 -0
  658. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin.js.gz +1 -0
  659. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin-c1c8b0a36661e2d8ea847cefbaac2dfd95a16bea714c7dbd3d65f51e25311a65.js +1 -0
  660. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin-c1c8b0a36661e2d8ea847cefbaac2dfd95a16bea714c7dbd3d65f51e25311a65.js.gz +0 -0
  661. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin.js +1 -0
  662. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin.js.gz +1 -0
  663. data/spec/dummy/public/assets/tinymce/preinit-84328a53e798df12f891eb49871773fd9f925439c8630e9e22423a82ef9e6f89.js +4 -0
  664. data/spec/dummy/public/assets/tinymce/preinit-84328a53e798df12f891eb49871773fd9f925439c8630e9e22423a82ef9e6f89.js.gz +0 -0
  665. data/spec/dummy/public/assets/tinymce/preinit.js +1 -0
  666. data/spec/dummy/public/assets/tinymce/preinit.js.gz +1 -0
  667. data/spec/dummy/public/assets/tinymce/rails-bf7fd5c952f25481010758dde6a2681498074f9509230f601b317356a6a54fca.js +52 -0
  668. data/spec/dummy/public/assets/tinymce/rails-bf7fd5c952f25481010758dde6a2681498074f9509230f601b317356a6a54fca.js.gz +0 -0
  669. data/spec/dummy/public/assets/tinymce/rails.js +1 -0
  670. data/spec/dummy/public/assets/tinymce/rails.js.gz +1 -0
  671. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min-b62ea4e65ad6c87cbfedf3897b59eb30ec3972c410070d8ee2c0f5bececc4cce.css +1 -0
  672. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min-b62ea4e65ad6c87cbfedf3897b59eb30ec3972c410070d8ee2c0f5bececc4cce.css.gz +0 -0
  673. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min.css +1 -0
  674. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min.css.gz +1 -0
  675. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min-d72493ca5cc1caca93db665b284fd12fe396a245c3e82cc2d6cf4fca83702cb9.css +1 -0
  676. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min-d72493ca5cc1caca93db665b284fd12fe396a245c3e82cc2d6cf4fca83702cb9.css.gz +0 -0
  677. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min.css +1 -0
  678. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min.css.gz +1 -0
  679. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min-230c31f65356c7cb1799244a34f7a722c92a6d614e06e59d48db0ebccd7f2346.css +1 -0
  680. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min-230c31f65356c7cb1799244a34f7a722c92a6d614e06e59d48db0ebccd7f2346.css.gz +0 -0
  681. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min.css +1 -0
  682. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min.css.gz +1 -0
  683. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-84d35201689d08969a92a8ccdc5a0002da01eac30651fef23e79e1993ace2ebf.woff +0 -0
  684. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-8c8effbf1b373e7bd3f8f291264eaefeed933fea8fe91637d81f3fc9574c3592.ttf +0 -0
  685. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-8c8effbf1b373e7bd3f8f291264eaefeed933fea8fe91637d81f3fc9574c3592.ttf.gz +0 -0
  686. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-d7d36b21dc4b2dd2e4252b2b71f7b57d2d828359f2936af6e3fe8e2f913a0498.eot +0 -0
  687. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-d7d36b21dc4b2dd2e4252b2b71f7b57d2d828359f2936af6e3fe8e2f913a0498.eot.gz +0 -0
  688. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-e17f0683d5785645d10307971450b94e62b86f062e92fcea6a055c2443bdef5f.svg +132 -0
  689. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-e17f0683d5785645d10307971450b94e62b86f062e92fcea6a055c2443bdef5f.svg.gz +0 -0
  690. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff +0 -0
  691. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-mobile.woff +1 -0
  692. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-2f657502906d6f5c3fc8df3a82969114ebe030addfdc061c60c974b0f515fd09.ttf +0 -0
  693. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-2f657502906d6f5c3fc8df3a82969114ebe030addfdc061c60c974b0f515fd09.ttf.gz +0 -0
  694. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-a10fc4343d95b716c16d77463d475be5c079599ea67e1cd2bd3a94d5e7f508f9.eot +0 -0
  695. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-a10fc4343d95b716c16d77463d475be5c079599ea67e1cd2bd3a94d5e7f508f9.eot.gz +0 -0
  696. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-d3efbb678ca6de5632902bd93772746ba2f8e4e2322b953936e12694a183aa31.woff +0 -0
  697. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-e7773001446ab937e1d8d4bd5e8dbd9b31d112037353a14b319e36dd010ed8ee.svg +63 -0
  698. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-e7773001446ab937e1d8d4bd5e8dbd9b31d112037353a14b319e36dd010ed8ee.svg.gz +0 -0
  699. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.eot +1 -0
  700. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.eot.gz +1 -0
  701. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.svg +1 -0
  702. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.svg.gz +1 -0
  703. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.ttf +1 -0
  704. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.ttf.gz +1 -0
  705. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.woff +1 -0
  706. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.eot +1 -0
  707. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.eot.gz +1 -0
  708. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.svg +1 -0
  709. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.svg.gz +1 -0
  710. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.ttf +1 -0
  711. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.ttf.gz +1 -0
  712. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.woff +1 -0
  713. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/anchor-2861666fd107d278d4449970615136d06d7f746be9bb19072cf9c8f30e565e1e.gif +0 -0
  714. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/anchor.gif +1 -0
  715. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/loader-eb7cfd3d959b2e09c170f532e29f8b825f9bc770b2279fde58e595617753e244.gif +0 -0
  716. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/loader.gif +1 -0
  717. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/object-e6a15e52bc4a17b085073ba8debd4708ead6ae3d4cbeb3880c65cb7afc489777.gif +0 -0
  718. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/object.gif +1 -0
  719. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/trans-9cf020d7c3bba7f5ab10cda54aabef934f906d4f9a3acf99e9e7dc6c98579635.gif +0 -0
  720. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/trans.gif +1 -0
  721. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min-a79be2481d2a4ff94eb1149ead0747a75242ac8aaea9fb04511983009979e999.css +1 -0
  722. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min-a79be2481d2a4ff94eb1149ead0747a75242ac8aaea9fb04511983009979e999.css.gz +0 -0
  723. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min.css +1 -0
  724. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min.css.gz +1 -0
  725. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min-3bad5bf37eeca619d0f3250813b5489d7095b88f0cfe28bd1dc31b27f49b7d1c.css +2 -0
  726. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min-3bad5bf37eeca619d0f3250813b5489d7095b88f0cfe28bd1dc31b27f49b7d1c.css.gz +0 -0
  727. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min.css +1 -0
  728. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min.css.gz +1 -0
  729. data/spec/dummy/public/assets/tinymce/themes/inlite/theme-9b7dacf28bd56f89d0484dc1026baf70b99b19ae6e6b73e05508617cab4ce9fd.js +1 -0
  730. data/spec/dummy/public/assets/tinymce/themes/inlite/theme-9b7dacf28bd56f89d0484dc1026baf70b99b19ae6e6b73e05508617cab4ce9fd.js.gz +0 -0
  731. data/spec/dummy/public/assets/tinymce/themes/inlite/theme.js +1 -0
  732. data/spec/dummy/public/assets/tinymce/themes/inlite/theme.js.gz +1 -0
  733. data/spec/dummy/public/assets/tinymce/themes/mobile/theme-b2dd6f36e4d9b3e1c7db2e6eeca066fafe23c83d4edcb864435e8db5c75693a2.js +1 -0
  734. data/spec/dummy/public/assets/tinymce/themes/mobile/theme-b2dd6f36e4d9b3e1c7db2e6eeca066fafe23c83d4edcb864435e8db5c75693a2.js.gz +0 -0
  735. data/spec/dummy/public/assets/tinymce/themes/mobile/theme.js +1 -0
  736. data/spec/dummy/public/assets/tinymce/themes/mobile/theme.js.gz +1 -0
  737. data/spec/dummy/public/assets/tinymce/themes/modern/theme-902ab1a0d92d3c98813a758b5f2f1fa256c1d0f4d272071db3dd25f198e726e1.js +1 -0
  738. data/spec/dummy/public/assets/tinymce/themes/modern/theme-902ab1a0d92d3c98813a758b5f2f1fa256c1d0f4d272071db3dd25f198e726e1.js.gz +0 -0
  739. data/spec/dummy/public/assets/tinymce/themes/modern/theme.js +1 -0
  740. data/spec/dummy/public/assets/tinymce/themes/modern/theme.js.gz +1 -0
  741. data/spec/dummy/public/assets/tinymce/tinymce-4bbe7bdb1002044cd23496cc97b23a2fe25aefe0f130c9d6508877ffb9fd862e.js +26829 -0
  742. data/spec/dummy/public/assets/tinymce/tinymce-4bbe7bdb1002044cd23496cc97b23a2fe25aefe0f130c9d6508877ffb9fd862e.js.gz +0 -0
  743. data/spec/dummy/public/assets/tinymce/tinymce.js +1 -0
  744. data/spec/dummy/public/assets/tinymce/tinymce.js.gz +1 -0
  745. data/spec/dummy/public/assets/tinymce-18aa7e0c99c3802cce9257c706c337e2bc8f998d1f8ebfd00309592dffdade05.js +26888 -0
  746. data/spec/dummy/public/assets/tinymce-18aa7e0c99c3802cce9257c706c337e2bc8f998d1f8ebfd00309592dffdade05.js.gz +0 -0
  747. data/spec/dummy/public/assets/unauthorized-f936e9c3ea7a38e2c2092099586a71380b11258697b37fb4df376704495a849a.png +0 -0
  748. data/spec/dummy/public/assets/us_404-97e5b45f27bdb92b864434b6bfe96c248456caea17e9a18b4b671c803ea7db4d.svg +91 -0
  749. data/spec/dummy/public/assets/us_404-97e5b45f27bdb92b864434b6bfe96c248456caea17e9a18b4b671c803ea7db4d.svg.gz +0 -0
  750. data/spec/dummy/public/assets/work-ff055336041c3f7d310ad69109eda4a887b16ec501f35afc0a547c4adb97ee72.png +0 -0
  751. data/spec/dummy/public/assets/zizia/application-506279a2a8261b6dfdd8753ef894af0a53a1a04c7a71036110ed2ba9f437da99.js +71 -0
  752. data/spec/dummy/public/assets/zizia/application-506279a2a8261b6dfdd8753ef894af0a53a1a04c7a71036110ed2ba9f437da99.js.gz +0 -0
  753. data/spec/dummy/public/assets/zizia/application-a61ffbc929539843842d2e6e212160fa843847f8ae69f706ca83535eddc24737.css +36 -0
  754. data/spec/dummy/public/assets/zizia/application-a61ffbc929539843842d2e6e212160fa843847f8ae69f706ca83535eddc24737.css.gz +0 -0
  755. data/spec/dummy/public/assets/zotero-d6a884dbda40a61ac3a10f27c39592de33ec305bdb035859db6fd5dd2f47fc73.png +0 -0
  756. data/spec/dummy/public/favicon.ico +0 -0
  757. data/spec/dummy/public/robots.txt +1 -0
  758. data/spec/dummy/solr/conf/_rest_managed.json +3 -0
  759. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  760. data/spec/dummy/solr/conf/elevate.xml +36 -0
  761. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  762. data/spec/dummy/solr/conf/protwords.txt +21 -0
  763. data/spec/dummy/solr/conf/schema.xml +629 -0
  764. data/spec/dummy/solr/conf/scripts.conf +24 -0
  765. data/spec/dummy/solr/conf/solrconfig.xml +411 -0
  766. data/spec/dummy/solr/conf/spellings.txt +2 -0
  767. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  768. data/spec/dummy/solr/conf/stopwords_en.txt +58 -0
  769. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  770. data/spec/dummy/solr/conf/xslt/example.xsl +132 -0
  771. data/spec/dummy/solr/conf/xslt/example_atom.xsl +67 -0
  772. data/spec/dummy/solr/conf/xslt/example_rss.xsl +66 -0
  773. data/spec/dummy/solr/conf/xslt/luke.xsl +337 -0
  774. data/spec/dummy/solr/config/_rest_managed.json +3 -0
  775. data/spec/dummy/solr/config/admin-extra.html +31 -0
  776. data/spec/dummy/solr/config/elevate.xml +36 -0
  777. data/spec/dummy/solr/config/mapping-ISOLatin1Accent.txt +246 -0
  778. data/spec/dummy/solr/config/protwords.txt +21 -0
  779. data/spec/dummy/solr/config/schema.xml +366 -0
  780. data/spec/dummy/solr/config/scripts.conf +24 -0
  781. data/spec/dummy/solr/config/solrconfig.xml +322 -0
  782. data/spec/dummy/solr/config/spellings.txt +2 -0
  783. data/spec/dummy/solr/config/stopwords.txt +58 -0
  784. data/spec/dummy/solr/config/stopwords_en.txt +58 -0
  785. data/spec/dummy/solr/config/synonyms.txt +31 -0
  786. data/spec/dummy/solr/config/xslt/example.xsl +132 -0
  787. data/spec/dummy/solr/config/xslt/example_atom.xsl +67 -0
  788. data/spec/dummy/solr/config/xslt/example_rss.xsl +66 -0
  789. data/spec/dummy/solr/config/xslt/luke.xsl +337 -0
  790. data/spec/dummy/solr/sample_solr_documents.yml +2692 -0
  791. data/spec/dummy/spec/fixtures/csv_import/csv_files_with_problems/extra - headers.csv +4 -0
  792. data/spec/dummy/spec/fixtures/csv_import/csv_files_with_problems/missing_headers.csv +2 -0
  793. data/spec/dummy/spec/fixtures/csv_import/good/all_fields.csv +2 -0
  794. data/spec/dummy/spec/fixtures/csv_import/good/all_fields_complete_update.csv +2 -0
  795. data/spec/dummy/spec/fixtures/csv_import/good/all_fields_metadata_update.csv +2 -0
  796. data/spec/dummy/spec/fixtures/csv_import/good/all_fields_only_new.csv +3 -0
  797. data/spec/dummy/spec/fixtures/images/animals/cat.png +0 -0
  798. data/spec/dummy/spec/fixtures/images/birds.jpg +0 -0
  799. data/spec/dummy/spec/fixtures/images/cat.jpg +0 -0
  800. data/spec/dummy/spec/fixtures/images/dog.jpg +0 -0
  801. data/spec/dummy/spec/fixtures/images/zizia.png +0 -0
  802. data/spec/dummy/spec/integration/import_csv_spec.rb +24 -0
  803. data/spec/dummy/spec/models/collection_spec.rb +7 -0
  804. data/spec/dummy/spec/models/file_set_spec.rb +7 -0
  805. data/spec/dummy/spec/models/qa/local_authority_entry_spec.rb +5 -0
  806. data/spec/dummy/spec/models/qa/local_authority_spec.rb +5 -0
  807. data/spec/dummy/spec/rails_helper.rb +62 -0
  808. data/spec/dummy/spec/spec_helper.rb +96 -0
  809. data/spec/dummy/spec/system/import_csv_with_warnings_spec.rb +51 -0
  810. data/spec/dummy/spec/system/import_from_csv_spec.rb +242 -0
  811. data/spec/dummy/spec/system/import_from_csv_with_errors_spec.rb +35 -0
  812. data/spec/dummy/spec/system/import_with_no_collection_spec.rb +18 -0
  813. data/spec/dummy/spec/system/importer_documentation_spec.rb +17 -0
  814. data/spec/dummy/spec/system/view_hyrax_home_page_spec.rb +9 -0
  815. data/spec/dummy/storage/.keep +0 -0
  816. data/spec/dummy/test/application_system_test_case.rb +5 -0
  817. data/spec/dummy/test/controllers/.keep +0 -0
  818. data/spec/dummy/test/fixtures/.keep +0 -0
  819. data/spec/dummy/test/fixtures/files/.keep +0 -0
  820. data/spec/dummy/test/fixtures/users.yml +11 -0
  821. data/spec/dummy/test/helpers/.keep +0 -0
  822. data/spec/dummy/test/integration/.keep +0 -0
  823. data/spec/dummy/test/mailers/.keep +0 -0
  824. data/spec/dummy/test/models/.keep +0 -0
  825. data/spec/dummy/test/models/user_test.rb +7 -0
  826. data/spec/dummy/test/system/.keep +0 -0
  827. data/spec/dummy/test/test_helper.rb +9 -0
  828. data/spec/dummy/vendor/.keep +0 -0
  829. data/spec/factories/collection.rb +13 -0
  830. data/spec/factories/user.rb +34 -0
  831. data/spec/fixtures/bad_example.csv +2 -0
  832. data/spec/fixtures/csv_import/csv_files_with_problems/extra - headers.csv +4 -0
  833. data/spec/fixtures/csv_import/csv_files_with_problems/missing_headers.csv +2 -0
  834. data/spec/fixtures/csv_import/good/all_fields.csv +2 -0
  835. data/spec/fixtures/dog.jpg +0 -0
  836. data/spec/fixtures/example.csv +4 -0
  837. data/spec/fixtures/hyrax/example.csv +3 -0
  838. data/spec/fixtures/images/animals/cat.png +0 -0
  839. data/spec/fixtures/images/birds.jpg +0 -0
  840. data/spec/fixtures/images/cat.jpg +0 -0
  841. data/spec/fixtures/images/dog.jpg +0 -0
  842. data/spec/fixtures/images/zizia.png +0 -0
  843. data/spec/fixtures/zizia.png +0 -0
  844. data/spec/integration/csv_import_detail_spec.rb +48 -0
  845. data/spec/integration/import_hyrax_csv.rb +71 -0
  846. data/spec/models/csv_import_spec.rb +18 -0
  847. data/spec/rails_helper.rb +80 -0
  848. data/spec/spec_helper.rb +28 -0
  849. data/spec/support/capybara.rb +28 -0
  850. data/spec/support/hyrax/basic_metadata.rb +30 -0
  851. data/spec/support/hyrax/core_metadata.rb +15 -0
  852. data/spec/support/shared_contexts/with_work_type.rb +109 -0
  853. data/spec/uploaders/csv_manifest_uploader_spec.rb +30 -0
  854. data/spec/views/zizia/importer_documentation/guide.html.erb_spec.rb +13 -0
  855. data/spec/zizia/csv_format_validator_spec.rb +38 -0
  856. data/spec/zizia/csv_parser_spec.rb +73 -0
  857. data/spec/zizia/csv_template_spec.rb +15 -0
  858. data/spec/zizia/hash_mapper_spec.rb +8 -0
  859. data/spec/zizia/hyrax/hyrax_basic_metadata_mapper_spec.rb +191 -0
  860. data/spec/zizia/importer_spec.rb +46 -0
  861. data/spec/zizia/input_record_spec.rb +71 -0
  862. data/spec/zizia/record_importer_spec.rb +53 -0
  863. data/spec/zizia/title_validator_spec.rb +23 -0
  864. data/spec/zizia/validator_spec.rb +9 -0
  865. data/spec/zizia/version_spec.rb +7 -0
  866. data/spec/zizia_spec.rb +20 -0
  867. data/zizia.gemspec +62 -0
  868. metadata +868 -2
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'carrierwave'
4
+
5
+ module Zizia
6
+ class CsvManifestUploader < CarrierWave::Uploader::Base
7
+ # Choose what kind of storage to use for this uploader:
8
+ storage :file
9
+
10
+ # Process calls that method whenever a file is uploaded.
11
+ process :validate_csv
12
+
13
+ # The directory where the csv manifest will be stored.
14
+ def store_dir
15
+ manifests_path || Rails.root.join('tmp', 'csv_uploads')
16
+ end
17
+
18
+ def cache_dir
19
+ manifests_cache_path || Rails.root.join('tmp', 'csv_uploads_cache')
20
+ end
21
+
22
+ # Add a white list of extensions which are allowed to be uploaded.
23
+ # For images you might use something like this:
24
+ # %w(jpg jpeg gif png)
25
+ def extension_whitelist
26
+ %w[csv]
27
+ end
28
+
29
+ # These are stored in memory only, not persisted
30
+ def errors
31
+ @validator ? @validator.errors : []
32
+ end
33
+
34
+ # These are stored in memory only, not persisted
35
+ def warnings
36
+ @validator ? @validator.warnings : []
37
+ end
38
+
39
+ def records
40
+ @validator ? @validator.record_count : 0
41
+ end
42
+
43
+ private
44
+
45
+ def manifests_path
46
+ return false if ENV['CSV_MANIFESTS_PATH'].nil?
47
+ return false unless File.directory?(ENV['CSV_MANIFESTS_PATH'])
48
+ ENV['CSV_MANIFESTS_PATH']
49
+ end
50
+
51
+ def manifests_cache_path
52
+ return false if ENV['CSV_MANIFESTS_CACHE_PATH'].nil?
53
+ return false unless File.directory?(ENV['CSV_MANIFESTS_CACHE_PATH'])
54
+ ENV['CSV_MANIFESTS_CACHE_PATH']
55
+ end
56
+
57
+ def validate_csv
58
+ @validator = CsvManifestValidator.new(self)
59
+ @validator.validate
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,163 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Validate a CSV file.
4
+ #
5
+ # Don't put expensive validations in this class.
6
+ # This is meant to be used for running a few quick
7
+ # validations before starting a CSV-based import.
8
+ # It will be called during the HTTP request/response,
9
+ # so long-running validations will make the page load
10
+ # slowly for the user. Any validations that are slow
11
+ # should be run in background jobs during the import
12
+ # instead of here.
13
+ module Zizia
14
+ class CsvManifestValidator
15
+ # @param manifest_uploader [CsvManifestUploader] The manifest that's mounted to a CsvImport record. See carrierwave gem documentation. This is basically a wrapper for the CSV file.
16
+ def initialize(manifest_uploader)
17
+ @csv_file = manifest_uploader.file
18
+ @errors = []
19
+ @warnings = []
20
+ end
21
+
22
+ # Errors and warnings for the CSV file.
23
+ attr_reader :errors, :warnings
24
+ attr_reader :csv_file
25
+
26
+ def validate
27
+ parse_csv
28
+ return unless @rows
29
+
30
+ missing_headers
31
+ duplicate_headers
32
+ unrecognized_headers
33
+ missing_values
34
+ invalid_license
35
+ invalid_resource_type
36
+ invalid_rights_statement
37
+ end
38
+
39
+ # One record per row
40
+ def record_count
41
+ return nil unless @rows
42
+ @rows.size - 1 # Don't include the header row
43
+ end
44
+
45
+ def delimiter
46
+ @delimiter ||= default_delimiter
47
+ end
48
+ attr_writer :delimiter
49
+
50
+ private
51
+
52
+ def default_delimiter
53
+ Zizia::HyraxBasicMetadataMapper.new.delimiter
54
+ end
55
+
56
+ def valid_headers
57
+ ['title', 'files', 'representative media',
58
+ 'thumbnail', 'rendering', 'depositor',
59
+ 'date_uploaded', 'date_modified', 'label',
60
+ 'relative_path', 'import url', 'resource type',
61
+ 'creator', 'contributor', 'abstract or summary',
62
+ 'keyword', 'license', 'rights statement',
63
+ 'publisher', 'date created', 'subject',
64
+ 'language', 'identifier', 'location',
65
+ 'related url', 'bibliographic_citation',
66
+ 'source', 'visibility']
67
+ end
68
+
69
+ def parse_csv
70
+ @rows = CSV.read(csv_file.path)
71
+ @headers = @rows.first || []
72
+ @transformed_headers = @headers.map { |header| header.downcase.strip }
73
+ rescue
74
+ @errors << 'We are unable to read this CSV file.'
75
+ end
76
+
77
+ def missing_headers
78
+ required_headers.each do |header|
79
+ next if @transformed_headers.include?(header)
80
+ @errors << "Missing required column: \"#{header.titleize}\". Your spreadsheet must have this column."
81
+ end
82
+ end
83
+
84
+ def required_headers
85
+ ['title', 'creator', 'keyword', 'rights statement', 'visibility', 'files']
86
+ end
87
+
88
+ def duplicate_headers
89
+ duplicates = []
90
+ sorted_headers = @transformed_headers.sort
91
+ sorted_headers.each_with_index do |x, i|
92
+ duplicates << x if x == sorted_headers[i + 1]
93
+ end
94
+ duplicates.uniq.each do |header|
95
+ @errors << "Duplicate column names: You can have only one \"#{header.titleize}\" column."
96
+ end
97
+ end
98
+
99
+ # Warn the user if we find any unexpected headers.
100
+ def unrecognized_headers
101
+ extra_headers = @transformed_headers - valid_headers
102
+ extra_headers.each do |header|
103
+ @warnings << "The field name \"#{header}\" is not supported. This field will be ignored, and the metadata for this field will not be imported."
104
+ end
105
+ end
106
+
107
+ def missing_values
108
+ column_numbers = required_headers.map { |header| @transformed_headers.find_index(header) }.compact
109
+
110
+ @rows.each_with_index do |row, i|
111
+ column_numbers.each_with_index do |column_number, j|
112
+ next unless row[column_number].blank?
113
+ @errors << "Missing required metadata in row #{i + 1}: \"#{required_headers[j].titleize}\" field cannot be blank"
114
+ end
115
+ end
116
+ end
117
+
118
+ # Only allow valid license values expected by Hyrax.
119
+ # Otherwise the app throws an error when it displays the work.
120
+ def invalid_license
121
+ validate_values('license', :valid_licenses)
122
+ end
123
+
124
+ def invalid_resource_type
125
+ validate_values('resource type', :valid_resource_types)
126
+ end
127
+
128
+ def invalid_rights_statement
129
+ validate_values('rights statement', :valid_rights_statements)
130
+ end
131
+
132
+ def valid_licenses
133
+ @valid_license_ids ||= Hyrax::LicenseService.new.authority.all.select { |license| license[:active] }.map { |license| license[:id] }
134
+ end
135
+
136
+ def valid_resource_types
137
+ @valid_resource_type_ids ||= Qa::Authorities::Local.subauthority_for('resource_types').all.select { |term| term[:active] }.map { |term| term[:id] }
138
+ end
139
+
140
+ def valid_rights_statements
141
+ @valid_rights_statement_ids ||= Qa::Authorities::Local.subauthority_for('rights_statements').all.select { |term| term[:active] }.map { |term| term[:id] }
142
+ end
143
+
144
+ # Make sure this column contains only valid values
145
+ def validate_values(header_name, valid_values_method)
146
+ column_number = @transformed_headers.find_index(header_name)
147
+ return unless column_number
148
+
149
+ @rows.each_with_index do |row, i|
150
+ next if i.zero? # Skip the header row
151
+ next unless row[column_number]
152
+
153
+ values = row[column_number].split(delimiter)
154
+ valid_values = method(valid_values_method).call
155
+ invalid_values = values.select { |value| !valid_values.include?(value) }
156
+
157
+ invalid_values.each do |value|
158
+ @errors << "Invalid #{header_name.titleize} in row #{i + 1}: #{value}"
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Zizia</title>
5
+ <%= stylesheet_link_tag "zizia/application", media: "all" %>
6
+ <%= javascript_include_tag "zizia/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,3 @@
1
+ <div class="actions">
2
+ <%= form.submit 'Preview Import', class: "btn btn-primary btn-lg" %>
3
+ </div>
@@ -0,0 +1,3 @@
1
+ <div class="form-group">
2
+ <%= form.select :fedora_collection_id, options_for_select(collections_for_select), {}, class: "form-control", id: "fedora_collection_id" %>
3
+ </div>
@@ -0,0 +1,10 @@
1
+ <% if csv_import.errors.any? %>
2
+ <div id="error_explanation">
3
+ <h2><%= pluralize(csv_import.errors.size, "error") %> prohibited this csv_import from being saved:</h2>
4
+ <ul>
5
+ <% csv_import.errors.full_messages.each do |message| %>
6
+ <li><%= message %></li>
7
+ <% end %>
8
+ </ul>
9
+ </div>
10
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <%= form.file_field :manifest, required: true, id: 'file-upload', class: "file-upload form-control", onchange: "Zizia.displayUploadedFile()" %>
2
+ <label for="file-upload" class="btn btn-lg btn-primary"><span class="glyphicon glyphicon-upload"></span> Upload Your CSV</label>
3
+ <div id="file-upload-display"></div>
@@ -0,0 +1,83 @@
1
+ <%= form_with(model: csv_import, local: true, html: { multipart: true }, url: preview_csv_import_path) do |form| %>
2
+ <div class="panel panel-default">
3
+ <div class="panel-body">
4
+ <div class="row">
5
+ <div class="col-md-8">
6
+ <h2> Getting Started </h2>
7
+ </div>
8
+ </div>
9
+ <div class="row">
10
+ <div class="col-md-4">
11
+ <div class="well well-lg">
12
+ <p><b>Read the CSV Field Guide</b> to learn what is required in your CSV.</p>
13
+ <div class="text-center">
14
+ <a href="/importer_documentation/guide" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-book"></i> CSV Field Guide</a>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ <div class="col-md-4">
19
+ <div class="well well-lg">
20
+ <p><b>Download a CSV template</b> to get started.</b></p>
21
+ <div class="text-center">
22
+ <a href="/importer_documentation/csv" data-turbolinks="false" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-list"></i> Download a CSV Template</a>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ <hr/>
28
+
29
+ <% if collections? %>
30
+ <div class="row">
31
+ <div class="col-md-8">
32
+ <h2> Upload Your CSV </h2>
33
+ </div>
34
+ </div>
35
+ <div class="row">
36
+ <div class="col-md-4">
37
+ <div class="well well-lg">
38
+ <p> <b>Upload a CSV</b> that has your content. </p>
39
+ <div class="text-center">
40
+ <%= render "file_upload", form: form %>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class="col-md-4">
45
+ <div class="well well-lg">
46
+ <p> <b>Choose a collection</b>. All imports need to be associated with a collection. </p>
47
+ <div class="text-center">
48
+ <%= render "collection_selection", form: form %>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <div class="col-md-4">
53
+ <div class="well well-lg">
54
+ <p> <b>Import Behavior</b>. Choose how you would like existing IDs to be handled.</p>
55
+ <div class="text-center">
56
+ <%= render "update_actor_stack", form: form %>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <div class="col-md-4">
61
+ <div class="well well-lg">
62
+ <p> <b>Preview your import</b> before starting the process. </p>
63
+ <div class="text-center">
64
+ <%= render "actions", form: form %>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+
70
+ <div class="row">
71
+ <div class="col-md-4">
72
+ <%= render "error", csv_import: csv_import %>
73
+ </div>
74
+ <div class="col-md-4">
75
+ </div>
76
+ </div>
77
+
78
+
79
+ <%= form.hidden_field :manifest_cache %>
80
+ <% else %>
81
+ <%= render 'no_collection' %>
82
+ <% end %>
83
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <div class="row">
2
+ <div class="col-md-4">
3
+ <div class="well well-lg no-collection">
4
+ You must <a href="/dashboard/collections">create a collection</a> before importing content.
5
+ </div>
6
+ </div>
7
+ </div>
@@ -0,0 +1,8 @@
1
+ <div class="row">
2
+ <div class="col-md-8">
3
+ <div class="alert alert-success">
4
+ <p> This import will create or update <%= @csv_import.manifest_records %> records. </p>
5
+ <p> If you only want to import new records you will be able to choose that option after continuing. </p>
6
+ </div>
7
+ </div>
8
+ </div>
@@ -0,0 +1,10 @@
1
+ <%= form_with(model: csv_import, local: true, html: { multipart: true }) do |form| %>
2
+
3
+ <%= form.hidden_field :manifest_cache %>
4
+ <%= form.hidden_field :fedora_collection_id, value: csv_import.fedora_collection_id %>
5
+ <%= form.hidden_field :update_actor_stack, value: csv_import.update_actor_stack %>
6
+
7
+ <div class="actions">
8
+ <%= form.submit 'Start Import', class: 'btn btn-lg btn-primary' %>
9
+ </div>
10
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <div class="form-group">
2
+ <%= form.select :update_actor_stack, options_for_select([['Update metadata for any existing IDs', 'HyraxMetadataOnly'],
3
+ ['Only create works for new IDs', 'HyraxOnlyNew' ],
4
+ ['Update metadata and files or create new works as required', 'HyraxDelete']]), {}, class: "form-control", id: "update_actor_stack_id" %>
5
+ </div>
@@ -0,0 +1,21 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <h2>CSV Imports</h2>
4
+
5
+ <table>
6
+ <thead>
7
+ <tr>
8
+ <th colspan="3"></th>
9
+ </tr>
10
+ </thead>
11
+
12
+ <tbody>
13
+ <% @csv_imports.each do |csv_import| %>
14
+ <tr>
15
+ <% link_text = csv_import.manifest.file ? File.basename(csv_import.manifest.to_s) : 'show' %>
16
+ <td><%= link_to link_text, csv_import %></td>
17
+ </tr>
18
+ <% end %>
19
+ </tbody>
20
+ </table>
21
+
@@ -0,0 +1,2 @@
1
+ <h2><span class="glyphicon glyphicon-cloud-upload"></span> Begin Your CSV Import </h2>
2
+ <%= render 'form', csv_import: @csv_import %>
@@ -0,0 +1,76 @@
1
+ <h2><span class="glyphicon glyphicon-cloud-upload"></span> Preview your CSV Import</h2>
2
+ <div class="panel panel-default">
3
+ <div class="panel-body">
4
+ <div id='csv_info'>
5
+ <% if @csv_import.manifest.file %>
6
+ <div class="row">
7
+ <div class="col-md-4">
8
+ <label> CSV Manifest: </label>
9
+ <%= File.basename(@csv_import.manifest.to_s) %>
10
+ </div>
11
+ <div class="col-md-4">
12
+ <label> Collection: </label>
13
+ <%= ActiveFedora::SolrService.query("id:#{@csv_import.fedora_collection_id}")[0]['title_tesim'][0] %>
14
+ </div>
15
+ </div>
16
+ <% end %>
17
+
18
+ <%= render 'record_count', locals: { csv_import: @csv_import } %>
19
+
20
+ <% unless @csv_import.manifest_errors.empty? %>
21
+ <div class="row">
22
+ <div class="col-md-6">
23
+ <div class="alert alert-danger">
24
+ <div id='csv_errors'>
25
+ <b><i class="glyphicon glyphicon-remove-sign"></i> The CSV file has the following errors:</b>
26
+ <ul>
27
+ <% @csv_import.manifest_errors.each do |error| %>
28
+ <li> <%= error %> </li>
29
+ <% end %>
30
+ </ul>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ <% end %>
36
+
37
+ <% unless @csv_import.manifest_warnings.empty? %>
38
+ <div class="row">
39
+ <div class="col-md-6">
40
+ <div class="alert alert-warning">
41
+ <div id='csv_warnings'>
42
+ <b><i class="glyphicon glyphicon-exclamation-sign"></i> The CSV file has the following warnings:</b>
43
+ <ul>
44
+ <% @csv_import.manifest_warnings.each do |warning| %>
45
+ <li> <%= warning %> </li>
46
+ <% end %>
47
+ </ul>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <% end %>
53
+
54
+ <% if @csv_import.manifest_errors.empty? %>
55
+ <div class="row">
56
+ <div class="col-md-2">
57
+ <%= render 'start_import_form', csv_import: @csv_import, class: "btn btn-large btn-danger" %>
58
+ </div>
59
+ <div class="col-md-2">
60
+ <%= link_to 'Cancel', new_csv_import_path, class: "btn btn-lg btn-danger" %>
61
+ </div>
62
+ </div>
63
+ <% else %>
64
+ <div class="row">
65
+ <div class="col-md-4">
66
+ <div class="well"><p>You will need to correct the errors with the CSV file before you can continue.</p></br>
67
+ <div class="text-center"><%= link_to 'Try Again', new_csv_import_path, class: 'btn btn-lg btn-primary' %>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ <% end %>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
@@ -0,0 +1,31 @@
1
+ <h2> Importing Records from a CSV File </h2>
2
+ <p id="notice"><%= notice %></p>
3
+
4
+ <div class="panel panel-default">
5
+ <div class="panel-body">
6
+
7
+ <p>
8
+ <label> CSV Manifest: </label>
9
+ <span> <%= File.basename(@csv_import.manifest.to_s) %> </span>
10
+ <br />
11
+ <label> Collection: </label>
12
+ <span> <%= ActiveFedora::SolrService.query("id:#{@csv_import.fedora_collection_id}")[0]['title_tesim'][0] %> </span>
13
+ <br />
14
+ <label> Uploaded by: </label>
15
+ <span> <%= @csv_import.user.name %> </span>
16
+ <br />
17
+ <label> Start time: </label>
18
+ <span> <%= @csv_import.created_at %> </span>
19
+ </p>
20
+
21
+ <div class="row">
22
+ <div class="col-md-6">
23
+ <div class='well'>
24
+ <p> Your records will be imported in the background. To check the current status, please check the background job status page. </p><br />
25
+ <div class="text-center"> <%= link_to 'Background Job Status', '/sidekiq', class: "btn btn-primary btn-lg" %> </div>
26
+ </div>
27
+ </div>
28
+ </div>
29
+
30
+ </div>
31
+ </div>
@@ -0,0 +1 @@
1
+ <%= render_guide.html_safe %>
data/bin/rails ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ # This command will automatically be run when you run "rails" with Rails gems
4
+ # installed from the root of your application.
5
+
6
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
7
+ ENGINE_PATH = File.expand_path('../../lib/zizia/engine', __FILE__)
8
+ APP_PATH = File.expand_path('../../spec/dummy/config/application', __FILE__)
9
+
10
+ # Set up gems listed in the Gemfile.
11
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
12
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
13
+
14
+ require 'rails/all'
15
+ require 'rails/engine/commands'
data/config/routes.rb ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+ Zizia::Engine.routes.draw do
3
+ get 'importer_documentation/guide'
4
+ get 'importer_documentation/csv'
5
+
6
+ post 'csv_imports/preview', as: 'preview_csv_import'
7
+ get 'csv_imports/preview', to: redirect('csv_imports/new')
8
+ resources :csv_imports, only: [:index, :show, :new, :create]
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+ class CreateZiziaCsvImports < ActiveRecord::Migration[5.1]
3
+ def change
4
+ create_table :zizia_csv_imports do |t|
5
+ t.references :user, foreign_key: true
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ class AddManifestToZiziaCsvImports < ActiveRecord::Migration[5.1]
3
+ def change
4
+ add_column :zizia_csv_imports, :manifest, :string
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddFedoraCollectionIdToZiziaCsvImports < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_imports, :fedora_collection_id, :string
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddUpdateActorStackToZiziaCsvImports < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_imports, :update_actor_stack, :string
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ class CreateZiziaPreIngestFiles < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :zizia_pre_ingest_files do |t|
4
+ t.integer :size
5
+ t.text :row
6
+ t.integer :row_number
7
+ t.string :filename
8
+ t.belongs_to :pre_ingest_work
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ class CreateZiziaPreIngestWorks < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :zizia_pre_ingest_works do |t|
4
+ t.integer :parent_object
5
+ t.belongs_to :csv_import_detail
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ class CreateZiziaCsvImportDetails < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :zizia_csv_import_details do |t|
4
+ t.belongs_to :csv_import
5
+ t.timestamps
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ class DropUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ def up
4
+ drop_table :users
5
+ end
6
+
7
+ def down
8
+ fail ActiveRecord::IrreversibleMigration
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,18 @@
1
+ class UserRoles < ActiveRecord::Migration[5.0]
2
+ def up
3
+ create_table :roles do |t|
4
+ t.string :name
5
+ end
6
+ create_table :roles_users, :id => false do |t|
7
+ t.references :role
8
+ t.references :user
9
+ end
10
+ add_index :roles_users, [:role_id, :user_id]
11
+ add_index :roles_users, [:user_id, :role_id]
12
+ end
13
+
14
+ def down
15
+ drop_table :roles_users
16
+ drop_table :roles
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ class AddDepositorIdToCsvImportDetail < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_import_details, :depositor_id, :string
4
+ end
5
+ end