lcms-engine 0.3.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (328) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +25 -0
  3. data/.eslintignore +2 -1
  4. data/.eslintrc +23 -73
  5. data/.nvmrc +1 -1
  6. data/.overcommit.yml +8 -2
  7. data/.prettierrc +7 -0
  8. data/.rubocop.yml +5 -2
  9. data/.ruby-version +1 -1
  10. data/.stylelintignore +9 -0
  11. data/.stylelintrc +8 -0
  12. data/CHANGELOG.md +42 -2
  13. data/Dockerfile +3 -3
  14. data/Gemfile.lock +345 -298
  15. data/README.md +21 -33
  16. data/app/assets/config/lcms_engine_manifest.js +4 -2
  17. data/app/assets/javascripts/lcms/engine/admin/{application.js → lcms_engine_application.js} +1 -3
  18. data/app/assets/javascripts/lcms/engine/initializers/foundation.js +1 -1
  19. data/app/assets/javascripts/lcms/engine/{application.js → lcms_engine_application.js} +0 -0
  20. data/app/assets/stylesheets/lcms/engine/admin/collections.scss +2 -1
  21. data/app/assets/stylesheets/lcms/engine/admin/components.scss +60 -19
  22. data/app/assets/stylesheets/lcms/engine/admin/curriculums.scss +12 -10
  23. data/app/assets/stylesheets/lcms/engine/admin/lessons.scss +21 -15
  24. data/app/assets/stylesheets/lcms/engine/admin/materials.scss +25 -17
  25. data/app/assets/stylesheets/lcms/engine/admin/resources.scss +8 -7
  26. data/app/assets/stylesheets/lcms/engine/admin/standards.scss +4 -1
  27. data/app/assets/stylesheets/lcms/engine/admin/users.scss +1 -1
  28. data/app/assets/stylesheets/lcms/engine/base/_colors.scss +8 -10
  29. data/app/assets/stylesheets/lcms/engine/base/_ld-colors.scss +10 -10
  30. data/app/assets/stylesheets/lcms/engine/components/_assoc-picker.scss +4 -5
  31. data/app/assets/stylesheets/lcms/engine/components/lesson/_activity.scss +6 -2
  32. data/app/assets/stylesheets/lcms/engine/components/lesson/_callout.scss +19 -5
  33. data/app/assets/stylesheets/lcms/engine/components/lesson/_columns.scss +4 -3
  34. data/app/assets/stylesheets/lcms/engine/components/lesson/_curriculum-map.scss +16 -7
  35. data/app/assets/stylesheets/lcms/engine/components/lesson/_def.scss +2 -2
  36. data/app/assets/stylesheets/lcms/engine/components/lesson/_expand.scss +9 -9
  37. data/app/assets/stylesheets/lcms/engine/components/lesson/_foundational-divider.scss +0 -1
  38. data/app/assets/stylesheets/lcms/engine/components/lesson/_group.scss +3 -1
  39. data/app/assets/stylesheets/lcms/engine/components/lesson/_icons.scss +1 -1
  40. data/app/assets/stylesheets/lcms/engine/components/lesson/_image-wrap.scss +2 -2
  41. data/app/assets/stylesheets/lcms/engine/components/lesson/_inset.scss +7 -2
  42. data/app/assets/stylesheets/lcms/engine/components/lesson/_materials.scss +1 -1
  43. data/app/assets/stylesheets/lcms/engine/components/lesson/_multiple-choice.scss +4 -1
  44. data/app/assets/stylesheets/lcms/engine/components/lesson/_override.scss +28 -9
  45. data/app/assets/stylesheets/lcms/engine/components/lesson/_pd.scss +7 -7
  46. data/app/assets/stylesheets/lcms/engine/components/lesson/_pv.scss +5 -4
  47. data/app/assets/stylesheets/lcms/engine/components/lesson/_section.scss +10 -3
  48. data/app/assets/stylesheets/lcms/engine/components/lesson/_selection-control.scss +14 -8
  49. data/app/assets/stylesheets/lcms/engine/components/lesson/_sidebar.scss +25 -10
  50. data/app/assets/stylesheets/lcms/engine/components/lesson/_title.scss +3 -1
  51. data/app/assets/stylesheets/lcms/engine/components/lesson/_unit-map.scss +1 -1
  52. data/app/assets/stylesheets/lcms/engine/components/material/_material.scss +3 -3
  53. data/app/assets/stylesheets/lcms/engine/components/material/_overlay.scss +12 -4
  54. data/app/assets/stylesheets/lcms/engine/components/material/_preview.scss +1 -1
  55. data/app/assets/stylesheets/lcms/engine/components/support/_survey.scss +3 -1
  56. data/app/assets/stylesheets/lcms/engine/layout/_footer.scss +29 -11
  57. data/app/assets/stylesheets/lcms/engine/layout/_header.scss +5 -5
  58. data/app/assets/stylesheets/lcms/engine/layout/_navigation.scss +4 -6
  59. data/app/assets/stylesheets/lcms/engine/layout/_page.scss +2 -2
  60. data/app/assets/stylesheets/lcms/engine/{admin.scss → lcms_engine_admin.scss} +26 -15
  61. data/app/assets/stylesheets/lcms/engine/lcms_engine_application.scss +9 -0
  62. data/app/assets/stylesheets/lcms/engine/pdf.scss +5 -26
  63. data/app/assets/stylesheets/lcms/engine/pdf_plain.scss +5 -23
  64. data/app/assets/stylesheets/lcms/engine/print/_base.scss +41 -12
  65. data/app/assets/stylesheets/lcms/engine/print/_cover.scss +12 -12
  66. data/app/assets/stylesheets/lcms/engine/print/_footer.scss +8 -3
  67. data/app/assets/stylesheets/lcms/engine/print/_gdoc-base.scss +10 -37
  68. data/app/assets/stylesheets/lcms/engine/print/_helpers.scss +5 -2
  69. data/app/assets/stylesheets/lcms/engine/print/_lesson-base.scss +2 -14
  70. data/app/assets/stylesheets/lcms/engine/print/_material-base.scss +1 -3
  71. data/app/assets/stylesheets/lcms/engine/print/_print.scss +15 -8
  72. data/app/assets/stylesheets/lcms/engine/print/_toc.scss +24 -9
  73. data/app/assets/stylesheets/lcms/engine/print/gdoc/_base-typography.scss +24 -6
  74. data/app/assets/stylesheets/lcms/engine/print/gdoc/_base.scss +10 -3
  75. data/app/assets/stylesheets/lcms/engine/print/gdoc/_colors.scss +3 -3
  76. data/app/assets/stylesheets/lcms/engine/print/gdoc/_header.scss +2 -2
  77. data/app/assets/stylesheets/lcms/engine/print/gdoc/_helpers.scss +1 -0
  78. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_activity.scss +1 -1
  79. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_agenda.scss +8 -2
  80. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_callout.scss +16 -6
  81. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_def.scss +1 -1
  82. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_dialogue.scss +3 -1
  83. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_expand.scss +5 -2
  84. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_image-wrap.scss +5 -3
  85. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_image.scss +1 -1
  86. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_optbreak.scss +1 -0
  87. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_section.scss +4 -1
  88. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_smp.scss +1 -0
  89. data/app/assets/stylesheets/lcms/engine/print/gdoc/lesson/_tables.scss +11 -3
  90. data/app/assets/stylesheets/lcms/engine/print/gdoc/material/_header.scss +5 -2
  91. data/app/assets/stylesheets/lcms/engine/print/lesson/_base-typography.scss +33 -9
  92. data/app/assets/stylesheets/lcms/engine/print/lesson/_group.scss +3 -1
  93. data/app/assets/stylesheets/lcms/engine/print/lesson/_image.scss +3 -1
  94. data/app/assets/stylesheets/lcms/engine/print/lesson/_materials.scss +1 -1
  95. data/app/assets/stylesheets/lcms/engine/print/lesson/_pd.scss +8 -4
  96. data/app/assets/stylesheets/lcms/engine/print/lesson/_section.scss +1 -1
  97. data/app/assets/stylesheets/lcms/engine/print/material/_header.scss +4 -1
  98. data/app/assets/stylesheets/lcms/engine/themes/_material.scss +11 -11
  99. data/app/assets/stylesheets/lcms/engine/utils/_colorcodes.scss +15 -5
  100. data/app/assets/stylesheets/lcms/engine/utils/_functions.scss +1 -1
  101. data/app/assets/stylesheets/lcms/engine/utils/_helpers.scss +23 -11
  102. data/app/assets/stylesheets/lcms/engine/utils/_placeholders.scss +1 -1
  103. data/app/assets/stylesheets/lcms/engine/utils/_variables.scss +11 -11
  104. data/app/assets/stylesheets/lcms/engine/vendors/{mathjax.css → mathjax.scss} +0 -0
  105. data/app/assets/stylesheets/lcms/engine/vendors/react-tagsinput.css +48 -0
  106. data/app/controllers/concerns/lcms/engine/reimportable.rb +1 -1
  107. data/app/controllers/lcms/engine/admin/access_codes_controller.rb +8 -3
  108. data/app/controllers/lcms/engine/admin/admin_controller.rb +5 -39
  109. data/app/controllers/lcms/engine/admin/association_picker_controller.rb +4 -1
  110. data/app/controllers/lcms/engine/admin/batch_reimports_controller.rb +2 -2
  111. data/app/controllers/lcms/engine/admin/curriculums_controller.rb +21 -2
  112. data/app/controllers/lcms/engine/admin/documents_controller.rb +26 -14
  113. data/app/controllers/lcms/engine/admin/materials_controller.rb +23 -13
  114. data/app/controllers/lcms/engine/admin/resource_bulk_edits_controller.rb +2 -2
  115. data/app/controllers/lcms/engine/admin/resources_controller.rb +9 -7
  116. data/app/controllers/lcms/engine/admin/settings_controller.rb +1 -1
  117. data/app/controllers/lcms/engine/admin/standards_controller.rb +2 -2
  118. data/app/controllers/lcms/engine/admin/users_controller.rb +10 -7
  119. data/app/controllers/lcms/engine/application_controller.rb +1 -1
  120. data/app/controllers/lcms/engine/resources_controller.rb +5 -5
  121. data/app/controllers/lcms/engine/welcome_controller.rb +11 -0
  122. data/app/entities/lcms/engine/hierarchical_position.rb +1 -2
  123. data/app/entities/lcms/engine/media_embed.rb +1 -1
  124. data/app/entities/lcms/engine/pagination.rb +14 -10
  125. data/app/entities/lcms/engine/roman_numerals.rb +1 -1
  126. data/app/exceptions/lcms/engine/document_error.rb +8 -0
  127. data/app/exceptions/lcms/engine/material_error.rb +8 -0
  128. data/app/helpers/admin/components_helper.rb +1 -1
  129. data/app/helpers/lcms/engine/path_helper.rb +32 -0
  130. data/app/helpers/lcms/engine/resource_helper.rb +1 -1
  131. data/app/helpers/lcms/engine/view_helper.rb +0 -8
  132. data/app/interactors/lcms/engine/explore_curriculum_interactor.rb +1 -1
  133. data/app/javascript/components/admin/ImportStatus.jsx +88 -58
  134. data/app/javascript/components/admin/Initializer.jsx +33 -35
  135. data/app/javascript/components/admin/MultiSelectedOperation.jsx +43 -19
  136. data/app/javascript/components/admin/association-picker/AssociationPicker.jsx +68 -48
  137. data/app/javascript/components/admin/association-picker/AssociationPickerItem.jsx +18 -7
  138. data/app/javascript/components/admin/association-picker/AssociationPickerResults.jsx +42 -18
  139. data/app/javascript/components/admin/association-picker/AssociationPickerWindow.jsx +47 -28
  140. data/app/javascript/components/admin/curriculum/CurriculumEditor.jsx +54 -33
  141. data/app/javascript/components/admin/curriculum/DirectoryPicker.jsx +80 -53
  142. data/app/javascript/components/admin/picker/PickerButton.jsx +16 -11
  143. data/app/javascript/components/admin/picker/pickerModal.jsx +6 -6
  144. data/app/javascript/components/admin/picker/pickerWindowWrapper.jsx +61 -40
  145. data/app/javascript/components/admin/resource-picker/ResourcePicker.jsx +54 -40
  146. data/app/javascript/components/admin/resource-picker/ResourcePickerResource.jsx +14 -3
  147. data/app/javascript/components/admin/resource-picker/ResourcePickerWindow.jsx +50 -21
  148. data/app/javascript/components/paginate/PageView.jsx +20 -8
  149. data/app/javascript/components/paginate/PaginationBoxView.jsx +78 -66
  150. data/app/javascript/components/paginate/PaginationListView.jsx +59 -45
  151. data/app/javascript/packs/lcms_engine_admin.js +15 -0
  152. data/app/javascript/packs/{application.js → lcms_engine_application.js} +5 -4
  153. data/app/javascript/packs/server_rendering.js +1 -0
  154. data/app/javascript/vendor/jstree/jstree.min.js +6 -0
  155. data/app/javascript/vendor/jstree/themes/default/32px.png +0 -0
  156. data/app/javascript/vendor/jstree/themes/default/40px.png +0 -0
  157. data/app/javascript/vendor/jstree/themes/default/style.css +1106 -0
  158. data/app/javascript/vendor/jstree/themes/default/style.min.css +1 -0
  159. data/app/javascript/vendor/jstree/themes/default/throbber.gif +0 -0
  160. data/app/javascript/vendor/jstree/themes/default-dark/32px.png +0 -0
  161. data/app/javascript/vendor/jstree/themes/default-dark/40px.png +0 -0
  162. data/app/javascript/vendor/jstree/themes/default-dark/style.css +1150 -0
  163. data/app/javascript/vendor/jstree/themes/default-dark/style.min.css +1 -0
  164. data/app/javascript/vendor/jstree/themes/default-dark/throbber.gif +0 -0
  165. data/app/jobs/lcms/engine/document_generate_job.rb +1 -1
  166. data/app/jobs/lcms/engine/document_generate_pdf_job.rb +5 -5
  167. data/app/jobs/lcms/engine/material_generate_pdf_job.rb +4 -4
  168. data/app/models/concerns/lcms/engine/navigable.rb +6 -10
  169. data/app/models/concerns/lcms/engine/searchable.rb +7 -0
  170. data/app/models/lcms/engine/document.rb +1 -1
  171. data/app/models/lcms/engine/resource.rb +1 -1
  172. data/app/models/lcms/engine/search/repository.rb +1 -1
  173. data/app/presenters/lcms/engine/content_presenter.rb +1 -1
  174. data/app/presenters/lcms/engine/curriculum_presenter.rb +21 -18
  175. data/app/presenters/lcms/engine/document_presenter.rb +3 -1
  176. data/app/presenters/lcms/engine/resource_presenter.rb +6 -3
  177. data/app/queries/lcms/engine/admin_documents_query.rb +1 -1
  178. data/app/queries/lcms/engine/admin_materials_query.rb +11 -2
  179. data/app/queries/lcms/engine/base_query.rb +1 -1
  180. data/app/services/lcms/engine/document_build_service.rb +2 -0
  181. data/app/services/lcms/engine/document_generator.rb +2 -2
  182. data/app/services/lcms/engine/google/drive_service.rb +7 -15
  183. data/app/services/lcms/engine/google/script_service.rb +7 -3
  184. data/app/services/lcms/engine/html_sanitizer.rb +1 -1
  185. data/app/services/lcms/engine/lti_exporter.rb +1 -1
  186. data/app/services/lcms/engine/material_preview_generator.rb +1 -1
  187. data/app/services/lcms/engine/s3_service.rb +14 -2
  188. data/app/tasks/resource_tasks.rb +2 -2
  189. data/app/views/layouts/lcms/engine/admin.html.erb +3 -3
  190. data/app/views/layouts/lcms/engine/application.html.erb +2 -2
  191. data/app/views/layouts/lcms/engine/lti.html.erb +1 -1
  192. data/app/views/lcms/engine/admin/access_codes/_form.html.erb +1 -1
  193. data/app/views/lcms/engine/admin/access_codes/index.html.erb +3 -3
  194. data/app/views/lcms/engine/admin/batch_reimports/_search_form.html.erb +1 -1
  195. data/app/views/lcms/engine/admin/curriculums/edit.html.erb +4 -2
  196. data/app/views/lcms/engine/admin/documents/_reimport.html.erb +1 -1
  197. data/app/views/lcms/engine/admin/documents/_search_form.html.erb +1 -1
  198. data/app/views/lcms/engine/admin/documents/import.html.erb +1 -1
  199. data/app/views/lcms/engine/admin/documents/index.html.erb +5 -3
  200. data/app/views/lcms/engine/admin/documents/new.html.erb +6 -2
  201. data/app/views/lcms/engine/admin/materials/_reimport.html.erb +1 -1
  202. data/app/views/lcms/engine/admin/materials/_search_form.html.erb +1 -1
  203. data/app/views/lcms/engine/admin/materials/import.html.erb +1 -1
  204. data/app/views/lcms/engine/admin/materials/index.html.erb +22 -18
  205. data/app/views/lcms/engine/admin/materials/new.html.erb +5 -1
  206. data/app/views/lcms/engine/admin/resource_bulk_edits/new.html.erb +1 -1
  207. data/app/views/lcms/engine/admin/resources/_fields.html.erb +4 -3
  208. data/app/views/lcms/engine/admin/resources/_form.html.erb +1 -1
  209. data/app/views/lcms/engine/admin/resources/_search_form.html.erb +1 -1
  210. data/app/views/lcms/engine/admin/resources/index.html.erb +7 -5
  211. data/app/views/lcms/engine/admin/shared/_header.html.erb +12 -12
  212. data/app/views/lcms/engine/admin/standards/_form.html.erb +3 -1
  213. data/app/views/lcms/engine/admin/standards/_search_form.html.erb +1 -1
  214. data/app/views/lcms/engine/admin/users/_form.html.erb +1 -1
  215. data/app/views/lcms/engine/admin/users/_search_form.html.erb +1 -1
  216. data/app/views/lcms/engine/admin/users/index.html.erb +6 -6
  217. data/app/views/lcms/engine/pages/not_found.html.erb +5 -0
  218. data/app/views/lcms/engine/resources/generic.html.erb +0 -4
  219. data/app/views/lcms/engine/resources/media.html.erb +0 -4
  220. data/app/views/lcms/engine/resources/show.html.erb +0 -2
  221. data/config/initializers/airbrake.rb +62 -10
  222. data/config/initializers/bitly.rb +1 -1
  223. data/config/initializers/carrier_wave.rb +6 -4
  224. data/config/initializers/ckeditor.rb +6 -0
  225. data/config/initializers/elasticsearch.rb +1 -1
  226. data/config/initializers/resque.rb +2 -2
  227. data/config/locales/admin/en.yml +0 -1
  228. data/config/locales/ui/en.yml +1 -0
  229. data/config/routes.rb +5 -2
  230. data/db/migrate/.keep +0 -0
  231. data/db/schema.rb +279 -311
  232. data/db/seeds.rb +0 -1
  233. data/docker-compose.ror4.yml +32 -0
  234. data/docker-compose.yml +6 -3
  235. data/docs/env-variables.md +40 -40
  236. data/docs/google-cloud-platform-setup.md +45 -17
  237. data/docs/how-to-build-and-publish.md +14 -0
  238. data/docs/pdf-generation.md +31 -0
  239. data/lcms-engine.gemspec +27 -15
  240. data/lib/doc_template/document.rb +3 -4
  241. data/lib/doc_template/document_toc.rb +2 -2
  242. data/lib/doc_template/objects/activity_metadata.rb +1 -1
  243. data/lib/doc_template/objects/toc_helpers.rb +4 -4
  244. data/lib/doc_template/objects/toc_metadata.rb +4 -6
  245. data/lib/doc_template/tags/answer_space_tag.rb +1 -1
  246. data/lib/doc_template/tags/base_tag.rb +2 -2
  247. data/lib/doc_template/tags/block_tag.rb +1 -1
  248. data/lib/doc_template/tags/table_tag.rb +1 -1
  249. data/lib/doc_template/template.rb +1 -1
  250. data/lib/doc_template.rb +9 -9
  251. data/lib/document_exporter/gdoc/base.rb +5 -2
  252. data/lib/document_exporter/pdf/base.rb +1 -1
  253. data/lib/document_exporter/pdf/document.rb +2 -2
  254. data/lib/document_exporter/pdf/material.rb +2 -2
  255. data/lib/document_exporter/pdf/student_material.rb +2 -2
  256. data/lib/document_exporter/pdf/teacher_material.rb +2 -2
  257. data/lib/document_renderer/part.rb +1 -3
  258. data/lib/lcms/engine/engine.rb +10 -9
  259. data/lib/lcms/engine/version.rb +1 -1
  260. data/lib/lcms/engine.rb +0 -1
  261. data/lib/lt/lcms/metadata/context.rb +56 -52
  262. data/lib/lt/lcms/metadata/service.rb +3 -2
  263. data/lib/tasks/cloud66.rake +2 -2
  264. data/lib/tasks/document.rake +4 -4
  265. data/lib/tasks/google.rake +29 -14
  266. data/lib/tasks/lcms/engine_tasks.rake +1 -1
  267. data/package.json +31 -10
  268. data/postcss.config.js +12 -0
  269. data/spec/controllers/admin/curriculums_controller_spec.rb +23 -0
  270. data/spec/controllers/admin/documents_controller_spec.rb +22 -2
  271. data/spec/controllers/admin/materials_controller_spec.rb +16 -3
  272. data/spec/controllers/admin/resource_bulk_edit_controller_spec.rb +1 -1
  273. data/spec/controllers/admin/resources_controller_spec.rb +1 -1
  274. data/spec/controllers/admin/settings_controller_spec.rb +1 -1
  275. data/spec/controllers/admin/standards_controller_spec.rb +1 -1
  276. data/spec/controllers/admin/welcome_controller_spec.rb +12 -10
  277. data/spec/controllers/resources_controller_spec.rb +3 -3
  278. data/spec/controllers/welcome_controller_spec.rb +38 -0
  279. data/spec/dummy/.traceroute.yaml +0 -2
  280. data/spec/dummy/bin/webpack +18 -0
  281. data/spec/dummy/bin/webpack-dev-server +18 -0
  282. data/spec/dummy/config/application.rb +1 -1
  283. data/spec/dummy/config/environments/test.rb +1 -1
  284. data/spec/dummy/config/initializers/assets.rb +6 -0
  285. data/spec/dummy/config/lcms-admin.yml +3 -7
  286. data/spec/dummy/config/routes.rb +6 -0
  287. data/spec/dummy/db/schema.rb +5 -5
  288. data/spec/factories/documents.rb +1 -0
  289. data/spec/factories/downloads.rb +1 -1
  290. data/spec/factories/resources.rb +2 -2
  291. data/spec/features/admin/materials/add_material_spec.rb +2 -0
  292. data/spec/features/admin/users_spec.rb +2 -2
  293. data/spec/{controllers/admin/admin_controller_spec.rb → helpers/path_helper_spec.rb} +6 -6
  294. data/spec/lib/doc_template/objects/activity_metadata_spec.rb +1 -1
  295. data/spec/lib/doc_template/objects/agenda_metadata_spec.rb +2 -0
  296. data/spec/lib/doc_template/objects/toc_metadata_spec.rb +1 -1
  297. data/spec/lib/doc_template/tags/page_break_tag_spec.rb +1 -1
  298. data/spec/lib/doc_template/tags/pd_tag_spec.rb +1 -1
  299. data/spec/models/document_spec.rb +1 -1
  300. data/spec/models/standard_spec.rb +2 -0
  301. data/spec/queries/lcms/engine/admin_materials_query_spec.rb +41 -0
  302. data/spec/rails_helper.rb +6 -17
  303. data/spec/services/document_build_service_spec.rb +4 -11
  304. data/spec/services/s3_service_spec.rb +31 -0
  305. data/spec/support/concerns/navigable.rb +2 -0
  306. data/spec/support/routes.rb +4 -0
  307. data/spec/support/shared_examples/content_tag.rb +4 -4
  308. data/templates/routes.rb +0 -1
  309. data/yarn.lock +3412 -2933
  310. metadata +152 -289
  311. data/app/assets/stylesheets/lcms/engine/application.scss +0 -36
  312. data/app/assets/stylesheets/lcms/engine/vendors/jquery.tagsinput.css +0 -1
  313. data/app/exceptions/components_api_error.rb +0 -4
  314. data/app/exceptions/document_error.rb +0 -4
  315. data/app/exceptions/material_error.rb +0 -4
  316. data/app/javascript/packs/admin.js +0 -14
  317. data/app/models/lcms/engine/component.rb +0 -88
  318. data/app/presenters/lcms/engine/social_media_presenter.rb +0 -83
  319. data/app/views/lcms/engine/shared/_social_sharing.html.erb +0 -22
  320. data/db/migrate/20200217160930_change_document_parts_to_polymorphic.rb +0 -36
  321. data/db/migrate/20200218144849_drop_material_parts_table.rb +0 -7
  322. data/db/migrate/20200422130652_add_reimported_at_to_documents.rb +0 -7
  323. data/db/migrate/20200429130353_drop_pages.rb +0 -13
  324. data/db/seeds/pages.seeds.rb +0 -26
  325. data/lib/document_exporter.rb +0 -6
  326. data/lib/lcms/engine/migration.rb +0 -16
  327. data/spec/models/component_spec.rb +0 -60
  328. data/vendor/assets/javascripts/jquery.tagsinput.js +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 751798688bc0c5d00166b8cd62754f35dabd94eee94c65338cd27e2d945a6b44
