lcms-engine 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (393) hide show
  1. checksums.yaml +4 -4
  2. data/{spec/dummy/.env.docker → .env.docker} +0 -0
  3. data/.env.template +34 -0
  4. data/.gitignore +0 -1
  5. data/CHANGELOG.md +25 -0
  6. data/Dockerfile +1 -0
  7. data/Gemfile +0 -1
  8. data/Gemfile.lock +682 -0
  9. data/README.md +5 -11
  10. data/app/assets/javascripts/lcms/engine/admin/application.js +2 -11
  11. data/app/assets/javascripts/lcms/engine/application.js +1 -44
  12. data/app/assets/javascripts/lcms/engine/application_lti.js +1 -29
  13. data/app/assets/javascripts/lcms/engine/initializers/foundation.js +5 -0
  14. data/app/assets/stylesheets/lcms/engine/admin.scss +0 -1
  15. data/app/assets/stylesheets/lcms/engine/application.scss +6 -61
  16. data/app/assets/stylesheets/lcms/engine/base/_colors.scss +2 -2
  17. data/app/assets/stylesheets/lcms/engine/components/lesson/_icons.scss +0 -25
  18. data/app/assets/stylesheets/lcms/engine/layout/_footer.scss +2 -0
  19. data/app/assets/stylesheets/lcms/engine/layout/_header.scss +1 -210
  20. data/app/assets/stylesheets/lcms/engine/pdf.scss +3 -27
  21. data/app/assets/stylesheets/lcms/engine/pdf_plain.scss +3 -11
  22. data/app/assets/stylesheets/lcms/engine/print/_typography.scss +0 -5
  23. data/app/assets/stylesheets/lcms/engine/utils/_variables.scss +4 -4
  24. data/app/controllers/concerns/lcms/engine/reimportable.rb +9 -0
  25. data/app/controllers/lcms/engine/admin/admin_controller.rb +2 -0
  26. data/app/controllers/lcms/engine/admin/documents_controller.rb +7 -17
  27. data/app/controllers/lcms/engine/admin/materials_controller.rb +16 -19
  28. data/app/controllers/lcms/engine/admin/resources_controller.rb +77 -41
  29. data/app/controllers/lcms/engine/surveys_controller.rb +3 -14
  30. data/app/forms/lcms/engine/material_form.rb +1 -0
  31. data/app/helpers/lcms/engine/application_helper.rb +6 -2
  32. data/app/helpers/lcms/engine/resource_helper.rb +0 -17
  33. data/app/presenters/lcms/engine/content_presenter.rb +1 -1
  34. data/app/presenters/lcms/engine/document_presenter.rb +3 -5
  35. data/app/views/devise/confirmations/new.html.erb +1 -1
  36. data/app/views/devise/passwords/edit.html.erb +1 -1
  37. data/app/views/devise/passwords/new.html.erb +1 -1
  38. data/app/views/devise/registrations/new.html.erb +1 -1
  39. data/app/views/devise/sessions/new.html.erb +2 -2
  40. data/app/views/layouts/lcms/engine/admin.html.erb +1 -3
  41. data/app/views/layouts/lcms/engine/application.html.erb +0 -6
  42. data/app/views/layouts/lcms/engine/cg_pdf.erb +0 -38
  43. data/app/views/layouts/lcms/engine/lti.html.erb +0 -1
  44. data/app/views/lcms/engine/admin/curriculums/edit.html.erb +3 -0
  45. data/app/views/lcms/engine/admin/materials/index.html.erb +1 -1
  46. data/app/views/lcms/engine/admin/resource_bulk_edits/new.html.erb +3 -3
  47. data/app/views/lcms/engine/admin/shared/_header.html.erb +1 -8
  48. data/app/views/lcms/engine/documents/_content.html.erb +0 -1
  49. data/app/views/lcms/engine/documents/_sticky_header.html.erb +1 -1
  50. data/app/views/lcms/engine/documents/_sticky_site_menu.html.erb +0 -1
  51. data/app/views/lcms/engine/resources/_download.html.erb +2 -2
  52. data/app/views/lcms/engine/resources/_unit_bundles.html.erb +2 -2
  53. data/app/views/lcms/engine/resources/show.html.erb +2 -2
  54. data/app/views/lcms/engine/shared/_footer.html.erb +1 -3
  55. data/app/views/lcms/engine/shared/_header.html.erb +2 -36
  56. data/app/views/lcms/engine/surveys/show.html.erb +1 -1
  57. data/app/views/lcms/engine/welcome/index.html.erb +1 -80
  58. data/config/locales/admin/en.yml +1 -0
  59. data/config/routes.rb +2 -36
  60. data/db/migrate/20200422130652_add_reimported_at_to_documents.rb +1 -1
  61. data/db/migrate/20200429130353_drop_pages.rb +13 -0
  62. data/docs/env-variables.md +87 -0
  63. data/docs/google-cloud-platform-setup.md +106 -0
  64. data/lcms-engine.gemspec +50 -59
  65. data/lib/doc_template/document.rb +2 -2
  66. data/lib/doc_template/tables/activity.rb +1 -2
  67. data/lib/doc_template/tables/base.rb +4 -0
  68. data/lib/doc_template/tables/section.rb +1 -2
  69. data/lib/doc_template/xpath_functions.rb +3 -1
  70. data/lib/lcms/engine/engine.rb +0 -8
  71. data/lib/lcms/engine/version.rb +1 -1
  72. data/lib/lt/lcms/metadata/context.rb +5 -7
  73. data/spec/controllers/admin/admin_controller_spec.rb +1 -1
  74. data/spec/controllers/admin/documents_controller_spec.rb +38 -6
  75. data/spec/controllers/admin/materials_controller_spec.rb +64 -0
  76. data/spec/controllers/admin/resources_controller_spec.rb +72 -0
  77. data/spec/dummy/config/lcms-admin.yml +3 -3
  78. data/spec/dummy/db/schema.rb +29 -37
  79. data/spec/features/welcome_spec.rb +1 -1
  80. data/spec/fixtures/tables/activity-metadata-3activities.html +1 -0
  81. data/spec/fixtures/tables/document-metadata-2paragpraphs.html +97 -0
  82. data/spec/fixtures/tables/document-metadata-2spans.html +96 -0
  83. data/spec/fixtures/tables/document-metadata.html +96 -0
  84. data/spec/lib/doc_template/tables/activity_spec.rb +28 -0
  85. data/spec/lib/doc_template/tables/metadata_spec.rb +40 -0
  86. data/spec/lib/doc_template/tables/shared_examples/remove_table.rb +11 -0
  87. data/spec/rails_helper.rb +1 -0
  88. data/spec/support/fixture_helper.rb +16 -0
  89. data/vendor/assets/javascripts/selectize.min.js +4 -0
  90. data/vendor/assets/stylesheets/selectize.scss +333 -0
  91. data/yarn.lock +634 -452
  92. metadata +274 -494
  93. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.eot +0 -0
  94. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.svg +0 -689
  95. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.ttf +0 -0
  96. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.woff +0 -0
  97. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.eot +0 -0
  98. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.svg +0 -697
  99. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.ttf +0 -0
  100. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.woff +0 -0
  101. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.eot +0 -0
  102. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.svg +0 -768
  103. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.ttf +0 -0
  104. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.woff +0 -0
  105. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.eot +0 -0
  106. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.svg +0 -685
  107. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.ttf +0 -0
  108. data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.woff +0 -0
  109. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.eot +0 -0
  110. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.svg +0 -5603
  111. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.woff +0 -0
  112. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.eot +0 -0
  113. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.svg +0 -5763
  114. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.woff +0 -0
  115. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.eot +0 -0
  116. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.otf +0 -0
  117. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.svg +0 -5400
  118. data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.woff +0 -0
  119. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.eot +0 -0
  120. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.html +0 -15
  121. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.otf +0 -0
  122. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.svg +0 -13061
  123. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.woff +0 -0
  124. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.eot +0 -0
  125. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.html +0 -15
  126. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.otf +0 -0
  127. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.svg +0 -13075
  128. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.woff +0 -0
  129. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.eot +0 -0
  130. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.otf +0 -0
  131. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.svg +0 -13142
  132. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.woff +0 -0
  133. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.eot +0 -0
  134. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.ttf +0 -0
  135. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.woff +0 -0
  136. data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.woff2 +0 -0
  137. data/app/assets/fonts/lcms/engine/cursive/Sriracha-Regular.ttf +0 -0
  138. data/app/assets/fonts/lcms/engine/icons/ubicons.eot +0 -0
  139. data/app/assets/fonts/lcms/engine/icons/ubicons.svg +0 -50
  140. data/app/assets/fonts/lcms/engine/icons/ubicons.ttf +0 -0
  141. data/app/assets/fonts/lcms/engine/icons/ubicons.woff +0 -0
  142. data/app/assets/fonts/lcms/engine/ub/UBIcons.eot +0 -0
  143. data/app/assets/fonts/lcms/engine/ub/UBIcons.svg +0 -18
  144. data/app/assets/fonts/lcms/engine/ub/UBIcons.ttf +0 -0
  145. data/app/assets/fonts/lcms/engine/ub/UBIcons.woff +0 -0
  146. data/app/assets/images/lcms/engine/lessons/ld_p1.png +0 -0
  147. data/app/assets/images/lcms/engine/lessons/ld_p2.png +0 -0
  148. data/app/assets/images/lcms/engine/lessons/ld_p3.png +0 -0
  149. data/app/assets/images/lcms/engine/lessons/tens.png +0 -0
  150. data/app/assets/images/lcms/engine/lessons/wp.svg +0 -30
  151. data/app/assets/images/lcms/engine/tile-wide.png +0 -0
  152. data/app/assets/images/lcms/engine/tile.png +0 -0
  153. data/app/assets/javascripts/lcms/engine/components.js +0 -7
  154. data/app/assets/javascripts/lcms/engine/components/.gitkeep +0 -0
  155. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMap.js.jsx +0 -31
  156. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapLesson.js.jsx +0 -18
  157. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapModule.js.jsx +0 -59
  158. data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapUnit.js.jsx +0 -56
  159. data/app/assets/javascripts/lcms/engine/components/curriculum-map/ResourceHover.js.jsx +0 -27
  160. data/app/assets/javascripts/lcms/engine/components/curriculum-map/ResourcePreview.js.jsx +0 -29
  161. data/app/assets/javascripts/lcms/engine/components/enhance-instruction/EnhanceInstructionCards.js.jsx +0 -13
  162. data/app/assets/javascripts/lcms/engine/components/enhance-instruction/EnhanceInstructionPage.js.jsx +0 -139
  163. data/app/assets/javascripts/lcms/engine/components/enhance-instruction/GenericResourceCard.js.jsx +0 -20
  164. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumCardItem.js.jsx +0 -152
  165. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumGradeMap.js.jsx +0 -44
  166. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumHeader.js.jsx +0 -10
  167. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumItem.js.jsx +0 -77
  168. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumModuleMap.js.jsx +0 -59
  169. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumOpr.js.jsx +0 -62
  170. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumPage.js.jsx +0 -258
  171. data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumUnitMap.js.jsx +0 -50
  172. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterBarResponsive.js.jsx +0 -62
  173. data/app/assets/javascripts/lcms/engine/components/filterbar/Filterbar.js.jsx +0 -258
  174. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarFacet.js.jsx +0 -12
  175. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarGrade.js.jsx +0 -14
  176. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarSearch.js.jsx +0 -48
  177. data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarSubject.js.jsx +0 -12
  178. data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsCards.js.jsx +0 -11
  179. data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsCardsEmpty.js.jsx +0 -17
  180. data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsPage.js.jsx +0 -58
  181. data/app/assets/javascripts/lcms/engine/components/helpers/FreshdeskBtn.js.jsx +0 -9
  182. data/app/assets/javascripts/lcms/engine/components/helpers/MediaTime.js.jsx +0 -6
  183. data/app/assets/javascripts/lcms/engine/components/helpers/SearchResultsHeader.js.jsx +0 -41
  184. data/app/assets/javascripts/lcms/engine/components/helpers/TimeToTeach.js.jsx +0 -29
  185. data/app/assets/javascripts/lcms/engine/components/instruction-card/InstructionCard.js.jsx +0 -57
  186. data/app/assets/javascripts/lcms/engine/components/lesson-card/LessonCard.js.jsx +0 -45
  187. data/app/assets/javascripts/lcms/engine/components/materials/CollapsedMaterial.js.jsx +0 -40
  188. data/app/assets/javascripts/lcms/engine/components/materials/DocumentMaterialsList.js.jsx +0 -33
  189. data/app/assets/javascripts/lcms/engine/components/materials/ExpandedMaterial.js.jsx +0 -37
  190. data/app/assets/javascripts/lcms/engine/components/materials/MaterialsContainer.js.jsx +0 -92
  191. data/app/assets/javascripts/lcms/engine/components/materials/MaterialsList.js.jsx +0 -19
  192. data/app/assets/javascripts/lcms/engine/components/modals/DownloadModal.js.jsx +0 -68
  193. data/app/assets/javascripts/lcms/engine/components/related-instruction/RelatedInstruction.js.jsx +0 -72
  194. data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdown.js.jsx +0 -159
  195. data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdownResult.js.jsx +0 -12
  196. data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdownResults.js.jsx +0 -36
  197. data/app/assets/javascripts/lcms/engine/components/search/SearchPage.js.jsx +0 -44
  198. data/app/assets/javascripts/lcms/engine/components/search/SearchResult.js.jsx +0 -22
  199. data/app/assets/javascripts/lcms/engine/components/search/SearchResults.js.jsx +0 -17
  200. data/app/assets/javascripts/lcms/engine/components/search/SearchResultsEmpty.js.jsx +0 -25
  201. data/app/assets/javascripts/lcms/engine/components/search/searchPageWrapper.js.jsx +0 -77
  202. data/app/assets/javascripts/lcms/engine/components/select-activity/SelectActivityConfirmationModal.js.jsx +0 -107
  203. data/app/assets/javascripts/lcms/engine/components/select-activity/SelectActivityToggle.js.jsx +0 -39
  204. data/app/assets/javascripts/lcms/engine/components/stores/ExcludesStore.js.jsx +0 -11
  205. data/app/assets/javascripts/lcms/engine/components/tabs/SimpleTab.js.jsx +0 -130
  206. data/app/assets/javascripts/lcms/engine/components/utils/UrlHistory.js.jsx +0 -113
  207. data/app/assets/javascripts/lcms/engine/components/utils/colorcodecss.js.jsx +0 -4
  208. data/app/assets/javascripts/lcms/engine/components/utils/converttobem.js.jsx +0 -3
  209. data/app/assets/javascripts/lcms/engine/components/utils/filterbarupdate.js.jsx +0 -5
  210. data/app/assets/javascripts/lcms/engine/components/utils/heaptrackpd.js.jsx +0 -5
  211. data/app/assets/javascripts/lcms/engine/components/utils/regexpescape.js.jsx +0 -5
  212. data/app/assets/javascripts/lcms/engine/components/utils/scalenumber.js.jsx +0 -8
  213. data/app/assets/javascripts/lcms/engine/initializers/about_people.js +0 -8
  214. data/app/assets/javascripts/lcms/engine/initializers/analytics.js +0 -10
  215. data/app/assets/javascripts/lcms/engine/initializers/bundles.js +0 -12
  216. data/app/assets/javascripts/lcms/engine/initializers/events.js +0 -3
  217. data/app/assets/javascripts/lcms/engine/initializers/freshdesk.js +0 -18
  218. data/app/assets/javascripts/lcms/engine/initializers/header_dropdown.js +0 -44
  219. data/app/assets/javascripts/lcms/engine/initializers/heap_analytics.js +0 -78
  220. data/app/assets/javascripts/lcms/engine/initializers/leadership.js +0 -22
  221. data/app/assets/javascripts/lcms/engine/initializers/lessons.js +0 -299
  222. data/app/assets/javascripts/lcms/engine/initializers/loadasync.js +0 -30
  223. data/app/assets/javascripts/lcms/engine/initializers/pdf_preview.js +0 -15
  224. data/app/assets/javascripts/lcms/engine/initializers/resource_details.js +0 -21
  225. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SideBar.js.jsx +0 -86
  226. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarCGMenu.js.jsx +0 -37
  227. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarDocMenu.js.jsx +0 -75
  228. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarMobile.js.jsx +0 -43
  229. data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarSticky.js.jsx +0 -43
  230. data/app/assets/javascripts/lcms/engine/initializers/sidebar/TopScroll.js.jsx +0 -21
  231. data/app/assets/javascripts/lcms/engine/initializers/social_sharing.js +0 -29
  232. data/app/assets/javascripts/lcms/engine/initializers/soundcloud.js +0 -52
  233. data/app/assets/javascripts/lcms/engine/initializers/subscribe_placeholder.js +0 -12
  234. data/app/assets/javascripts/lcms/engine/initializers/survey.js +0 -31
  235. data/app/assets/stylesheets/lcms/engine/base/_cg-colors.scss +0 -48
  236. data/app/assets/stylesheets/lcms/engine/base/_fonts.scss +0 -103
  237. data/app/assets/stylesheets/lcms/engine/base/_icons.scss +0 -342
  238. data/app/assets/stylesheets/lcms/engine/components/_buttons.scss +0 -200
  239. data/app/assets/stylesheets/lcms/engine/components/_cards.scss +0 -36
  240. data/app/assets/stylesheets/lcms/engine/components/_cg-base.scss +0 -22
  241. data/app/assets/stylesheets/lcms/engine/components/_curriculum-cards.scss +0 -237
  242. data/app/assets/stylesheets/lcms/engine/components/_curriculum-map.scss +0 -214
  243. data/app/assets/stylesheets/lcms/engine/components/_download-modal.scss +0 -56
  244. data/app/assets/stylesheets/lcms/engine/components/_filterbar-modal.scss +0 -20
  245. data/app/assets/stylesheets/lcms/engine/components/_filterbar.scss +0 -184
  246. data/app/assets/stylesheets/lcms/engine/components/_generic-resource.scss +0 -58
  247. data/app/assets/stylesheets/lcms/engine/components/_inputs.scss +0 -12
  248. data/app/assets/stylesheets/lcms/engine/components/_instruction-cards.scss +0 -160
  249. data/app/assets/stylesheets/lcms/engine/components/_lesson-base.scss +0 -31
  250. data/app/assets/stylesheets/lcms/engine/components/_lesson-cards.scss +0 -119
  251. data/app/assets/stylesheets/lcms/engine/components/_ls-post.scss +0 -38
  252. data/app/assets/stylesheets/lcms/engine/components/_material-base.scss +0 -6
  253. data/app/assets/stylesheets/lcms/engine/components/_media-resources.scss +0 -6
  254. data/app/assets/stylesheets/lcms/engine/components/_media.scss +0 -95
  255. data/app/assets/stylesheets/lcms/engine/components/_pagination.scss +0 -84
  256. data/app/assets/stylesheets/lcms/engine/components/_panel-dsc.scss +0 -37
  257. data/app/assets/stylesheets/lcms/engine/components/_panel.scss +0 -7
  258. data/app/assets/stylesheets/lcms/engine/components/_related-instruction.scss +0 -31
  259. data/app/assets/stylesheets/lcms/engine/components/_resource.scss +0 -217
  260. data/app/assets/stylesheets/lcms/engine/components/_search-dropdown.scss +0 -23
  261. data/app/assets/stylesheets/lcms/engine/components/_search-header.scss +0 -45
  262. data/app/assets/stylesheets/lcms/engine/components/_search.scss +0 -57
  263. data/app/assets/stylesheets/lcms/engine/components/_sidebar.scss +0 -159
  264. data/app/assets/stylesheets/lcms/engine/components/_simple-tab.scss +0 -57
  265. data/app/assets/stylesheets/lcms/engine/components/_social-sharing.scss +0 -20
  266. data/app/assets/stylesheets/lcms/engine/components/_titles.scss +0 -33
  267. data/app/assets/stylesheets/lcms/engine/components/_top-scroll-button.scss +0 -28
  268. data/app/assets/stylesheets/lcms/engine/components/_unit-bundles.scss +0 -14
  269. data/app/assets/stylesheets/lcms/engine/components/cg/_annotations.scss +0 -48
  270. data/app/assets/stylesheets/lcms/engine/components/cg/_colorscheme.scss +0 -60
  271. data/app/assets/stylesheets/lcms/engine/components/cg/_contents-modal.scss +0 -20
  272. data/app/assets/stylesheets/lcms/engine/components/cg/_elements.scss +0 -11
  273. data/app/assets/stylesheets/lcms/engine/components/cg/_faq.scss +0 -35
  274. data/app/assets/stylesheets/lcms/engine/components/cg/_footnote.scss +0 -20
  275. data/app/assets/stylesheets/lcms/engine/components/cg/_hacks.scss +0 -11
  276. data/app/assets/stylesheets/lcms/engine/components/cg/_icons.scss +0 -30
  277. data/app/assets/stylesheets/lcms/engine/components/cg/_keywords.scss +0 -5
  278. data/app/assets/stylesheets/lcms/engine/components/cg/_links.scss +0 -3
  279. data/app/assets/stylesheets/lcms/engine/components/cg/_quotes.scss +0 -18
  280. data/app/assets/stylesheets/lcms/engine/components/cg/_standards.scss +0 -23
  281. data/app/assets/stylesheets/lcms/engine/components/cg/_table.scss +0 -50
  282. data/app/assets/stylesheets/lcms/engine/components/cg/_task.scss +0 -43
  283. data/app/assets/stylesheets/lcms/engine/components/cg/_video.scss +0 -10
  284. data/app/assets/stylesheets/lcms/engine/components/support/_helpdesk.scss +0 -25
  285. data/app/assets/stylesheets/lcms/engine/freshdesk/base/_colors.scss +0 -25
  286. data/app/assets/stylesheets/lcms/engine/freshdesk/base/_typography.scss +0 -19
  287. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_block.scss +0 -5
  288. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_buttons.scss +0 -5
  289. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_help-center.scss +0 -59
  290. data/app/assets/stylesheets/lcms/engine/freshdesk/components/_tabs.scss +0 -33
  291. data/app/assets/stylesheets/lcms/engine/freshdesk/freshdesk.scss +0 -42
  292. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_footer.scss +0 -44
  293. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_header.scss +0 -49
  294. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_page.scss +0 -40
  295. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/footer.liquid +0 -14
  296. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/header.liquid +0 -41
  297. data/app/assets/stylesheets/lcms/engine/freshdesk/layout/page.liquid +0 -22
  298. data/app/assets/stylesheets/lcms/engine/freshdesk/pages/_portal-home.scss +0 -18
  299. data/app/assets/stylesheets/lcms/engine/freshdesk/pages/portal.home.liquid +0 -74
  300. data/app/assets/stylesheets/lcms/engine/freshdesk/themes/_settings.scss +0 -19
  301. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_breakpoint.scss +0 -288
  302. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_helpers.scss +0 -22
  303. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_unit.scss +0 -95
  304. data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_value.scss +0 -138
  305. data/app/assets/stylesheets/lcms/engine/layout/_connect.scss +0 -63
  306. data/app/assets/stylesheets/lcms/engine/layout/_header-search-form.scss +0 -30
  307. data/app/assets/stylesheets/lcms/engine/layout/_sticky-header.scss +0 -179
  308. data/app/assets/stylesheets/lcms/engine/layout/_sticky-navigation.scss +0 -124
  309. data/app/assets/stylesheets/lcms/engine/layout/_subscribe.scss +0 -68
  310. data/app/assets/stylesheets/lcms/engine/pages/_about-people.scss +0 -115
  311. data/app/assets/stylesheets/lcms/engine/pages/_about.scss +0 -61
  312. data/app/assets/stylesheets/lcms/engine/pages/_content-guide.scss +0 -205
  313. data/app/assets/stylesheets/lcms/engine/pages/_enhance-instruction.scss +0 -19
  314. data/app/assets/stylesheets/lcms/engine/pages/_explore-curriculum.scss +0 -46
  315. data/app/assets/stylesheets/lcms/engine/pages/_find-lessons.scss +0 -1
  316. data/app/assets/stylesheets/lcms/engine/pages/_home.scss +0 -237
  317. data/app/assets/stylesheets/lcms/engine/pages/_leadership.scss +0 -263
  318. data/app/assets/stylesheets/lcms/engine/pages/_lesson-document.scss +0 -138
  319. data/app/assets/stylesheets/lcms/engine/pages/_unsupported.scss +0 -18
  320. data/app/assets/stylesheets/lcms/engine/print/_b64-fonts.scss.erb +0 -65
  321. data/app/assets/stylesheets/lcms/engine/print/_cg-base.scss +0 -4
  322. data/app/assets/stylesheets/lcms/engine/print/_hacks.scss +0 -6
  323. data/app/assets/stylesheets/lcms/engine/print/cg/_base-typography.scss +0 -21
  324. data/app/assets/stylesheets/lcms/engine/print/cg/_breaks.scss +0 -7
  325. data/app/assets/stylesheets/lcms/engine/print/cg/_elements-typography.scss +0 -14
  326. data/app/assets/stylesheets/lcms/engine/vendors/swiper.css +0 -547
  327. data/app/controllers/concerns/lcms/engine/analytics_tracking.rb +0 -51
  328. data/app/controllers/concerns/lcms/engine/heap_notifyable.rb +0 -20
  329. data/app/controllers/lcms/engine/admin/configurable_admin.rb +0 -56
  330. data/app/controllers/lcms/engine/admin/google_oauth2_controller.rb +0 -15
  331. data/app/controllers/lcms/engine/admin/pages_controller.rb +0 -54
  332. data/app/controllers/lcms/engine/analytics_exclusion_controller.rb +0 -14
  333. data/app/controllers/lcms/engine/downloads_controller.rb +0 -50
  334. data/app/controllers/lcms/engine/enhance_instruction_controller.rb +0 -18
  335. data/app/controllers/lcms/engine/explore_curriculum_controller.rb +0 -28
  336. data/app/controllers/lcms/engine/find_lessons_controller.rb +0 -15
  337. data/app/controllers/lcms/engine/pages_controller.rb +0 -26
  338. data/app/controllers/lcms/engine/search_controller.rb +0 -15
  339. data/app/controllers/lcms/engine/sessions_controller.rb +0 -19
  340. data/app/models/lcms/engine/page.rb +0 -13
  341. data/app/services/lcms/engine/generate_thumbnails.rb +0 -54
  342. data/app/services/lcms/engine/svg_social_thumbnail.rb +0 -223
  343. data/app/views/layouts/lcms/engine/ld_docx.html.erb +0 -16
  344. data/app/views/lcms/engine/admin/pages/_form.html.erb +0 -8
  345. data/app/views/lcms/engine/admin/pages/edit.html.erb +0 -9
  346. data/app/views/lcms/engine/admin/pages/index.html.erb +0 -25
  347. data/app/views/lcms/engine/admin/pages/new.html.erb +0 -5
  348. data/app/views/lcms/engine/documents/_helpdesk.html.erb +0 -9
  349. data/app/views/lcms/engine/pages/_about_people_staff.html.erb +0 -27
  350. data/app/views/lcms/engine/pages/_leadership_in_action.html.erb +0 -25
  351. data/app/views/lcms/engine/pages/_leadership_why_i_lead.html.erb +0 -34
  352. data/app/views/lcms/engine/pages/about.html.erb +0 -87
  353. data/app/views/lcms/engine/pages/about_people.html.erb +0 -27
  354. data/app/views/lcms/engine/pages/forthcoming.html.erb +0 -9
  355. data/app/views/lcms/engine/pages/leadership.html.erb +0 -82
  356. data/app/views/lcms/engine/pages/not_found.html.erb +0 -9
  357. data/app/views/lcms/engine/pages/privacy.html.erb +0 -9
  358. data/app/views/lcms/engine/pages/show.html.erb +0 -8
  359. data/app/views/lcms/engine/pages/show_slug.html.erb +0 -0
  360. data/app/views/lcms/engine/pages/tos.html.erb +0 -9
  361. data/app/views/lcms/engine/shared/_connect.html.erb +0 -60
  362. data/app/views/lcms/engine/shared/_freshdesk.html.erb +0 -22
  363. data/app/views/lcms/engine/shared/_google_analytics.html.erb +0 -9
  364. data/app/views/lcms/engine/shared/_heap_analytics.html.erb +0 -7
  365. data/app/views/lcms/engine/shared/_open_graph_meta.html.erb +0 -15
  366. data/app/views/lcms/engine/shared/_open_graph_meta_js.html.erb +0 -39
  367. data/app/views/lcms/engine/shared/_search_form.html.erb +0 -10
  368. data/app/views/lcms/engine/shared/_social_sharing_menu.html.erb +0 -34
  369. data/app/views/lcms/engine/shared/_subscribe.html.erb +0 -30
  370. data/app/views/lcms/engine/shared/_unsupported.html.erb +0 -3
  371. data/app/views/lcms/engine/shared/social_thumbnail.svg.erb +0 -54
  372. data/config/initializers/heap.rb +0 -3
  373. data/lib/tasks/thumbnails.rake +0 -59
  374. data/spec/controllers/admin/pages_controller_spec.rb +0 -19
  375. data/spec/controllers/enhance_instruction_controller_spec.rb +0 -15
  376. data/spec/controllers/explore_curriculum_controller_spec.rb +0 -29
  377. data/spec/controllers/find_lessons_controller_spec.rb +0 -50
  378. data/spec/controllers/pages_controller_spec.rb +0 -32
  379. data/spec/controllers/search_controller_spec.rb +0 -16
  380. data/spec/factories/pages.rb +0 -21
  381. data/spec/features/admin/pages_spec.rb +0 -79
  382. data/spec/features/pages/page_not_found_spec.rb +0 -26
  383. data/spec/features/pages/page_titles_spec.rb +0 -86
  384. data/spec/support/heap.rb +0 -3
  385. data/vendor/assets/javascripts/foundation.initialize.js +0 -115
  386. data/vendor/assets/javascripts/foundation.magellanex.js +0 -335
  387. data/vendor/assets/javascripts/freshwidget.js +0 -1
  388. data/vendor/assets/javascripts/jquery.easytabs.js +0 -704
  389. data/vendor/assets/javascripts/jquery.hashchange.js +0 -9
  390. data/vendor/assets/javascripts/modernizr-custom.js +0 -3
  391. data/vendor/assets/javascripts/smoothscrolling.js +0 -22
  392. data/vendor/assets/javascripts/swiper.jquery.js +0 -3777
  393. data/vendor/assets/javascripts/tabs.js +0 -6
