lcms-engine 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -20,6 +20,7 @@ en:
20
20
  success: Access Code updated successfully.
21
21
  common:
22
22
  editing_disabled: Resource editing is disabled. Turn editing on in order to edit resources.
23
+ empty_folder: Google Documents folder is empty
23
24
  curriculums:
24
25
  update:
25
26
  success: Curriculum Tree saved successfully.
@@ -1,37 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Lcms::Engine::Engine.routes.draw do
4
- get '/404' => 'pages#not_found'
5
- get '/about' => 'pages#show_slug', slug: 'about'
6
- get '/about/people' => 'pages#show_slug', slug: 'about_people'
7
- get '/tos' => 'pages#show_slug', slug: 'tos', as: :tos_page
8
- get '/privacy' => 'pages#show_slug', slug: 'privacy', as: :privacy_page
9
- get '/forthcoming' => 'pages#forthcoming'
10
-
11
- get '/search' => 'search#index'
12
-
13
4
  mount PdfjsViewer::Rails::Engine, at: '/pdfjs', as: 'pdfjs'
14
5
 
15
- resources :downloads, only: [:show] do
16
- member do
17
- get :preview
18
- get 'pdf_proxy(/:s3)' => 'downloads#pdf_proxy', as: :pdf_proxy_download, constraints: { s3: %r{[^\/]+} }
19
- end
20
- end
21
-
22
- resources :explore_curriculum, only: %i(index show)
23
- resources :enhance_instruction, only: :index
24
- resources :find_lessons, only: :index
25
- resources :pages, only: :show
26
- resources :resources, only: :show do
27
- get :pdf_proxy, on: :collection, path: 'pdf-proxy'
28
- end
29
- resource :survey, only: %i(create show)
30
-
31
- get '/resources/:id/related_instruction' => 'resources#related_instruction', as: :related_instruction
32
- get '/media/:id' => 'resources#media', as: :media
33
- get '/other/:id' => 'resources#generic', as: :generic
34
-
35
6
  resources :documents, only: :show do
36
7
  member do
37
8
  post 'export', to: 'documents#export'
@@ -45,12 +16,12 @@ Lcms::Engine::Engine.routes.draw do
45
16
  get 'preview/gdoc', to: 'materials#preview_gdoc'
46
17
  end
47
18
  end
19
+ resources :resources, only: [:show]
48
20
 
49
21
  unless ENV.fetch('DEVISE_ROUTES_REDEFINED', false)
50
22
  devise_for :users, class_name: 'Lcms::Engine::User',
51
23
  controllers: {
52
- registrations: 'lcms/engine/registrations',
53
- sessions: 'lcms/engine/sessions'
24
+ registrations: 'lcms/engine/registrations'
54
25
  },
55
26
  module: :devise
56
27
  end
@@ -62,9 +33,7 @@ Lcms::Engine::Engine.routes.draw do
62
33
  namespace :admin do
63
34
  get '/' => 'welcome#index'
64
35
  get '/whoami' => 'admin#whoami'
65
- get 'google_oauth2_callback' => 'google_oauth2#callback'
66
36
  get '/association_picker' => 'association_picker#index'
67
- resources :reading_assignment_texts
68
37
  resource :resource_bulk_edits, only: %i(new create)
69
38
  get '/resource_picker' => 'resource_picker#index'
70
39
  resources :resources, except: :show do
@@ -73,7 +42,6 @@ Lcms::Engine::Engine.routes.draw do
73
42
  post :bundle
74
43
  end
75
44
  end
76
- resources :pages, except: :show
77
45
  resources :settings, only: [] do
78
46
  patch :toggle_editing_enabled, on: :collection
79
47
  end
@@ -106,8 +74,6 @@ Lcms::Engine::Engine.routes.draw do
106
74
  resource :batch_reimport, only: %i(new create)
107
75
  end
108
76
 
109
- get '/ExcludeMeGA' => 'analytics_exclusion#exclude'
110
-
111
77
  get '/*slug' => 'resources#show', as: :show_with_slug
112
78
 
113
79
  root to: 'welcome#index'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class AddReimportedAtToDocuments < ActiveRecord::Migration[5.2]
3
+ class AddReimportedAtToDocuments < Lcms::Engine::Migration
4
4
  def change
5
5
  add_column :documents, :reimported_at, :datetime
