diff --git a/addons/website/static/src/js/website.snippets.editor.js b/addons/website/static/src/js/website.snippets.editor.js
index 22582ecc9e3..b93d1c2c761 100644
--- a/addons/website/static/src/js/website.snippets.editor.js
+++ b/addons/website/static/src/js/website.snippets.editor.js
@@ -207,17 +207,17 @@
self.make_active($target);
});
},
- snippet_blur: function ($snipped_id) {
- if ($snipped_id) {
- if ($snipped_id.data("snippet-editor")) {
- $snipped_id.data("snippet-editor").onBlur();
+ snippet_blur: function ($snippet) {
+ if ($snippet) {
+ if ($snippet.data("snippet-editor")) {
+ $snippet.data("snippet-editor").onBlur();
}
}
},
- snippet_focus: function ($snipped_id) {
- if ($snipped_id) {
- if ($snipped_id.data("snippet-editor")) {
- $snipped_id.data("snippet-editor").onFocus();
+ snippet_focus: function ($snippet) {
+ if ($snippet) {
+ if ($snippet.data("snippet-editor")) {
+ $snippet.data("snippet-editor").onFocus();
}
}
},
@@ -230,31 +230,34 @@
}
}
},
- make_active: function ($snipped_id) {
- if ($snipped_id && this.$active_snipped_id && this.$active_snipped_id.get(0) === $snipped_id.get(0)) {
+ make_active: function ($snippet) {
+ if ($snippet && this.$active_snipped_id && this.$active_snipped_id.get(0) === $snippet.get(0)) {
return;
}
if (this.$active_snipped_id) {
this.snippet_blur(this.$active_snipped_id);
this.$active_snipped_id = false;
}
- if ($snipped_id && $snipped_id.length) {
- if(_.indexOf(this.snippets, $snipped_id.get(0)) === -1) {
- this.snippets.push($snipped_id.get(0));
+ if ($snippet && $snippet.length) {
+ if(_.indexOf(this.snippets, $snippet.get(0)) === -1) {
+ this.snippets.push($snippet.get(0));
}
- this.$active_snipped_id = $snipped_id;
+ this.$active_snipped_id = $snippet;
this.create_overlay(this.$active_snipped_id);
- this.snippet_focus($snipped_id);
+ this.snippet_focus($snippet);
+ }
+ if (_.isFunction($snippet.trigger)) {
+ $snippet.trigger('tour:snippet_activated');
}
},
- create_overlay: function ($snipped_id) {
- if (typeof $snipped_id.data("snippet-editor") === 'undefined') {
- var $targets = this.activate_overlay_zones($snipped_id);
+ create_overlay: function ($snippet) {
+ if (typeof $snippet.data("snippet-editor") === 'undefined') {
+ var $targets = this.activate_overlay_zones($snippet);
if (!$targets.length) return;
- var editor = website.snippet.editorRegistry[$snipped_id.data("snippet-id")] || website.snippet.editorRegistry.resize;
- $snipped_id.data("snippet-editor", new editor(this, $snipped_id));
+ var editor = website.snippet.editorRegistry[$snippet.data("snippet-id")] || website.snippet.editorRegistry.resize;
+ $snippet.data("snippet-editor", new editor(this, $snippet));
}
- this.cover_target($snipped_id.data('overlay'), $snipped_id);
+ this.cover_target($snippet.data('overlay'), $snippet);
},
path_eval: function(path){
@@ -869,7 +872,7 @@
var editor = new Editor(self, self.$target, val['snippet-style-id']);
$ul.prepend(editor.$el);
});
-
+
if ($ul.find("li").length) {
$styles.removeClass("hidden");
}
@@ -1149,7 +1152,7 @@
}
},
});
-
+
website.snippet.editorRegistry.slider = website.snippet.editorRegistry.resize.extend({
drop_and_build_snippet: function() {
var id = $(".carousel").length;
@@ -1224,7 +1227,7 @@
var new_index = 0;
var cycle = this.$inner.find('.item').length - 1;
var index = this.$inner.find('.item.active').index();
-
+
if (cycle > 0) {
this.remove_process = true;
var $el = this.$inner.find('.item.active');
diff --git a/addons/website/static/src/js/website.tour.banner.js b/addons/website/static/src/js/website.tour.banner.js
index 75838ada953..a60ac05a633 100644
--- a/addons/website/static/src/js/website.tour.banner.js
+++ b/addons/website/static/src/js/website.tour.banner.js
@@ -11,7 +11,7 @@
});
website.BannerTour = website.Tour.extend({
- id: 'banner-tutorial',
+ id: 'banner',
name: "Insert a banner",
startPath: '/page/website.homepage',
init: function (editor) {
@@ -19,11 +19,10 @@
self.steps = [
{
stepId: 'welcome',
- orphan: true,
- backdrop: true,
title: "Welcome to your website!",
content: "This tutorial will guide you to build your home page. We will start by adding a banner.",
template: self.popover({ next: "Start Tutorial", end: "Skip It" }),
+ backdrop: true,
},
{
stepId: 'edit-page',
@@ -31,8 +30,10 @@
placement: 'bottom',
title: "Edit this page",
content: "Every page of your website can be modified through the Edit button.",
- triggers: function () {
- editor.on('tour:editor_bar_loaded', self, self.moveToNextStep);
+ trigger: {
+ emitter: editor,
+ type: 'openerp',
+ id: 'tour:editor_bar_loaded',
},
},
{
@@ -41,11 +42,7 @@
placement: 'bottom',
title: "Insert building blocks",
content: "To add content in a page, you can insert building blocks.",
- triggers: function () {
- $('button[data-action=snippet]').one('click', function () {
- self.moveToNextStep();
- });
- }
+ trigger: 'click',
},
{
stepId: 'drag-banner',
@@ -53,9 +50,7 @@
placement: 'bottom',
title: "Drag & Drop a Banner",
content: "Drag the Banner block and drop it in your page.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
+ trigger: 'drag',
},
{
stepId: 'edit-title',
@@ -64,7 +59,7 @@
title: "Customize banner's text",
content: "Click in the text and start editing it. Click continue once it's done.",
template: self.popover({ next: "Continue" }),
- triggers: function () {
+ onStart: function () {
var $banner = $("#wrap [data-snippet-id=carousel]:first");
if ($banner.length) {
$banner.click();
@@ -85,11 +80,7 @@
placement: 'bottom',
title: "Add Another Block",
content: "Let's add another building block to your page.",
- triggers: function () {
- $('button[data-action=snippet]').one('click', function () {
- self.moveToNextStep();
- });
- }
+ trigger: 'click',
},
{
stepId: 'drag-three-columns',
@@ -97,9 +88,7 @@
placement: 'bottom',
title: "Drag & Drop a Block",
content: "Drag the '3 Columns' block and drop it below the banner.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
+ trigger: 'drag',
},
{
stepId: 'activate-text-block-title',
@@ -107,31 +96,28 @@
placement: 'top',
title: "Edit an Area",
content: "Select any area of the page to modify it. Click on this subtitle.",
- triggers: function () {
- $('#wrap [data-snippet-id=three-columns] .text-center[data-snippet-id=colmd]').one('click', function () {
- self.moveToNextStep();
- });
+ trigger: {
+ id: 'tour:snippet_activated'
},
},
{
stepId: 'remove-text-block-title',
element: '.ui-draggable.oe_active .oe_snippet_remove',
placement: 'top',
- reflex: true,
title: "Delete the Title",
content: "From this toolbar you can move, duplicate or delete the selected zone. Click on the trash can to delete the title.",
+ trigger: 'click',
},
{
stepId: 'save-changes',
element: 'button[data-action=save]',
placement: 'right',
- reflex: true,
title: "Save your modifications",
content: "Publish your page by clicking on the 'Save' button.",
+ trigger: 'click',
},
{
stepId: 'part-2',
- orphan: true,
title: "Congratulation!",
content: "Your homepage has been updated.",
template: self.popover({ next: "Continue" }),
@@ -142,35 +128,31 @@
placement: 'bottom',
title: "Test Your Mobile Version",
content: "Let's check how your homepage looks like on mobile devices.",
- triggers: function () {
- $(document).one('shown.bs.modal', function () {
- self.moveToNextStep();
- });
- }
+ trigger: {
+ emitter: $(document),
+ id: 'shown.bs.modal',
+ },
},
{
stepId: 'show-mobile-close',
element: 'button[data-dismiss=modal]',
placement: 'right',
- reflex: true,
title: "Close Mobile Preview",
content: "Scroll in the mobile preview to test the rendering. Once it's ok, close this dialog.",
+ trigger: 'click',
},
{
stepId: 'show-tutorials',
element: '#help-menu-button',
placement: 'left',
- reflex: true,
title: "More Tutorials",
content: "Get more tutorials through this 'Help' menu or click on the left 'Edit' button to continue modifying this page.",
template: self.popover({ end: "Close Tutorial" }),
+ trigger: 'click',
}
];
return this._super();
},
- resume: function () {
- return this.isCurrentStep('part-2') && this._super();
- },
});
}());
diff --git a/addons/website/static/src/js/website.tour.js b/addons/website/static/src/js/website.tour.js
index a14a55bded5..d028f15afdd 100644
--- a/addons/website/static/src/js/website.tour.js
+++ b/addons/website/static/src/js/website.tour.js
@@ -14,49 +14,76 @@
storage: this.tourStorage,
keyboard: false,
template: this.popover(),
+ onHide: function () {
+ window.scrollTo(0, 0);
+ }
});
this.registerSteps();
},
registerSteps: function () {
var self = this;
this.tour.addSteps(_.map(this.steps, function (step) {
- step.title = openerp.qweb.render('website.tour_popover_title', { title: step.title });
- if (step.modal) {
- step.onShow = function () {
- var $doc = $(document);
- function onStop () {
- if (step.modal.stopOnClose) {
- self.stop();
- }
- }
- $doc.on('hide.bs.modal', onStop);
- $doc.one('shown.bs.modal', function () {
- $('.modal button.btn-primary').one('click', function () {
- $doc.off('hide.bs.modal', onStop);
- self.moveToStep(step.modal.afterSubmit);
+ step.title = openerp.qweb.render('website.tour_popover_title', { title: step.title });
+ if (!step.element) {
+ step.orphan = true;
+ }
+ if (step.trigger) {
+ if (step.trigger === 'click') {
+ step.triggers = function (callback) {
+ $(step.element).one('click', function () {
+ (callback || self.moveToNextStep).call(self);
});
- self.moveToNextStep();
- });
+ };
+ } else if (step.trigger === 'drag') {
+ step.triggers = function (callback) {
+ self.onSnippetDragged(callback || self.moveToNextStep);
+ };
+ } else if (step.trigger && step.trigger.id) {
+ if (step.trigger.emitter && step.trigger.type === 'openerp') {
+ step.triggers = function (callback) {
+ step.trigger.emitter.on(step.trigger.id, self, function customHandler () {
+ step.trigger.emitter.off(step.trigger.id, customHandler);
+ (callback || self.moveToNextStep).apply(self, arguments);
+ });
+ };
+ } else {
+ step.triggers = function (callback) {
+ var emitter = step.trigger.emitter || $(step.element);
+ emitter.one(step.trigger.id, function customHandler () {
+ (callback || self.moveToNextStep).apply(self, arguments);
+ });
+ };
+ }
+ } else if (step.trigger.modal) {
+ step.triggers = function (callback) {
+ var $doc = $(document);
+ function onStop () {
+ if (step.trigger.modal.stopOnClose) {
+ self.stop();
+ }
+ }
+ $doc.on('hide.bs.modal', onStop);
+ $doc.one('shown.bs.modal', function () {
+ $('.modal button.btn-primary').one('click', function () {
+ $doc.off('hide.bs.modal', onStop);
+ self.moveToStep(step.trigger.modal.afterSubmit);
+ });
+ (callback || self.moveToNextStep).call(self);
+ });
+ };
+ }
+ }
+ step.onShow = (function () {
+ var executed = false;
+ return function () {
+ if (!executed) {
+ _.isFunction(step.onStart) && step.onStart();
+ _.isFunction(step.triggers) && step.triggers();
+ executed = true;
+ }
};
- } else if (step.triggers) {
- step.onShow = (function () {
- var executed = false;
- return function () {
- if (!executed) {
- step.triggers();
- executed = true;
- }
- };
- }());
- } else if (step.reflex) {
- step.onShow = function () {
- $(step.element).one('click', function () {
- self.moveToNextStep();
- });
- };
- delete step.reflex;
- }
- return step;
+ }());
+ return step;
}));
},
reset: function () {
@@ -108,7 +135,7 @@
redirect: function (url) {
url = url || new website.UrlParser(window.location.href);
var path = (this.startPath && url.pathname !== this.startPath) ? this.startPath : url.pathname;
- var search = url.addToSearch(this.id + "=true");
+ var search = url.activateTutorial(this.id);
var newUrl = path + search;
window.location.replace(newUrl);
},
@@ -122,8 +149,7 @@
trigger: function (url) {
// Override if necessary
url = url || new website.UrlParser(window.location.href);
- var urlTrigger = this.id + "=true";
- return url.search.indexOf(urlTrigger) >= 0;
+ return url.isActive(this.id);
},
testUrl: function (pattern) {
var url = new website.UrlParser(window.location.href);
@@ -132,21 +158,22 @@
popover: function (options) {
return openerp.qweb.render('website.tour_popover', options);
},
- onSnippetDraggedAdvance: function (snippetId, stepId) {
+ onSnippetDragged: function (callback) {
var self = this;
function beginDrag () {
$('.popover.tour').remove();
function advance () {
- if (stepId) {
- self.moveToStep(stepId);
- } else {
- self.moveToNextStep();
+ if (_.isFunction(callback)) {
+ callback.call(self);
}
}
$(document.body).one('mouseup', advance);
}
$('#website-top-navbar [data-snippet-id].ui-draggable').one('mousedown', beginDrag);
},
+ onSnippetDraggedAdvance: function () {
+ onSnippetDragged(self.moveToNextStep);
+ },
});
website.UrlParser = openerp.Class.extend({
@@ -162,21 +189,35 @@
this.origin = a.origin;
this.search = a.search;
this.hash = a.hash;
- this.addToSearch= function (query) {
+ function generateTrigger (id) {
+ return "tutorial."+id+"=true";
+ }
+ this.activateTutorial = function (id) {
+ var urlTrigger = generateTrigger(id);
var querystring = _.filter(this.search.split('?'), function (str) {
return str;
});
if (querystring.length > 0) {
- var queries = querystring[0].split("&");
- queries.push(query);
- return "?" + _.uniq(queries).join("&");
+ var queries = _.filter(querystring[0].split("&"), function (query) {
+ return query.indexOf("tutorial.") < 0
+ });
+ queries.push(urlTrigger);
+ return "?"+_.uniq(queries).join("&");
} else {
- return "?"+query;
+ return "?"+urlTrigger;
}
};
+ this.isActive = function (id) {
+ var urlTrigger = generateTrigger(id);
+ return this.search.indexOf(urlTrigger) >= 0;
+ };
},
});
+ var TestConsole = website.TestConsole = {
+ tests: []
+ };
+
website.EditorBar.include({
tours: [],
start: function () {
@@ -202,6 +243,24 @@
},
registerTour: function (tour) {
this.tours.push(tour);
+ TestConsole.tests.push({
+ id: tour.id,
+ run: function runTest () {
+ var actionSteps = _.filter(tour.steps, function (step) {
+ return step.triggers;
+ });
+ var currentIndex = 0;
+ function executeStep (step) {
+ var $element = $(step.element);
+ step.triggers(function () {
+ currentIndex = currentIndex + 1;
+ executeStep(actionSteps[currentIndex]);
+ });
+ $element.click();
+ }
+ executeStep(actionSteps[currentIndex]);
+ },
+ });
},
});
diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py
index 0e53809ae77..d38d110aac1 100644
--- a/addons/website_blog/controllers/main.py
+++ b/addons/website_blog/controllers/main.py
@@ -154,7 +154,7 @@ class WebsiteBlog(http.Controller):
@website.route([
'/blogpost//',
], type='http', auth="public", multilang=True)
- def blog_post(self, blog_post=None, tag=None, date=None, page=1, enable_editor=None):
+ def blog_post(self, blog_post, tag=None, date=None, page=1, enable_editor=None, **post):
""" Prepare all values to display the blog.
:param blog_post: blog post currently browsed. If not set, the user is
diff --git a/addons/website_blog/static/src/js/website.tour.blog.js b/addons/website_blog/static/src/js/website.tour.blog.js
index 2a7d3e69a47..989c4227a09 100644
--- a/addons/website_blog/static/src/js/website.tour.blog.js
+++ b/addons/website_blog/static/src/js/website.tour.blog.js
@@ -11,26 +11,25 @@
});
website.BlogTour = website.Tour.extend({
- id: 'blog-tutorial',
+ id: 'blog',
name: "Create a blog post",
init: function (editor) {
var self = this;
self.steps = [
{
stepId: 'welcome-blog',
- orphan: true,
- backdrop: true,
title: "New Blog Post",
content: "Let's go through the first steps to write beautiful blog posts.",
template: self.popover({ next: "Start Tutorial", end: "Skip" }),
+ backdrop: true,
},
{
stepId: 'content-menu',
element: '#content-menu-button',
placement: 'left',
- reflex: true,
title: "Add Content",
content: "Create new pages, blogs, menu items and products through the 'Content' menu.",
+ trigger: 'click',
},
{
stepId: 'new-post-entry',
@@ -38,9 +37,11 @@
placement: 'left',
title: "New Blog Post",
content: "Select this entry to create a new blog post.",
- modal: {
- stopOnClose: true,
- afterSubmit: 'post-page',
+ trigger: {
+ modal: {
+ stopOnClose: true,
+ afterSubmit: 'post-page',
+ },
},
},
{
@@ -49,15 +50,12 @@
placement: 'right',
title: "Which Blog?",
content: "Blog posts are organized in multiple categories (news, job offers, events, etc). Select News and click Continue.",
- triggers: function () {
- function newsSelected () {
- var $this = $(this);
- if ($this.find('[value='+$this.val()+']').text().toLowerCase() === 'news') {
- self.moveToNextStep();
- $('.modal select').off('change', newsSelected);
- }
- }
- $('.modal select').on('change', newsSelected);
+ trigger: {
+ emitter: $('.modal select'),
+ id: 'change',
+ predicate: function ($el, value) {
+ return $el.find('[value='+value+']').text().toLowerCase() === 'news';
+ },
},
},
{
@@ -69,7 +67,6 @@
},
{
stepId: 'post-page',
- orphan: true,
title: "Blog Post Created",
content: "This is your new blog post. We will edit your pages inline. What You See Is What You Get. No need for a complex backend.",
template: self.popover({ next: "Continue" }),
@@ -88,11 +85,7 @@
placement: 'bottom',
title: "Layout Your Blog Post",
content: "Use well designed building blocks to structure the content of your blog. Click 'Insert Blocks' to add new content.",
- triggers: function () {
- $('button[data-action=snippet]').one('click', function () {
- self.moveToNextStep();
- });
- },
+ trigger: 'click',
},
{
stepId: 'drag-image-text',
@@ -100,9 +93,7 @@
placement: 'bottom',
title: "Drag & Drop a Block",
content: "Drag the 'Image-Text' block and drop it in your page.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
+ trigger: 'drag',
},
{
stepId: 'add-text-block',
@@ -110,11 +101,7 @@
placement: 'bottom',
title: "Add Another Block",
content: "Let's add another block to your post.",
- triggers: function () {
- $('button[data-action=snippet]').on('click', function () {
- self.moveToNextStep();
- });
- }
+ trigger: 'click',
},
{
stepId: 'drag-text-block',
@@ -122,9 +109,7 @@
placement: 'bottom',
title: "Drag & Drop a block",
content: "Drag the 'Text Block' block and drop it below the image block.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
+ trigger: 'drag',
},
{
stepId: 'activate-text-block-title',
@@ -132,19 +117,15 @@
placement: 'top',
title: "Edit an Area",
content: "Select any area of the page to modify it. Click on this subtitle.",
- triggers: function () {
- $('#wrap [data-snippet-id=text-block] .text-center[data-snippet-id=colmd]').one('click', function () {
- self.moveToNextStep();
- });
- },
+ trigger: 'click',
},
{
stepId: 'remove-text-block-title',
element: '.oe_snippet_remove:last',
placement: 'top',
- reflex: true,
title: "Delete the Title",
content: "From this toolbar you can move, duplicate or delete the selected zone. Click on the cross to delete the title.",
+ trigger: 'click',
},
{
stepId: 'save-changes',
@@ -152,35 +133,26 @@
placement: 'right',
title: "Save Your Blog",
content: "Click the Save button to record changes on the page.",
- triggers: function () {
- var $publish = $('button.js_publish_btn');
- if ($publish.length > 0 && $publish.is(":visible")) {
- self.moveToNextStep();
- }
- },
+ trigger: 'click',
},
{
stepId: 'publish-post',
element: 'button.js_publish_btn',
placement: 'top',
- reflex: true,
title: "Publish Your Post",
content: "Your blog post is not yet published. You can update this draft version and publish it once you are ready.",
+ trigger: 'click',
},
{
stepId: 'end-tutorial',
- orphan: true,
- backdrop: true,
title: "Thanks!",
content: "This tutorial is finished. To discover more features, improve the content of this page and try the Promote button in the top right menu.",
template: self.popover({ end: "Close Tutorial" }),
+ backdrop: true,
},
];
return this._super();
},
- resume: function () {
- return (this.isCurrentStep('post-page') || this.isCurrentStep('save-changes')) && this._super();
- },
trigger: function () {
return (this.resume() && this.testUrl(/^\/blogpost\/[0-9]+\//)) || this._super();
},
diff --git a/addons/website_event/static/src/js/website.tour.event.js b/addons/website_event/static/src/js/website.tour.event.js
index 82728bf2ec9..b9a0c7045d2 100644
--- a/addons/website_event/static/src/js/website.tour.event.js
+++ b/addons/website_event/static/src/js/website.tour.event.js
@@ -11,26 +11,25 @@
});
website.EventTour = website.Tour.extend({
- id: 'event-tutorial',
+ id: 'event',
name: "Create an event",
init: function (editor) {
var self = this;
self.steps = [
{
stepId: 'welcome-event',
- orphan: true,
- backdrop: true,
title: "Create an Event",
content: "Let's go through the firsts step to publish a new event.",
template: self.popover({ next: "Start Tutorial", end: "Skip It" }),
+ backdrop: true,
},
{
stepId: 'content-menu',
element: '#content-menu-button',
placement: 'left',
- reflex: true,
title: "Add Content",
content: "The Content menu allows to create new pages, events, menus, etc.",
+ trigger: 'click',
},
{
stepId: 'new-post-entry',
@@ -38,9 +37,11 @@
placement: 'left',
title: "New Event",
content: "Click here to create a new event.",
- modal: {
- stopOnClose: true,
- afterSubmit: 'event-page',
+ trigger: {
+ modal: {
+ stopOnClose: true,
+ afterSubmit: 'event-page',
+ }
},
},
{
@@ -52,7 +53,6 @@
},
{
stepId: 'event-page',
- orphan: true,
title: "New Event Created",
content: "This is your new event page. We will edit the event presentation page.",
template: self.popover({ next: "OK" }),
@@ -71,11 +71,7 @@
placement: 'bottom',
title: "Layout your event",
content: "Insert blocks like 'Banner' to layout the body of your event.",
- triggers: function () {
- $('button[data-action=snippet]').one('click', function () {
- self.moveToNextStep();
- });
- },
+ trigger: 'click',
},
{
stepId: 'drag-banner',
@@ -83,9 +79,7 @@
placement: 'bottom',
title: "Drag & Drop a block",
content: "Drag the 'Banner' block and drop it in your page.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
+ trigger: 'drag',
},
{
stepId: 'add-text-block',
@@ -93,11 +87,7 @@
placement: 'bottom',
title: "Layout your event",
content: "Insert another block to your event.",
- triggers: function () {
- $('button[data-action=snippet]').one('click', function () {
- self.moveToNextStep();
- });
- },
+ trigger: 'click',
},
{
stepId: 'drag-text-block',
@@ -105,12 +95,7 @@
placement: 'bottom',
title: "Drag & Drop a block",
content: "Drag the 'Text Block' block below the banner.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
- onHide: function () {
- window.scrollTo(0, 0);
- },
+ trigger: 'drag',
},
{
stepId: 'add-three-columns',
@@ -118,11 +103,7 @@
placement: 'bottom',
title: "Layout your event",
content: "Insert a last block to your event.",
- triggers: function () {
- $('button[data-action=snippet]').one('click', function () {
- self.moveToNextStep();
- });
- },
+ trigger: 'click',
},
{
stepId: 'drag-three-columns',
@@ -130,12 +111,7 @@
placement: 'bottom',
title: "Drag & Drop a block",
content: "Drag the 'Three Columns' block at the bottom.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
- onHide: function () {
- window.scrollTo(0, 0);
- },
+ trigger: 'drag',
},
{
stepId: 'save-changes',
@@ -143,43 +119,35 @@
placement: 'right',
title: "Save your modifications",
content: "Once you click on save, your event is updated.",
- triggers: function () {
- var $publish = $('button.js_publish_btn');
- if ($publish.length > 0 && $publish.is(":visible")) {
- self.moveToNextStep();
- }
- },
+ trigger: 'click',
},
{
stepId: 'publish-event',
element: 'button.js_publish_btn',
placement: 'top',
- reflex: true,
title: "Publish your event",
content: "Click to publish your event.",
+ trigger: 'click',
},
{
stepId: 'customize-event',
element: '.js_publish_management button:last',
placement: 'left',
- reflex: true,
title: "Customize your event",
content: "Click here to customize your event further.",
+ trigger: 'click',
},
{
stepId: 'edit-event-backend',
element: '.js_publish_management ul>li>a',
placement: 'left',
- reflex: true,
title: "Customize your event",
content: "Click here to edit your event in the backend.",
+ trigger: 'click',
},
];
return this._super();
},
- resume: function () {
- return (this.isCurrentStep('event-page') || this.isCurrentStep('save-changes')) && this._super();
- },
trigger: function () {
return (this.resume() && this.testUrl(/^\/event\/[0-9]+\/register/)) || this._super();
},
diff --git a/addons/website_sale/static/src/js/website.tour.shop.js b/addons/website_sale/static/src/js/website.tour.shop.js
index a389b06f9ff..93eb3732cc5 100644
--- a/addons/website_sale/static/src/js/website.tour.shop.js
+++ b/addons/website_sale/static/src/js/website.tour.shop.js
@@ -11,26 +11,25 @@
});
website.EditorShopTour = website.Tour.extend({
- id: 'shop-tutorial',
+ id: 'shop',
name: "Create a product",
init: function (editor) {
var self = this;
self.steps = [
{
stepId: 'welcome-shop',
- orphan: true,
- backdrop: true,
title: "Welcome to your shop",
content: "You successfully installed the e-commerce. This guide will help you to create your product and promote your sales.",
template: self.popover({ next: "Start Tutorial", end: "Skip It" }),
+ backdrop: true,
},
{
stepId: 'content-menu',
element: '#content-menu-button',
placement: 'left',
- reflex: true,
title: "Create your first product",
content: "Click here to add a new product.",
+ trigger: 'click',
},
{
stepId: 'edit-entry',
@@ -53,11 +52,10 @@
},
{
stepId: 'product-page',
- orphan: true,
- backdrop: true,
title: "New product created",
content: "This page contains all the information related to the new product.",
template: self.popover({ next: "OK" }),
+ backdrop: true,
},
{
stepId: 'edit-price',
@@ -110,11 +108,7 @@
placement: 'bottom',
title: "Describe the product for your audience",
content: "Insert blocks like text-image, or gallery to fully describe the product and make your visitors want to buy this product.",
- triggers: function () {
- $('button[data-action=snippet]').one('click', function () {
- self.moveToNextStep();
- });
- },
+ trigger: 'click',
},
{
stepId: 'drag-big-picture',
@@ -122,9 +116,7 @@
placement: 'bottom',
title: "Drag & Drop a block",
content: "Drag the 'Big Picture' block and drop it in your page.",
- triggers: function () {
- self.onSnippetDraggedAdvance();
- },
+ trigger: 'drag',
},
{
stepId: 'save-changes',
@@ -132,28 +124,20 @@
placement: 'right',
title: "Save your modifications",
content: "Once you click on save, your product is updated.",
- triggers: function () {
- var $publish = $('button.js_publish_btn');
- if ($publish.length > 0 && $publish.is(":visible")) {
- self.moveToNextStep();
- }
- },
+ trigger: 'click',
},
{
stepId: 'publish-product',
element: 'button.js_publish_btn',
placement: 'top',
- reflex: true,
title: "Publish your product",
content: "Click to publish your product so your customers can see it.",
+ trigger: 'click',
},
];
return this._super();
},
- resume: function () {
- return (this.isCurrentStep('product-page') || this.isCurrentStep('save-changes')) && this._super();
- },
trigger: function () {
return (this.resume() && this.testUrl(/^\/shop\/product\/[0-9]+\//)) || this._super();
},