4
- data.tar.gz: 0f58272ddf12a36a9f46aacec90f6870d601b2e3ef18a71133b58361392c33c6
3
+ metadata.gz: 5c37201e439f0704a64bb50c1b520eda59af5407d1e76389ec579532142ce08a
4
+ data.tar.gz: 03d52081094d087b2b3fe1090a86a9e153fdcd6fab33510e19ea1809ff4d7a29
5
5
  SHA512:
6
- metadata.gz: 8c80dda3da9f7119a11a1aa8516da0d26f656e54afd930d3c938ac027bc8abdf21e2be1ba74ba5c6f44cb5dd074e12f583fc012e1a9c49e0971f229dbeb9dd82
7
- data.tar.gz: 6680bbbeba17ae09dd590370903cc7affebaa492c5a919b155f3e0458469da72bb83f5dc839341c81efc7bf39f56e20e64f592b3d692d4380eef9aec8d06dd2b
6
+ metadata.gz: 5572bde25038a2a11c02380993d600a8ba864d1a4d0f2ca4f4369c9f487e2ccc230c742d3d4ede4eae7a9765b1dda1ca6117ac78528802eabbf64dc3d8ac8b27
7
+ data.tar.gz: 1310db2346532587a79938b12711e3e7bc844790efe0675ad5aed13c0b8357d441ba37b9b6befe18357f1f4cbfd8fd5ea77702f51466c1b43364b8764b712527
data/.dockerignore ADDED
@@ -0,0 +1,25 @@
1
+ db/dump/content.dump
2
+ /log/*
3
+ !/log/.keep
4
+ /tmp/*
5
+
6
+ # Ignore environment-specific configuration
7
+ .env.development
8
+ .env.staging
9
+ .env.test
10
+ .env
11
+
12
+ # Ignore IDE specific files
13
+ /.idea
14
+ # simplecov reports
15
+ coverage
16
+ .pryrc
17
+ tags
18
+ pdfs
19
+ .DS_Store
20
+ .generators
21
+ .rakeTasks
22
+ public/lcms_engine_packs
23
+ yarn-debug.log*
24
+ yarn-integrity
25
+ yarn-error.log
data/.eslintignore CHANGED
@@ -1 +1,2 @@
1
- app/assets/javascripts/
1
+ *\.config.js
2
+ app/javascript/vendor
data/.eslintrc CHANGED
@@ -1,92 +1,42 @@
1
1
  {
2
2
  "root": true,
3
- "extends": ["eslint:recommended"],
3
+ "extends": ["eslint:recommended", "plugin:react/recommended", "react-app", "plugin:prettier/recommended"],
4
4
  "env": {
5
+ "node": true,
5
6
  "es6": true,
7
+ "amd": true,
6
8
  "browser": true
7
9
  },
8
10
  "globals": {
9
11
  "$": false,
10
12
  "ga": false,
11
- "Modernizr": false,
12
- "_": false,
13
- "Routes": false,
14
13
  "Foundation": false,
15
- "require": false
16
- },
17
- "parserOptions": {
18
- "ecmaFeatures": {
19
- "globalReturn": true,
20
- "generators": false,
21
- "objectLiteralDuplicateProperties": false,
22
- "experimentalDecorators": true,
23
- "jsx": true
24
- },
25
- "ecmaVersion": 2018,
26
- "sourceType": "module"
14
+ "Modernizr": false,
15
+ "Routes": false
27
16
  },
28
- "plugins": [
29
- "import",
30
- "react"
31
- ],
17
+ "plugins": ["react", "jsx-a11y", "prettier"],
32
18
  "settings": {
33
- "import/core-modules": [],
34
- "import/ignore": [
35
- "node_modules",
36
- "\\.(coffee|scss|css|less|hbs|svg|json)$"
37
- ],
38
19
  "react": {
20
+ "pragma": "React",
39
21
  "version": "detect"
40
22
  }
41
23
  },
42
24
  "rules": {
43
- "comma-dangle": [
44
- "error",
45
- {
46
- "arrays": "always-multiline",
47
- "objects": "always-multiline",
48
- "imports": "always-multiline",
49
- "exports": "always-multiline",
50
- "functions": "ignore"
51
- }
52
- ],
53
- "indent": [
54
- "error",
55
- 2,
56
- {
57
- "SwitchCase": 1
58
- }
59
- ],
60
- "jsx-a11y/href-no-hash": "off",
61
- "linebreak-style": [
62
- "error",
63
- "unix"
64
- ],
65
- "no-console": 0,
66
- "no-trailing-spaces": "error",
67
- "no-unused-vars": [
68
- "error",
69
- {
70
- "vars": "all",
71
- "args": "after-used",
72
- "ignoreRestSiblings": false,
73
- "argsIgnorePattern": "^_"
74
- }
75
- ],
76
- "semi": "off",
77
- "quotes": [
78
- "error",
79
- "single"
80
- ],
81
- "react/jsx-no-bind": [
82
- "error",
83
- {
84
- "ignoreDOMComponents": true,
85
- "ignoreRefs": true,
86
- "allowArrowFunctions": false,
87
- "allowFunctions": false,
88
- "allowBind": false
89
- }
90
- ]
25
+ "prettier/prettier": ["error", {
26
+ "singleQuote": true,
27
+ "arrowParens": "avoid"
28
+ }],
29
+ "no-unused-vars": ["error", {
30
+ "vars": "all",
31
+ "args": "after-used",
32
+ "ignoreRestSiblings": false,
33
+ "argsIgnorePattern": "^_"
34
+ }],
35
+ "react/jsx-no-bind": ["error", {
36
+ "ignoreRefs": true,
37
+ "allowArrowFunctions": false,
38
+ "allowBind": false
39
+ }],
40
+ "no-console": ["warn"]
91
41
  }
92
42
  }
data/.nvmrc CHANGED
@@ -1 +1 @@
1
- 10.16.1
1
+ 14.17.0
data/.overcommit.yml CHANGED
@@ -6,8 +6,9 @@ PreCommit:
6
6
  enabled: true
7
7
  on_warn: fail
8
8
  exclude:
9
- - db/migrate/*
10
- - spec/dummy/**/*
9
+ - bin/*
10
+ - db/migrate/*
11
+ - spec/dummy/**/*
11
12
 