@@ -1,4 +0,0 @@
1
- // Get color code css class
2
- function colorCodeCss(subject, grade = 'base') {
3
- return `${subject}-${grade}`;
4
- }
@@ -1,3 +0,0 @@
1
- function convertToBEM(cssCl, el) {
2
- return _(cssCl).split(/\s+/).map(cl => `${cl}__${el}`).join(' ');
3
- }
@@ -1,5 +0,0 @@
1
- // eslint-disable-next-line no-unused-vars
2
- function handleFilterbarUpdate(filterbar) {
3
- const newState = _.assign({}, this.state, { filterbar: filterbar, current_page: 1 });
4
- this.fetch(newState);
5
- }
@@ -1,5 +0,0 @@
1
- // eslint-disable-next-line no-unused-vars
2
- function heapTrackPd(item) {
3
- // eslint-disable-next-line no-undef
4
- heapTrack('PD Resource Opened', { title: item.title, type: item.instruction_type });
5
- }
@@ -1,5 +0,0 @@
1
- if (!RegExp.escape) {
2
- RegExp.escape = function(s){
3
- return String(s).replace(/[\\^$*+?.()|[\]{}]/g, '\\$&');
4
- };
5
- }
@@ -1,8 +0,0 @@
1
- // Scales a number `src` from range `[minSrc,maxSrc]` to `[minTgt,maxTgt]`.
2
- // Ref. http://stackoverflow.com/a/5295202
3
- // eslint-disable-next-line no-unused-vars
4
- function scaleNumber(minTgt, maxTgt, minSrc, maxSrc, src) {
5
- src = parseFloat(src);
6
- if (maxSrc === minSrc) return maxTgt;
7
- return (((maxTgt - minTgt) * (src - minSrc)) / (maxSrc - minSrc)) + minTgt;
8
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- window.initializeAboutPeople = function () {
4
- $('.c-stp-staff__dsc').on('on.zf.toggler', function (e) {
5
- var elements = ".c-stp-staff__dsc[id!=\"".concat(this.id, "\"]");
6
- $(elements).removeClass('u-show');
7
- });
8
- };
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- window.initializeGoogleAnalytics = function () {
4
- if (window.ga) {
5
- ga('set', 'location', location.href.split('#')[0]);
6
- ga('send', 'pageview', {
7
- "title": document.title
8
- });
9
- }
10
- };
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- (function () {
4
- window.initializeBundles = function () {
5
- if (!$('.o-unit-bundles').length) return;
6
- $('.o-unit-bundles a').click(function () {
7
- var el = $(this);
8
- var data = el.data('heap-data');
9
- if (data) heapTrack('Download Unit Bundle', data);
10
- });
11
- };
12
- })();
@@ -1,3 +0,0 @@
1
- $(document).on('turbolinks:before-cache', function() {
2
- urlHistory.emptyState();
3
- });
@@ -1,18 +0,0 @@
1
- window.initializeFreshdesk = function() {
2
- FreshWidget.init("", {
3
- "queryString": "&widgetType=popup&formTitle=Get+in+touch&submitThanks=Thank+you+for+your+feedback",
4
- "utf8": "✓",
5
- "widgetType": "popup",
6
- "buttonType": "text",
7
- "buttonText": "Contact Us",
8
- "buttonColor": "white",
9
- "buttonBg": "#009f93",
10
- "backgroundImage": "",
11
- "alignment": "4",
12
- "offset": "-1500px",
13
- "formHeight": "500px",
14
- "submitThanks": "Thank you for your feedback",
15
- "url": "https://unbounded.freshdesk.com",
16
- "loadOnEvent": 'immediate',
17
- });
18
- };
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- (function () {
4
- var $elDropdown = null;
5
-
6
- function initDropdown() {
7
- if ($elDropdown == null) {
8
- $elDropdown = $('.c-header__left-menu');
9
- new Foundation.DropdownMenu($elDropdown, {
10
- closingTime: 50
11
- });
12
- }
13
- }
14
-
15
- function destroyDropdown() {
16
- if ($elDropdown) {
17
- $elDropdown.foundation('destroy');
18
- $elDropdown.find('.c-header__submenu').removeClass('vertical');
19
- $elDropdown = null;
20
- }
21
- }
22
-
23
- function handleDropdown() {
24
- if (Foundation.MediaQuery.atLeast('large')) {
25
- initDropdown();
26
- } else {
27
- destroyDropdown();
28
- }
29
- }
30
-
31
- function handleResize(event, newSize, oldSize) {
32
- handleDropdown();
33
- }
34
-
35
- window.initializeHeaderDropdown = function () {
36
- if (!$('.c-header__left-menu').length) return;
37
- $elDropdown = null;
38
- handleDropdown();
39
- $(window).off('changed.zf.mediaquery.ubheader').on('changed.zf.mediaquery.ubheader', handleResize);
40
- $('.c-header-title__h-menu').off('toggled.zf.responsiveToggle').on('toggled.zf.responsiveToggle', function (e) {
41
- $('.c-header-title__h-menu').toggleClass('c-header-title__h-menu--expanded');
42
- });
43
- };
44
- })();
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- (function () {
4
- var heapEnabled = typeof heap !== 'undefined' && typeof heap.track === 'function';
5
-
6
- window.heapTrack = function (event, data) {
7
- if (heapEnabled) heap.track(event, data);
8
- };
9
-
10
- if (!heapEnabled) return;
11
-
12
- var catchHovers = function catchHovers() {
13
- var hovered = {},
14
- node,
15
- text;
16
- return function (e) {
17
- node = document.querySelector('[data-toggle="' + e.target.id + '"]');
18
-
19
- if (node && (text = node.innerText) && hovered[text] === undefined) {
20
- hovered[text] = true;
21
- heap.track('Keyword Hover', {
22
- target: text
23
- });
24
- }
25
- };
26
- };
27
-
28
- var catchScroll = function catchScroll() {
29
- var active = null,
30
- scrollPoints = {},
31
- text;
32
- return function () {
33
- active = document.querySelectorAll('.o-ld-sidebar__item--active');
34
- if (active.length === 0) return;
35
- text = active[active.length - 1].textContent.replace(/\s+/g, ' ').trim();
36
-
37
- if (scrollPoints[text] === undefined) {
38
- scrollPoints[text] = true;
39
- heap.track('Scroll Page', {
40
- target: text
41
- });
42
- }
43
- };
44
- };
45
-
46
- var catchSelection = function catchSelection() {
47
- var x;
48
- return _.debounce(function () {
49
- x = document.getSelection().toString();
50
-
51
- if (x && x.length) {
52
- heap.track('Select Text', {
53
- size: x.length,
54
- text: x.substring(0, 100)
55
- });
56
- }
57
- }, 500, {
58
- leading: false
59
- });
60
- };
61
-
62
- var initScrollCatching = function initScrollCatching() {
63
- $(document.querySelector('[id$="-page"]')).on('scrollme.zf.trigger', catchScroll());
64
- };
65
-
66
- document.addEventListener('DOMContentLoaded', function () {
67
- document.addEventListener('turbolinks:click', function () {
68
- heap.track('Page Before Change');
69
- });
70
- document.addEventListener('turbolinks:load', initScrollCatching);
71
- initScrollCatching();
72
- document.addEventListener('selectionchange', catchSelection());
73
- $(document).on('show.zf.dropdown', catchHovers());
74
- window.addEventListener('beforeunload', function () {
75
- heap.track('Page Unload');
76
- });
77
- });
78
- })();
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- (function () {
4
- function initSwipers() {
5
- var swiperVideos = new Swiper('.c-ls-slides--a', {
6
- slidesPerView: 'auto',
7
- nextButton: '.c-ls-slides--a__next',
8
- prevButton: '.c-ls-slides--a__prev',
9
- spaceBetween: 20
10
- });
11
- var swiperPosts = new Swiper('.c-ls-slides--l', {
12
- slidesPerView: 'auto',
13
- nextButton: '.c-ls-slides--l__next',
14
- prevButton: '.c-ls-slides--l__prev'
15
- });
16
- }
17
-
18
- window.initializeLeadership = function () {
19
- if (!$('.c-ls-hero').length) return;
20
- initSwipers();
21
- };
22
- })();
@@ -1,299 +0,0 @@
1
- "use strict";
2
-
3
- (function () {
4
- var COMPONENT_PREFIX = '.o-ld';
5
-
6
- var eachNode = function eachNode(selector, fn) {
7
- return [].forEach.call(document.querySelectorAll(selector), fn);
8
- };
9
-
10
- var initHAEvents = function initHAEvents() {
11
- [].forEach.call(document.querySelectorAll('.tm-ela2-unit-link'), function (x) {
12
- x.addEventListener('click', function (e) {
13
- // eslint-disable-next-line no-undef
14
- heapTrack('Resource section unit page opened', {
15
- link: e.target.href
16
- });
17
- });
18
- });
19
- [].forEach.call(document.querySelectorAll('.o-ld-pd .o-ld-cg .o-ub-ld-btn'), function (x) {
20
- x.addEventListener('click', function (e) {
21
- // eslint-disable-next-line no-undef
22
- heapTrack('PD link clicked', {
23
- link: e.target.href
24
- });
25
- });
26
- });
27
- }; // Collects properties for PdTag needed by Heap Analytics
28
-
29
- var heapPd = function heapPd(el) {
30
- var haTitleEl = el.find('.o-ld-pd__title');
31
- var haTitle = haTitleEl ? haTitleEl.text() : 'N/A';
32
- var haType = 'N/A';
33
- if (el.find('.o-ld-pd-pdf')) haType = 'PDF'; else if (el.find('.o-ld-pd__audio')) haType = 'Audio'; else if (el.find('.o-ld-pd__video')) haType = 'Video';
34
- var event = el.hasClass('o-ld-pd--collapsed') ? 'PD Expanded' : 'PD Collapsed'; // eslint-disable-next-line no-undef
35
-
36
- heapTrack(event, {
37
- title: haTitle,
38
- type: haType
39
- });
40
- };
41
-
42
- var initPd = function initPd() {
43
- var prefix = "".concat(COMPONENT_PREFIX, "-pd");
44
- var togglerSelector = "".concat(prefix, "-toggler");
45
- $("".concat(prefix, "__minimizer")).click(function () {
46
- $(this).closest(prefix).find(togglerSelector).click();
47
- });
48
- $(togglerSelector).click(function () {
49
- var el = $(this).closest(prefix);
50
- heapPd(el);
51
- el.toggleClass('o-ld-pd--collapsed o-ld-pd--expanded').find('.o-ld-pd__description').toggleClass('o-ld-pd__description--hidden');
52
-
53
- if (PDFObject.supportsPDFs) {
54
- embedPdf(el.find('.o-ld-pd-pdf__object[data-url]')[0]);
55
- }
56
- });
57
-
58
- var embedPdf = function embedPdf(el) {
59
- if (!el) return;
60
- var url = el.dataset.url;
61
-
62
- if (!PDFObject.supportsPDFs) {
63
- url = "".concat(Routes.lcms_engine_pdf_proxy_resources_path(), "?url=").concat(url);
64
- }
65
-
66
- PDFObject.embed(url, el, {
67
- pdfOpenParams: {
68
- page: 1,
69
- view: 'FitV'
70
- },
71
- PDFJS_URL: Routes.lcms_engine_pdfjs_full_path()
72
- });
73
- };
74
-
75
- eachNode('.o-ld-pd-pdf__object[data-url]', embedPdf);
76
- };
77
-
78
- function initSidebar() {
79
- var observers = [new SidebarDocMenu(), // eslint-disable-line no-undef
80
- new TopScroll(), // eslint-disable-line no-undef
81
- new SidebarSticky() // eslint-disable-line no-undef
82
- ]; // eslint-disable-next-line no-undef
83
-
84
- new SideBar(observers, {
85
- breakPoint: 'large',
86
- bHandleMobile: false,
87
- clsPrefix: 'ld',
88
- toTop: true
89
- });
90
- }
91
-
92
- function initToggler(component) {
93
- var prefix = "".concat(COMPONENT_PREFIX, "-").concat(component);
94
- $("".concat(prefix, "__toggler")).click(function () {
95
- $("".concat(prefix, "__content--hidden"), $(this).parent()).toggle();
96
- $("".concat(prefix, "__toggler--hide"), $(this)).toggle();
97
- $("".concat(prefix, "__toggler--show"), $(this)).toggle();
98
- });
99
- }
100
-
101
- var initSelects = function initSelects() {
102
- var menu = document.getElementById('ld-sidebar-menu');
103
- if (!menu) return;
104
- var lastParentIdx = null;
105
- var items = [].map.call(menu.querySelectorAll('[href][data-duration][data-level]'), function (x, i) {
106
- var level = parseInt(x.dataset.level);
107
- if (level === 1) lastParentIdx = i;
108
- return {
109
- active: true,
110
- // by default
111
- duration: parseInt(x.dataset.duration),
112
- id: x.getAttribute('href').substr(1),
113
- parent: level > 1 ? lastParentIdx : null
114
- };
115
- });
116
- var tagsExcluded = [];
117
-
118
- var durationString = function durationString(x) {
119
- return "".concat(x, " min").concat(x > 1 ? 's' : '');
120
- };
121
-
122
- var breakElement = document.querySelector('.o-ld-optbreak-wrapper');
123
-
124
- var handleOptBreak = function handleOptBreak() {
125
- if (!breakElement) return;
126
- breakElement.classList.toggle('hide', tagsExcluded.length !== 0);
127
- };
128
-
129
- var pollContentStatus = function pollContentStatus(id, key, link) {
130
- $(link).prepend('<i class="fas fa-spin fa-spinner u-margin-right--base" />');
131
- return new Promise(function (resolve, reject) {
132
- var poll = function poll() {
133
- $.getJSON("".concat(location.pathname, "/export/status"), {
134
- context: link.dataset.context,
135
- jid: id,
136
- key: key,
137
- _: Date.now() // prevent cached response
138
-
139
- }).done(function (x) {
140
- if (x.ready) {
141
- $(link).find('.fa').remove();
142
- resolve(x.url);
143
- } else {
144
- setTimeout(poll, 2000);
145
- }
146
- }).fail(function (x) {
147
- console.warn('check content export status', x);
148
- reject(x);
149
- });
150
- };
151
-
152
- setTimeout(poll, 2000);
153
- });
154
- };
155
-
156
- var toggleHandler = function toggleHandler(element, item) {
157
- var deselected = element.classList.toggle('deselected');
158
- item.active = item.isOptional ? deselected : !deselected;
159
- tagsExcluded = items.filter(function (x) {
160
- return x.parent !== null && x.active === false;
161
- }).map(function (x) {
162
- return x.id;
163
- });
164
- handleOptBreak();
165
- eachNode("[href=\"#".concat(item.id, "\"]"), function (x) {
166
- x.classList.toggle('o-ld-sidebar-item__content--disabled', itemIsActive(x));
167
- });
168
- updateDownloads();
169
- updateGroup(item.parent); // eslint-disable-next-line no-undef
170
-
171
- excludesStore.updateMaterialsList(tagsExcluded);
172
- setTimeout(function () {
173
- $('.doc-subject-ela .o-ld-sidebar__item.o-ld-sidebar-break').toggle(tagsExcluded.length === 0);
174
- });
175
- };
176
-
177
- var updateDownloads = function updateDownloads() {
178
- var excludesString = tagsExcluded.join(',');
179
- eachNode('a[data-contenttype]', function (link) {
180
- link.dataset.excludes = '';
181
- if (!link.dataset.originalTitle) link.dataset.originalTitle = link.textContent;
182
- link.textContent = excludesString ? link.dataset.customtitle : link.dataset.originalTitle;
183
- });
184
- };
185
-
186
- var itemIsActive = function itemIsActive(item) {
187
- return item.isOptional ? !item.active : item.active;
188
- };
189
-
190
- var updateGroup = function updateGroup(parentId) {
191
- var parent = items[parentId];
192
- var children = items.filter(function (x) {
193
- return x.parent === parentId;
194
- });
195
- var parentDuration = children.filter(itemIsActive).reduce(function (a, x) {
196
- return a + x.duration;
197
- }, 0);
198
- parentDuration = parentDuration > 0 ? durationString(parentDuration) : ''; // for ELA do not disable parent if all children are Optional Activities
199
-
200
- var parentEnabled;
201
-
202
- if (isEla && children.every(function (x) {
203
- return x.isOptional;
204
- })) {
205
- parentEnabled = true;
206
- } else {
207
- parentEnabled = children.some(itemIsActive);
208
- }
209
-
210
- var totalTime = durationString(items.filter(function (x) {
211
- return x.parent !== null && itemIsActive(x);
212
- }).reduce(function (a, x) {
213
- return a + x.duration;
214
- }, 0));
215
- eachNode("[href=\"#".concat(parent.id, "\"]"), function (parentNode) {
216
- parentNode.classList.toggle('o-ld-sidebar-item__content--disabled', !parentEnabled);
217
- parentNode.querySelector('.o-ld-sidebar-item__time').textContent = parentDuration;
218
- });
219
- var contentGroup = document.getElementById(parent.id);
220
- var groupDuration = contentGroup ? contentGroup.querySelector('.o-ld-title__time') : null;
221
- if (groupDuration) groupDuration.textContent = parentDuration;
222
- eachNode('.o-ld-sidebar-item__time--summary', function (x) {
223
- x.textContent = totalTime;
224
- });
225
- };
226
-
227
- var isEla = !!document.querySelector('[data-ela]');
228
- eachNode('a[data-contenttype]', function (link) {
229
- link.dataset.excludes = '';
230
- link.addEventListener('click', function (e) {
231
- var excludesString = tagsExcluded.join(',');
232
-
233
- if (!excludesString) {
234
- link.href = link.dataset.href;
235
- return;
236
- }
237
-
238
- if (link.dataset.excludes === excludesString) return;
239
- e.preventDefault();
240
- link.classList.add('o-ub-btn--disabled');
241
- link.dataset.excludes = excludesString;
242
-
243
- var finish = function finish() {
244
- link.classList.remove('o-ub-btn--disabled');
245
- link.textContent = link.dataset.originalTitle;
246
- };
247
-
248
- $.post("".concat(location.pathname, "/export"), {
249
- context: link.dataset.context,
250
- excludes: tagsExcluded,
251
- type: link.dataset.contenttype
252
- }).done(function (response) {
253
- link.href = response.url;
254
-
255
- if (response.id) {
256
- pollContentStatus(response.id, response.key, link).then(function (url) {
257
- if (url) link.href = url;
258
- finish();
259
- });
260
- } else {
261
- finish();
262
- }
263
- }).fail(function (x) {
264
- console.warn('export content', x);
265
- finish();
266
- });
267
- });
268
- });
269
- items.filter(function (x) {
270
- return x.parent !== null;
271
- }).forEach(function (item) {
272
- var prefix = isEla ? '[data-deselectable]' : '';
273
- var content = document.querySelector("".concat(prefix, "[data-id=\"").concat(item.id, "\"]"));
274
- if (!content) return;
275
- item.isOptional = content.hasAttribute('data-optional');
276
- item.tag = content.dataset.tag;
277
- var container = document.createElement('div');
278
- content.appendChild(container); // eslint-disable-next-line no-undef
279
-
280
- var component = React.createElement(SelectActivityToggle, {
281
- callback: toggleHandler.bind(null, content, item),
282
- item: item,
283
- preface: content.querySelector('.o-ld-title .dropdown-pane'),
284
- meta: content.querySelector('.o-ld-activity__metacognition')
285
- });
286
- ReactDOM.render(component, container);
287
- });
288
- };
289
-
290
- window.initializeLessons = function () {
291
- if (!$('.o-page--ld').length) return;
292
- initHAEvents();
293
- initPd();
294
- if (!document.querySelector('#c-ld-content[data-assessment]')) initSelects();
295
- initSidebar();
296
- initToggler('expand');
297
- initToggler('materials');
298
- };
299
- })();