From 7ab07c6ec18f7c6a512cb82eeb276598a1e7cc16 Mon Sep 17 00:00:00 2001 From: "Michael (mcm)" Date: Thu, 27 Apr 2023 07:50:35 +0000 Subject: [PATCH] [REF] *: convert odoo module by native one MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit converts all odoo module of this repo by native module. The goal is to depreciate odoo.define in favor of native module and then simplify boot.js by removing the regexp that finds module dependencies. task id: 3162300 closes odoo/design-themes#652 Signed-off-by: Géry Debongnie --- .../static/src/js/compatibility_editor.js | 6 +- theme_common/static/src/js/preheader.js | 9 +- .../src/old_snippets/s_animated_boxes/000.js | 6 +- .../src/old_snippets/s_css_slider/000.js | 204 ++++++++-------- .../src/old_snippets/s_mini_nav_bar/000.js | 8 +- .../src/old_snippets/s_showcase_slider/000.js | 224 +++++++++--------- theme_enark/static/src/js/tour.js | 6 +- theme_graphene/static/src/js/tour.js | 6 +- theme_real_estate/static/src/js/tour.js | 6 +- theme_vehicle/static/src/js/tour.js | 6 +- 10 files changed, 230 insertions(+), 251 deletions(-) diff --git a/theme_common/static/src/js/compatibility_editor.js b/theme_common/static/src/js/compatibility_editor.js index 0f3aeb38f..48a45f910 100644 --- a/theme_common/static/src/js/compatibility_editor.js +++ b/theme_common/static/src/js/compatibility_editor.js @@ -1,7 +1,6 @@ -odoo.define('theme_common.compatibility_editor', function (require) { -'use strict'; +/** @odoo-module **/ -var sOptions = require('web_editor.snippets.options'); +import sOptions from "web_editor.snippets.options"; sOptions.registry.BackgroundImage.include({ /** @@ -16,4 +15,3 @@ sOptions.registry.BackgroundImage.include({ } }, }); -}); diff --git a/theme_common/static/src/js/preheader.js b/theme_common/static/src/js/preheader.js index 7c1e8e2d2..3b90c6a8d 100644 --- a/theme_common/static/src/js/preheader.js +++ b/theme_common/static/src/js/preheader.js @@ -1,8 +1,7 @@ -odoo.define('theme_common.preheader', function (require) { -'use strict'; +/** @odoo-module **/ -var publicWidget = require('web.public.widget'); -require('website.content.menu'); +import publicWidget from "web.public.widget"; +import "website.content.menu"; publicWidget.registry.StandardAffixedHeader.include({ /** @@ -111,5 +110,3 @@ const BaseDisappearingPreheader = { publicWidget.registry.DisappearingHeader.include(BaseDisappearingPreheader); publicWidget.registry.FadeOutHeader.include(BaseDisappearingPreheader); - -}); diff --git a/theme_common/static/src/old_snippets/s_animated_boxes/000.js b/theme_common/static/src/old_snippets/s_animated_boxes/000.js index ec39eab3c..9412d3054 100644 --- a/theme_common/static/src/old_snippets/s_animated_boxes/000.js +++ b/theme_common/static/src/old_snippets/s_animated_boxes/000.js @@ -1,7 +1,6 @@ -odoo.define('theme_common.s_animated_boxes_frontend', function (require) { - 'use strict'; +/** @odoo-module **/ -var publicWidget = require('web.public.widget'); +import publicWidget from "web.public.widget"; /** * This is a fix for some apple devices. @@ -12,4 +11,3 @@ var publicWidget = require('web.public.widget'); publicWidget.registry._fixAnimatedBoxesAppleClick = publicWidget.registry._fixAppleCollapse.extend({ selector: '.s_animated_boxes .item', }); -}); diff --git a/theme_common/static/src/old_snippets/s_css_slider/000.js b/theme_common/static/src/old_snippets/s_css_slider/000.js index 26d8d9c2a..1cfd1a650 100644 --- a/theme_common/static/src/old_snippets/s_css_slider/000.js +++ b/theme_common/static/src/old_snippets/s_css_slider/000.js @@ -1,122 +1,120 @@ -odoo.define('theme_common.s_css_slider_frontend', function (require) { - 'use strict'; +/** @odoo-module **/ - var publicWidget = require('web.public.widget'); +import publicWidget from "web.public.widget"; - publicWidget.registry.s_css_slider = publicWidget.Widget.extend({ - selector: ".s_css_slider", - disabledInEditableMode: false, +publicWidget.registry.s_css_slider = publicWidget.Widget.extend({ + selector: ".s_css_slider", + disabledInEditableMode: false, - start: function () { - var self = this; - var $container = self.$el; - $container.find(".s_css_slider_pagination").remove(); - // create slider pagination - var sliderPagination = self.createSliderPagination($container); - self.bindEvents($container, sliderPagination); - $(window).on("resize", function () { - self.resizeImgs($container); - }).trigger("resize"); - return this._super.apply(this, arguments); - }, + start: function () { + var self = this; + var $container = self.$el; + $container.find(".s_css_slider_pagination").remove(); + // create slider pagination + var sliderPagination = self.createSliderPagination($container); + self.bindEvents($container, sliderPagination); + $(window).on("resize", function () { + self.resizeImgs($container); + }).trigger("resize"); + return this._super.apply(this, arguments); + }, - bindEvents: function ($container, sliderPagination) { - var self = this, - $next_btn = $container.find('.next'), - $prev_btn = $container.find('.prev'); + bindEvents: function ($container, sliderPagination) { + var self = this, + $next_btn = $container.find('.next'), + $prev_btn = $container.find('.prev'); - $next_btn.on('click.s_css', function (e) { - self.nextSlide($container, sliderPagination); - }); + $next_btn.on('click.s_css', function (e) { + self.nextSlide($container, sliderPagination); + }); - $prev_btn.on('click.s_css', function (e) { - self.prevSlide($container, sliderPagination); - }); + $prev_btn.on('click.s_css', function (e) { + self.prevSlide($container, sliderPagination); + }); - if ($container.hasClass("autoplay") && this.editableMode !== true) { - var interval; - var autoplay = function () { - interval = setInterval(function () { - if (!$next_btn.hasClass("inactive")) { - self.nextSlide($container, sliderPagination); - } else { - self.prevSlide($container, sliderPagination, 0); - } - }, 3000); - }; - autoplay(); - $container.hover(function () { clearInterval(interval); }); - $container.mouseleave(function () { autoplay(); }); - } - - sliderPagination.on('click.s_css', function () { - var selectedDot = $(this); - if (!selectedDot.hasClass('selected')) { - var selectedPosition = selectedDot.index(), - activePosition = $container.find('.slider .selected').index(); - if ( activePosition < selectedPosition) { - self.nextSlide($container, sliderPagination, selectedPosition); + if ($container.hasClass("autoplay") && this.editableMode !== true) { + var interval; + var autoplay = function () { + interval = setInterval(function () { + if (!$next_btn.hasClass("inactive")) { + self.nextSlide($container, sliderPagination); } else { - self.prevSlide($container, sliderPagination, selectedPosition); + self.prevSlide($container, sliderPagination, 0); } + }, 3000); + }; + autoplay(); + $container.hover(function () { clearInterval(interval); }); + $container.mouseleave(function () { autoplay(); }); + } + + sliderPagination.on('click.s_css', function () { + var selectedDot = $(this); + if (!selectedDot.hasClass('selected')) { + var selectedPosition = selectedDot.index(), + activePosition = $container.find('.slider .selected').index(); + if ( activePosition < selectedPosition) { + self.nextSlide($container, sliderPagination, selectedPosition); + } else { + self.prevSlide($container, sliderPagination, selectedPosition); } - }); - }, + } + }); + }, - resizeImgs: function ($container) { - var cont_h = $container.height(), - imgs = $container.find(".slide img"); + resizeImgs: function ($container) { + var cont_h = $container.height(), + imgs = $container.find(".slide img"); - imgs.each(function () { - var $img = $(this), - img_h = $img.height(); - if (img_h > cont_h) { - $img.css("width", "100%"); - $img.css("margin-top", (cont_h - img_h)/2); - } - }); - }, + imgs.each(function () { + var $img = $(this), + img_h = $img.height(); + if (img_h > cont_h) { + $img.css("width", "100%"); + $img.css("margin-top", (cont_h - img_h)/2); + } + }); + }, - createSliderPagination: function ($container) { - var wrapper = $('').insertAfter($container.find('.navigation')); - $container.find('.slider .slide').each(function (index) { - var dotWrapper = (index === 0) ? $('
  • ') : $('
  • '), - dot = $('').appendTo(dotWrapper); - dotWrapper.appendTo(wrapper); - dot.text(index+1); - }); - return wrapper.children('li'); - }, + createSliderPagination: function ($container) { + var wrapper = $('').insertAfter($container.find('.navigation')); + $container.find('.slider .slide').each(function (index) { + var dotWrapper = (index === 0) ? $('
  • ') : $('
  • '), + dot = $('').appendTo(dotWrapper); + dotWrapper.appendTo(wrapper); + dot.text(index+1); + }); + return wrapper.children('li'); + }, - nextSlide: function ($container, $pagination, $n) { - var self = this, - visibleSlide = $container.find('.slider .selected'), - navigationDot = $container.find('.s_css_slider_pagination .selected'); + nextSlide: function ($container, $pagination, $n) { + var self = this, + visibleSlide = $container.find('.slider .selected'), + navigationDot = $container.find('.s_css_slider_pagination .selected'); - if (typeof $n === 'undefined') $n = visibleSlide.index() + 1; - visibleSlide.removeClass('selected'); - $container.find('.slider .slide').eq($n).addClass('selected').prevAll().addClass('move-left'); - navigationDot.removeClass('selected'); - $pagination.eq($n).addClass('selected'); - self.updateNavigation($container, $container.find('.slider .slide').eq($n)); - }, + if (typeof $n === 'undefined') $n = visibleSlide.index() + 1; + visibleSlide.removeClass('selected'); + $container.find('.slider .slide').eq($n).addClass('selected').prevAll().addClass('move-left'); + navigationDot.removeClass('selected'); + $pagination.eq($n).addClass('selected'); + self.updateNavigation($container, $container.find('.slider .slide').eq($n)); + }, - prevSlide: function ($container, $pagination, $n) { - var self = this, - visibleSlide = $container.find('.slider .selected'), - navigationDot = $container.find('.s_css_slider_pagination .selected'); + prevSlide: function ($container, $pagination, $n) { + var self = this, + visibleSlide = $container.find('.slider .selected'), + navigationDot = $container.find('.s_css_slider_pagination .selected'); - if (typeof $n === 'undefined') $n = visibleSlide.index() - 1; - visibleSlide.removeClass('selected'); - $container.find('.slider .slide').eq($n).addClass('selected').removeClass('move-left').nextAll().removeClass('move-left'); - navigationDot.removeClass('selected'); - $pagination.eq($n).addClass('selected'); - self.updateNavigation($container, $container.find('.slider .slide').eq($n)); - }, + if (typeof $n === 'undefined') $n = visibleSlide.index() - 1; + visibleSlide.removeClass('selected'); + $container.find('.slider .slide').eq($n).addClass('selected').removeClass('move-left').nextAll().removeClass('move-left'); + navigationDot.removeClass('selected'); + $pagination.eq($n).addClass('selected'); + self.updateNavigation($container, $container.find('.slider .slide').eq($n)); + }, - updateNavigation: function ($container, $active) { - $container.find('.prev').toggleClass('inactive', $active.is(':first-child')); - $container.find('.next').toggleClass('inactive', $active.is(':last-child')); - }, - }); + updateNavigation: function ($container, $active) { + $container.find('.prev').toggleClass('inactive', $active.is(':first-child')); + $container.find('.next').toggleClass('inactive', $active.is(':last-child')); + }, }); diff --git a/theme_common/static/src/old_snippets/s_mini_nav_bar/000.js b/theme_common/static/src/old_snippets/s_mini_nav_bar/000.js index e9cedec31..3fc173fff 100644 --- a/theme_common/static/src/old_snippets/s_mini_nav_bar/000.js +++ b/theme_common/static/src/old_snippets/s_mini_nav_bar/000.js @@ -1,8 +1,7 @@ -odoo.define('theme_common.s_mini_nav_bar', function (require) { -'use strict'; +/** @odoo-module **/ -const dom = require('web.dom'); -var publicWidget = require('web.public.widget'); +import dom from "web.dom"; +import publicWidget from "web.public.widget"; publicWidget.registry.miniNavbarScroll = publicWidget.Widget.extend({ selector: '.s_mini_nav_bar a[href*="#"]:not([href="#"])', @@ -28,4 +27,3 @@ publicWidget.registry.miniNavbarScroll = publicWidget.Widget.extend({ } }, }); -}); diff --git a/theme_common/static/src/old_snippets/s_showcase_slider/000.js b/theme_common/static/src/old_snippets/s_showcase_slider/000.js index f6ec43c0b..8b5bd53e4 100644 --- a/theme_common/static/src/old_snippets/s_showcase_slider/000.js +++ b/theme_common/static/src/old_snippets/s_showcase_slider/000.js @@ -1,132 +1,130 @@ -odoo.define("theme_common.s_showcase_slider_frontend", function (require) { - "use strict"; +/** @odoo-module **/ - const dom = require('web.dom'); - var publicWidget = require('web.public.widget'); +import dom from "web.dom"; +import publicWidget from "web.public.widget"; - publicWidget.registry.s_showcase_slider = publicWidget.Widget.extend({ - selector: ".s_showcase_slider", +publicWidget.registry.s_showcase_slider = publicWidget.Widget.extend({ + selector: ".s_showcase_slider", - start: function () { - _.defer(this.bindEvents.bind(this)); // FIXME delayed to counter a web_editor bug which off all click event - this.createPagination(); - return this._super.apply(this, arguments); - }, + start: function () { + _.defer(this.bindEvents.bind(this)); // FIXME delayed to counter a web_editor bug which off all click event + this.createPagination(); + return this._super.apply(this, arguments); + }, - destroy: function () { - this._super.apply(this, arguments); - _.defer(this.unbindEvents.bind(this)); // FIXME delayed to counter a web_editor bug which off all click event - this.destroyPagination(); + destroy: function () { + this._super.apply(this, arguments); + _.defer(this.unbindEvents.bind(this)); // FIXME delayed to counter a web_editor bug which off all click event + this.destroyPagination(); + this.$el.removeClass("active"); + }, + + bindEvents: function () { + // Enlarge image on click if not already enlarged + this.$el.on("click.s_showcase_slider", ".s_ss_slider", (function (e) { + if (this.$el.hasClass("active")) return; + + this.$el + .addClass("active") + .one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", (function () { + dom.scrollTo(this.el, { + duration: 200, + extraOffset: 70, + }); + this.$el.trigger("transitionIsFinished"); + }).bind(this)); + }).bind(this)); + + // Close the enlarged image on close icon click + this.$el.on("click.s_showcase_slider", ".s_ss_close", (function (e) { this.$el.removeClass("active"); - }, + }).bind(this)); - bindEvents: function () { - // Enlarge image on click if not already enlarged - this.$el.on("click.s_showcase_slider", ".s_ss_slider", (function (e) { - if (this.$el.hasClass("active")) return; + // Handle click navigation + this.$el.on("click.s_showcase_slider", ".s_ss_prev", this.prevSlide.bind(this)); + this.$el.on("click.s_showcase_slider", ".s_ss_next", this.nextSlide.bind(this)); + this.$el.on("click.s_showcase_slider", ".s_ss_slider_pagination > li > a", (function (e) { + e.preventDefault(); + var $selectedDot = $(e.currentTarget).parent(); + if ($selectedDot.hasClass("selected")) return; + this.changeSlide($selectedDot.index()); + }).bind(this)); - this.$el - .addClass("active") - .one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", (function () { - dom.scrollTo(this.el, { - duration: 200, - extraOffset: 70, - }); - this.$el.trigger("transitionIsFinished"); - }).bind(this)); - }).bind(this)); + // Keyboard slider navigation + $(document).on("keyup.s_showcase_slider", (function (e) { + if (!this.$el.hasClass("active")) return; - // Close the enlarged image on close icon click - this.$el.on("click.s_showcase_slider", ".s_ss_close", (function (e) { - this.$el.removeClass("active"); - }).bind(this)); - - // Handle click navigation - this.$el.on("click.s_showcase_slider", ".s_ss_prev", this.prevSlide.bind(this)); - this.$el.on("click.s_showcase_slider", ".s_ss_next", this.nextSlide.bind(this)); - this.$el.on("click.s_showcase_slider", ".s_ss_slider_pagination > li > a", (function (e) { - e.preventDefault(); - var $selectedDot = $(e.currentTarget).parent(); - if ($selectedDot.hasClass("selected")) return; - this.changeSlide($selectedDot.index()); - }).bind(this)); - - // Keyboard slider navigation - $(document).on("keyup.s_showcase_slider", (function (e) { - if (!this.$el.hasClass("active")) return; - - switch (e.which) { - case $.ui.keyCode.LEFT: - this.prevSlide(); - break; - case $.ui.keyCode.RIGHT: - this.nextSlide(); - break; - case $.ui.keyCode.ESCAPE: - this.$el.removeClass("active"); - break; - } - }).bind(this)); - }, - - unbindEvents: function () { - this.$el.off(".s_showcase_slider"); - $(document).off(".s_showcase_slider"); - }, - - createPagination: function () { // FIXME pagination should be saved with editor but keep this for compatibility - this.$el.find(".s_ss_slider_pagination").remove(); // Remove saved-with-editor pagination - - this.$pagination = $("