Merge branch 'develop'

This commit is contained in:
Ramon Wenger 2020-10-08 16:51:54 +02:00
commit f201de2d46
15 changed files with 162 additions and 104 deletions

View File

@ -19,13 +19,14 @@ definitions:
caches:
npm: $HOME/.npm
cypress: $HOME/.cache/Cypress
clientmodules: client/node_modules
aliases:
- &lint
name: lint
caches:
- node
- clientmodules
script:
- npm install --prefix client
- npm run lint --prefix client
@ -43,6 +44,7 @@ aliases:
caches:
- pip
- node
- clientmodules
- npm
artifacts:
- client/cypress/**/*.png
@ -64,6 +66,7 @@ aliases:
name: run jest tests
caches:
- node
- clientmodules
script:
- echo "This pipeline rules!"
- *setup-tests

View File

@ -248,7 +248,7 @@
@import "@/styles/_mixins.scss";
.content-block {
margin-bottom: 2.5em;
margin-bottom: $section-spacing;
position: relative;
&__container {
@ -257,10 +257,11 @@
&__title {
line-height: 1.5;
margin-top: -0.5rem; // to offset the 1.5 line height, it leaves a padding on top
}
&__instrument-label {
margin-bottom: 0;
margin-bottom: $medium-spacing;
@include regular-text();
}
@ -286,7 +287,9 @@
.content-block__title {
color: $color-brand;
margin-top: $default-padding;
margin-bottom: $large-spacing;
@include light-border(bottom);
@include desktop {
margin-top: 0;
}

View File

@ -1,8 +1,8 @@
<template>
<div
:class="{'content-component--bookmarked': bookmarked}"
:class="componentClass"
:data-scrollto="component.id"
class="content-component">
>
<bookmark-actions
:bookmarked="bookmarked"
:note="note"
@ -19,96 +19,117 @@
</template>
<script>
import {mapGetters} from 'vuex';
import {mapGetters} from 'vuex';
import TextBlock from '@/components/content-blocks/TextBlock';
import InstrumentWidget from '@/components/content-blocks/InstrumentWidget';
import ImageBlock from '@/components/content-blocks/ImageBlock';
import ImageUrlBlock from '@/components/content-blocks/ImageUrlBlock';
import VideoBlock from '@/components/content-blocks/VideoBlock';
import LinkBlock from '@/components/content-blocks/LinkBlock';
import DocumentBlock from '@/components/content-blocks/DocumentBlock';
import InfogramBlock from '@/components/content-blocks/InfogramBlock';
import ThinglinkBlock from '@/components/content-blocks/ThinglinkBlock';
import GeniallyBlock from '@/components/content-blocks/GeniallyBlock';
import SubtitleBlock from '@/components/content-blocks/SubtitleBlock';
import SectionTitleBlock from '@/components/content-blocks/SectionTitleBlock';
import ContentListBlock from '@/components/content-blocks/ContentListBlock';
import ModuleRoomSlug from '@/components/content-blocks/ModuleRoomSlug';
import Assignment from '@/components/content-blocks/assignment/Assignment';
import Survey from '@/components/content-blocks/SurveyBlock';
import Solution from '@/components/content-blocks/Solution';
import Instruction from '@/components/content-blocks/Instruction';
import BookmarkActions from '@/components/notes/BookmarkActions';
import TextBlock from '@/components/content-blocks/TextBlock';
import InstrumentWidget from '@/components/content-blocks/InstrumentWidget';
import ImageBlock from '@/components/content-blocks/ImageBlock';
import ImageUrlBlock from '@/components/content-blocks/ImageUrlBlock';
import VideoBlock from '@/components/content-blocks/VideoBlock';
import LinkBlock from '@/components/content-blocks/LinkBlock';
import DocumentBlock from '@/components/content-blocks/DocumentBlock';
import InfogramBlock from '@/components/content-blocks/InfogramBlock';
import ThinglinkBlock from '@/components/content-blocks/ThinglinkBlock';
import GeniallyBlock from '@/components/content-blocks/GeniallyBlock';
import SubtitleBlock from '@/components/content-blocks/SubtitleBlock';
import SectionTitleBlock from '@/components/content-blocks/SectionTitleBlock';
import ContentListBlock from '@/components/content-blocks/ContentListBlock';
import ModuleRoomSlug from '@/components/content-blocks/ModuleRoomSlug';
import Assignment from '@/components/content-blocks/assignment/Assignment';
import Survey from '@/components/content-blocks/SurveyBlock';
import Solution from '@/components/content-blocks/Solution';
import Instruction from '@/components/content-blocks/Instruction';
import BookmarkActions from '@/components/notes/BookmarkActions';
import {constructContentComponentBookmarkMutation} from '@/helpers/update-content-bookmark-mutation';
import {constructContentComponentBookmarkMutation} from '@/helpers/update-content-bookmark-mutation';
export default {
props: ['component', 'parent', 'bookmarks', 'notes', 'root'],
export default {
props: ['component', 'parent', 'bookmarks', 'notes', 'root'],
components: {
'text_block': TextBlock,
'basic_knowledge': InstrumentWidget, // for legacy
'instrument': InstrumentWidget,
'image_block': ImageBlock,
'image_url_block': ImageUrlBlock,
'video_block': VideoBlock,
'link_block': LinkBlock,
'document_block': DocumentBlock,
'infogram_block': InfogramBlock,
'genially_block': GeniallyBlock,
'subtitle': SubtitleBlock,
'section_title': SectionTitleBlock,
'content_list': ContentListBlock,
'module_room_slug': ModuleRoomSlug,
'thinglink_block': ThinglinkBlock,
Survey,
Solution,
Instruction,
Assignment,
BookmarkActions
components: {
'text_block': TextBlock,
'basic_knowledge': InstrumentWidget, // for legacy
'instrument': InstrumentWidget,
'image_block': ImageBlock,
'image_url_block': ImageUrlBlock,
'video_block': VideoBlock,
'link_block': LinkBlock,
'document_block': DocumentBlock,
'infogram_block': InfogramBlock,
'genially_block': GeniallyBlock,
'subtitle': SubtitleBlock,
'section_title': SectionTitleBlock,
'content_list': ContentListBlock,
'module_room_slug': ModuleRoomSlug,
'thinglink_block': ThinglinkBlock,
Survey,
Solution,
Instruction,
Assignment,
BookmarkActions
},
computed: {
...mapGetters(['editModule']),
bookmarked() {
return this.bookmarks && !!this.bookmarks.find(bookmark => bookmark.uuid === this.component.id);
},
computed: {
...mapGetters(['editModule']),
bookmarked() {
return this.bookmarks && !!this.bookmarks.find(bookmark => bookmark.uuid === this.component.id);
},
note() {
const bookmark = this.bookmarks && this.bookmarks.find(bookmark => bookmark.uuid === this.component.id);
return bookmark && bookmark.note;
},
showBookmarkActions() {
return this.component.type !== 'content_list' && this.component.type !== 'basic_knowledge' && !this.editModule;
}
note() {
const bookmark = this.bookmarks && this.bookmarks.find(bookmark => bookmark.uuid === this.component.id);
return bookmark && bookmark.note;
},
methods: {
addNote(id) {
this.$store.dispatch('addNote', {
content: id,
type: this.parent.__typename,
block: this.root
});
},
editNote() {
this.$store.dispatch('editNote', this.note);
},
bookmarkContent(uuid, bookmarked) {
this.$apollo.mutate(constructContentComponentBookmarkMutation(uuid, bookmarked, this.parent, this.root));
showBookmarkActions() {
return this.component.type !== 'content_list' && this.component.type !== 'basic_knowledge' && !this.editModule;
},
componentClass() {
let classes = ['content-component', `content-component--${this.component.type}`];
if (this.bookmarked) {
classes.push('content-component--bookmarked');
}
return classes;
}
};
},
methods: {
addNote(id) {
this.$store.dispatch('addNote', {
content: id,
type: this.parent.__typename,
block: this.root
});
},
editNote() {
this.$store.dispatch('editNote', this.note);
},
bookmarkContent(uuid, bookmarked) {
this.$apollo.mutate(constructContentComponentBookmarkMutation(uuid, bookmarked, this.parent, this.root));
}
}
};
</script>
<style lang="scss" scoped>
@import "@/styles/_variables.scss";
@import "@/styles/_variables.scss";
.content-component {
position: relative;
.content-component {
position: relative;
&--bookmarked {
&--bookmarked {
}
}
&--subtitle {
margin-top: $section-spacing;
margin-bottom: $large-spacing;
}
&--section_title {
margin-top: $section-spacing;
margin-bottom: $large-spacing;
}
&--text_block {
margin-bottom: $large-spacing;
}
}
</style>

View File

@ -12,9 +12,10 @@
<style scoped lang="scss">
@import "@/styles/_variables.scss";
@import "@/styles/_mixins.scss";
.section-title {
margin-bottom: 30px;
line-height: $default-heading-line-height;
@include heading-line-height;
}
</style>

View File

@ -12,9 +12,12 @@
<style scoped lang="scss">
@import "@/styles/_variables.scss";
@import "@/styles/_mixins.scss";
.subtitle {
padding-top: 1px;
margin-bottom: $large-spacing;
line-height: $default-heading-line-height;
margin-bottom: $medium-spacing;
margin-bottom: calc(#{$large-spacing} - 0.1rem);
@include heading-line-height;
}
</style>

View File

@ -11,7 +11,10 @@
</script>
<style scoped lang="scss">
@import "@/styles/_variables.scss";
.text-block {
margin-bottom: 30px;
margin-bottom: $medium-spacing; // if calc is not supported
margin-bottom: calc(#{$large-spacing} - 0.25rem); // to offset the 1.5 line height, which leaves a padding
}
</style>

View File

@ -26,11 +26,13 @@
<h3 id="objectives">Lernziele</h3>
<objective-groups :groups="languageCommunicationObjectiveGroups"/>
<div class="module__objective-groups">
<objective-groups :groups="languageCommunicationObjectiveGroups"/>
<objective-groups :groups="societyObjectiveGroups"/>
<objective-groups :groups="societyObjectiveGroups"/>
<objective-groups :groups="interdisciplinaryObjectiveGroups"/>
<objective-groups :groups="interdisciplinaryObjectiveGroups"/>
</div>
<chapter
:chapter="chapter"
@ -254,12 +256,9 @@
}
&__intro {
line-height: 1.5;
margin-bottom: 3em;
> /deep/ p {
font-size: toRem(25px);
margin-bottom: 1.5em;
margin-bottom: $large-spacing;
&:last-child {
margin-bottom: 0;
@ -271,5 +270,8 @@
margin-top: 3px;
}
&__objective-groups {
margin-bottom: $large-spacing;
}
}
</style>

View File

@ -58,8 +58,11 @@
</script>
<style scoped lang="scss">
@import "@/styles/_variables.scss";
.objective-group {
position: relative;
margin-top: $large-spacing;
&__actions {
position: absolute;

View File

@ -1,5 +1,5 @@
<template>
<div>
<div class="objective-groups">
<objective-group
:key="group.id"
:group="group"
@ -63,3 +63,13 @@
}
};
</script>
<style scoped lang="scss">
@import "@/styles/_variables.scss";
.objective-groups {
margin-bottom: $large-spacing;
display: flex;
flex-direction: column;
}
</style>

View File

@ -37,9 +37,9 @@
margin-bottom: 25px;
justify-content: center;
align-items: center;
break-inside: avoid-page;
cursor: pointer;
break-inside: avoid-column;
overflow: hidden;
cursor: pointer;
display: none;
@include desktop {

View File

@ -55,13 +55,17 @@
.instrument {
&__title {
font-size: toRem(35px);
margin-bottom: 40px;
margin-bottom: $large-spacing;
line-height: $default-heading-line-height;
}
& /deep/ {
& p {
margin-bottom: 40px;
margin-bottom: $large-spacing;
}
& p:last-child {
margin-bottom: 0;
}
& ul {

View File

@ -1,5 +1,6 @@
.intro {
@include lead-paragraph;
margin-bottom: $section-spacing;
> p {
@include lead-paragraph;

View File

@ -206,3 +206,8 @@
@mixin default-box-shadow {
box-shadow: 0 3px 9px 0 rgba(0, 0, 0, 0.12);
}
@mixin heading-line-height {
line-height: $default-heading-line-height;
margin-top: -0.2rem; // to offset the 1.2 line height, it leaves a padding on top
}

View File

@ -2,8 +2,6 @@
@import 'mixins';
.objective-group {
margin-bottom: 35px;
&__objective-list {
list-style: none;

View File

@ -22,6 +22,7 @@ p, a, li {
p {
line-height: 1.5;
margin-top: -0.25rem; // to offset the 1.5 line height, it leaves a padding on top
}
a {
@ -43,22 +44,22 @@ h1 {
h2 {
font-size: 2.75rem; // 44px
margin-bottom: 24px;
margin-bottom: $large-spacing;
}
h3 {
font-size: 2.125rem; // 34px
margin-bottom: 52px;
margin-bottom: $large-spacing;
}
h4 {
font-size: 1.5rem; // 24px
margin-bottom: 24px;
margin-bottom: $large-spacing;
}
h5 {
font-size: 1.125rem; // 18px
margin-bottom: 24px;
margin-bottom: $large-spacing;
}
input, textarea, select, button {