summaryrefslogtreecommitdiff
path: root/addons/website/static/src
diff options
context:
space:
mode:
authorRichard Mathot (OpenERP) <rim@openerp.com>2014-02-02 14:56:02 +0100
committerRichard Mathot (OpenERP) <rim@openerp.com>2014-02-02 14:56:02 +0100
commit7f0c30580b567bb5e2e2d9d2c4e7d65112da72a5 (patch)
tree4ac6be94f1094e629a54c2ce8ac203dfc5cdbbd8 /addons/website/static/src
parent308a3def95458d5a3ff8037a01449666b1a69711 (diff)
parentc5da05715cdbe8fb5b066baa92ef0abb88d75b41 (diff)
[MERGE] Sync with trunk-website-al
bzr revid: rim@openerp.com-20140131154544-tfcci0uo0q6652jh bzr revid: rim@openerp.com-20140202135602-82pcqeqqtdp6h9fr
Diffstat (limited to 'addons/website/static/src')
-rw-r--r--addons/website/static/src/js/website.tour.js80
1 files changed, 43 insertions, 37 deletions
diff --git a/addons/website/static/src/js/website.tour.js b/addons/website/static/src/js/website.tour.js
index d0611419904..39eaa5b7279 100644
--- a/addons/website/static/src/js/website.tour.js
+++ b/addons/website/static/src/js/website.tour.js
@@ -17,7 +17,7 @@ website.EditorBar.include({
var $menuItem = $($.parseHTML('<li><a href="#">'+tour.name+'</a></li>'));
$menuItem.click(function () {
tour.reset();
- tour.trigger();
+ tour.run();
});
menu.append($menuItem);
});
@@ -100,20 +100,29 @@ website.Tour = openerp.Class.extend({
this.registerSteps();
},
- run: function (automatic, force) {
- if (force) this.reset();
+ run: function (automatic) {
+ this.reset();
for (var k in this.localStorage) {
if (!k.indexOf("tour-") && k.indexOf("-test") > -1) return;
}
- // only one test running
- if (website.Tour.busy) return;
-
website.Tour.busy = true;
- this.localStorage.setItem("tour-"+this.id+"-test", 0);
- website.Tour.waitReady.call(this, function () {this._run(automatic, force);});
+ if (automatic) {
+ this.localStorage.setItem("tour-"+this.id+"-test-automatic", true);
+ }
+
+ // redirect to begin of the tour
+ if (this.path) {
+ var path = this.path.split('?');
+ window.location.href = path[0] + "?tutorial."+this.id+"=true" + path.slice(1, path.length).join("?");
+ return;
+ }
+
+ var self = this;
+ this.localStorage.setItem("tour-"+this.id+"-test", 0);
+ website.Tour.waitReady.call(this, function () {self._running();});
},
running: function () {
if (+this.localStorage.getItem("tour-"+this.id+"-test") >= this.steps.length) {
@@ -121,33 +130,29 @@ website.Tour = openerp.Class.extend({
return;
}
- if (website.Tour.busy || !this.testUrl()) return;
+ if (website.Tour.is_busy() || !this.testUrl()) return;
- var self = this;
- website.Tour.waitReady.call(this, function () {
- self._running();
- }, 500);
- },
+ // launch tour with url
+ this.checkRunningUrl();
- _run: function (automatic, force) {
- this.reset();
- this.localStorage.setItem("tour-"+this.id+"-test", 0);
- if (automatic) {
- this.localStorage.setItem("tour-"+this.id+"-test-automatic", true);
+ // mark tour as busy (only one test running)
+ if (this.localStorage.getItem("tour-"+this.id+"-test") != null) {
+ website.Tour.busy = true;
}
- this.nextStep(null, automatic ? this.autoNextStep : null, automatic ? 5000 : null);
+
+ var self = this;
+ website.Tour.waitReady.call(this, function () {self._running();});
},
+
_running: function () {
var stepId = this.localStorage.getItem("tour-"+this.id+"-test");
var automatic = !!this.localStorage.getItem("tour-"+this.id+"-test-automatic");
- if (stepId || this.checkRuningUrl()) {
-
+ if (stepId != null) {
if (!this.check(this.step(stepId))) {
var step = this.next(stepId);
stepId = step ? step.stepId : stepId;
}
- website.Tour.busy = true;
this.nextStep(stepId, automatic ? this.autoNextStep : null, automatic ? 5000 : null);
}
},
@@ -168,22 +173,15 @@ website.Tour = openerp.Class.extend({
$('.popover.tour').remove();
},
- trigger: function (automatic) {
- this.reset();
- if (this.path) {
- this.localStorage.setItem("tour-"+this.id+"-test", 0);
- if (automatic) this.localStorage.setItem("tour-"+this.id+"-test-automatic", true);
- var path = this.path.split('?');
- window.location.href = path[0] + "?tutorial."+this.id+"=true" + path.slice(1, path.length).join("?");
- } else {
- this.run(automatic);
- }
- },
+
testUrl: function () {
return !this.testPath || this.testPath.test(window.location.href);
},
- checkRuningUrl: function () {
- return window.location.search.indexOf("tutorial."+this.id+"=true") > -1;
+ checkRunningUrl: function () {
+ if (window.location.search.indexOf("tutorial."+this.id+"=true") > -1) {
+ this.localStorage.setItem("tour-"+this.id+"-test", 0);
+ window.location.href = window.location.href.replace(/tutorial.+=true&?/, '');
+ }
},
registerSteps: function () {
@@ -430,7 +428,15 @@ website.Tour.waitReady = function (callback) {
});
};
website.Tour.run_test = function (id) {
- website.Tour.get(id).trigger(true);
+ website.Tour.get(id).run(true);
+};
+website.Tour.is_busy = function () {
+ for (var k in this.localStorage) {
+ if (!k.indexOf("tour-")) {
+ return true;
+ }
+ }
+ return website.Tour.busy;
};