From f127f0fb49c0f687f80588e0e1008e95be37d6ce Mon Sep 17 00:00:00 2001 From: Ron Lucke Date: Fri, 16 Dec 2022 12:42:57 +0000 Subject: =?UTF-8?q?Courseware:=20Anordnen=20von=20Bl=C3=B6cken=20und=20Abs?= =?UTF-8?q?chnitten=20vereinfachen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #1645 Merge request studip/studip!1202 --- resources/assets/stylesheets/scss/courseware.scss | 111 +++++----- .../courseware/CoursewareAccordionContainer.vue | 201 +++++++++++++++--- .../courseware/CoursewareActionWidget.vue | 26 --- .../courseware/CoursewareBlockadderItem.vue | 2 + .../courseware/CoursewareContainerActions.vue | 7 +- .../courseware/CoursewareDefaultBlock.vue | 77 +++---- .../courseware/CoursewareDefaultContainer.vue | 37 ++-- .../courseware/CoursewareListContainer.vue | 225 ++++++++++++++++---- .../vue/components/courseware/CoursewareRibbon.vue | 1 + .../courseware/CoursewareRibbonToolbar.vue | 1 + .../courseware/CoursewareStructuralElement.vue | 232 +++++++++++++++------ .../vue/components/courseware/CoursewareTabs.vue | 2 +- .../courseware/CoursewareTabsContainer.vue | 219 ++++++++++++++----- .../courseware/CoursewareToolsBlockadder.vue | 4 + resources/vue/mixins/courseware/container.js | 71 ++++++- .../vue/store/courseware/courseware.module.js | 13 -- 16 files changed, 894 insertions(+), 335 deletions(-) diff --git a/resources/assets/stylesheets/scss/courseware.scss b/resources/assets/stylesheets/scss/courseware.scss index 1181675..3640c9a 100644 --- a/resources/assets/stylesheets/scss/courseware.scss +++ b/resources/assets/stylesheets/scss/courseware.scss @@ -828,7 +828,12 @@ ribbon end .cw-container-header { background-color: $content-color-20; max-height: 30px; - padding: 4px 10px; + padding: 4px 10px 4px 22px; + + .cw-container-header-toggle { + display: inline-block; + width: calc(100% - 40px); + } span { color: $base-color; @@ -935,7 +940,6 @@ form.cw-container-dialog-edit-form { /* * * block * * */ - .cw-default-block { display: flex; flex-flow: row; @@ -977,7 +981,12 @@ form.cw-container-dialog-edit-form { .cw-block-header { background-color: $content-color-20; max-height: 30px; - padding: 4px 10px; + padding: 4px 10px 4px 22px; + + .cw-block-header-toggle { + display: inline-block; + width: calc(100% - 50px); + } span { color: $base-color; @@ -1241,70 +1250,72 @@ label[for="cw-keypoint-color"] { /* * * * * * * * sortable handle * * * * * * * */ -.cw-container-list-sort-mode { - .block-ghost { - opacity: 0.6; - } - &.cw-container-list-sort-mode-empty { - min-height: 4em; - border: dashed thin $content-color-40; + +.cw-sortable-handle { + display: inline-block; + cursor: grab; + background-image: url("#{$image-path}/anfasser_24.png"); + background-repeat: no-repeat; + width: 7px; + height: 24px; + padding-right: 4px; + vertical-align: middle; + &.cw-sortable-handle-dragging { + cursor: grabbing; } } -.cw-structural-element-list-sort-mode { - list-style: none; - padding-left: 0; - .cw-container-item-sortable { - border: solid thin $content-color-40; - background-color: $content-color-20; - color: $base-color; - font-weight: 700; - margin-bottom: 0.5em; - padding: 0.5em; +.cw-block-item-sortable { + .cw-sortable-handle { + position: relative; + left: 12px; } - .container-ghost { - opacity: 0.6; + .cw-block { + margin-top: -32px; } } -.cw-structural-element-list-sort-mode, -.cw-container-list-sort-mode { + +.cw-container-item-sortable { .cw-sortable-handle { - display: inline-block; - cursor: grab; - background-image: url("#{$image-path}/anfasser_24.png"); - background-repeat: no-repeat; - width: 7px; - height: 24px; - padding-right: 4px; - vertical-align: middle; + position: relative; + left: 12px; } - .cw-content-wrapper-active:hover { - border: solid thin $base-color; + .cw-container { + margin-top: -32px; } } -.cw-container-item-sortable.sortable-chosen { - .cw-sortable-handle { - cursor: grabbing; - } +.cw-collapsible-open { + .cw-container-list-sort-mode { + margin-top: 8px; + } } -.cw-container-sort-buttons { - display: block; +.container-ghost, +.block-ghost { + opacity: 0.6; } -.cw-tree-item-wrapper { - .cw-sortable-handle { - display: inline-block; - cursor: grab; - background-image: url("#{$image-path}/anfasser_24.png"); - background-repeat: no-repeat; - width: 7px; - height: 24px; - padding-right: 4px; - vertical-align: middle; + +.cw-container-wrapper-edit { + .cw-structural-element-list { + width: 100%; + padding: 0; + list-style: none; } } + +.cw-block-item-selected { + .cw-block-header { + font-style: italic; + } +} +.cw-container-item-selected { + .cw-container-header { + font-style: italic; + } +} + /* * * * * * * * * * * sortable handle end * * * * * * * * * * */ diff --git a/resources/vue/components/courseware/CoursewareAccordionContainer.vue b/resources/vue/components/courseware/CoursewareAccordionContainer.vue index 8e4d098..02b7891 100644 --- a/resources/vue/components/courseware/CoursewareAccordionContainer.vue +++ b/resources/vue/components/courseware/CoursewareAccordionContainer.vue @@ -7,17 +7,22 @@ @showEdit="setShowEdit" @storeContainer="storeContainer" @closeEdit="initCurrentData" - @sortBlocks="enableSort" > @@ -43,6 +68,7 @@ diff --git a/resources/vue/components/courseware/CoursewareRibbon.vue b/resources/vue/components/courseware/CoursewareRibbon.vue index 119448c..066a56f 100644 --- a/resources/vue/components/courseware/CoursewareRibbon.vue +++ b/resources/vue/components/courseware/CoursewareRibbon.vue @@ -41,6 +41,7 @@ :style="{ maxHeight: maxHeight + 'px' }" :canEdit="canEdit" @deactivate="deactivateToolbar" + @blockAdded="$emit('blockAdded')" />
diff --git a/resources/vue/components/courseware/CoursewareRibbonToolbar.vue b/resources/vue/components/courseware/CoursewareRibbonToolbar.vue index 7d6a779..d90616c 100644 --- a/resources/vue/components/courseware/CoursewareRibbonToolbar.vue +++ b/resources/vue/components/courseware/CoursewareRibbonToolbar.vue @@ -33,6 +33,7 @@
- +