From 1c2d4c6adf9088c116e2d209ffe97fdfbb6d2511 Mon Sep 17 00:00:00 2001 From: Ron Lucke <lucke@elan-ev.de> Date: Fri, 2 Feb 2024 07:33:17 +0000 Subject: [PATCH] fixes #3392 Closes #3392 Merge request studip/studip!2471 --- resources/assets/stylesheets/scss/wizard.scss | 106 +++++++++++++++--- .../CoursewareStructuralElementDialogAdd.vue | 2 +- .../CoursewareStructuralElementDialogLink.vue | 6 +- .../unit/CoursewareShelfDialogCopy.vue | 28 ++--- .../unit/CoursewareShelfDialogImport.vue | 2 +- 5 files changed, 107 insertions(+), 37 deletions(-) diff --git a/resources/assets/stylesheets/scss/wizard.scss b/resources/assets/stylesheets/scss/wizard.scss index b1fabf4cbb2..5c73dc9dd88 100644 --- a/resources/assets/stylesheets/scss/wizard.scss +++ b/resources/assets/stylesheets/scss/wizard.scss @@ -1,4 +1,5 @@ @import '../mixins'; + .wizard-wrapper { display: flex; @@ -11,28 +12,34 @@ margin: auto; display: block; } - + p { margin: 15px; } + .wizard-requirements { span { font-weight: 700; } + ul { padding: 4px 0; + li { list-style: none; + button { padding: 2px 0; background-color: transparent; border: none; color: var(--base-color); cursor: pointer; + &:hover { color: var(--red); } } + img { padding-right: 4px; display: inline-block; @@ -42,6 +49,7 @@ } } } + .wizard-content-wrapper { flex-grow: 2; margin-left: 15px; @@ -54,12 +62,13 @@ list-style: none; padding: 0; margin: 1.5em 0 2.5em 0; - + li { display: inline-block; position: relative; margin-right: 60px; border: solid 2px var(--base-color); + button { padding: 6px 0; height: 36px; @@ -68,15 +77,19 @@ background: no-repeat; border: none; } + &.valid { background-color: var(--base-color); } + &.invalid { background-color: white; } + &.optional { border: dashed thin var(--base-color); } + &::before { position: absolute; content: ""; @@ -86,6 +99,7 @@ transform: translateY(-50%); left: 100%; } + &.active::after { position: absolute; content: ""; @@ -96,18 +110,21 @@ left: -1px; } } + li:last-child { margin-right: 0; + &::before { display: none; } } - + } - + .wizard-list { list-style: none; padding: 0; + .wizard-item { .wizard-content { max-width: 555px; @@ -136,23 +153,26 @@ form.default fieldset.radiobutton-set { - > legend { + >legend { margin: 0px; width: 100%; } + border: none; padding: 0px; margin-left: 0px; margin-right: 0px; - > input[type=radio] { + >input[type=radio] { opacity: 0; position: absolute; - &:focus + label { + + &:focus+label { outline: auto; } } - > label { + + >label { cursor: pointer; border: 1px solid var(--content-color-40); transition: background-color 200ms; @@ -163,48 +183,98 @@ form.default fieldset.radiobutton-set { padding-bottom: 2px; margin-bottom: 0; border-top: none; + :not(.undecorated) { text-indent: 0; } - > .text { + + >.text { width: 100%; margin-left: 10px; } - > .unchecked { + + >.unchecked { margin-right: 0; } - > .check { + + >.check { display: none; } } - > label:first-of-type { + + >label:first-of-type { border-top: 1px solid var(--content-color-40); } - > label:last-child::after { + + >label:last-child::after { content: none; } - > div { + + >div { border: 1px solid var(--content-color-40); border-top: none; display: none; padding: 10px; } - > input[type=radio]:checked + label { + + >input[type=radio]:checked+label { background-color: var(--content-color-20); transition: background-color 200ms; - > .unchecked { + + >.unchecked { display: none; } - > .check { + + >.check { display: inline-block; } } - > input[type=radio]:checked + label + div { + + >input[type=radio]:checked+label+div { display: block; + .description { animation-duration: 400ms; animation-name: terms_of_use_fadein; } } } + +@include media-breakpoint-small-down() { + .wizard-wrapper { + + .wizard-meta { + display: none; + } + + .wizard-content-wrapper .wizard-progress { + li { + margin-right: 30px; + + &::before { + width: 32px; + } + } + } + } +} + +@include media-breakpoint-tiny-down() { + .wizard-wrapper { + .wizard-meta { + display: none; + } + + .wizard-content-wrapper .wizard-progress { + li { + margin-right: 8px; + + &::before { + width: 10px; + } + } + } + } +} + diff --git a/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogAdd.vue b/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogAdd.vue index 78abfcfeeed..3d2e7e74f1a 100644 --- a/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogAdd.vue +++ b/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogAdd.vue @@ -83,7 +83,7 @@ {{ $gettext('Farbe') }} <studip-select v-model="color" :options="colors" :reduce="(color) => color.class" label="class"> <template #open-indicator="selectAttributes"> - <span v-bind="selectAttributes"><studip-icon shape="arr_1down" size="10" /></span> + <span v-bind="selectAttributes"><studip-icon shape="arr_1down" :size="10" /></span> </template> <template #no-options> {{ $gettext('Es steht keine Auswahl zur Verfügung.') }} diff --git a/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogLink.vue b/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogLink.vue index 1405e39c373..2029d5681f8 100644 --- a/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogLink.vue +++ b/resources/vue/components/courseware/structural-element/CoursewareStructuralElementDialogLink.vue @@ -22,10 +22,10 @@ :aria-description="unit.element.attributes.title" /> <label @click="selectedUnit = unit" :key="'label-' + unit.id" :for="'cw-element-link-unit-' + unit.id"> - <div class="icon"><studip-icon shape="courseware" size="32"/></div> + <div class="icon"><studip-icon shape="courseware" :size="32"/></div> <div class="text">{{ unit.element.attributes.title }}</div> - <studip-icon shape="radiobutton-unchecked" size="24" class="unchecked" /> - <studip-icon shape="check-circle" size="24" class="check" /> + <studip-icon shape="radiobutton-unchecked" :size="24" class="unchecked" /> + <studip-icon shape="check-circle" :size="24" class="check" /> </label> </template> </fieldset> diff --git a/resources/vue/components/courseware/unit/CoursewareShelfDialogCopy.vue b/resources/vue/components/courseware/unit/CoursewareShelfDialogCopy.vue index d68ffa54f8c..a2d1dec7d2a 100644 --- a/resources/vue/components/courseware/unit/CoursewareShelfDialogCopy.vue +++ b/resources/vue/components/courseware/unit/CoursewareShelfDialogCopy.vue @@ -21,10 +21,10 @@ :aria-description="text.sourceSelf" /> <label @click="source = 'self'" for="cw-shelf-copy-source-self"> - <div class="icon"><studip-icon shape="seminar" size="32"/></div> + <div class="icon"><studip-icon shape="seminar" :size="32"/></div> <div class="text">{{ text.sourceSelf }}</div> - <studip-icon shape="radiobutton-unchecked" size="24" class="unchecked" /> - <studip-icon shape="check-circle" size="24" class="check" /> + <studip-icon shape="radiobutton-unchecked" :size="24" class="unchecked" /> + <studip-icon shape="check-circle" :size="24" class="check" /> </label> </template> <input @@ -35,10 +35,10 @@ :aria-description="text.sourceCourses" /> <label @click="source = 'courses'" for="cw-shelf-copy-source-courses"> - <div class="icon"><studip-icon shape="seminar" size="32"/></div> + <div class="icon"><studip-icon shape="seminar" :size="32"/></div> <div class="text">{{ text.sourceCourses }}</div> - <studip-icon shape="radiobutton-unchecked" size="24" class="unchecked" /> - <studip-icon shape="check-circle" size="24" class="check" /> + <studip-icon shape="radiobutton-unchecked" :size="24" class="unchecked" /> + <studip-icon shape="check-circle" :size="24" class="check" /> </label> <input id="cw-shelf-copy-source-users" @@ -48,10 +48,10 @@ :aria-description="text.sourceUsers" /> <label @click="source = 'users'" for="cw-shelf-copy-source-users"> - <div class="icon"><studip-icon shape="content" size="32"/></div> + <div class="icon"><studip-icon shape="content" :size="32"/></div> <div class="text">{{ text.sourceUsers }}</div> - <studip-icon shape="radiobutton-unchecked" size="24" class="unchecked" /> - <studip-icon shape="check-circle" size="24" class="check" /> + <studip-icon shape="radiobutton-unchecked" :size="24" class="unchecked" /> + <studip-icon shape="check-circle" :size="24" class="check" /> </label> </fieldset> <template v-if="source === 'courses'"> @@ -76,7 +76,7 @@ > <template #open-indicator="selectAttributes"> <span v-bind="selectAttributes" - ><studip-icon shape="arr_1down" size="10" + ><studip-icon shape="arr_1down" :size="10" /></span> </template> </studip-select> @@ -105,10 +105,10 @@ :aria-description="unit.element.attributes.title" /> <label @click="selectedUnit = unit" :key="'label-' + unit.id" :for="'cw-shelf-copy-unit-' + unit.id"> - <div class="icon"><studip-icon shape="courseware" size="32"/></div> + <div class="icon"><studip-icon shape="courseware" :size="32"/></div> <div class="text">{{ unit.element.attributes.title }}</div> - <studip-icon shape="radiobutton-unchecked" size="24" class="unchecked" /> - <studip-icon shape="check-circle" size="24" class="check" /> + <studip-icon shape="radiobutton-unchecked" :size="24" class="unchecked" /> + <studip-icon shape="check-circle" :size="24" class="check" /> </label> </template> </fieldset> @@ -136,7 +136,7 @@ > <template #open-indicator="selectAttributes"> <span v-bind="selectAttributes" - ><studip-icon shape="arr_1down" size="10" + ><studip-icon shape="arr_1down" :size="10" /></span> </template> <template #no-options> diff --git a/resources/vue/components/courseware/unit/CoursewareShelfDialogImport.vue b/resources/vue/components/courseware/unit/CoursewareShelfDialogImport.vue index b557dff6b40..bf32addb099 100644 --- a/resources/vue/components/courseware/unit/CoursewareShelfDialogImport.vue +++ b/resources/vue/components/courseware/unit/CoursewareShelfDialogImport.vue @@ -45,7 +45,7 @@ > <template #open-indicator="selectAttributes"> <span v-bind="selectAttributes" - ><studip-icon shape="arr_1down" size="10" + ><studip-icon shape="arr_1down" :size="10" /></span> </template> <template #no-options> -- GitLab