diff --git a/addons/website/i18n/website.pot b/addons/website/i18n/website.pot index 0acd0e4a188..18a66c5013e 100644 --- a/addons/website/i18n/website.pot +++ b/addons/website/i18n/website.pot @@ -1533,6 +1533,13 @@ msgstr "" msgid "Building blocks system" msgstr "" +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/menu/new_content.js:0 +#, python-format +msgid "Building your %s" +msgstr "" + #. module: website #. openerp-web #: code:addons/website/static/src/xml/theme_preview.xml:0 diff --git a/addons/website/static/src/js/menu/new_content.js b/addons/website/static/src/js/menu/new_content.js index 13de4a27794..c5d6814c2d5 100644 --- a/addons/website/static/src/js/menu/new_content.js +++ b/addons/website/static/src/js/menu/new_content.js @@ -7,8 +7,7 @@ var websiteNavbarData = require('website.navbar'); var wUtils = require('website.utils'); var tour = require('web_tour.tour'); -var qweb = core.qweb; -var _t = core._t; +const {qweb, _t} = core; var enableFlag = 'enable_new_content'; @@ -68,6 +67,7 @@ var NewContentMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ ); this._showMenu(); } + this.$loader = $(qweb.render('website.new_content_loader')); return this._super.apply(this, arguments); }, @@ -186,6 +186,23 @@ var NewContentMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ self.$('> a').focus(); }); }, + /** + * Called to add loader element in DOM. + * + * @param {string} moduleName + * @private + */ + _addLoader(moduleName) { + const newContentLoaderText = _.str.sprintf(_t("Building your %s"), moduleName); + this.$loader.find('#new_content_loader_text').replaceWith(newContentLoaderText); + $('body').append(this.$loader); + }, + /** + * @private + */ + _removeLoader() { + this.$loader.remove(); + }, //-------------------------------------------------------------------------- // Handlers @@ -295,6 +312,7 @@ var NewContentMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ $p.removeClass('o_uninstalled_module') .text(_.str.sprintf(self.newContentText.installPleaseWait, name)); $el.fadeTo(1000, 1); + self._addLoader(name); }); } @@ -302,6 +320,7 @@ var NewContentMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ var origin = window.location.origin; var redirectURL = $el.find('a').data('url') || (window.location.pathname + '?' + enableFlag); window.location.href = origin + redirectURL; + self._removeLoader(); }, function () { $i.removeClass() .addClass('fa fa-exclamation-triangle'); diff --git a/addons/website/static/src/scss/website.editor.ui.scss b/addons/website/static/src/scss/website.editor.ui.scss index 0ba5dbb6af2..484360c78c1 100644 --- a/addons/website/static/src/scss/website.editor.ui.scss +++ b/addons/website/static/src/scss/website.editor.ui.scss @@ -138,3 +138,20 @@ $o-we-switch-inactive-color: #F7F7F7 !default; } } } + +.o_new_content_loader_container { + background-color: rgba($o-shadow-color, .9); + pointer-events: all; + font-size: 3.5rem; + justify-content: center; + z-index: $zindex-modal - 1; +} +.o_new_content_loader { + position: relative; + display: inline-block; + width: 400px; + height: 220px; + background-image: url('/website/static/src/img/theme_loader.gif'); + background-size: cover; + border-radius: 6px; +} diff --git a/addons/website/static/src/xml/website.editor.xml b/addons/website/static/src/xml/website.editor.xml index c71382e9cac..658b10225f4 100644 --- a/addons/website/static/src/xml/website.editor.xml +++ b/addons/website/static/src/xml/website.editor.xml @@ -142,4 +142,12 @@
+ + +
+

+

+
+