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
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/9a41f6860cc4531fc27e/maintainability)](https://codeclimate.com/github/learningtapestry/lcms-engine/maintainability)
4
4
  [![Codeship Status for learningtapestry/lcms-engine](https://app.codeship.com/projects/d08d0660-26f7-0137-bc36-1692d0f2de6b/status?branch=master)](https://app.codeship.com/projects/330483)
5
+ [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
5
6
 
6
7
  Implements a Rails engine for Learning Content Management System (LCMS) applications.
7
8
 
@@ -9,23 +10,16 @@ Our initial goal is gathering the common code among the current LCMS implementat
9
10
  (Odell, Unbound ED and OpenSciEd) and provide a unified codebase that can be maintained and developed
10
11
  separately, simplifying the client applications in the process.
11
12
 
12
- ## Current development
13
-
14
- |Branch|Rails version|
15
- |------|-------------|
16
- |master|Rails 6|
17
- |0.3.x|Rails 5.2.4.5|
18
- |0.1.x|Rails 4.2.11.3|
13
+ ## Requirements
14
+ - Ruby 2.7.x
15
+ - Rails 6.1 or higher
16
+ - Postgres 9.6 or higher
19
17
 
20
- This is still a [work in progress](https://github.com/learningtapestry/lcms-engine/issues/3). The
21
- initial phase of the project consisted in extracting as much code as possible from the client
22
- projects and set the engine as the core foundation for further development and optimizations.
18
+ ## Current development
23
19
 
24
- Once the integrations with the client projects are successful, phase 1 will be complete and we'll be
25
- able to start phase 2, which ideally should involve optimizing the code and giving the engine some
26
- default features and customization possibilities. This should allow any Rails application to use a
27
- basic LCMS that works out of the box just by including the gem and setting some configuration
28
- options.
20
+ | Branch | Rails version |
21
+ |--------|---------------|
22
+ | master | Rails 6.1.7 |
29
23
 
30
24
  ## Guidelines
31
25
 
@@ -82,20 +76,11 @@ Other kinds of assets, like ERB views, images, stylesheets or javascript files,
82
76
  overridden as easily as Ruby classes and modules, but you can always provide your own versions of
83
77
  the same files, overwriting the ones provided by the engine.
84
78
 
85
- ## Requirements
86
- - Ruby 2.5 or higher
87
- - Rails 5.2.4 or higher
88
- - Postgres 9.6 or higher
89
-
90
79
  ## Installation
91
80
  Add this to the Gemfile:
92
81
  ```ruby
93
- gem 'lcms-engine','~> 0.1' # Rails 4.2
82
+ gem 'lcms-engine' # Rails 6.1
94
83
  ```
95
- ```ruby
96
- gem 'lcms-engine','~> 0.2' # Rails 5.2
97
- ```
98
-
99
84
 
100
85
  And then execute:
101
86
  ```bash
@@ -133,9 +118,10 @@ mount Engine, at: '/engine', as: :engine
133
118
 
134
119
  If you need to redefine devise routes set up env `DEVISE_ROUTES_REDEFINED` as true and define devise related routes at host app.
135
120
 
136
- Host app routes examples:
137
- 1. host app will have own routes on upper than engine level:
138
- ```
121
+ ### Host app routes
122
+
123
+ When host app has its own routes on upper than engine level:
124
+ ```ruby
139
125
  Lcms::Engine::Engine.routes.draw do
140
126
  devise_for :users, class_name: 'Lcms::Engine::User',
141
127
  router_name: :main_app,
@@ -161,8 +147,8 @@ devise_scope :user do
161
147
  delete '/register', to: 'lcms/engine/registrations#destroy'
162
148
  end
163
149
  ```
164
- 2. host app is ok with `/lcms` devise routes but want to redefine paths after that:
165
- ```
150
+ When host app is ok with `/lcms` devise routes but want to redefine paths after that:
151
+ ```ruby
166
152
  Lcms::Engine::Engine.routes.draw do
167
153
  devise_for :users, class_name: 'Lcms::Engine::User',
168
154
  controllers: {
@@ -212,14 +198,16 @@ $ brew cask install chromedriver
212
198
 
213
199
  Launch the containers
214
200
  ```sh
215
- $ docker-compose start app
201
+ $ docker build -t lcms-engine .
202
+ $ docker compose start
203
+ $ docker compose exec app sh -c 'bin/rails db:create'
204
+ $ docker compose exec db sh -c "psql -U postgres -d template1 -c 'CREATE EXTENSION IF NOT EXISTS hstore;'"
216
205
  ```
217
206
 
218
207
  Start the specs
219
208
  ```sh
220
- $ docker-compose exec app sh -c 'bundle exec rspec'
209
+ $ docker compose exec app sh -c 'bundle exec rspec'
221
210
  ```
222
211
 
223
-
224
212
  ## License
225
213
  The gem is available as open source under the terms of the [Apache License](https://github.com/learningtapestry/lcms-engine/blob/master/LICENSE).
@@ -1,8 +1,10 @@
1
1
  // JS and CSS bundles
2
2
 
3
- //= link lcms/engine/admin/application.js
3
+ //= link lcms/engine/lcms_engine_application.js
4
+ //= link lcms/engine/admin/lcms_engine_application.js
4
5
 
5
- //= link lcms/engine/admin.scss
6
+ //= link lcms/engine/lcms_engine_application.css
7
+ //= link lcms/engine/lcms_engine_admin.css
6
8
 
7
9
  // Images and fonts so that views can link to them
8
10
  //
@@ -2,10 +2,8 @@
2
2
  //= require jquery2
3
3
  //= require jquery_ujs
4
4
  //= require jquery_nested_form
5
- //= require ckeditor/init
6
5
  //= require foundation
7
6
  //= require html.sortable.min
8
- //= require jquery.tagsinput
9
7
  //= require js-routes
10
8
  //= require 'selectize.min'
11
9
  //= require '../initializers/foundation'
@@ -13,6 +11,6 @@
13
11
  document.addEventListener('turbolinks:load', function () {
14
12
  $('.selectize').selectize({
15
13
  allowEmptyOption: true,
16
- plugins: ['remove_button']
14
+ plugins: ['remove_button'],
17
15
  });
18
16
  });
@@ -2,4 +2,4 @@ document.addEventListener('turbolinks:load', function () {
2
2
  $(function () {
3
3
  $(document).foundation();
4
4
  });
5
- })
5
+ });
@@ -1,3 +1,4 @@
1
+ // stylelint-disable max-nesting-depth, selector-max-compound-selectors, scss/selector-no-redundant-nesting-selector
1
2
  .collection-tree {
2
3
  label {
3
4
  background: map-get($ub-ld-colorcodes, material-thumbnail-border);
@@ -22,7 +23,7 @@
22
23
 
23
24
  &:checked {
24
25
  & ~ label {
25
- &::before { // sass-lint:disable-line nesting-depth
26
+ &::before {
26
27
  content: '▾';
27
28
  }
28
29
  }
@@ -1,38 +1,70 @@
1
- // sass-lint:disable *
1
+ // stylelint-disable max-nesting-depth, selector-no-qualifying-type, selector-max-compound-selectors, scss/at-extend-no-missing-placeholder, selector-max-id
2
2
  .o-admin-components-table {
3
3
  width: 100%;
4
4
 
5
5
  .o-admin-components-table--header {
6
6
  border-bottom: solid 1px #5a5a5a;
7
- div { padding: 1em; text-align: center; }
8
7
  font-weight: bold;
8
+
9
+ div {
10
+ padding: 1em;
11
+ text-align: center;
12
+ }
13
+ }
14
+
15
+ .o-admin-components-table--info {
16
+ display: inline-block;
17
+ vertical-align: top;
18
+ }
19
+
20
+ .o-admin-components-table--location {
21
+ @extend .o-admin-components-table--info;
22
+ width: 15%;
23
+ }
24
+
25
+ .o-admin-components-table--component-type {
26
+ @extend .o-admin-components-table--info;
27
+ width: 15%;
28
+ }
29
+
30
+ .o-admin-components-table--origin {
31
+ @extend .o-admin-components-table--info;
32
+ width: 35%;
33
+ }
34
+
35
+ .o-admin-components-table--identifier {
36
+ @extend .o-admin-components-table--info;
37
+ width: 25%;
9
38
  }
10
- .o-admin-components-table--info { display: inline-block; vertical-align: top; }
11
- .o-admin-components-table--location { @extend .o-admin-components-table--info; width: 15%; }
12
39
 
13
- .o-admin-components-table--component-type { @extend .o-admin-components-table--info; width: 15%; }
14
- .o-admin-components-table--origin { @extend .o-admin-components-table--info; width: 35%; }
15
- .o-admin-components-table--identifier { @extend .o-admin-components-table--info; width: 25%; }
16
- .o-admin-components-table--details { @extend .o-admin-components-table--info; width: 5%; }
40
+ .o-admin-components-table--details {
41
+ @extend .o-admin-components-table--info;
42
+ width: 5%;
43
+ }
17
44
 
18
45
  .o-admin-components-table--entry {
19
46
  margin-bottom: 1em;
20
47
  padding: 1em;
21
48
 
22
- &:nth-child(odd) { background-color: $ub-whitepure; }
49
+ &:nth-child(odd) {
50
+ background-color: $ub-whitepure;
51
+ }
23
52
  }
24
53
 
25
54
  .o-admin-components-table--details {
26
55
  .button {
27
56
  float: right;
28
- margin-bottom: -.5em;
57
+ margin-bottom: -0.5em;
29
58
  margin-right: -2em;
30
59
  }
31
60
  }
32
61
 
33
62
  .o-admin-components-table--name {
34
63
  margin-top: 2em;
35
- b { margin-right: 1em; }
64
+
65
+ b {
66
+ margin-right: 1em;
67
+ }
36
68
  }
37
69
  }
38
70
 
@@ -47,19 +79,21 @@
47
79
  .o-admin-ctx-filters {
48
80
  padding-right: 2em;
49
81
 
50
- label { // sass-lint:disable-line nesting-depth
82
+ label {
51
83
  display: inline-block;
52
84
  font-weight: normal;
53
85
  }
54
86
 
55
- input { // sass-lint:disable-line nesting-depth
87
+ input {
56
88
  display: inline-block;
57
89
  margin-left: 1em;
58
90
  width: 6em;
59
91
  }
60
92
  }
61
93
 
62
- input[type='submit'] { margin-left: auto; }
94
+ input[type='submit'] {
95
+ margin-left: auto;
96
+ }
63
97
  }
64
98
 
65
99
  .o-admin-search-term {
@@ -72,13 +106,20 @@
72
106
  box-shadow: 2px 2px 2px #aaa;
73
107
  }
74
108
 
75
- #component-type-selector, #component-grades {
76
- select { height: 285px; }
109
+ #component-type-selector,
110
+ #component-grades {
111
+ select {
112
+ height: 285px;
113
+ }
77
114
 
78
- aside { font-size: .8em; }
115
+ aside {
116
+ font-size: 0.8em;
117
+ }
79
118
  }
80
119
 
81
- label {font-weight: bold; }
120
+ label {
121
+ font-weight: bold;
122
+ }
82
123
  }
83
124
 
84
125
  .o-admin-component-details {
@@ -94,7 +135,7 @@
94
135
 
95
136
  .o-component-details--content {
96
137
  background-color: $ub-whitepure;
97
- border-radius: .5em;
138
+ border-radius: 0.5em;
98
139
  margin: 2em;
99
140
  padding: 1em;
100
141
  }
@@ -1,3 +1,5 @@
1
+ // stylelint-disable max-nesting-depth, selector-class-pattern
2
+
1
3
  .c-admcur-results {
2
4
  .button {
3
5
  margin-bottom: 0;
@@ -7,7 +9,7 @@
7
9
  .o-curriculum-tree-editor {
8
10
  @include e(container) {
9
11
  background: $ub-whitepure;
10
- border-radius: .5em;
12
+ border-radius: 0.5em;
11
13
  margin: 2em auto;
12
14
  min-width: 50%;
13
15
  padding: 2em;
@@ -20,7 +22,7 @@
20
22
  }
21
23
  }
22
24
  @include e(menu-info) {
23
- font-size: .9em;
25
+ font-size: 0.9em;
24
26
  margin-top: -1em;
25
27
  text-align: center;
26
28
  }
@@ -30,21 +32,21 @@
30
32
  @include e(container) {
31
33
  aside {
32
34
  display: inline-block;
33
- font-size: .9em;
35
+ font-size: 0.9em;
34
36
  margin-left: 1em;
35
37
  }
36
38
 
37
- .resource_parent { // sass-lint:disable-line class-name-format
39
+ .resource_parent {
40
+ // sass-lint:disable-line class-name-format
38
41
  display: inline-block;
39
42
  margin-left: 1em;
40
- margin-top: .5em;
43
+ margin-top: 0.5em;
41
44
  max-width: 85%;
42
45
  vertical-align: top;
43
- strong { margin-left: .25em; }
44
- }
45
46
 
46
- .tagsinput {
47
- display: inline-block;
47
+ strong {
48
+ margin-left: 0.25em;
49
+ }
48
50
  }
49
51
  }
50
52
  }
@@ -52,7 +54,7 @@
52
54
  .curriculum-picker-modal {
53
55
  &.reveal {
54
56
  background: $ub-whitepure;
55
- border-radius: .5em;
57
+ border-radius: 0.5em;
56
58
  margin: 2em auto;
57
59
  min-width: 50%;
58
60
  padding: 2em;
@@ -1,5 +1,6 @@
1
+ // stylelint-disable max-nesting-depth, selector-max-compound-selectors
1
2
  .o-admin-lessons-search {
2
- border: solid 1px #ddd; // sass-lint:disable-line no-color-literals
3
+ border: solid 1px #ddd;
3
4
  border-radius: 5px;
4
5
  margin-bottom: 2em;
5
6
  padding: 2em 1em 1em;
@@ -8,12 +9,12 @@
8
9
  .o-admin-ctx-filters {
9
10
  padding-right: 2em;
10
11
 
11
- label { // sass-lint:disable-line nesting-depth
12
+ label {
12
13
  display: inline-block;
13
14
  font-weight: normal;
14
15
  }
15
16
 
16
- input { // sass-lint:disable-line nesting-depth
17
+ input {
17
18
  display: inline-block;
18
19
  margin-left: 1em;
19
20
  width: 6em;
@@ -31,8 +32,11 @@
31
32
  }
32
33
 
33
34
  .o-admin-option {
34
- margin-bottom: .75em;
35
- label { font-weight: normal; }
35
+ margin-bottom: 0.75em;
36
+
37
+ label {
38
+ font-weight: normal;
39
+ }
36
40
  }
37
41
 
38
42
  .o-admin-unit,
@@ -45,10 +49,14 @@
45
49
  box-shadow: 2px 2px 2px #aaa; // sass-lint:disable-line no-color-literals
46
50
  }
47
51
 
48
- label {font-weight: bold; }
52
+ label {
53
+ font-weight: bold;
54
+ }
49
55
  }
50
56
 
51
57
  .lessons-table {
58
+ table-layout: auto;
59
+ width: 100%;
52
60
  @include e(btns) {
53
61
  .button {
54
62
  min-width: 80px;
@@ -64,11 +72,10 @@
64
72
  }
65
73
 
66
74
  @include e(materials) {
75
+ list-style: none;
67
76
  @include m(file) {
68
- margin-right: .3em;
77
+ margin-right: 0.3em;
69
78
  }
70
-
71
- list-style: none;
72
79
  }
73
80
 
74
81
  @include e(status) {
@@ -78,18 +85,15 @@
78
85
  }
79
86
  }
80
87
 
81
- table-layout: auto;
82
- width: 100%;
83
-
84
88
  tr {
85
89
  th {
86
- &:nth-child(5), // sass-lint:disable-line nesting-depth
90
+ &:nth-child(5),
87
91
  &:nth-child(5) {
88
92
  max-width: 250px;
89
93
  min-width: 200px;
90
94
  }
91
95
 
92
- &:nth-child(6), // sass-lint:disable-line nesting-depth
96
+ &:nth-child(6),
93
97
  &:nth-child(6) {
94
98
  min-width: 300px;
95
99
  }
@@ -104,6 +108,8 @@
104
108
  margin-left: 2em;
105
109
  margin-top: 1.5em;
106
110
 
107
- input { margin-right: .5em; }
111
+ input {
112
+ margin-right: 0.5em;
113
+ }
108
114
  }
109
115
  }
@@ -5,6 +5,9 @@
5
5
  }
6
6
 
7
7
  @include e(result) {
8
+ border-radius: 0.5rem;
9
+ margin-bottom: 0.5rem;
10
+ padding: 0.5rem 1rem;
8
11
  @include m(ok) {
9
12
  background-color: map-get($ub-green, sixty);
10
13
  }
@@ -21,11 +24,9 @@
21
24
  background-color: map-get($ub-yellow, sixty);
22
25
  }
23
26
 
24
- border-radius: .5rem;
25
- margin-bottom: .5rem;
26
- padding: .5rem 1rem;
27
-
28
- p { margin-bottom: 0; }
27
+ p {
28
+ margin-bottom: 0;
29
+ }
29
30
  }
30
31
 
31
32
  @include e(link) {
@@ -34,12 +35,12 @@
34
35
  }
35
36
 
36
37
  @include e(spinner) {
37
- background: none !important;
38
+ background: none !important; // stylelint-disable-line declaration-no-important
38
39
  }
39
40
 
40
41
  @include e(summary) {
41
42
  @include m(aside) {
42
- font-size: .9em;
43
+ font-size: 0.9em;
43
44
  text-align: center;
44
45
  }
45
46
 
@@ -51,7 +52,7 @@
51
52
  }
52
53
 
53
54
  @include e(resource) {
54
- border-radius: .5em;
55
+ border-radius: 0.5em;
55
56
  }
56
57
  }
57
58
 
@@ -66,32 +67,39 @@
66
67
  }
67
68
 
68
69
  @include e(btns) {
69
- .button { min-width: 80px; }
70
+ .button {
71
+ min-width: 80px;
72
+ }
70
73
 
71
74
  form {
72
75
  &:last-child {
73
- .button { margin-bottom: 0; }
76
+ .button {
77
+ margin-bottom: 0;
78
+ }
74
79
  }
75
80
  }
76
81
  }
77
82
 
78
83
  @include e(lessons) {
84
+ list-style: none;
79
85
  @include m(file) {
80
- margin-right: .3em;
86
+ margin-right: 0.3em;
81
87
  }
82
-
83
- list-style: none;
84
88
  }
85
89
  }
86
90
 
87
91
  .c-multi-selected--select-all {
88
92
  display: inline-block;
89
93
  font-weight: bold;
90
- margin-left: .5em;
94
+ margin-left: 0.5em;
91
95
  margin-top: 1.5em;
92
- input { margin-right: .5em; }
96
+
97
+ input {
98
+ margin-right: 0.5em;
99
+ }
93
100
  }
94
101
 
95
- .o-adm-list .table .c-selected-ids { // sass-lint:disable-line force-element-nesting
96
- margin-bottom: .2em;
102
+ .o-adm-list .table .c-selected-ids {
103
+ // sass-lint:disable-line force-element-nesting
104
+ margin-bottom: 0.2em;
97
105
  }
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  .resource-search-select {
15
- width: 100% !important; // sass-lint:disable-line no-important
15
+ width: 100% !important; // stylelint-disable-line declaration-no-important
16
16
  }
17
17
 
18
18
  .resource-search-url-slug,
@@ -25,7 +25,7 @@
25
25
  flex-basis: 0;
26
26
  flex-grow: 1;
27
27
  padding-right: 1%;
28
- vertical-align: top !important; // sass-lint:disable-line no-important
28
+ vertical-align: top !important; // stylelint-disable-line declaration-no-important
29
29
 
30
30
  &:last-child {
31
31
  padding: 0;
@@ -33,6 +33,9 @@
33
33
  }
34
34
 
35
35
  .o-adm-download {
36
+ background-color: $ub-white;
37
+ margin: 10px 0;
38
+ padding: 10px;
36
39
  @include e(settings) {
37
40
  @include flex;
38
41
 
@@ -40,14 +43,12 @@
40
43
  margin-left: 10px;
41
44
  }
42
45
  }
43
-
44
- background-color: $ub-white;
45
- margin: 10px 0;
46
- padding: 10px;
47
46
  }
48
47
 
49
48
  .resource-btns-col {
50
- .button { width: 80px; }
49
+ .button {
50
+ width: 80px;
51
+ }
51
52
  }
52
53
 
53
54
  .c-admin > .o-page {
@@ -1,10 +1,13 @@
1
+ // stylelint-disable max-nesting-depth
1
2
  .o-standard-form {
2
3
  .input {
3
4
  margin-bottom: 1em;
4
5
  }
5
6
 
6
7
  .o-admin-standard-readonly {
7
- label { min-width: 5em; }
8
+ label {
9
+ min-width: 5em;
10
+ }
8
11
  }
9
12
 
10
13
  label {
@@ -2,7 +2,7 @@
2
2
  .o-admin-search-term {
3
3
  @include placeholder(#3a3a3a);
4
4
 
5
- margin-right: .5em;
5
+ margin-right: 0.5em;
6
6
  width: 45%;
7
7
  }
8
8
  }
@@ -39,7 +39,7 @@ $ub-txt-colors: (
39
39
  h1: $ub-heading-txt,
40
40
  h2: #333,
41
41
  h3: $ub-heading-txt,
42
- h4: #898989
42
+ h4: #898989,
43
43
  );
44
44
 
45
45
  $ub-mignight: (
@@ -50,7 +50,7 @@ $ub-mignight: (
50
50
  eighty: #6d6590,
51
51
  sixty: #928bac,
52
52
  forty: #b6b2c7,
53
- twenty: #dbd8e3
53
+ twenty: #dbd8e3,
54
54
  );
55
55
 
56
56
  $ub-yellow: (
@@ -58,7 +58,7 @@ $ub-yellow: (
58
58
  eighty: #fc3,
59
59
  sixty: #ffd966,
60
60
  forty: #ffe599,
61
- twenty: #fff2cc
61
+ twenty: #fff2cc,
62
62
  );
63
63
 
64
64
  $ub-green: (
@@ -66,7 +66,7 @@ $ub-green: (
66
66
  eighty: #a4cc2e,
67
67
  sixty: #c1dc6f,
68
68
  forty: #d5e79f,
69
- twenty: #eaf3cf
69
+ twenty: #eaf3cf,
70
70
  );
71
71
 
72
72
  $ub-buttons: (
@@ -80,7 +80,7 @@ $ub-buttons: (
80
80
  math: #00a699,
81
81
  lead: #a269bf,
82
82
  print: #423872,
83
- show-more: #9a9a9a
83
+ show-more: #9a9a9a,
84
84
  );
85
85
 
86
86
  $ub-leadership: (
@@ -91,7 +91,7 @@ $ub-leadership: (
91
91
  subscribe-label: #ca94e0,
92
92
  subscribe-input: #b57ed1,
93
93
  arrows1: #edecf1,
94
- arrows2: #e1d9e8
94
+ arrows2: #e1d9e8,
95
95
  );
96
96
 
97
97
  $ub-colorcodes: (
@@ -170,12 +170,11 @@ $ub-colorcodes: (
170
170
  facet: #6e6e6e,
171
171
  light: $ub-white,
172
172
  error: #f00,
173
- violet-light: #ecebf0,
173
+ violet-light: #ecebf0
174
174
  );
175
175
 
176
176
  $ub-selection: (
177
- disabled-parent-bg: rgba(0, 0, 0, .2),
178
-
177
+ disabled-parent-bg: rgba(0, 0, 0, 0.2),
179
178
  ela-disabled-switch-bg: #b75638,
180
179
  ela-disabled-fg: #f8a58c,
181
180
  ela-enabled-bg: #f45b33,
@@ -186,6 +185,5 @@ $ub-selection: (
186
185
  math-enabled-bg: #18a497,
187
186
  math-enabled-fg: #fff,
188
187
  math-enabled-switch-bg: #b4e4e0,
189
-
190
188
  modal-title-fg: #4e4b7a,
191
189
  );