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.
- checksums.yaml +4 -4
- data/{spec/dummy/.env.docker → .env.docker} +0 -0
- data/.env.template +34 -0
- data/.gitignore +0 -1
- data/CHANGELOG.md +25 -0
- data/Dockerfile +1 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +682 -0
- data/README.md +5 -11
- data/app/assets/javascripts/lcms/engine/admin/application.js +2 -11
- data/app/assets/javascripts/lcms/engine/application.js +1 -44
- data/app/assets/javascripts/lcms/engine/application_lti.js +1 -29
- data/app/assets/javascripts/lcms/engine/initializers/foundation.js +5 -0
- data/app/assets/stylesheets/lcms/engine/admin.scss +0 -1
- data/app/assets/stylesheets/lcms/engine/application.scss +6 -61
- data/app/assets/stylesheets/lcms/engine/base/_colors.scss +2 -2
- data/app/assets/stylesheets/lcms/engine/components/lesson/_icons.scss +0 -25
- data/app/assets/stylesheets/lcms/engine/layout/_footer.scss +2 -0
- data/app/assets/stylesheets/lcms/engine/layout/_header.scss +1 -210
- data/app/assets/stylesheets/lcms/engine/pdf.scss +3 -27
- data/app/assets/stylesheets/lcms/engine/pdf_plain.scss +3 -11
- data/app/assets/stylesheets/lcms/engine/print/_typography.scss +0 -5
- data/app/assets/stylesheets/lcms/engine/utils/_variables.scss +4 -4
- data/app/controllers/concerns/lcms/engine/reimportable.rb +9 -0
- data/app/controllers/lcms/engine/admin/admin_controller.rb +2 -0
- data/app/controllers/lcms/engine/admin/documents_controller.rb +7 -17
- data/app/controllers/lcms/engine/admin/materials_controller.rb +16 -19
- data/app/controllers/lcms/engine/admin/resources_controller.rb +77 -41
- data/app/controllers/lcms/engine/surveys_controller.rb +3 -14
- data/app/forms/lcms/engine/material_form.rb +1 -0
- data/app/helpers/lcms/engine/application_helper.rb +6 -2
- data/app/helpers/lcms/engine/resource_helper.rb +0 -17
- data/app/presenters/lcms/engine/content_presenter.rb +1 -1
- data/app/presenters/lcms/engine/document_presenter.rb +3 -5
- data/app/views/devise/confirmations/new.html.erb +1 -1
- data/app/views/devise/passwords/edit.html.erb +1 -1
- data/app/views/devise/passwords/new.html.erb +1 -1
- data/app/views/devise/registrations/new.html.erb +1 -1
- data/app/views/devise/sessions/new.html.erb +2 -2
- data/app/views/layouts/lcms/engine/admin.html.erb +1 -3
- data/app/views/layouts/lcms/engine/application.html.erb +0 -6
- data/app/views/layouts/lcms/engine/cg_pdf.erb +0 -38
- data/app/views/layouts/lcms/engine/lti.html.erb +0 -1
- data/app/views/lcms/engine/admin/curriculums/edit.html.erb +3 -0
- data/app/views/lcms/engine/admin/materials/index.html.erb +1 -1
- data/app/views/lcms/engine/admin/resource_bulk_edits/new.html.erb +3 -3
- data/app/views/lcms/engine/admin/shared/_header.html.erb +1 -8
- data/app/views/lcms/engine/documents/_content.html.erb +0 -1
- data/app/views/lcms/engine/documents/_sticky_header.html.erb +1 -1
- data/app/views/lcms/engine/documents/_sticky_site_menu.html.erb +0 -1
- data/app/views/lcms/engine/resources/_download.html.erb +2 -2
- data/app/views/lcms/engine/resources/_unit_bundles.html.erb +2 -2
- data/app/views/lcms/engine/resources/show.html.erb +2 -2
- data/app/views/lcms/engine/shared/_footer.html.erb +1 -3
- data/app/views/lcms/engine/shared/_header.html.erb +2 -36
- data/app/views/lcms/engine/surveys/show.html.erb +1 -1
- data/app/views/lcms/engine/welcome/index.html.erb +1 -80
- data/config/locales/admin/en.yml +1 -0
- data/config/routes.rb +2 -36
- data/db/migrate/20200422130652_add_reimported_at_to_documents.rb +1 -1
- data/db/migrate/20200429130353_drop_pages.rb +13 -0
- data/docs/env-variables.md +87 -0
- data/docs/google-cloud-platform-setup.md +106 -0
- data/lcms-engine.gemspec +50 -59
- data/lib/doc_template/document.rb +2 -2
- data/lib/doc_template/tables/activity.rb +1 -2
- data/lib/doc_template/tables/base.rb +4 -0
- data/lib/doc_template/tables/section.rb +1 -2
- data/lib/doc_template/xpath_functions.rb +3 -1
- data/lib/lcms/engine/engine.rb +0 -8
- data/lib/lcms/engine/version.rb +1 -1
- data/lib/lt/lcms/metadata/context.rb +5 -7
- data/spec/controllers/admin/admin_controller_spec.rb +1 -1
- data/spec/controllers/admin/documents_controller_spec.rb +38 -6
- data/spec/controllers/admin/materials_controller_spec.rb +64 -0
- data/spec/controllers/admin/resources_controller_spec.rb +72 -0
- data/spec/dummy/config/lcms-admin.yml +3 -3
- data/spec/dummy/db/schema.rb +29 -37
- data/spec/features/welcome_spec.rb +1 -1
- data/spec/fixtures/tables/activity-metadata-3activities.html +1 -0
- data/spec/fixtures/tables/document-metadata-2paragpraphs.html +97 -0
- data/spec/fixtures/tables/document-metadata-2spans.html +96 -0
- data/spec/fixtures/tables/document-metadata.html +96 -0
- data/spec/lib/doc_template/tables/activity_spec.rb +28 -0
- data/spec/lib/doc_template/tables/metadata_spec.rb +40 -0
- data/spec/lib/doc_template/tables/shared_examples/remove_table.rb +11 -0
- data/spec/rails_helper.rb +1 -0
- data/spec/support/fixture_helper.rb +16 -0
- data/vendor/assets/javascripts/selectize.min.js +4 -0
- data/vendor/assets/stylesheets/selectize.scss +333 -0
- data/yarn.lock +634 -452
- metadata +274 -494
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.eot +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.svg +0 -689
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.ttf +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Medium-Web.woff +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.eot +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.svg +0 -697
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.ttf +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Regular-Web.woff +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.eot +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.svg +0 -768
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.ttf +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-RegularItalic-Web.woff +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.eot +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.svg +0 -685
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.ttf +0 -0
- data/app/assets/fonts/lcms/engine/caponi/CaponiSlab-Semibold-Web.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.eot +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.svg +0 -5603
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Bold.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.eot +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.svg +0 -5763
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Light.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.eot +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.otf +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.svg +0 -5400
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansCond-Medium.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.eot +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.html +0 -15
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.otf +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.svg +0 -13061
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Bold.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.eot +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.html +0 -15
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.otf +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.svg +0 -13075
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Light.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.eot +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.otf +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.svg +0 -13142
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-LightItalic.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.eot +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.ttf +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.woff +0 -0
- data/app/assets/fonts/lcms/engine/centro/PFCentroSansPro-Medium.woff2 +0 -0
- data/app/assets/fonts/lcms/engine/cursive/Sriracha-Regular.ttf +0 -0
- data/app/assets/fonts/lcms/engine/icons/ubicons.eot +0 -0
- data/app/assets/fonts/lcms/engine/icons/ubicons.svg +0 -50
- data/app/assets/fonts/lcms/engine/icons/ubicons.ttf +0 -0
- data/app/assets/fonts/lcms/engine/icons/ubicons.woff +0 -0
- data/app/assets/fonts/lcms/engine/ub/UBIcons.eot +0 -0
- data/app/assets/fonts/lcms/engine/ub/UBIcons.svg +0 -18
- data/app/assets/fonts/lcms/engine/ub/UBIcons.ttf +0 -0
- data/app/assets/fonts/lcms/engine/ub/UBIcons.woff +0 -0
- data/app/assets/images/lcms/engine/lessons/ld_p1.png +0 -0
- data/app/assets/images/lcms/engine/lessons/ld_p2.png +0 -0
- data/app/assets/images/lcms/engine/lessons/ld_p3.png +0 -0
- data/app/assets/images/lcms/engine/lessons/tens.png +0 -0
- data/app/assets/images/lcms/engine/lessons/wp.svg +0 -30
- data/app/assets/images/lcms/engine/tile-wide.png +0 -0
- data/app/assets/images/lcms/engine/tile.png +0 -0
- data/app/assets/javascripts/lcms/engine/components.js +0 -7
- data/app/assets/javascripts/lcms/engine/components/.gitkeep +0 -0
- data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMap.js.jsx +0 -31
- data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapLesson.js.jsx +0 -18
- data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapModule.js.jsx +0 -59
- data/app/assets/javascripts/lcms/engine/components/curriculum-map/CurriculumMapUnit.js.jsx +0 -56
- data/app/assets/javascripts/lcms/engine/components/curriculum-map/ResourceHover.js.jsx +0 -27
- data/app/assets/javascripts/lcms/engine/components/curriculum-map/ResourcePreview.js.jsx +0 -29
- data/app/assets/javascripts/lcms/engine/components/enhance-instruction/EnhanceInstructionCards.js.jsx +0 -13
- data/app/assets/javascripts/lcms/engine/components/enhance-instruction/EnhanceInstructionPage.js.jsx +0 -139
- data/app/assets/javascripts/lcms/engine/components/enhance-instruction/GenericResourceCard.js.jsx +0 -20
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumCardItem.js.jsx +0 -152
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumGradeMap.js.jsx +0 -44
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumHeader.js.jsx +0 -10
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumItem.js.jsx +0 -77
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumModuleMap.js.jsx +0 -59
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumOpr.js.jsx +0 -62
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumPage.js.jsx +0 -258
- data/app/assets/javascripts/lcms/engine/components/explore-curriculum/ExploreCurriculumUnitMap.js.jsx +0 -50
- data/app/assets/javascripts/lcms/engine/components/filterbar/FilterBarResponsive.js.jsx +0 -62
- data/app/assets/javascripts/lcms/engine/components/filterbar/Filterbar.js.jsx +0 -258
- data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarFacet.js.jsx +0 -12
- data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarGrade.js.jsx +0 -14
- data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarSearch.js.jsx +0 -48
- data/app/assets/javascripts/lcms/engine/components/filterbar/FilterbarSubject.js.jsx +0 -12
- data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsCards.js.jsx +0 -11
- data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsCardsEmpty.js.jsx +0 -17
- data/app/assets/javascripts/lcms/engine/components/find-lessons/FindLessonsPage.js.jsx +0 -58
- data/app/assets/javascripts/lcms/engine/components/helpers/FreshdeskBtn.js.jsx +0 -9
- data/app/assets/javascripts/lcms/engine/components/helpers/MediaTime.js.jsx +0 -6
- data/app/assets/javascripts/lcms/engine/components/helpers/SearchResultsHeader.js.jsx +0 -41
- data/app/assets/javascripts/lcms/engine/components/helpers/TimeToTeach.js.jsx +0 -29
- data/app/assets/javascripts/lcms/engine/components/instruction-card/InstructionCard.js.jsx +0 -57
- data/app/assets/javascripts/lcms/engine/components/lesson-card/LessonCard.js.jsx +0 -45
- data/app/assets/javascripts/lcms/engine/components/materials/CollapsedMaterial.js.jsx +0 -40
- data/app/assets/javascripts/lcms/engine/components/materials/DocumentMaterialsList.js.jsx +0 -33
- data/app/assets/javascripts/lcms/engine/components/materials/ExpandedMaterial.js.jsx +0 -37
- data/app/assets/javascripts/lcms/engine/components/materials/MaterialsContainer.js.jsx +0 -92
- data/app/assets/javascripts/lcms/engine/components/materials/MaterialsList.js.jsx +0 -19
- data/app/assets/javascripts/lcms/engine/components/modals/DownloadModal.js.jsx +0 -68
- data/app/assets/javascripts/lcms/engine/components/related-instruction/RelatedInstruction.js.jsx +0 -72
- data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdown.js.jsx +0 -159
- data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdownResult.js.jsx +0 -12
- data/app/assets/javascripts/lcms/engine/components/search-dropdown/SearchDropdownResults.js.jsx +0 -36
- data/app/assets/javascripts/lcms/engine/components/search/SearchPage.js.jsx +0 -44
- data/app/assets/javascripts/lcms/engine/components/search/SearchResult.js.jsx +0 -22
- data/app/assets/javascripts/lcms/engine/components/search/SearchResults.js.jsx +0 -17
- data/app/assets/javascripts/lcms/engine/components/search/SearchResultsEmpty.js.jsx +0 -25
- data/app/assets/javascripts/lcms/engine/components/search/searchPageWrapper.js.jsx +0 -77
- data/app/assets/javascripts/lcms/engine/components/select-activity/SelectActivityConfirmationModal.js.jsx +0 -107
- data/app/assets/javascripts/lcms/engine/components/select-activity/SelectActivityToggle.js.jsx +0 -39
- data/app/assets/javascripts/lcms/engine/components/stores/ExcludesStore.js.jsx +0 -11
- data/app/assets/javascripts/lcms/engine/components/tabs/SimpleTab.js.jsx +0 -130
- data/app/assets/javascripts/lcms/engine/components/utils/UrlHistory.js.jsx +0 -113
- data/app/assets/javascripts/lcms/engine/components/utils/colorcodecss.js.jsx +0 -4
- data/app/assets/javascripts/lcms/engine/components/utils/converttobem.js.jsx +0 -3
- data/app/assets/javascripts/lcms/engine/components/utils/filterbarupdate.js.jsx +0 -5
- data/app/assets/javascripts/lcms/engine/components/utils/heaptrackpd.js.jsx +0 -5
- data/app/assets/javascripts/lcms/engine/components/utils/regexpescape.js.jsx +0 -5
- data/app/assets/javascripts/lcms/engine/components/utils/scalenumber.js.jsx +0 -8
- data/app/assets/javascripts/lcms/engine/initializers/about_people.js +0 -8
- data/app/assets/javascripts/lcms/engine/initializers/analytics.js +0 -10
- data/app/assets/javascripts/lcms/engine/initializers/bundles.js +0 -12
- data/app/assets/javascripts/lcms/engine/initializers/events.js +0 -3
- data/app/assets/javascripts/lcms/engine/initializers/freshdesk.js +0 -18
- data/app/assets/javascripts/lcms/engine/initializers/header_dropdown.js +0 -44
- data/app/assets/javascripts/lcms/engine/initializers/heap_analytics.js +0 -78
- data/app/assets/javascripts/lcms/engine/initializers/leadership.js +0 -22
- data/app/assets/javascripts/lcms/engine/initializers/lessons.js +0 -299
- data/app/assets/javascripts/lcms/engine/initializers/loadasync.js +0 -30
- data/app/assets/javascripts/lcms/engine/initializers/pdf_preview.js +0 -15
- data/app/assets/javascripts/lcms/engine/initializers/resource_details.js +0 -21
- data/app/assets/javascripts/lcms/engine/initializers/sidebar/SideBar.js.jsx +0 -86
- data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarCGMenu.js.jsx +0 -37
- data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarDocMenu.js.jsx +0 -75
- data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarMobile.js.jsx +0 -43
- data/app/assets/javascripts/lcms/engine/initializers/sidebar/SidebarSticky.js.jsx +0 -43
- data/app/assets/javascripts/lcms/engine/initializers/sidebar/TopScroll.js.jsx +0 -21
- data/app/assets/javascripts/lcms/engine/initializers/social_sharing.js +0 -29
- data/app/assets/javascripts/lcms/engine/initializers/soundcloud.js +0 -52
- data/app/assets/javascripts/lcms/engine/initializers/subscribe_placeholder.js +0 -12
- data/app/assets/javascripts/lcms/engine/initializers/survey.js +0 -31
- data/app/assets/stylesheets/lcms/engine/base/_cg-colors.scss +0 -48
- data/app/assets/stylesheets/lcms/engine/base/_fonts.scss +0 -103
- data/app/assets/stylesheets/lcms/engine/base/_icons.scss +0 -342
- data/app/assets/stylesheets/lcms/engine/components/_buttons.scss +0 -200
- data/app/assets/stylesheets/lcms/engine/components/_cards.scss +0 -36
- data/app/assets/stylesheets/lcms/engine/components/_cg-base.scss +0 -22
- data/app/assets/stylesheets/lcms/engine/components/_curriculum-cards.scss +0 -237
- data/app/assets/stylesheets/lcms/engine/components/_curriculum-map.scss +0 -214
- data/app/assets/stylesheets/lcms/engine/components/_download-modal.scss +0 -56
- data/app/assets/stylesheets/lcms/engine/components/_filterbar-modal.scss +0 -20
- data/app/assets/stylesheets/lcms/engine/components/_filterbar.scss +0 -184
- data/app/assets/stylesheets/lcms/engine/components/_generic-resource.scss +0 -58
- data/app/assets/stylesheets/lcms/engine/components/_inputs.scss +0 -12
- data/app/assets/stylesheets/lcms/engine/components/_instruction-cards.scss +0 -160
- data/app/assets/stylesheets/lcms/engine/components/_lesson-base.scss +0 -31
- data/app/assets/stylesheets/lcms/engine/components/_lesson-cards.scss +0 -119
- data/app/assets/stylesheets/lcms/engine/components/_ls-post.scss +0 -38
- data/app/assets/stylesheets/lcms/engine/components/_material-base.scss +0 -6
- data/app/assets/stylesheets/lcms/engine/components/_media-resources.scss +0 -6
- data/app/assets/stylesheets/lcms/engine/components/_media.scss +0 -95
- data/app/assets/stylesheets/lcms/engine/components/_pagination.scss +0 -84
- data/app/assets/stylesheets/lcms/engine/components/_panel-dsc.scss +0 -37
- data/app/assets/stylesheets/lcms/engine/components/_panel.scss +0 -7
- data/app/assets/stylesheets/lcms/engine/components/_related-instruction.scss +0 -31
- data/app/assets/stylesheets/lcms/engine/components/_resource.scss +0 -217
- data/app/assets/stylesheets/lcms/engine/components/_search-dropdown.scss +0 -23
- data/app/assets/stylesheets/lcms/engine/components/_search-header.scss +0 -45
- data/app/assets/stylesheets/lcms/engine/components/_search.scss +0 -57
- data/app/assets/stylesheets/lcms/engine/components/_sidebar.scss +0 -159
- data/app/assets/stylesheets/lcms/engine/components/_simple-tab.scss +0 -57
- data/app/assets/stylesheets/lcms/engine/components/_social-sharing.scss +0 -20
- data/app/assets/stylesheets/lcms/engine/components/_titles.scss +0 -33
- data/app/assets/stylesheets/lcms/engine/components/_top-scroll-button.scss +0 -28
- data/app/assets/stylesheets/lcms/engine/components/_unit-bundles.scss +0 -14
- data/app/assets/stylesheets/lcms/engine/components/cg/_annotations.scss +0 -48
- data/app/assets/stylesheets/lcms/engine/components/cg/_colorscheme.scss +0 -60
- data/app/assets/stylesheets/lcms/engine/components/cg/_contents-modal.scss +0 -20
- data/app/assets/stylesheets/lcms/engine/components/cg/_elements.scss +0 -11
- data/app/assets/stylesheets/lcms/engine/components/cg/_faq.scss +0 -35
- data/app/assets/stylesheets/lcms/engine/components/cg/_footnote.scss +0 -20
- data/app/assets/stylesheets/lcms/engine/components/cg/_hacks.scss +0 -11
- data/app/assets/stylesheets/lcms/engine/components/cg/_icons.scss +0 -30
- data/app/assets/stylesheets/lcms/engine/components/cg/_keywords.scss +0 -5
- data/app/assets/stylesheets/lcms/engine/components/cg/_links.scss +0 -3
- data/app/assets/stylesheets/lcms/engine/components/cg/_quotes.scss +0 -18
- data/app/assets/stylesheets/lcms/engine/components/cg/_standards.scss +0 -23
- data/app/assets/stylesheets/lcms/engine/components/cg/_table.scss +0 -50
- data/app/assets/stylesheets/lcms/engine/components/cg/_task.scss +0 -43
- data/app/assets/stylesheets/lcms/engine/components/cg/_video.scss +0 -10
- data/app/assets/stylesheets/lcms/engine/components/support/_helpdesk.scss +0 -25
- data/app/assets/stylesheets/lcms/engine/freshdesk/base/_colors.scss +0 -25
- data/app/assets/stylesheets/lcms/engine/freshdesk/base/_typography.scss +0 -19
- data/app/assets/stylesheets/lcms/engine/freshdesk/components/_block.scss +0 -5
- data/app/assets/stylesheets/lcms/engine/freshdesk/components/_buttons.scss +0 -5
- data/app/assets/stylesheets/lcms/engine/freshdesk/components/_help-center.scss +0 -59
- data/app/assets/stylesheets/lcms/engine/freshdesk/components/_tabs.scss +0 -33
- data/app/assets/stylesheets/lcms/engine/freshdesk/freshdesk.scss +0 -42
- data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_footer.scss +0 -44
- data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_header.scss +0 -49
- data/app/assets/stylesheets/lcms/engine/freshdesk/layout/_page.scss +0 -40
- data/app/assets/stylesheets/lcms/engine/freshdesk/layout/footer.liquid +0 -14
- data/app/assets/stylesheets/lcms/engine/freshdesk/layout/header.liquid +0 -41
- data/app/assets/stylesheets/lcms/engine/freshdesk/layout/page.liquid +0 -22
- data/app/assets/stylesheets/lcms/engine/freshdesk/pages/_portal-home.scss +0 -18
- data/app/assets/stylesheets/lcms/engine/freshdesk/pages/portal.home.liquid +0 -74
- data/app/assets/stylesheets/lcms/engine/freshdesk/themes/_settings.scss +0 -19
- data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_breakpoint.scss +0 -288
- data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_helpers.scss +0 -22
- data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_unit.scss +0 -95
- data/app/assets/stylesheets/lcms/engine/freshdesk/utils/_value.scss +0 -138
- data/app/assets/stylesheets/lcms/engine/layout/_connect.scss +0 -63
- data/app/assets/stylesheets/lcms/engine/layout/_header-search-form.scss +0 -30
- data/app/assets/stylesheets/lcms/engine/layout/_sticky-header.scss +0 -179
- data/app/assets/stylesheets/lcms/engine/layout/_sticky-navigation.scss +0 -124
- data/app/assets/stylesheets/lcms/engine/layout/_subscribe.scss +0 -68
- data/app/assets/stylesheets/lcms/engine/pages/_about-people.scss +0 -115
- data/app/assets/stylesheets/lcms/engine/pages/_about.scss +0 -61
- data/app/assets/stylesheets/lcms/engine/pages/_content-guide.scss +0 -205
- data/app/assets/stylesheets/lcms/engine/pages/_enhance-instruction.scss +0 -19
- data/app/assets/stylesheets/lcms/engine/pages/_explore-curriculum.scss +0 -46
- data/app/assets/stylesheets/lcms/engine/pages/_find-lessons.scss +0 -1
- data/app/assets/stylesheets/lcms/engine/pages/_home.scss +0 -237
- data/app/assets/stylesheets/lcms/engine/pages/_leadership.scss +0 -263
- data/app/assets/stylesheets/lcms/engine/pages/_lesson-document.scss +0 -138
- data/app/assets/stylesheets/lcms/engine/pages/_unsupported.scss +0 -18
- data/app/assets/stylesheets/lcms/engine/print/_b64-fonts.scss.erb +0 -65
- data/app/assets/stylesheets/lcms/engine/print/_cg-base.scss +0 -4
- data/app/assets/stylesheets/lcms/engine/print/_hacks.scss +0 -6
- data/app/assets/stylesheets/lcms/engine/print/cg/_base-typography.scss +0 -21
- data/app/assets/stylesheets/lcms/engine/print/cg/_breaks.scss +0 -7
- data/app/assets/stylesheets/lcms/engine/print/cg/_elements-typography.scss +0 -14
- data/app/assets/stylesheets/lcms/engine/vendors/swiper.css +0 -547
- data/app/controllers/concerns/lcms/engine/analytics_tracking.rb +0 -51
- data/app/controllers/concerns/lcms/engine/heap_notifyable.rb +0 -20
- data/app/controllers/lcms/engine/admin/configurable_admin.rb +0 -56
- data/app/controllers/lcms/engine/admin/google_oauth2_controller.rb +0 -15
- data/app/controllers/lcms/engine/admin/pages_controller.rb +0 -54
- data/app/controllers/lcms/engine/analytics_exclusion_controller.rb +0 -14
- data/app/controllers/lcms/engine/downloads_controller.rb +0 -50
- data/app/controllers/lcms/engine/enhance_instruction_controller.rb +0 -18
- data/app/controllers/lcms/engine/explore_curriculum_controller.rb +0 -28
- data/app/controllers/lcms/engine/find_lessons_controller.rb +0 -15
- data/app/controllers/lcms/engine/pages_controller.rb +0 -26
- data/app/controllers/lcms/engine/search_controller.rb +0 -15
- data/app/controllers/lcms/engine/sessions_controller.rb +0 -19
- data/app/models/lcms/engine/page.rb +0 -13
- data/app/services/lcms/engine/generate_thumbnails.rb +0 -54
- data/app/services/lcms/engine/svg_social_thumbnail.rb +0 -223
- data/app/views/layouts/lcms/engine/ld_docx.html.erb +0 -16
- data/app/views/lcms/engine/admin/pages/_form.html.erb +0 -8
- data/app/views/lcms/engine/admin/pages/edit.html.erb +0 -9
- data/app/views/lcms/engine/admin/pages/index.html.erb +0 -25
- data/app/views/lcms/engine/admin/pages/new.html.erb +0 -5
- data/app/views/lcms/engine/documents/_helpdesk.html.erb +0 -9
- data/app/views/lcms/engine/pages/_about_people_staff.html.erb +0 -27
- data/app/views/lcms/engine/pages/_leadership_in_action.html.erb +0 -25
- data/app/views/lcms/engine/pages/_leadership_why_i_lead.html.erb +0 -34
- data/app/views/lcms/engine/pages/about.html.erb +0 -87
- data/app/views/lcms/engine/pages/about_people.html.erb +0 -27
- data/app/views/lcms/engine/pages/forthcoming.html.erb +0 -9
- data/app/views/lcms/engine/pages/leadership.html.erb +0 -82
- data/app/views/lcms/engine/pages/not_found.html.erb +0 -9
- data/app/views/lcms/engine/pages/privacy.html.erb +0 -9
- data/app/views/lcms/engine/pages/show.html.erb +0 -8
- data/app/views/lcms/engine/pages/show_slug.html.erb +0 -0
- data/app/views/lcms/engine/pages/tos.html.erb +0 -9
- data/app/views/lcms/engine/shared/_connect.html.erb +0 -60
- data/app/views/lcms/engine/shared/_freshdesk.html.erb +0 -22
- data/app/views/lcms/engine/shared/_google_analytics.html.erb +0 -9
- data/app/views/lcms/engine/shared/_heap_analytics.html.erb +0 -7
- data/app/views/lcms/engine/shared/_open_graph_meta.html.erb +0 -15
- data/app/views/lcms/engine/shared/_open_graph_meta_js.html.erb +0 -39
- data/app/views/lcms/engine/shared/_search_form.html.erb +0 -10
- data/app/views/lcms/engine/shared/_social_sharing_menu.html.erb +0 -34
- data/app/views/lcms/engine/shared/_subscribe.html.erb +0 -30
- data/app/views/lcms/engine/shared/_unsupported.html.erb +0 -3
- data/app/views/lcms/engine/shared/social_thumbnail.svg.erb +0 -54
- data/config/initializers/heap.rb +0 -3
- data/lib/tasks/thumbnails.rake +0 -59
- data/spec/controllers/admin/pages_controller_spec.rb +0 -19
- data/spec/controllers/enhance_instruction_controller_spec.rb +0 -15
- data/spec/controllers/explore_curriculum_controller_spec.rb +0 -29
- data/spec/controllers/find_lessons_controller_spec.rb +0 -50
- data/spec/controllers/pages_controller_spec.rb +0 -32
- data/spec/controllers/search_controller_spec.rb +0 -16
- data/spec/factories/pages.rb +0 -21
- data/spec/features/admin/pages_spec.rb +0 -79
- data/spec/features/pages/page_not_found_spec.rb +0 -26
- data/spec/features/pages/page_titles_spec.rb +0 -86
- data/spec/support/heap.rb +0 -3
- data/vendor/assets/javascripts/foundation.initialize.js +0 -115
- data/vendor/assets/javascripts/foundation.magellanex.js +0 -335
- data/vendor/assets/javascripts/freshwidget.js +0 -1
- data/vendor/assets/javascripts/jquery.easytabs.js +0 -704
- data/vendor/assets/javascripts/jquery.hashchange.js +0 -9
- data/vendor/assets/javascripts/modernizr-custom.js +0 -3
- data/vendor/assets/javascripts/smoothscrolling.js +0 -22
- data/vendor/assets/javascripts/swiper.jquery.js +0 -3777
- data/vendor/assets/javascripts/tabs.js +0 -6
data/config/locales/admin/en.yml
CHANGED
|
@@ -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.
|
data/config/routes.rb
CHANGED
|
@@ -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'
|
|
@@ -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)
|
data/lcms-engine.gemspec
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
35
|
-
s.add_dependency 'bullet', '~> 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'
|
|
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
|
|
44
|
-
s.add_dependency 'elasticsearch-persistence', '~> 7.0
|
|
45
|
-
s.add_dependency 'elasticsearch-rails', '~> 7.0
|
|
46
|
-
s.add_dependency 'fog-aws', '~> 3.5.2'
|
|
47
|
-
s.add_dependency 'font-awesome-sass', '~> 5.12
|
|
48
|
-
s.add_dependency 'foundation-rails', '~> 6.6.1
|
|
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
|
|
53
|
-
s.add_dependency 'jbuilder', '~> 2.10
|
|
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.
|
|
58
|
-
s.add_dependency 'migration_data', '~> 0.6
|
|
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 '
|
|
72
|
-
s.add_dependency 'rails
|
|
73
|
-
s.add_dependency '
|
|
74
|
-
s.add_dependency '
|
|
75
|
-
s.add_dependency '
|
|
76
|
-
s.add_dependency '
|
|
77
|
-
s.add_dependency '
|
|
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', '
|
|
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 =
|
|
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,
|