summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2014-07-01 13:37:41 +0200
committerChristophe Matthieu <chm@odoo.com>2014-07-01 13:37:41 +0200
commit6a2f3e2c2ab7d44541394962bbda7d404d459a8e (patch)
treec94167f3f5364429d2df2f20c2b532d9a4153d1c
parentc9c5f6231f476f3114d13e74f62dcae91142e23c (diff)
[IMP] tour.js: raise an error when phantomjs run a tour and an other running tour has been detected.
-rw-r--r--addons/web/static/src/js/tour.js18
-rw-r--r--addons/website/static/src/js/website.tour.js1
2 files changed, 16 insertions, 3 deletions
diff --git a/addons/web/static/src/js/tour.js b/addons/web/static/src/js/tour.js
index 961fd63f4cd..032a54a5cc4 100644
--- a/addons/web/static/src/js/tour.js
+++ b/addons/web/static/src/js/tour.js
@@ -75,15 +75,22 @@ var Tour = {
if (!tour) {
Tour.error(null, "Can't run '"+tour_id+"' (tour undefined)");
}
+ console.log("Tour '"+tour_id+"' Begin from run method");
+ var state = Tour.getState();
+ if (state) {
+ if (state.mode === "test") {
+ Tour.error(false, "An other running tour has been detected all tours are now killed.");
+ } else {
+ Tour.endTour();
+ }
+ }
this.time = new Date().getTime();
if (tour.path && !window.location.href.match(new RegExp("("+Tour.getLang()+")?"+tour.path+"#?$", "i"))) {
var href = Tour.getLang()+tour.path;
- console.log("Tour '"+tour_id+"' Begin from run method (redirection to "+href+")");
Tour.saveState(tour.id, mode || tour.mode, -1, 0);
$(document).one("ajaxStop", Tour.running);
window.location.href = href;
} else {
- console.log("Tour '"+tour_id+"' Begin from run method");
Tour.saveState(tour.id, mode || tour.mode, 0, 0);
Tour.running();
}
@@ -358,6 +365,7 @@ var Tour = {
clearTimeout(Tour.timer);
clearTimeout(Tour.testtimer);
Tour.closePopover();
+ console.log("Tour reset");
},
running: function () {
var state = Tour.getState();
@@ -398,6 +406,8 @@ var Tour = {
};
function checkNext () {
+ if (!Tour.getState()) return;
+
Tour.autoTogglePopover();
clearTimeout(Tour.timer);
@@ -476,6 +486,8 @@ var Tour = {
clearTimeout(Tour.testtimer);
function autoStep () {
+ if (!Tour.getState()) return;
+
if (!step) return;
if (step.autoComplete) {
@@ -502,6 +514,7 @@ var Tour = {
// trigger after for step like: mouseenter, next step click on button display with mouseenter
setTimeout(function () {
+ if (!Tour.getState()) return;
$element.trigger($.Event("mouseup", { srcElement: $element[0] }));
$element.trigger($.Event("mouseleave", { srcElement: $element[0] }));
}, 1000);
@@ -518,6 +531,7 @@ var Tour = {
$element.html(step.sampleText);
}
setTimeout(function () {
+ if (!Tour.getState()) return;
$element.trigger($.Event("keyup", { srcElement: $element }));
$element.trigger($.Event("change", { srcElement: $element }));
}, self.defaultDelay<<1);
diff --git a/addons/website/static/src/js/website.tour.js b/addons/website/static/src/js/website.tour.js
index 6c0919b4c5c..8cb816a409e 100644
--- a/addons/website/static/src/js/website.tour.js
+++ b/addons/website/static/src/js/website.tour.js
@@ -12,7 +12,6 @@ window.openerp.website.EditorBar.include({
}
var $menuItem = $($.parseHTML('<li><a href="#">'+tour.name+'</a></li>'));
$menuItem.click(function () {
- openerp.Tour.reset();
openerp.Tour.run(tour.id);
});
menu.append($menuItem);