diff options
| author | Richard Mathot (OpenERP) <rim@openerp.com> | 2014-02-02 14:56:02 +0100 |
|---|---|---|
| committer | Richard Mathot (OpenERP) <rim@openerp.com> | 2014-02-02 14:56:02 +0100 |
| commit | 7f0c30580b567bb5e2e2d9d2c4e7d65112da72a5 (patch) | |
| tree | 4ac6be94f1094e629a54c2ce8ac203dfc5cdbbd8 /addons/website/static/src | |
| parent | 308a3def95458d5a3ff8037a01449666b1a69711 (diff) | |
| parent | c5da05715cdbe8fb5b066baa92ef0abb88d75b41 (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.js | 80 |
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; }; |
