diff --git a/resources/assets/javascripts/bootstrap/courseware.js b/resources/assets/javascripts/bootstrap/courseware.js index d24bd4db39262c16205d2a6988203be48a044747..d50331f8ea562dbd911cb769e50eafa73f9aa0f8 100644 --- a/resources/assets/javascripts/bootstrap/courseware.js +++ b/resources/assets/javascripts/bootstrap/courseware.js @@ -1,6 +1,6 @@ STUDIP.domReady(() => { if (document.getElementById('courseware-shelf-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-shelf-app" */ '@/vue/courseware-shelf-app.js' @@ -11,7 +11,7 @@ STUDIP.domReady(() => { } if (document.getElementById('courseware-index-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-index-app" */ '@/vue/courseware-index-app.js' @@ -22,7 +22,7 @@ STUDIP.domReady(() => { } if (document.getElementById('courseware-activities-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-activities-app" */ '@/vue/courseware-activities-app.js' @@ -33,7 +33,7 @@ STUDIP.domReady(() => { } if (document.getElementById('courseware-tasks-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-tasks-app" */ '@/vue/courseware-tasks-app.js' @@ -44,7 +44,7 @@ STUDIP.domReady(() => { } if (document.getElementById('courseware-content-bookmark-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-content-bookmark-app" */ '@/vue/courseware-content-bookmark-app.js' @@ -55,7 +55,7 @@ STUDIP.domReady(() => { } if (document.getElementById('courseware-admin-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-content-bookmark-app" */ '@/vue/courseware-admin-app.js' @@ -66,7 +66,7 @@ STUDIP.domReady(() => { } if (document.getElementById('courseware-public-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-public-app" */ '@/vue/courseware-public-app.js' @@ -77,7 +77,7 @@ STUDIP.domReady(() => { } if (document.getElementById('courseware-content-releases-app')) { - STUDIP.Vue.load().then(({ createApp }) => { + STUDIP.loadChunk('courseware').then(({ createApp }) => { import( /* webpackChunkName: "courseware-content-releases-app" */ '@/vue/courseware-content-releases-app.js' diff --git a/resources/assets/javascripts/chunk-loader.js b/resources/assets/javascripts/chunk-loader.js index d2da2a7b14453ceec5d02a63c799c33e0b126611..dcd95cc63df3934e4ebdf17736ba3fa31e249269 100644 --- a/resources/assets/javascripts/chunk-loader.js +++ b/resources/assets/javascripts/chunk-loader.js @@ -9,10 +9,10 @@ export const loadScript = function (script_name) { }; export const loadChunk = (function () { - var mathjax_promise = null; + let mathjax_promise = null; return function (chunk) { - var promise = null; + let promise = null; switch (chunk) { case 'code-highlight': @@ -24,6 +24,16 @@ export const loadChunk = (function () { }); break; + case 'courseware': + promise = Promise.all([ + STUDIP.loadChunk('vue'), + import( + /* webpackChunkName: "courseware" */ + './chunks/courseware' + ), + ]).then(([Vue]) => Vue); + break; + case 'chartist': promise = import( /* webpackChunkName: "chartist" */ diff --git a/resources/assets/javascripts/chunks/courseware.js b/resources/assets/javascripts/chunks/courseware.js new file mode 100644 index 0000000000000000000000000000000000000000..5e555568c19b87706effd87cd54828d36f12193e --- /dev/null +++ b/resources/assets/javascripts/chunks/courseware.js @@ -0,0 +1 @@ +import "../../stylesheets/scss/courseware.scss"; diff --git a/resources/assets/stylesheets/mixins.scss b/resources/assets/stylesheets/mixins.scss index a9dd78d0d081b1163d6d2ab4f87089592276edd6..a7bb714cafa3454c84fd184d7f783e881a9daef4 100644 --- a/resources/assets/stylesheets/mixins.scss +++ b/resources/assets/stylesheets/mixins.scss @@ -1,6 +1,8 @@ $image-path: "../images" !default; $icon-path: "#{$image-path}/icons" !default; +@import "scss/variables"; + @import "mixins/misc"; @import "mixins/colors"; @import "mixins/studip"; diff --git a/resources/assets/stylesheets/scss/courseware.scss b/resources/assets/stylesheets/scss/courseware.scss index 141bce98a00f50f4fffef78a8b5cfd8bc1fdb388..b854bef5c0591446af84da8c26fa47bf6106c42e 100644 --- a/resources/assets/stylesheets/scss/courseware.scss +++ b/resources/assets/stylesheets/scss/courseware.scss @@ -1,7 +1,7 @@ -@import "courseware_gradients.scss"; - - /* definitions */ +@use '../mixins.scss' as *; +@import './drag-handle.scss'; +@import "courseware_gradients.scss"; $companion-types: ( default: basic, diff --git a/resources/assets/stylesheets/scss/layouts.scss b/resources/assets/stylesheets/scss/layouts.scss index 72ff2e7c01c370de64399fc51c224452c35dd0da..6d0454af0cf3970b17dacd81b22d8558127ba899 100644 --- a/resources/assets/stylesheets/scss/layouts.scss +++ b/resources/assets/stylesheets/scss/layouts.scss @@ -1,21 +1,5 @@ // TODO: SCSSify -$page-margin: 15px; - -$sidebar-padding: 12px; -$sidebar-width: 270px; - -$content-width: 400px; -$content-margin: 12px; -$max-content-width: 4 * $sidebar-width + $page-margin; - -$footer-height: 32px; - -$site-width: ($page-margin * 2 + $sidebar-width + $sidebar-padding * 2 + $sidebar-border-width * 2 + $content-width + $content-margin * 2); -$page-width: ($sidebar-width + $sidebar-padding * 2 + $sidebar-border-width * 2 + $content-width + $content-margin * 2); - -$grid-gap: 0; - html { height: 100vh; overflow-y: auto; diff --git a/resources/assets/stylesheets/scss/variables.scss b/resources/assets/stylesheets/scss/variables.scss index f82da12bfa1d7300879d56181418a00e4e376e82..c07fbd0be02edcd344a01aab78fee7673e9e0e6e 100644 --- a/resources/assets/stylesheets/scss/variables.scss +++ b/resources/assets/stylesheets/scss/variables.scss @@ -1,5 +1,6 @@ @import '../mixins/colors.scss'; +// Typography $text-color: #000; $font-family-base: "Lato", sans-serif; @@ -42,6 +43,23 @@ $drag_and_drop_border: 1px solid $base-color; $transition-duration: .3s; +// Layout +$page-margin: 15px; + +$sidebar-padding: 12px; +$sidebar-width: 270px; + +$content-width: 400px; +$content-margin: 12px; +$max-content-width: 4 * $sidebar-width + $page-margin; + +$footer-height: 32px; + +$site-width: ($page-margin * 2 + $sidebar-width + $sidebar-padding * 2 + $sidebar-border-width * 2 + $content-width + $content-margin * 2); +$page-width: ($sidebar-width + $sidebar-padding * 2 + $sidebar-border-width * 2 + $content-width + $content-margin * 2); + +$grid-gap: 0; + :root { // The special handling for -- as #{"--"} seems to be neccessary to make // scss evaluate the color variables diff --git a/resources/assets/stylesheets/studip.scss b/resources/assets/stylesheets/studip.scss index 1ec3573cc1b68251a0cf5718d678679f42cc07d9..2d5b7b1296e9adabe6f9c6f2ac4bb6c65c646281 100644 --- a/resources/assets/stylesheets/studip.scss +++ b/resources/assets/stylesheets/studip.scss @@ -32,7 +32,6 @@ @import "scss/comments"; @import "scss/copyable-links"; @import "scss/cronjobs"; -@import "scss/courseware"; @import "scss/coursewizard"; @import "scss/css_tree"; @import "scss/dates";