12
13
  BundleCheck:
13
14
  enabled: true
@@ -27,6 +28,11 @@ PreCommit:
27
28
  YamlSyntax:
28
29
  enabled: true
29
30
 
31
+ CustomScript:
32
+ enabled: true
33
+ description: Js/Scss linters
34
+ command: ['yarn', 'lint']
35
+
30
36
  TrailingWhitespace:
31
37
  enabled: true
32
38
 
data/.prettierrc ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "trailingComma": "es5",
3
+ "singleQuote": true,
4
+ "semi": true,
5
+ "arrowParens": "avoid",
6
+ "printWidth": 120,
7
+ }
data/.rubocop.yml CHANGED
@@ -16,7 +16,7 @@ AllCops:
16
16
  - spec/dummy/bin/*
17
17
  - templates/*
18
18
  NewCops: enable
19
- TargetRubyVersion: 2.6
19
+ TargetRubyVersion: 2.7
20
20
 
21
21
  Layout/LineLength:
22
22
  Max: 120
@@ -27,6 +27,9 @@ Layout/MultilineMethodCallIndentation:
27
27
  Lint/AmbiguousBlockAssociation:
28
28
  Enabled: false
29
29
 
30
+ Lint/OrAssignmentToConstant:
31
+ Enabled: false
32
+
30
33
  Metrics/AbcSize:
31
34
  Max: 39
32
35
 
@@ -36,7 +39,7 @@ Metrics/BlockLength:
36
39
  - 'config/routes.rb'
37
40
  - 'lcms-engine.gemspec'
38
41
  - 'lib/tasks/elasticsearch.rake'
39
- ExcludedMethods: ['guard', 'included', 'class_eval']
42
+ AllowedMethods: ['guard', 'included', 'class_eval']
40
43
 
41
44
  Metrics/ClassLength:
42
45
  Max: 250
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.5
1
+ 2.7.4
data/.stylelintignore ADDED
@@ -0,0 +1,9 @@
1
+ docs
2
+ coverage
3
+ app/assets/stylesheets/lcms/engine/vendors/*
4
+ app/assets/stylesheets/lcms/engine/utils/_styles_override.scss
5
+ app/assets/stylesheets/lcms/engine/utils/_mixins.scss
6
+ app/assets/stylesheets/lcms/engine/base/_typography.scss
7
+ app/assets/stylesheets/lcms/engine/print/_typography.scss
8
+ app/assets/stylesheets/lcms/engine/print/gdoc/_typography.scss
9
+ app/assets/stylesheets/lcms/engine/themes/_settings.scss
data/.stylelintrc ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": ["stylelint-prettier/recommended", "stylelint-config-sass-guidelines", "stylelint-selector-bem-pattern"],
3
+ "rules": {
4
+ "declaration-no-important": true,
5
+ "length-zero-no-unit": null,
6
+ "selector-class-pattern": "^(?:(?:o|c|u|t|s|is|has|_|js|qa)-)?[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*(?:__[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?(?:--[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?(?:\\[.+\\])?$"
7
+ }
8
+ }
data/CHANGELOG.md CHANGED
@@ -4,9 +4,42 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased](https://github.com/learningtapestry/lcms-engine/compare/v0.3.1...HEAD)
7
+ ## [Unreleased](https://github.com/learningtapestry/lcms-engine/compare/v0.4.1...HEAD)
8
8
 
9
- --
9
+ ## [0.4.1](https://github.com/learningtapestry/lcms-engine/compare/v0.4.0...v0.4.1) - 2022.10.13
10
+
11
+ ### Changed
12
+
13
+ - `Lcms::Engine::AdminMaterialsQuery` now filters by metadata in case-insensitive way - [@paranoicsan](https://github.com/paranoicsan)
14
+
15
+ ## [0.4.0](https://github.com/learningtapestry/lcms-engine/compare/v0.3.1...v0.4.0) - 2022.09.28
16
+
17
+ ### Added
18
+
19
+ - Bump Rails to 6.1.7 - [@paranoicsan](https://github.com/paranoicsan)
20
+ - Bump lt-google-api to 0.2.4 - [@paranoicsan](https://github.com/paranoicsan)
21
+ - Bump lt-lcms to 0.4.4 - [@paranoicsan](https://github.com/paranoicsan)
22
+ - Explicitly skip indexing via ElasticSearch for objects which include Lcms::Engine::Searchable concern - [@paranoicsan](https://github.com/paranoicsan)
23
+ - Replace sass-lint to stylelint NodeJS package - [@paranoicsan](https://github.com/paranoicsan)
24
+ - Bump webpacker gem (and @rails/webpacker package) - [@paranoicsan](https://github.com/paranoicsan)
25
+ - `Lcms::Engine::S3Service.upload` method now accepts options Hash to be passed to AWS S3 resource - [@paranoicsan](https://github.com/paranoicsan)
26
+ - Explicitly added following packages: react-tagsinput, jstree, jquery and foundation-sites - [@paranoicsan](https://github.com/paranoicsan)
27
+ - Bump CKEditor to 5.1 - [@paranoicsan](https://github.com/paranoicsan)
28
+
29
+ ### Changed
30
+
31
+ - [BREAKING] `DocumentError` has been moved under `Lcms::Engine` namespace and now looks like `Lcms::Engine::DocumentError` - [@paranoicsan](https://github.com/paranoicsan)
32
+ - [BREAKING] `MaterialError` has been moved under `Lcms::Engine` namespace and now looks like `Lcms::Engine::MaterialError` - [@paranoicsan](https://github.com/paranoicsan)
33
+ - [BREAKING] JS and CSS files have been renamed: added `lcms_engine_` prefix - [@paranoicsan](https://github.com/paranoicsan)
34
+ - Updated `google:setup_auth` rake task to work with _Web Application_ OAuth client ID - [@paranoicsan](https://github.com/paranoicsan)
35
+ - Dropped Rails 4.2 support
36
+ - Post-processing with Google App Script now shows Google Document ID in case of failure - [@paranoicsan](https://github.com/paranoicsan)
37
+
38
+ ### Removed
39
+
40
+ - [BREAKING] Remove `Lcms::Engine::Component` model - [@paranoicsan](https://github.com/paranoicsan)
41
+ - [BREAKING] Drop support to Ruby bellow 2.7 - [@paranoicsan](https://github.com/paranoicsan)
42
+ - [BREAKING] Removed SocialMediaPresenter and a couple of legacy connected methods and views
10
43
 
11
44
  ## [0.3.1](https://github.com/learningtapestry/lcms-engine/compare/v0.3.0...v0.3.1) - 2021.02.12
12
45
 
@@ -21,6 +54,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
54
 
22
55
  - Explicitly import lodash (To prevent errors in LCMS projects) - [@paranoicsan](https://github.com/paranoicsan)
23
56
 
57
+ ### Removed
58
+
59
+ - [BREAKING] Remove `Lcms::Engine::Component` model - [@paranoicsan](https://github.com/paranoicsan)
60
+ - [BREAKING] Remove `Lcms::Engine::Migration` class - [@paranoicsan](https://github.com/paranoicsan)
61
+ - Remove 'whoami' route - [@paranoicsan](https://github.com/paranoicsan)
62
+ - [BREAKING] Remove a bunch of `Lcms::Engine::Admin::AdminController` class methods - [@paranoicsan](https://github.com/paranoicsan)
63
+
24
64
  ## [0.3.0](https://github.com/learningtapestry/lcms-engine/compare/v0.2.0...v0.3.0) - 2020.08.19
25
65
 
26
66
  ### Added
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM ruby:2.6.5
1
+ FROM ruby:2.7.4
2
2
 
3
3
  ENV APP_PATH /app/
4
4
  ENV LANG C.UTF-8
@@ -7,7 +7,7 @@ WORKDIR $APP_PATH
7
7
 
8
8
  RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
9
9
  && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
10
- && curl -sL https://deb.nodesource.com/setup_10.x | bash - \
10
+ && curl -sL https://deb.nodesource.com/setup_14.x | bash - \
11
11
  && apt-get update -qqy \
12
12
  && apt-get install -y --no-install-recommends nodejs yarn \
13
13
  && rm -rf /var/lib/apt/lists/* /var/cache/apt/*
@@ -18,7 +18,7 @@ ADD . $APP_PATH
18
18
  # Install gems
19
19
  ADD lcms-engine.gemspec $APP_PATH
20
20
  ADD Gemfile* $APP_PATH
21
- RUN gem install bundler -v 1.17.3 \
21
+ RUN gem install bundler \
22
22
  && bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 \
23
23
  && rm -rf /usr/local/bundle/cache/*.gem \
24
24
  && find /usr/local/bundle/gems/ -name "*.c" -delete \