From 1121fb9388c23f9433e1f79dea9ac90b82453362 Mon Sep 17 00:00:00 2001 From: Ron Lucke Date: Mon, 20 Jan 2025 11:34:28 +0000 Subject: Polishing: Courseware Closes #5102 Merge request studip/studip!3851 --- resources/assets/stylesheets/mixins/colors.scss | 2 + .../stylesheets/scss/courseware/blockadder.scss | 9 +++- .../scss/courseware/layouts/ribbon.scss | 4 +- .../scss/courseware/structural-element.scss | 21 -------- .../stylesheets/scss/courseware/toolbar.scss | 58 ++++------------------ resources/assets/stylesheets/scss/dialog.scss | 22 +++++++- resources/assets/stylesheets/scss/feedback.scss | 6 +-- .../assets/stylesheets/scss/table_of_contents.scss | 2 +- resources/assets/stylesheets/scss/variables.scss | 2 + resources/vue/components/Datepicker.vue | 3 ++ resources/vue/components/StudipDialog.vue | 7 ++- .../courseware/layouts/CoursewareTab.vue | 6 +-- .../structural-element/CoursewareToolsContents.vue | 1 - .../structural-element/CoursewareToolsUnits.vue | 2 +- .../CoursewareToolsUnitsItem.vue | 14 ++++-- .../structural-element/CoursewareTreeItem.vue | 6 ++- .../courseware/toolbar/CoursewareToolbarBlocks.vue | 49 +++++++++--------- .../toolbar/CoursewareToolbarClipboard.vue | 28 ++++------- .../toolbar/CoursewareToolbarContainers.vue | 25 ++++------ .../unit/CoursewareUnitItemDialogLayout.vue | 2 +- 20 files changed, 118 insertions(+), 151 deletions(-) diff --git a/resources/assets/stylesheets/mixins/colors.scss b/resources/assets/stylesheets/mixins/colors.scss index 249a6df..c1d5f96 100644 --- a/resources/assets/stylesheets/mixins/colors.scss +++ b/resources/assets/stylesheets/mixins/colors.scss @@ -281,6 +281,8 @@ $color--tile-marker-active: $color--green-1; $color--tile-marker-attention: $color--yellow-1; $color--tile-title-background: $color--gray-6; +$color--scrollbar-thumb: $color--gray-5; + $color--content-box-border: $color--gray-6; $color--content-box-header: $color--gray-6; $color--content-box-background: $color--white; diff --git a/resources/assets/stylesheets/scss/courseware/blockadder.scss b/resources/assets/stylesheets/scss/courseware/blockadder.scss index f393641..8086fe7 100644 --- a/resources/assets/stylesheets/scss/courseware/blockadder.scss +++ b/resources/assets/stylesheets/scss/courseware/blockadder.scss @@ -9,7 +9,7 @@ display: flex; position: relative; border: solid thin var(--color--tile-border); - background-color: var(--white); + background-color: var(--color--global-background); max-width: 268px; .cw-sortable-handle { @@ -114,10 +114,13 @@ .cw-container-style-selector { display: flex; + border-bottom: solid thin var(--color--content-box-border); + padding-bottom: 8px; margin-bottom: 8px; label { border: solid thin var(--color--tile-border); + border-right: none; padding: calc(0.5em + 32px) 1em 0.5em 1em; color: var(--base-color); text-align: center; @@ -126,6 +129,10 @@ background-repeat: no-repeat; cursor: pointer; + &:last-child { + border-right: solid thin var(--color--tile-border); + } + &.full { @include background-icon(column-full, $size: 32px); } diff --git a/resources/assets/stylesheets/scss/courseware/layouts/ribbon.scss b/resources/assets/stylesheets/scss/courseware/layouts/ribbon.scss index fe9d9c4..c04407b 100644 --- a/resources/assets/stylesheets/scss/courseware/layouts/ribbon.scss +++ b/resources/assets/stylesheets/scss/courseware/layouts/ribbon.scss @@ -280,7 +280,7 @@ $consum_ribbon_width: calc(100% - 58px); &.cw-ribbon-slide-leave-active { transition: transform var(--transition-duration-superslow); } - &.cw-ribbon-slide-enter, + &.cw-ribbon-slide-enter-from, &.cw-ribbon-slide-leave-to { transform: translateX(calc(100% + 30px)); } @@ -359,7 +359,7 @@ $consum_ribbon_width: calc(100% - 58px); overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; - scrollbar-color: var(--base-color) var(--white); + scrollbar-color: var(--color--scrollbar-thumb) var(--white); &.cw-ribbon-tool-blockadder-tab { height: 100%; diff --git a/resources/assets/stylesheets/scss/courseware/structural-element.scss b/resources/assets/stylesheets/scss/courseware/structural-element.scss index 46fe3dd..8142aac 100644 --- a/resources/assets/stylesheets/scss/courseware/structural-element.scss +++ b/resources/assets/stylesheets/scss/courseware/structural-element.scss @@ -214,24 +214,3 @@ } } } - -.studip-dialog-with-tab { - .studip-dialog-body .studip-dialog-content { - padding: 0 4px; - .cw-tab-in-dialog { - .cw-tabs-nav { - border: none; - border-bottom: solid thin var(--content-color-40); - margin-bottom: 4px; - } - .cw-tabs-content { - border: none; - min-width: 500px; - min-height: 400px; - overflow-y: auto; - scrollbar-width: thin; - scrollbar-color: var(--base-color) var(--dark-gray-color-5); - } - } - } -} diff --git a/resources/assets/stylesheets/scss/courseware/toolbar.scss b/resources/assets/stylesheets/scss/courseware/toolbar.scss index 23bb42a..78a67e2 100644 --- a/resources/assets/stylesheets/scss/courseware/toolbar.scss +++ b/resources/assets/stylesheets/scss/courseware/toolbar.scss @@ -39,64 +39,24 @@ .cw-toolbar-tool-content { overflow-y: auto; - padding-right: 8px; + scrollbar-width: thin; + scrollbar-color: var(--color--scrollbar-thumb) var(--white); + padding-right: 6px; } .cw-toolbar-blocks { - .input-group.files-search { - &.search { - border: thin solid var(--dark-gray-color-30); - margin-bottom: 0px; - input { - border: none; - } - } - - .input-group-append { - .button { - border: none; - border-left: thin solid var(--dark-gray-color-30); - &.active { - background-color: var(--base-color); - } - } - .reset-search { - border: none; - background-color: var(--white); - } - } - - .active-filter { - display: flex; - align-items: center; - justify-content: space-between; - border: solid thin var(--black); - background-color: var(--content-color-10); - margin: 3px; - padding: 2px 3px; - - .removefilter { - border: none; - background-color: transparent; - } - } + .input-group.files-search.search { + margin-bottom: 0; } .cw-block-search { width: inherit; } - .filterpanel { - margin-bottom: 5px; - padding: 2px; - border: thin solid var(--dark-gray-color-30); - border-top: none; - background-color: #fff; - - .button { - min-width: inherit; - margin: 4px 2px; - } + .cw-toolbar-tool-header { + border-bottom: solid thin var(--color--content-box-border); + margin-bottom: 8px; + padding-bottom: 8px; } } diff --git a/resources/assets/stylesheets/scss/dialog.scss b/resources/assets/stylesheets/scss/dialog.scss index 6a5b29b..e11375c 100644 --- a/resources/assets/stylesheets/scss/dialog.scss +++ b/resources/assets/stylesheets/scss/dialog.scss @@ -321,6 +321,7 @@ v u e d i a l o g align-items: center; z-index: 1001; } + .studip-dialog-body { position: absolute; background: var(--white); @@ -411,8 +412,27 @@ v u e d i a l o g @include background-icon(question-circle-full, status-yellow, 32px); } } - + &.studip-dialog-with-tab { + .studip-dialog-content { + padding: 0 4px; + .cw-tab-in-dialog { + .cw-tabs-nav { + border: none; + border-bottom: solid thin var(--color--content-box-border); + margin-bottom: 4px; + } + .cw-tabs-content { + border: none; + overflow-y: auto; + scrollbar-width: thin; + scrollbar-color: var(--color--scrollbar-thumb) var(--dark-gray-color-5); + } + } + } + } } + + /* * * * * * * * * * * * * v u e d i a l o g e n d * * * * * * * * * * * * */ diff --git a/resources/assets/stylesheets/scss/feedback.scss b/resources/assets/stylesheets/scss/feedback.scss index 5e11197..993bc1f 100644 --- a/resources/assets/stylesheets/scss/feedback.scss +++ b/resources/assets/stylesheets/scss/feedback.scss @@ -134,10 +134,10 @@ vue feedback components } } .five-stars-histogram-chart { - min-width: 260px; + min-width: 270px; span { display: inline-block; - width: 2em; + width: 30px; } img { vertical-align: text-bottom; @@ -147,7 +147,7 @@ vue feedback components display: inline-block; background-color: var(--content-color-10); width: calc(100% - 6em); - margin: 2px 10px; + margin: 4px 10px; .percentage-bar { background-color: var(--yellow); color: transparent; diff --git a/resources/assets/stylesheets/scss/table_of_contents.scss b/resources/assets/stylesheets/scss/table_of_contents.scss index e2db2b6..ef8077c 100644 --- a/resources/assets/stylesheets/scss/table_of_contents.scss +++ b/resources/assets/stylesheets/scss/table_of_contents.scss @@ -57,7 +57,7 @@ ul.numberedchapters { &.cw-ribbon-slide-leave-active { transition: transform var(--transition-duration-superslow); } - &.cw-ribbon-slide-enter, + &.cw-ribbon-slide-enter-from, &.cw-ribbon-slide-leave-to { transform: translateX(calc(100% + 30px)); } diff --git a/resources/assets/stylesheets/scss/variables.scss b/resources/assets/stylesheets/scss/variables.scss index b7b54f8..9ef3881 100644 --- a/resources/assets/stylesheets/scss/variables.scss +++ b/resources/assets/stylesheets/scss/variables.scss @@ -272,6 +272,8 @@ $button-icons: ( --color--tile-marker-attention: #{$color--tile-marker-attention}; --color--tile-title-background: #{$color--tile-title-background}; + --color--scrollbar-thumb: #{$color--scrollbar-thumb}; + --color--content-box-border: #{$color--content-box-border}; --color--content-box-header: #{$color--content-box-header}; --color--content-box-background: #{$color--content-box-background}; diff --git a/resources/vue/components/Datepicker.vue b/resources/vue/components/Datepicker.vue index eaedc83..9aeadf1 100644 --- a/resources/vue/components/Datepicker.vue +++ b/resources/vue/components/Datepicker.vue @@ -68,6 +68,9 @@ export default { return params; }, returnValue() { + if (this.modelValue === null) { + return ''; + } if (this.returnAs === 'unix') { return this.convertInputToUnixTimestamp(this.modelValue); } diff --git a/resources/vue/components/StudipDialog.vue b/resources/vue/components/StudipDialog.vue index 0861d19..ab42f48 100644 --- a/resources/vue/components/StudipDialog.vue +++ b/resources/vue/components/StudipDialog.vue @@ -27,8 +27,11 @@ > diff --git a/resources/vue/components/courseware/structural-element/CoursewareToolsUnits.vue b/resources/vue/components/courseware/structural-element/CoursewareToolsUnits.vue index 29ce79c..6177868 100644 --- a/resources/vue/components/courseware/structural-element/CoursewareToolsUnits.vue +++ b/resources/vue/components/courseware/structural-element/CoursewareToolsUnits.vue @@ -40,7 +40,7 @@ export default { this.coursewareUnits .filter( (unit) => - unit.relationships.range.data.id === this.context.id && unit.id !== this.currentUnit.id + unit.relationships.range.data.id === this.context.id ) .sort((a, b) => a.attributes.position - b.attributes.position) ?? [] ); diff --git a/resources/vue/components/courseware/structural-element/CoursewareToolsUnitsItem.vue b/resources/vue/components/courseware/structural-element/CoursewareToolsUnitsItem.vue index 9ec92ba..d577262 100644 --- a/resources/vue/components/courseware/structural-element/CoursewareToolsUnitsItem.vue +++ b/resources/vue/components/courseware/structural-element/CoursewareToolsUnitsItem.vue @@ -1,12 +1,12 @@