6
6
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class DropPages < Lcms::Engine::Migration
4
+ def change
5
+ drop_table :pages do |t|
6
+ t.text :body, null: false
7
+ t.string :slug, null: false
8
+ t.string :title, null: false
9
+
10
+ t.timestamps null: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,87 @@
1
+ ## Required variables
2
+
3
+ - APP_NAME
4
+ - APPLICATION_DOMAIN
5
+ - AWS_ACCESS_KEY_ID
6
+ - AWS_REGION
7
+ - AWS_S3_BUCKET_NAME
8
+ - AWS_SECRET_ACCESS_KEY
9
+ - BACKGROUND_JOBS
10
+ - ELASTICSEARCH_ADDRESS
11
+ - NODE_ENV
12
+ - POSTGRESQL_ADDRESS
13
+ - POSTGRESQL_DATABASE
14
+ - POSTGRESQL_USERNAME
15
+ - POSTGRESQL_PASSWORD
16
+ - POSTGRESQL_PORT
17
+ - WEBPACKER_CHECK_YARN
18
+ - WKHTMLTOPDF_PATH
19
+
20
+ ## All other variables
21
+
22
+ * [AirBrake](#airbrake-config)
23
+ * [Amazon](#amazon-config)
24
+ * [Google](#google-config)
25
+ * [Miscellaneous settings](#miscellaneous-settings)
26
+ * [PDF](#pdf-related-config)
27
+ * [Postgres](#postgres-config)
28
+
29
+ ### AirBrake config
30
+ The project is set up to support Airbrake, if you use it. You can provide an Airbrake ID and key in the config to enable it (Should be omitted for `development`&`test` environments)
31
+
32
+ |Name|Description|
33
+ |----|-----------|
34
+ |AIR_BRAKE_PROJECT_ID|Project id in the AirBrake service|
35
+ |AIR_BRAKE_PROJECT_KEY|Project key in the AirBrake service|
36
+
37
+ ### Amazon config
38
+ The project uses AWS S3 to store and serve generated PDFs of learning content. You will need to set up an S3 bucket and provide a key and secret here:
39
+
40
+ |Name|Description|
41
+ |----|-----------|
42
+ |AWS_ACCESS_KEY_ID|Public part of the AWS credentials|
43
+ |AWS_REGION|Name of the region used for AWS service|
44
+ |AWS_SECRET_ACCESS_KEY|Private part of the AWS credentials|
45
+ |AWS_S3_BUCKET_NAME|Bucket used by application to store generated files|
46
+
47
+ ### Google config
48
+ The project uses several Google products, including analytics, OAuth for allowing the application to use Google APIs, and several Google Drive folders.
49
+
50
+ |Name|Description|
51
+ |----|-----------|
52
+ |GOOGLE_APPLICATION_FOLDER_ID|Id of the Google Drive folder where generated lessons and materials will be placed(It's `0B7` for url like `https://drive.google.com/drive/u/0/folders/0B7/...`)|
53
+ |GOOGLE_APPLICATION_SCRIPT_ID|Id of the Google Script created to post-process generated Google documents. More details can be found [here](google-cloud-platform-setup.md)|
54
+ |GOOGLE_APPLICATION_SCRIPT_FUNCTION|Name of the function to call to start post-processing|
55
+ |GOOGLE_APPLICATION_TEMPLATE_PORTRAIT|Id of the Google document which is a template for portrait materials(can be identified the same way as `GOOGLE_APPLICATION_FOLDER_ID `)|
56
+ |GOOGLE_APPLICATION_TEMPLATE_LANDSCAPE|Id of the Google document which is a template for landscape materials(can be identified the same way as `GOOGLE_APPLICATION_FOLDER_ID `)|
57
+ |GOOGLE_APPLICATION_PREVIEW_FOLDER_ID| Folder ID where preview documents should get placed
58
+ |GOOGLE_API_CLIENT_UPLOAD_RETRIES||
59
+ |GOOGLE_API_CLIENT_UPLOAD_TIMEOUT||
60
+
61
+ ### Miscellaneous settings
62
+ |Name|Description|
63
+ |----|-----------|
64
+ |APP_NAME|The title which will be shown in the page title and in other places. Something like `OpenSciEd LCMS`|
65
+ |BITLY_API_TOKEN|Token of the Bitly service|
66
+ |RESQUE_NAMESPACE|Value is used to separate data stored in Redis when the same redis server is used by multiple environments|
67
+ |PUPPETEER_TIMEOUT|Default is 30 sec|
68
+ |WORKERS_COUNT|Used on the servers. Specifies the number of workers to be started|
69
+ |ELASTICSEARCH_ADDRESS|Elasticsearch server address|
70
+
71
+ Obs: if you're setting a local dev machine on OSX and getting small fonts when generating pdfs, try downgrading wkhtmltopdf to `0.12.3`
72
+
73
+ ### PDF related config
74
+ |Name|Description|
75
+ |----|-----------|
76
+ |ENABLE_BASE64_CACHING|Turns on/off caching of assets used for PDF generation (`true` by default, recommended as `false` for local env)|
77
+ |NODE_ENV|We're using puppeteer(npm package) for PDF Generation, should be set as `production` for other env than local|
78
+ |WKHTMLTOPDF_PATH|Path to the [wkhtmltopdf](https://wkhtmltopdf.org) binary. Default to `/usr/local/bin/wkhtmltopdf`. Will be removed when we will be certain on puppeteer|
79
+
80
+ ### Postgres config
81
+ |Name|
82
+ |----|
83
+ |POSTGRESQL_ADDRESS|
84
+ |POSTGRESQL_DATABASE|
85
+ |POSTGRESQL_USERNAME|
86
+ |POSTGRESQL_PASSWORD|
87
+ |POSTGRESQL_PORT|
@@ -0,0 +1,106 @@
1
+ An application calls the Google Application Script in order to post-process generated lesson materials. Instructions below contains all the necessary steps need to set up the integration.
2
+
3
+ All environment variables and user names provided here have been set up to automate deployment on [Cloud66](https://www.cloud66.com) service stacks. If you plan to use another service provider please change all the variables accordingly.
4
+
5
+ 1. [Set up](#set-up)
6
+ 2. [How to update Google Application Script](#how-to-update-google-application-script)
7
+
8
+ ## Set up
9
+
10
+ 1. Login to google (all google docs will be saved under this account)
11
+
12
+ 2. Create project (i.e. LCMS-dev) at [google cloud](https://console.cloud.google.com)
13
+
14
+ 3. Enable Google Drive API, Google Apps Script Execution API for that [project](https://console.cloud.google.com/apis/library)
15
+
16
+ 4. Set up google auth
17
+
18
+ #### Credentials
19
+
20
+ Create credentials:
21
+ - type oAuth Client ID
22
+ - Application type: Other,
23
+ - Aplication Name: up to you, i.e. lcms-cli-dev
24
+
25
+ Download client secret JSON file.
26
+
27
+ ###### Local development
28
+
29
+ Copy downloaded JSON file to `config/google/client_secret.json`
30
+
31
+ ###### Server
32
+
33
+ Make sure you're executing commands under _cloud66-user_
34
+ ```bash
35
+ $ sudo -i -u cloud66-user
36
+ ```
37
+
38
+ Make sure that the following directory exists on a server and is symlinked correctly
39
+ ```bash
40
+ $ mkdir -p "$STACK_BASE/shared/google"
41
+ $ chown cloud66-user:cloud66-user "$STACK_BASE/shared/google"
42
+ $ ln -nsf "$STACK_BASE/shared/google" "$STACK_PATH/config/google"
43
+ ```
44
+
45
+ Copy downloaded JSON file and set appropriate ownership and access rights for it (where `cloud66-user` is a system username under which web application is running)
46
+
47
+ ```bash
48
+ $ cp client_secret.json $STACK_BASE/shared/google/
49
+ $ cd $STACK_BASE/shared/google
50
+ $ sudo chown cloud66-user:cloud66-user client_secret.json
51
+ $ sudo chmod 755 client_secret.json
52
+ ```
53
+
54
+ #### Application token
55
+
56
+ If you generate token on a remote server, then make sure you're executing commands under _cloud66-user_
57
+
58
+ ```bash
59
+ $ sudo -i -u cloud66-user
60
+ ```
61
+
62
+ Run rake task. You will be asked to go by link, give app permissions and paste code into the terminal
63
+
64
+ ```bash
65
+ $ bundle exec rake google:setup_auth
66
+ ```
67
+
68
+ This will create `config/google/app_token.yaml`. Change the ownership of the `app_token.yaml` otherwise it will not be accessible for the application:
69
+
70
+ ```bash
71
+ $ cd $STACK_BASE/shared/google
72
+ $ chown cloud66-user:app_writers app_token.yaml
73
+ $ sudo chmod g+w app_token.yaml
74
+ ```
75
+
76
+ 5. Add script
77
+ - go to https://www.google.com/script/start/
78
+ - copy-paste content of `config/scripts/Code.gs` there and save
79
+ - at top menu Resources->Cloud Platform Project set project from step 2 (you need to paste *project number*)
80
+ - at top menu Publish->Deploy As API Executable set version v1, access Only myself
81
+ - save Current API ID somewhere, click Close on that annoying window (update will not close it)
82
+ - choose any function and run it, it'll request permissions - grant them (there will be security warnings, just ignore them)
83
+
84
+ 6. Create folder (all materials will be saved there) on Google Drive, give view only to all by link, keep folder id (last part of url), copy to the root [LANDSCAPE](https://docs.google.com/document/d/1pXQDNKYOJYT6OTPnp8gsTWAydg5B9GTRibaWspmX4oE), [PORTRAIT](https://docs.google.com/document/d/1ijuZhGQXkPBxcZT4DRyNVY-qmI0xyVvSzVFqckOpsCc) templates and keep their IDs.
85
+
86
+ 7. Update corresponding env-file in the project
87
+
88
+ ```
89
+ GOOGLE_APPLICATION_FOLDER_ID=saved from step 6
90
+ GOOGLE_APPLICATION_SCRIPT_ID=saved id from step 5
91
+ GOOGLE_APPLICATION_TEMPLATE_PORTRAIT=saved from step 6
92
+ GOOGLE_APPLICATION_TEMPLATE_LANSCAPE=saved from step 6
93
+ ```
94
+
95
+ ## How to update Google Application Script
96
+
97
+ 1. Proceed to Google Drive for an account which has been used to create the Google Application Script (see _Add script_ section in [Set up](#set-up))
98
+
99
+ 2. Update script content
100
+
101
+ 3. Re-publish the script:
102
+
103
+ - `Publish->Deploy As API Executable`
104
+ - Set new version
105
+ - `Update` & `Close`
106
+ - Choose any function and run it, it'll request permissions - grant them (there will be security warnings, just ignore them)
@@ -23,77 +23,68 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.add_dependency 'active_model_serializers', '~> 0.10.10'
25
25
  s.add_dependency 'activejob-retry', '~> 0.6.3'
26
- s.add_dependency 'acts-as-taggable-on', '~> 6.5.0'
27
- s.add_dependency 'acts_as_list', '~> 1.0.0'
28
- s.add_dependency 'addressable', '~> 2.7.0'
29
- s.add_dependency 'airbrake', '~> 10.0.1'
30
- s.add_dependency 'autoprefixer-rails', '~> 9.7.4'
26
+ s.add_dependency 'acts-as-taggable-on', '~> 6.5'
27
+ s.add_dependency 'acts_as_list', '~> 1.0'
28
+ s.add_dependency 'addressable', '~> 2.7'
29
+ s.add_dependency 'airbrake', '~> 10.0'
30
+ s.add_dependency 'autoprefixer-rails', '~> 9.7'
31
31
  s.add_dependency 'aws-sdk-rails', '~> 3.1'
32
32
  s.add_dependency 'aws-sdk-s3', '~> 1'
33
- s.add_dependency 'bitly', '~> 1.1.2'
34
- s.add_dependency 'bootstrap-sass', '~> 3.4.1'
35
- s.add_dependency 'bullet', '~> 6.1.0'
36
- s.add_dependency 'carrierwave', '~> 2.1.0'
37
- s.add_dependency 'ckeditor', '~> 4.3.0'
38
- s.add_dependency 'closure_tree', '~> 7.1.0'
39
- s.add_dependency 'combine_pdf', '~> 1.0.16'
40
- s.add_dependency 'daemons', '~> 1.3.1'
41
- s.add_dependency 'devise', '~> 4.7.1'
33
+ s.add_dependency 'bitly', '~> 1.1', '>= 1.1.2'
34
+ s.add_dependency 'bootstrap-sass', '~> 3.4'
35
+ s.add_dependency 'bullet', '~> 6.1', '>= 6.1.0'
36
+ s.add_dependency 'carrierwave', '~> 2.1'
37
+ s.add_dependency 'ckeditor', '~> 4.3'
38
+ s.add_dependency 'closure_tree', '~> 7.1'
39
+ s.add_dependency 'combine_pdf', '~> 1.0'
40
+ s.add_dependency 'daemons', '~> 1.3', '>= 1.3.1'
41
+ s.add_dependency 'devise', '~> 4.7', '>= 4.7.1'
42
42
  s.add_dependency 'elasticsearch-dsl', '~> 0.1.9'
43
- s.add_dependency 'elasticsearch-model', '~> 7.0.0'
44
- s.add_dependency 'elasticsearch-persistence', '~> 7.0.0'
45
- s.add_dependency 'elasticsearch-rails', '~> 7.0.0'
46
- s.add_dependency 'fog-aws', '~> 3.5.2'
47
- s.add_dependency 'font-awesome-sass', '~> 5.12.0'
48
- s.add_dependency 'foundation-rails', '~> 6.6.1.0'
43
+ s.add_dependency 'elasticsearch-model', '~> 7.0'
44
+ s.add_dependency 'elasticsearch-persistence', '~> 7.0'
45
+ s.add_dependency 'elasticsearch-rails', '~> 7.0'
46
+ s.add_dependency 'fog-aws', '~> 3.5', '>= 3.5.2'
47
+ s.add_dependency 'font-awesome-sass', '~> 5.12'
48
+ s.add_dependency 'foundation-rails', '~> 6.6', '>= 6.6.1'
49
49
  s.add_dependency 'google-api-client', '~> 0.37.1'
50
- s.add_dependency 'heap', '~> 1'
51
50
  s.add_dependency 'hiredis', '~> 0.6.3'
52
- s.add_dependency 'httparty', '~> 0.18.0'
53
- s.add_dependency 'jbuilder', '~> 2.10.0'
54
- s.add_dependency 'jquery-rails', '~> 4.3.5'
55
- s.add_dependency 'js-routes', '~> 1.4.9'
51
+ s.add_dependency 'httparty', '~> 0.18'
52
+ s.add_dependency 'jbuilder', '~> 2.10'
53
+ s.add_dependency 'jquery-rails', '~> 4.3', '>= 4.3.5'
54
+ s.add_dependency 'js-routes', '~> 1.4', '>= 1.4.9'
56
55
  s.add_dependency 'lt-google-api', '~> 0.1.1'
57
- s.add_dependency 'lt-lcms', '~> 0.2.0'
58
- s.add_dependency 'migration_data', '~> 0.6.0'
59
- s.add_dependency 'mini_magick', '~> 4.10.1'
56
+ s.add_dependency 'lt-lcms', '~> 0.3'
57
+ s.add_dependency 'migration_data', '~> 0.6'
58
+ s.add_dependency 'mini_magick', '~> 4.10', '>= 4.10.1'
60
59
  s.add_dependency 'nested_form', '~> 0.3.2'
61
60
  s.add_dependency 'nikkou', '~> 0.0.5'
62
- s.add_dependency 'nokogiri', '~> 1.10.8'
63
- s.add_dependency 'oj', '~> 3.10.2'
64
- s.add_dependency 'oj_mimic_json', '~> 1.0.1'
65
- s.add_dependency 'pandoc-ruby', '~> 2.0.2'
61
+ s.add_dependency 'nokogiri', '~> 1.10', '>= 1.10.8'
62
+ s.add_dependency 'oj', '~> 3.10', '>= 3.10.2'
63
+ s.add_dependency 'oj_mimic_json', '~> 1.0', '>= 1.0.1'
64
+ s.add_dependency 'pandoc-ruby', '~> 2.0', '>= 2.0.2'
66
65
  s.add_dependency 'pdfjs_viewer-rails', '~> 0.3.1'
67
- s.add_dependency 'pg', '~> 1.2.2'
68
- s.add_dependency 'pg_search', '~> 2.3.2'
69
- s.add_dependency 'rack-mini-profiler', '~> 1.1.6'
70
- s.add_dependency 'rails', '~> 5.2.4'
71
- s.add_dependency 'rails-assets-classnames', '~> 2.2.5'
72
- s.add_dependency 'rails-assets-es6-promise', '~> 4.2.4'
73
- s.add_dependency 'rails-assets-eventemitter3', '~> 3.1.2'
74
- s.add_dependency 'rails-assets-fetch', '~> 3.0.0'
75
- s.add_dependency 'rails-assets-jstree', '~> 3.3.8'
76
- s.add_dependency 'rails-assets-knockout', '~> 3.5.0'
77
- s.add_dependency 'rails-assets-lodash', '~> 4.17.15'
78
- s.add_dependency 'rails-assets-selectize', '~> 0.12.6'
79
- s.add_dependency 'ransack', '~> 2.3.2'
80
- s.add_dependency 'react-rails', '~> 2.6.1'
81
- s.add_dependency 'redis', '~> 4.1.3'
82
- s.add_dependency 'resque', '~> 2.0.0'
83
- s.add_dependency 'resque-scheduler', '~> 4.4.0'
84
- s.add_dependency 'rest-client', '~> 2.1.0'
85
- s.add_dependency 'ruby-progressbar', '~> 1.10.1'
66
+ s.add_dependency 'pg', '~> 1.2', '>= 1.2.2'
67
+ s.add_dependency 'pg_search', '~> 2.3', '>= 2.3.2'
68
+ s.add_dependency 'rack-mini-profiler', '~> 1.1', '>= 1.1.6'
69
+ s.add_dependency 'rails', '~> 5.2', '>= 5.2.4'
70
+ s.add_dependency 'ransack', '~> 2.3', '>= 2.3.2'
71
+ s.add_dependency 'react-rails', '~> 2.6', '>= 2.6.1'
72
+ s.add_dependency 'redis', '~> 4.1', '>= 4.1.3'
73
+ s.add_dependency 'resque', '~> 2.0', '>= 2.0.0'
74
+ s.add_dependency 'resque-scheduler', '~> 4.4', '>= 4.4.0'
75
+ s.add_dependency 'rest-client', '~> 2.1', '>= 2.1.0'
76
+ s.add_dependency 'ruby-progressbar', '~> 1.10', '>= 1.10.1'
86
77
  s.add_dependency 'rubyzip', '~> 2'
87
- s.add_dependency 'sanitize', '~> 5.1.0'
88
- s.add_dependency 'sass-rails', '~> 5.1.0'
89
- s.add_dependency 'simple_form', '~> 5.0.2'
78
+ s.add_dependency 'sanitize', '>= 5.1', '< 5.3'
79
+ s.add_dependency 'sass-rails', '~> 5.1', '>= 5.1.0'
80
+ s.add_dependency 'simple_form', '~> 5.0', '>= 5.0.2'
90
81
  s.add_dependency 'staccato', '~> 0.5.3'
91
82
  s.add_dependency 'truncate_html', '~> 0.9.3'
92
- s.add_dependency 'turbolinks', '~> 5.2.1'
93
- s.add_dependency 'validate_url', '~> 1.0.8'
94
- s.add_dependency 'virtus', '~> 1.0.5'
95
- s.add_dependency 'will_paginate', '~> 3.2.1'
96
- s.add_dependency 'will_paginate-bootstrap', '~> 1.0.2'
83
+ s.add_dependency 'turbolinks', '~> 5.2', '>= 5.2.1'
84
+ s.add_dependency 'validate_url', '~> 1.0', '>= 1.0.8'
85
+ s.add_dependency 'virtus', '~> 1.0', '>= 1.0.5'
86
+ s.add_dependency 'will_paginate', '~> 3.2', '>= 3.2.1'
87
+ s.add_dependency 'will_paginate-bootstrap', '~> 1.0', '>= 1.0.2'
97
88
 
98
89
  s.add_development_dependency 'capybara', '~> 3.31'
99
90
  s.add_development_dependency 'database_cleaner-active_record', '~> 1.8'
@@ -2,7 +2,7 @@
2
2
 
3
3
  module DocTemplate
4
4
  class Document
5
- MAX_PARSE_ITERATIONS = 100
5
+ MAX_PARSE_ITERATIONS = 300
6
6
 
7
7
  # Contains the list of tags for which no parts should be created
8
8
  TAGS_WITHOUT_PARTS = [
@@ -178,7 +178,7 @@ module DocTemplate
178
178
 
179
179
  parts << {
180
180
  anchor: parsed_tag.anchor.to_s,
181
- content: sanitized_content.squish,
181
+ content: parsed_tag.try(:without_squish?) ? sanitized_content : sanitized_content.squish,
182
182
  context_type: @opts[:context_type],
183
183
  data: parsed_tag.tag_data,
184
184
  materials: parsed_tag.materials,