diff --git a/addons/website_slides/static/src/js/slides_course_fullscreen_player.js b/addons/website_slides/static/src/js/slides_course_fullscreen_player.js index 3a8d0165a52..a83df8a01cd 100644 --- a/addons/website_slides/static/src/js/slides_course_fullscreen_player.js +++ b/addons/website_slides/static/src/js/slides_course_fullscreen_player.js @@ -177,11 +177,11 @@ odoo.define('website_slides.fullscreen', function (require) { * Greens up the bullet when the slide is completed * * @public - * @param {*} slide_id + * @param {Integer} slideId */ setSlideCompleted: function (slideId) { var $elem = this.$('.fa-circle-thin[data-slide-id="'+slideId+'"]'); - $elem.removeClass('fa-circle-thin').addClass('fa-check-circle text-success'); + $elem.removeClass('fa-circle-thin').addClass('fa-check-circle text-success bg-white o_wslides_slide_completed rounded-circle'); }, /** * Updates the progressbar whenever a lesson is completed @@ -235,6 +235,8 @@ odoo.define('website_slides.fullscreen', function (require) { * @param {*} ev */ _onClickTab: function (ev) { + ev.stopPropagation(); + ev.preventDefault(); var $elem = $(ev.currentTarget); var isQuiz = $elem.data('isQuiz'); var slideID = parseInt($elem.data('id')); @@ -250,12 +252,8 @@ odoo.define('website_slides.fullscreen', function (require) { _onChangeCurrentSlide: function () { var slide = this.get('slideEntry'); this.$('.o_wslides_fs_sidebar_list_item.active').removeClass('active'); - var selector = '.o_wslides_fs_sidebar_list_item[data-id='+slide.id+']'; - if (slide.isQuiz) { - selector += '[data-is-quiz="1"]'; - } else { - selector += '[data-is-quiz!="1"]'; - } + var selector = '.o_wslides_fs_sidebar_list_item[data-id='+slide.id+'][data-is-quiz!="1"]'; + this.$(selector).addClass('active'); this.trigger_up('change_slide', this.get('slideEntry')); }, @@ -291,7 +289,6 @@ odoo.define('website_slides.fullscreen', function (require) { }, custom_events: { 'change_slide': '_onChangeSlideRequest', - 'toggle_sidebar': '_onToggleSidebar', 'slide_completed': '_onSlideCompleted', 'quiz_completed': '_onSlideCompleted', 'slide_go_next': '_onSlideGoToNext', @@ -425,7 +422,6 @@ odoo.define('website_slides.fullscreen', function (require) { var slide = this.get('slide'); var $content = this.$('.o_wslides_fs_content'); $content.empty(); - $content.removeClass('bg-white'); // webpage case // display quiz slide, or quiz attached to a slide if (slide.type === 'quiz' || slide.isQuiz) { @@ -440,8 +436,9 @@ odoo.define('website_slides.fullscreen', function (require) { this.videoPlayer = new VideoPlayer(this, slide); return this.videoPlayer.appendTo($content); } else if (slide.type === 'webpage'){ - $(slide.htmlContent).appendTo($content); - $content.addClass('bg-white'); + var $wpContainer = $('
').addClass('o_wslide_fs_webpage_content bg-white block w-100 overflow-auto'); + $(slide.htmlContent).appendTo($wpContainer); + $content.append($wpContainer); } return $.when(); }, @@ -480,7 +477,7 @@ odoo.define('website_slides.fullscreen', function (require) { * * @private */ - _onChangeSlide: function (){ + _onChangeSlide: function () { var self = this; var slide = this.get('slide'); return this._fetchSlideContent().then(function() { // update title and render content @@ -534,8 +531,7 @@ odoo.define('website_slides.fullscreen', function (require) { */ _onClickToggleSidebar: function (ev){ ev.preventDefault(); - this.$('.o_wslides_fs_sidebar').toggleClass('d-none'); - this.$('.o_wslides_fs_content').toggleClass('col-10').toggleClass('col-12'); + this.$('.o_wslides_fs_sidebar').toggleClass('o_wslides_fs_sidebar_hidden'); this.$('.o_wslides_fs_toggle_sidebar').toggleClass('active'); }, }); diff --git a/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss b/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss index 3868ad873cb..b377c7c3ca2 100644 --- a/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss +++ b/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss @@ -1,79 +1,126 @@ -$slides-bg-fullscreen: #313A44; -$slides-bg-fullscreen-dark: darken($slides-bg-fullscreen,5%); -$slides-bg-fullscreen-darker: darken($slides-bg-fullscreen,10%); +$o-wslides-color-bg: desaturate(map-get($grays, "200"), 80%); +$o-wslides-color-dark1: #47525f; +$o-wslides-color-dark2: #1f262d; +$o-wslides-color-dark3: #101216; +$o-wslides-fs-side-width: 300px; + +$o-wslides-tabs-height: 36px; -$slides-text: #8A8F93; .o_wslides_fs_main { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; + @include o-position-absolute(0,0,0,0); z-index: 2000; - color: $slides-text; .o_wslides_slide_fs_header { - background-color: $slides-bg-fullscreen; + background-image: linear-gradient(120deg, $o-wslides-color-dark1, $o-wslides-color-dark2); + padding-bottom: 3px; height: 50px; - } - .o_wslides_fs_container { - height: calc(100% - 50px); - background-color: $slides-bg-fullscreen; - } + > div > a { + background-color: rgba($o-wslides-color-dark3, 0.5); + @include o-hover-text-color(rgba(white, 0.8), white); + text-decoration: none!important; - .o_wslides_fs_sidebar { - transition: all .2s ease-in; - overflow: auto; - - .o_wslides_fs_sidebar_header { - color: $slides-text; - .progress { - height: 5px; + + a { + margin-left: 1px; } - } - .o_wslides_fs_sidebar_section { - background-color: $slides-bg-fullscreen-dark; - border: none; - border-radius: 0; + &:hover { + background-color: rgba($o-wslides-color-dark3, 0.2); + } - .card-body { - color: $slides-text; - } - } - - .o_wslides_fs_sidebar_list{ - li:hover, - li.active { - cursor: pointer; - background-color: $slides-bg-fullscreen-darker; - } - li { - color: $slides-text; - } - li.active{ - border-left: 2px solid $primary; + &.active{ + background-color: transparent; color: #fff; } } } - .o_wslides_fs_content { - background-color: $slides-bg-fullscreen-dark; + .o_wslides_fs_container { + background-color: $o-wslides-color-dark2; } - .o_wslides_fs_content_no_sidebar { - max-width: 100%; - width: 100%; + .o_wslides_fs_content { + transition: all .2s ease-in; + } + + .o_wslides_fs_sidebar { + transition: all .2s ease-in; + background-image: linear-gradient(160deg, $o-wslides-color-dark1, $o-wslides-color-dark2); + box-shadow: 5px 0 15px rgba(black, 0.2); + position: relative; + + .o_wslides_fs_sidebar_content { + min-width: $o-wslides-fs-side-width; + transition: all .2s ease-in; + } + + .o_wslides_fs_toggle_sidebar { + @include o-position-absolute(0, auto, 0, 100%); + width: 700px; + background: rgba(black, 0.2); + } + + @include media-breakpoint-down (md) { + @include o-position-absolute(0, auto, 0, 0); + + &.o_wslides_fs_sidebar_hidden { + display: none; + } + } + + @include media-breakpoint-up (md) { + width: $o-wslides-fs-side-width; + + &.o_wslides_fs_sidebar_hidden { + width: 0; + + .o_wslides_fs_sidebar_content { + transform: translateX(-100%); + } + } + } + + a { + text-decoration: none !important; + @include o-hover-text-color(rgba(white, 0.8), white); + } + + .o_wslides_fs_sidebar_section { + background-color: rgba($o-wslides-color-dark3, 0.3); + } + + .o_wslides_fs_sidebar_section_slides li { + color: rgba(white, 0.8); + line-height: 1.3; + + &.active { + box-shadow: inset 2px 0 0 theme-color('primary'); + background-color: rgba($o-wslides-color-dark3, 0.5); + + &, a { + color: white; + } + } + + i.o_wslides_slide_completed{ + @include size(13px); + box-shadow: inset 0 0 0 1px theme-color('success'); + } + + .o_wslides_fs_slide_name { + line-height: 1; + } + } } // quizz .o_wslides_fs_quiz_container { background-color: $gray-200; + height: 100%; overflow: scroll; overflow-x: hidden; + width: 100%; .o_wslides_js_lesson_quiz_question { li { @@ -100,9 +147,4 @@ $slides-text: #8A8F93; } } } - - // Tools - .bg-brand { - background-color: $o-enterprise-color; - } } diff --git a/addons/website_slides/static/src/scss/website_slides.scss b/addons/website_slides/static/src/scss/website_slides.scss index bbe635a89fa..1a4814fd4ac 100644 --- a/addons/website_slides/static/src/scss/website_slides.scss +++ b/addons/website_slides/static/src/scss/website_slides.scss @@ -5,6 +5,10 @@ $MAX-Z-INDEX : 2147483647 !default; $gray-50: #f4f4f4 !default; $o-enterprise-radient-color: #62495B !default; +.o_wslides_gradient { + background-image: linear-gradient(120deg, #875A7B, darken(#875A7B, 10%)); +} + // Common to new slides pages // ************************************************** @@ -442,4 +446,4 @@ div.embed-responsive { // Upload Modal .o_wslides_select_type { cursor: pointer; -} \ No newline at end of file +} diff --git a/addons/website_slides/static/src/xml/slide_quiz.xml b/addons/website_slides/static/src/xml/slide_quiz.xml index 0af500914c5..c8b4bc66186 100644 --- a/addons/website_slides/static/src/xml/slide_quiz.xml +++ b/addons/website_slides/static/src/xml/slide_quiz.xml @@ -64,7 +64,7 @@