[FIX] *: missing base.ready() waiting for frontend tours

Frontend tours have to wait for base.ready() before starting otherwise
they can find DOM elements whose event handlers have not been attached
yet.

Note that this is a workaround to ignore these real "bugs" as users
should not be able to see buttons they can't click at once but there is
no safe and small fix which will resolve that. The time between the DOM
becomes visible and handlers are attached is small enough to ignore
this bug for now anyway.
This commit is contained in:
qsm-odoo
2016-09-30 12:19:46 +02:00
parent 984afdf120
commit 3cbc7ebc4c
5 changed files with 29 additions and 7 deletions
@@ -2,9 +2,13 @@ odoo.define('survey.tour_test_survey', function (require) {
'use strict';
var tour = require('web_tour.tour');
var base = require("web_editor.base");
tour.register('test_survey', { test: true, url: '/survey/start/user-feedback-form-1/phantom' },
tour.register('test_survey', {
test: true,
url: '/survey/start/user-feedback-form-1/phantom',
wait_for: base.ready()
},
[
// Page-1
{
@@ -2,9 +2,12 @@ odoo.define('website.tour.rte', function (require) {
'use strict';
var tour = require("web_tour.tour");
var local_storage = require('web.local_storage');
var base = require("web_editor.base");
tour.register('rte_translator', { test: true },
tour.register('rte_translator', {
test: true,
wait_for: base.ready()
},
[
{
content: "click on Add a language",
@@ -2,8 +2,13 @@ odoo.define('website_event_sale.tour', function (require) {
'use strict';
var tour = require('web_tour.tour');
var base = require("web_editor.base");
tour.register('event_buy_tickets', { test: true, url: '/event' },
tour.register('event_buy_tickets', {
test: true,
url: '/event',
wait_for: base.ready()
},
[
{
content: "Go to the `Events` page",
@@ -2,8 +2,13 @@ odoo.define('website_sale.tour', function (require) {
'use strict';
var tour = require("web_tour.tour");
var base = require("web_editor.base");
tour.register('shop_buy_product', { test: true, url: '/shop' },
tour.register('shop_buy_product', {
test: true,
url: '/shop',
wait_for: base.ready()
},
[
{
content: "search ipod",
@@ -3,6 +3,7 @@ odoo.define('website_sale.test', function (require) {
require("website_sale.tour");
var tour = require("web_tour.tour");
var base = require("web_editor.base");
var steps = tour.tours.shop_buy_product.steps;
for (var k=0; k<steps.length; k++) {
@@ -15,7 +16,11 @@ for (var k=0; k<steps.length; k++) {
}
}
tour.register('shop_customize', { test: true, url: '/shop' },
tour.register('shop_customize', {
test: true,
url: '/shop',
wait_for: base.ready()
},
[
{
content: "open customize menu",