[FIX] website: tour
bzr revid: chm@openerp.com-20140123183548-3s842ye1whbvmrq0
This commit is contained in:
@@ -47,24 +47,6 @@
|
||||
}
|
||||
localStorage.setItem("website-reloads", JSON.stringify(stack));
|
||||
};
|
||||
} else if (step.trigger.url) {
|
||||
step.triggers = function (callback) {
|
||||
var stack = JSON.parse(localStorage.getItem("website-geturls")) || [];
|
||||
var id = step.trigger.url.toString();
|
||||
var index = stack.indexOf(id);
|
||||
if (index !== -1) {
|
||||
var url = new website.UrlParser(window.location.href);
|
||||
var test = typeof step.trigger.url === "string" ?
|
||||
step.trigger.url == url.pathname+url.search :
|
||||
step.trigger.url.test(url.pathname+url.search);
|
||||
if (!test) return;
|
||||
stack.splice(index,1);
|
||||
(callback || self.moveToNextStep).apply(self);
|
||||
} else {
|
||||
stack.push(id);
|
||||
}
|
||||
localStorage.setItem("website-geturls", JSON.stringify(stack));
|
||||
};
|
||||
} else if (step.trigger === 'drag') {
|
||||
step.triggers = function (callback) {
|
||||
self.onSnippetDragged(callback || self.moveToNextStep);
|
||||
@@ -86,8 +68,27 @@
|
||||
});
|
||||
};
|
||||
}
|
||||
} else if (step.trigger.modal) {
|
||||
} else if (step.trigger.url) {
|
||||
step.triggers = function (callback) {
|
||||
var stack = JSON.parse(localStorage.getItem("website-geturls")) || [];
|
||||
var id = step.trigger.url.toString();
|
||||
var index = stack.indexOf(id);
|
||||
if (index !== -1) {
|
||||
var url = new website.UrlParser(window.location.href);
|
||||
var test = typeof step.trigger.url === "string" ?
|
||||
step.trigger.url == url.pathname+url.search :
|
||||
step.trigger.url.test(url.pathname+url.search);
|
||||
if (!test) return;
|
||||
stack.splice(index,1);
|
||||
(callback || self.moveToNextStep).apply(self);
|
||||
} else {
|
||||
stack.push(id);
|
||||
}
|
||||
localStorage.setItem("website-geturls", JSON.stringify(stack));
|
||||
return index !== -1;
|
||||
};
|
||||
} else if (step.trigger.modal) {
|
||||
step.triggers = function (callback, auto) {
|
||||
var $doc = $(document);
|
||||
function onStop () {
|
||||
if (step.trigger.modal.stopOnClose) {
|
||||
@@ -98,7 +99,10 @@
|
||||
$doc.one('shown.bs.modal', function () {
|
||||
$('.modal button.btn-primary').one('click', function () {
|
||||
$doc.off('hide.bs.modal', onStop);
|
||||
(callback || self.moveToNextStep).apply(self, [step.trigger.modal.afterSubmit]);
|
||||
console.log(callback);
|
||||
if (!callback) {
|
||||
self.moveToStep(step.trigger.modal.afterSubmit);
|
||||
}
|
||||
});
|
||||
(callback || self.moveToNextStep).apply(self);
|
||||
});
|
||||
@@ -199,16 +203,19 @@
|
||||
},
|
||||
onSnippetDragged: function (callback) {
|
||||
var self = this;
|
||||
function beginDrag () {
|
||||
var selector = '#website-top-navbar [data-snippet-id].ui-draggable';
|
||||
var beginDrag = function beginDrag () {
|
||||
$('.popover.tour').remove();
|
||||
function advance () {
|
||||
var advance = function advance () {
|
||||
if (_.isFunction(callback)) {
|
||||
callback.apply(self);
|
||||
}
|
||||
}
|
||||
$(selector).off('mouseup', advance);
|
||||
};
|
||||
$(document.body).one('mouseup', advance);
|
||||
}
|
||||
$('#website-top-navbar [data-snippet-id].ui-draggable').one('mousedown', beginDrag);
|
||||
$(selector).off('mousedown', beginDrag);
|
||||
};
|
||||
$(selector).one('mousedown', beginDrag);
|
||||
},
|
||||
onSnippetDraggedAdvance: function () {
|
||||
onSnippetDragged(self.moveToNextStep);
|
||||
@@ -280,7 +287,7 @@
|
||||
function actualDragAndDrop ($thumbnail) {
|
||||
var thumbnailPosition = $thumbnail.position();
|
||||
$thumbnail.trigger($.Event("mousedown", { which: 1, pageX: thumbnailPosition.left, pageY: thumbnailPosition.top }));
|
||||
$thumbnail.trigger($.Event("mousemove", { which: 1, pageX: thumbnailPosition.left, pageY: thumbnailPosition.top+500 }));
|
||||
$thumbnail.trigger($.Event("mousemove", { which: 1, pageX: document.body.scrollWidth/2, pageY: document.body.scrollHeight/2 }));
|
||||
var $dropZone = $(".oe_drop_zone").first();
|
||||
var dropPosition = $dropZone.position();
|
||||
$dropZone.trigger($.Event("mouseup", { which: 1, pageX: dropPosition.left, pageY: dropPosition.top }));
|
||||
@@ -327,7 +334,8 @@
|
||||
var self = this;
|
||||
var testId = 'test_'+tour.id+'_tour';
|
||||
this.tours.push(tour);
|
||||
var defaultDelay = 1000; //ms
|
||||
var defaultDelay = 250; //ms
|
||||
var defaultDelayReload = 1500; //ms
|
||||
var overlapsCrash;
|
||||
var test = {
|
||||
id: tour.id,
|
||||
@@ -346,50 +354,67 @@
|
||||
test.reset();
|
||||
throw message;
|
||||
}
|
||||
function executeStep (step) {
|
||||
// check if they are a cycle
|
||||
function initReport () {
|
||||
// set last time for report
|
||||
if (!window.localStorage.getItem("test-last-time")) {
|
||||
window.localStorage.setItem("test-last-time", new Date().getTime());
|
||||
}
|
||||
}
|
||||
function setReport (step) {
|
||||
var report = JSON.parse(window.localStorage.getItem("test-report")) || {};
|
||||
report[step.stepId] = (new Date().getTime() - window.localStorage.getItem("test-last-time")) + " ms";
|
||||
window.localStorage.setItem("test-report", JSON.stringify(report));
|
||||
}
|
||||
function testCycling (step) {
|
||||
var lastStep = window.localStorage.getItem(testId);
|
||||
var tryStep = lastStep != step.stepId ? 0 : (+(window.localStorage.getItem("test-last-"+testId) || 0) + 1);
|
||||
window.localStorage.setItem("test-last-"+testId, tryStep);
|
||||
if (tryStep > 2) {
|
||||
throwError("Test: '" + testId + "' cycling step: '" + step.stepId + "'");
|
||||
}
|
||||
return tryStep;
|
||||
}
|
||||
function getDelay (step) {
|
||||
return step.delay ||
|
||||
((step.trigger === 'reload' || (step.trigger && step.trigger.url))
|
||||
? defaultDelayReload
|
||||
: defaultDelay);
|
||||
}
|
||||
function executeStep (step) {
|
||||
if (testCycling(step) === 0) initReport();
|
||||
|
||||
var delay = getDelay (step);
|
||||
|
||||
overlapsCrash = setTimeout(function () {
|
||||
throwError("Test: '" + testId + "' can't resolve step: '" + step.stepId + "'");
|
||||
}, delay + 1000);
|
||||
|
||||
// set last time for report
|
||||
if (tryStep == 0 || !window.localStorage.getItem("test-last-time")) {
|
||||
window.localStorage.setItem("test-last-time", new Date().getTime());
|
||||
}
|
||||
|
||||
var _next = false;
|
||||
window.localStorage.setItem(testId, step.stepId);
|
||||
function next () {
|
||||
_next = true;
|
||||
clearTimeout(overlapsCrash);
|
||||
|
||||
// set report
|
||||
var report = JSON.parse(window.localStorage.getItem("test-report")) || {};
|
||||
report[step.stepId] = (new Date().getTime() - window.localStorage.getItem("test-last-time")) + " ms";
|
||||
window.localStorage.setItem("test-report", JSON.stringify(report));
|
||||
setReport(step);
|
||||
|
||||
var nextStep = actionSteps.shift();
|
||||
|
||||
if (nextStep) {
|
||||
setTimeout(function () {
|
||||
executeStep(nextStep);
|
||||
}, step.delay || defaultDelay);
|
||||
}, delay);
|
||||
} else {
|
||||
clearTimeout(overlapsCrash);
|
||||
window.localStorage.removeItem(testId);
|
||||
}
|
||||
}
|
||||
setTimeout(function () {
|
||||
clearTimeout(overlapsCrash);
|
||||
overlapsCrash = setTimeout(function () {
|
||||
throwError("Test: '" + testId + "' can't resolve step: '" + step.stepId + "'");
|
||||
}, (step.delay || defaultDelay) + 1000);
|
||||
|
||||
setTimeout(function () {
|
||||
var $element = $(step.element);
|
||||
if (step.triggers) {
|
||||
var flag = step.triggers && (!step.trigger || !step.trigger.modal);
|
||||
if (flag) {
|
||||
try {
|
||||
step.triggers(next);
|
||||
step.triggers(next, true);
|
||||
} catch (e) {
|
||||
throwError(e);
|
||||
}
|
||||
@@ -414,7 +439,7 @@
|
||||
$element.trigger($.Event("mouseup", { srcElement: $element }));
|
||||
}
|
||||
}
|
||||
if (!step.triggers) next();
|
||||
if (!flag) next();
|
||||
},0);
|
||||
}
|
||||
var url = new website.UrlParser(window.location.href);
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
modal: {
|
||||
stopOnClose: true,
|
||||
afterSubmit: 'event-page',
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -60,8 +60,8 @@
|
||||
placement: 'right',
|
||||
title: "Create Event",
|
||||
content: "Click <em>Continue</em> to create the event.",
|
||||
trigger: {
|
||||
url: /event\/[0-9]+\/register/
|
||||
trigger: {
|
||||
url: /event\/[0-9]+\/register/
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -148,11 +148,10 @@
|
||||
title: "Publish your event",
|
||||
content: "Click to publish your event.",
|
||||
trigger: 'click',
|
||||
delay: 5000,
|
||||
},
|
||||
{
|
||||
stepId: 'customize-event',
|
||||
element: '.js_publish_management button#dopprod-8',
|
||||
element: '.js_publish_management button[data-toggle="dropdown"]',
|
||||
placement: 'left',
|
||||
title: "Customize your event",
|
||||
content: "Click here to customize your event further.",
|
||||
|
||||
Reference in New Issue
Block a user