summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/tours
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2017-06-07 17:45:15 +0200
committerqsm-odoo <qsm@odoo.com>2017-08-16 10:59:39 +0200
commit4f925af06fd3cebfcfb56eb947ab68c8a2ca4490 (patch)
treeb13bd049b6b3e7bbdfb537d19b53c95fc4025ea5 /addons/website/static/src/js/tours
parentf205bfcd4ddcf3f1d8676ee87ee0b29941bd6773 (diff)
[MOV] web_editor, website: reorganize files
Diffstat (limited to 'addons/website/static/src/js/tours')
-rw-r--r--addons/website/static/src/js/tours/banner.js81
-rw-r--r--addons/website/static/src/js/tours/rte.js159
2 files changed, 240 insertions, 0 deletions
diff --git a/addons/website/static/src/js/tours/banner.js b/addons/website/static/src/js/tours/banner.js
new file mode 100644
index 00000000000..8c61c78a5ab
--- /dev/null
+++ b/addons/website/static/src/js/tours/banner.js
@@ -0,0 +1,81 @@
+odoo.define("website.tour.banner", function (require) {
+ "use strict";
+
+ var core = require("web.core");
+ var tour = require("web_tour.tour");
+ var base = require("web_editor.base");
+
+ var _t = core._t;
+
+ tour.register("banner", {
+ url: "/",
+ wait_for: base.ready(),
+ }, [{
+ trigger: "a[data-action=edit]",
+ content: _t("<b>Click Edit</b> to start designing your homepage."),
+ extra_trigger: ".homepage",
+ position: "bottom",
+ }, {
+ trigger: "#snippet_structure .oe_snippet:eq(1) .oe_snippet_thumbnail",
+ content: _t("Drag the <i>Cover</i> block and drop it in your page."),
+ position: "bottom",
+ run: "drag_and_drop",
+ }, {
+ trigger: "#wrapwrap .s_text_block_image_fw h2",
+ content: _t("<b>Click on a text</b> to start editing it. <i>It's that easy to edit your content!</i>"),
+ position: "left",
+ width: 150,
+ run: "text",
+ }, {
+ trigger: ".oe_overlay_options .oe_options",
+ extra_trigger: "#wrapwrap .s_text_block_image_fw h2:not(:containsExact(\"Headline\"))",
+ content: _t("Customize any block through this menu. Try to change the background of the banner."),
+ position: "bottom",
+ }, {
+ trigger: "#snippet_structure .oe_snippet:eq(3) .oe_snippet_thumbnail",
+ content: _t("Drag another block in your page, below the cover."),
+ position: "bottom",
+ run: "drag_and_drop",
+ }, {
+ trigger: "button[data-action=save]",
+ extra_trigger: ".oe_overlay_options .oe_options",
+ content: _t("Publish your page by clicking on the <b>Save</b> button."),
+ position: "bottom",
+ }, {
+ trigger: "a[data-action=show-mobile-preview]",
+ content: _t("Good Job! You created your first page. Let's check how this page looks like on <b>mobile devices</b>."),
+ position: "bottom",
+ }, {
+ trigger: ".modal-dialog:has(#mobile-viewport) button[data-dismiss=modal]",
+ content: _t("After having checked how it looks on mobile, <b>close the preview</b>."),
+ position: "right",
+ }, {
+ trigger: "#oe_main_menu_navbar a[data-action=new_page]",
+ content: _t("<p><b>That's it.</b> Your homepage is live.</p><p>Continue adding more pages to your site or edit this page to make it even more awesome.</p>"),
+ position: "bottom",
+ }]);
+});
+
+
+odoo.define("website.tour.contact", function (require) {
+ "use strict";
+
+ var core = require("web.core");
+ var tour = require("web_tour.tour");
+ var base = require("web_editor.base");
+ var _t = core._t;
+
+ tour.register("contact", {
+ url: "/page/contactus",
+ wait_for: base.ready(),
+ }, [{
+ trigger: "li#customize-menu",
+ content: _t("<b>Install a contact form</b> to improve this page."),
+ extra_trigger: "#o_contact_mail",
+ position: "bottom",
+ }, {
+ trigger: "li#install_apps",
+ content: _t("<b>Install new apps</b> to get more features. Let's install the <i>'Contact form'</i> app."),
+ position: "bottom",
+ }]);
+});
diff --git a/addons/website/static/src/js/tours/rte.js b/addons/website/static/src/js/tours/rte.js
new file mode 100644
index 00000000000..d428c46fa7f
--- /dev/null
+++ b/addons/website/static/src/js/tours/rte.js
@@ -0,0 +1,159 @@
+odoo.define('website.tour.rte', function (require) {
+'use strict';
+
+var tour = require("web_tour.tour");
+var base = require("web_editor.base");
+
+tour.register('rte_translator', {
+ test: true,
+ wait_for: base.ready()
+},
+ [
+ {
+ content: "click on Add a language",
+ trigger: '.js_language_selector a:has(i.fa)',
+ }, {
+ content: "select french",
+ trigger: 'select[name="lang"]',
+ run: 'text "fr_BE"',
+ }, {
+ content: "load french",
+ trigger: '.modal-footer button:first',
+ extra_trigger: '.modal select[name="lang"]:propValueContains(fr_BE)',
+ }, {
+ content: "go to english version",
+ trigger: '.js_language_selector a[data-lang="en_US"]',
+ extra_trigger: 'html[lang*="fr"]',
+ timeout: 60000,
+ }, {
+ content: "Open new page menu",
+ trigger: '#oe_main_menu_navbar a[data-action=new_page]',
+ extra_trigger: 'a[data-action="edit"]',
+ }, {
+ content: "click on new page",
+ trigger: 'a[data-action="new_page"]',
+ }, {
+ content: "insert page name",
+ trigger: '#editor_new_page input[type="text"]',
+ run: 'text rte_translator',
+ }, {
+ content: "create page",
+ trigger: 'button.btn-continue',
+ extra_trigger: 'input[type="text"]:propValue(rte_translator)',
+ }, {
+ content: "drop a snippet",
+ trigger: "#snippet_structure .oe_snippet:eq(1) .oe_snippet_thumbnail",
+ run: 'drag_and_drop',
+ }, {
+ content: "change content",
+ trigger: '.oe_overlay_options .oe_options:visible',
+ run: function () {
+ $("#wrap p:first").replaceWith('<p>Write one or <font style="background-color: yellow;">two paragraphs <b>describing</b></font> your product or\
+ <font style="color: rgb(255, 0, 0);">services</font>. To be successful your content needs to be\
+ useful to your <a href="/999">readers</a>.</p> <input placeholder="test translate placeholder"/>\
+ <p>&lt;b&gt;&lt;/b&gt; is an HTML&nbsp;tag &amp; is empty</p>');
+ $("#wrap img").attr("title", "test translate image title");
+ }
+ }, {
+ content: "save",
+ trigger: 'button[data-action=save]',
+ extra_trigger: '#wrap p:first b',
+ }, {
+ content: "click on french version",
+ trigger: '.js_language_selector a[data-lang="fr_BE"]',
+ extra_trigger: 'html[lang*="en"]:not(:has(button[data-action=save]))',
+ }, {
+ content: "translate",
+ trigger: 'html:not(:has(#wrap p span)) .o_menu_systray a[data-action="translate"]',
+ }, {
+ content: "close modal",
+ trigger: 'button[data-action="activate"]',
+ }, {
+ content: "check if translation is activate",
+ trigger: '[data-oe-translation-id]',
+ }, {
+ content: "translate text",
+ trigger: '#wrap p font:first',
+ run: function (action_helper) {
+ action_helper.text('translated french text');
+ this.$anchor.trigger('keydown');
+ },
+ }, {
+ content: "translate text with special char",
+ trigger: '#wrap input + p span:first',
+ run: function (action_helper) {
+ action_helper.click();
+ this.$anchor.prepend('&lt;{translated}&gt;').trigger('keydown');
+ },
+ }, {
+ content: "click on input",
+ trigger: 'input:first',
+ extra_trigger: '#wrap .o_dirty font:first:contains(translated french text)',
+ run: 'click',
+ }, {
+ content: "translate placeholder",
+ trigger: 'input:first',
+ run: 'text test french placeholder',
+ }, {
+ content: "close modal",
+ trigger: 'button.o_save_button',
+ extra_trigger: '.modal input:propValue(test french placeholder)',
+ }, {
+ content: "save translation",
+ trigger: 'button[data-action=save]',
+ }, {
+ content: "check: content is translated",
+ trigger: '#wrap p font:first:contains(translated french text)',
+ run: function () {}, // it's a check
+ }, {
+ content: "check: content with special char is translated",
+ trigger: "#wrap input + p:contains(<{translated}><b></b> is an HTML\xa0tag & )",
+ run: function () {}, // it's a check
+
+ }, {
+ content: "check: placeholder translation",
+ trigger: 'input[placeholder="test french placeholder"]',
+ run: function () {}, // it's a check
+ }, {
+ content: "return to english version",
+ trigger: '.js_language_selector a[data-lang="en_US"]',
+ extra_trigger: 'html[lang*="fr"]:not(:has(#wrap p span))',
+ }, {
+ content: "edit english version",
+ trigger: 'a[data-action=edit]',
+ extra_trigger: 'body:not(:has(#wrap p font:first:containsExact(paragraphs <b>describing</b>)))',
+ }, {
+ content: "select text",
+ extra_trigger: 'button[data-action=save]',
+ trigger: '#wrap p',
+ run: function (action_helper) {
+ action_helper.click();
+ var el = this.$anchor[0];
+ var evt = document.createEvent("MouseEvents");
+ $.summernote.core.range.create(el.childNodes[2], 6, el.childNodes[2], 13).select();
+ evt.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, el);
+ el.dispatchEvent(evt);
+ },
+ }, {
+ content: "underline",
+ trigger: '.note-air-popover button[data-event="underline"]',
+ }, {
+ content: "save new change",
+ trigger: 'button[data-action=save]',
+ extra_trigger: '#wrap p u',
+ }, {
+ content: "return in french",
+ trigger: 'html[lang="en-US"] .js_language_selector a[data-lang="fr_BE"]',
+ extra_trigger: 'html[lang*="en"]:not(:has(button[data-action=save]))',
+ }, {
+ content: "check bis: content is translated",
+ trigger: '#wrap p font:first:contains(translated french text)',
+ extra_trigger: 'body:not(:has(button[data-action=save]))',
+ }, {
+ content: "check bis: placeholder translation",
+ trigger: 'input[placeholder="test french placeholder"]',
+ },
+ ]
+);
+
+});