218 lines
9.0 KiB
JavaScript
218 lines
9.0 KiB
JavaScript
/** @odoo-module */
|
|
|
|
import wTourUtils from '@website/js/tours/tour_utils';
|
|
|
|
// TODO: Remove following steps once fix of task-3212519 is done.
|
|
// Those steps are preventing a race condition to happen in the meantime: when
|
|
// the tour was clicking on the toggle to hide facebook in the next step, it
|
|
// would actually "ignore" the result of the click on the toggle and would just
|
|
// consider the action of focusing out the input.
|
|
const socialRaceConditionClass = 'social_media_race_condition';
|
|
const preventRaceConditionStep = [{
|
|
content: "Wait a few ms to avoid race condition",
|
|
// Ensure the class is remove from previous call of those steps
|
|
extra_trigger: `body:not(.${socialRaceConditionClass})`,
|
|
trigger: 'iframe .s_social_media',
|
|
run() {
|
|
setTimeout(() => {
|
|
document.body.classList.add(socialRaceConditionClass);
|
|
}, 500);
|
|
}
|
|
}, {
|
|
content: "Check the race condition class is added after a few ms",
|
|
trigger: `body.${socialRaceConditionClass}`,
|
|
run() {
|
|
document.body.classList.remove(socialRaceConditionClass);
|
|
}
|
|
}];
|
|
|
|
const replaceIconByImage = function (url) {
|
|
return [{
|
|
content: "Replace the icon by an image",
|
|
trigger: `iframe .s_social_media a[href='${url}'] i.fa`,
|
|
run: "dblclick",
|
|
},
|
|
{
|
|
content: "Go to the Images tab in the media dialog",
|
|
trigger: ".o_select_media_dialog .o_notebook_headers .nav-item a:contains('Images')",
|
|
},
|
|
{
|
|
content: "Select the image",
|
|
trigger: ".o_select_media_dialog img[title='s_banner_default_image.jpg']",
|
|
},
|
|
...preventRaceConditionStep,
|
|
];
|
|
};
|
|
|
|
const addNewSocialNetwork = function (optionIndex, linkIndex, url, replaceIcon = false) {
|
|
const replaceIconByImageSteps = replaceIcon ? replaceIconByImage("https://www.example.com") : [];
|
|
return [{
|
|
content: "Click on Add New Social Network",
|
|
trigger: 'we-list we-button.o_we_list_add_optional',
|
|
},
|
|
{
|
|
content: "Ensure new option is found",
|
|
trigger: `we-list table input:eq(${optionIndex})[data-list-position=${optionIndex}][data-dom-position=${linkIndex}][data-undeletable=false]`,
|
|
run: () => {}, // This is a check.
|
|
},
|
|
{
|
|
content: "Ensure new link is found",
|
|
trigger: `iframe .s_social_media:has(a:eq(${linkIndex})[href='https://www.example.com'])`,
|
|
run: () => {}, // This is a check.
|
|
},
|
|
...replaceIconByImageSteps,
|
|
{
|
|
content: "Change added Option label",
|
|
trigger: `we-list table input:eq(${optionIndex})`,
|
|
run: `text_blur ${url}`,
|
|
},
|
|
{
|
|
content: "Ensure new link is changed",
|
|
trigger: `iframe .s_social_media:has(a:eq(${linkIndex})[href='${url}'])`,
|
|
run: () => {}, // This is a check.
|
|
},
|
|
...preventRaceConditionStep,
|
|
];
|
|
};
|
|
|
|
wTourUtils.registerWebsitePreviewTour('snippet_social_media', {
|
|
test: true,
|
|
url: '/',
|
|
edition: true,
|
|
}, () => [
|
|
wTourUtils.dragNDrop({id: 's_social_media', name: 'Social Media'}),
|
|
wTourUtils.clickOnSnippet({id: 's_social_media', name: 'Social Media'}),
|
|
...addNewSocialNetwork(7, 7, 'https://www.youtu.be/y7TlnAv6cto'),
|
|
{
|
|
content: 'Click on the toggle to hide Facebook',
|
|
trigger: 'we-list table we-button.o_we_user_value_widget',
|
|
run: 'click',
|
|
},
|
|
{
|
|
content: "Ensure twitter became first",
|
|
trigger: 'iframe .s_social_media:has(a:eq(0)[href="/website/social/twitter"])',
|
|
run: () => {}, // This is a check.
|
|
},
|
|
{
|
|
content: 'Drag the facebook link at the end of the list',
|
|
trigger: 'we-list table we-button.o_we_drag_handle',
|
|
position: 'bottom',
|
|
run: "drag_and_drop_native we-list table tr:last-child",
|
|
},
|
|
{
|
|
content: 'Check drop completed',
|
|
trigger: 'we-list table input:eq(7)[data-media="facebook"]',
|
|
run: () => {}, // This is a check.
|
|
},
|
|
...preventRaceConditionStep,
|
|
// Create a Link for which we don't have an icon to propose.
|
|
...addNewSocialNetwork(8, 7, 'https://whatever.it/1EdSw9X'),
|
|
// Create a custom instagram link.
|
|
...addNewSocialNetwork(9, 8, 'https://instagr.am/odoo.official/'),
|
|
{
|
|
content: "Check if the result is correct before removing",
|
|
trigger: "iframe .s_social_media" +
|
|
":has(a:eq(0)[href='/website/social/twitter'])" +
|
|
":has(a:eq(1)[href='/website/social/linkedin'])" +
|
|
":has(a:eq(2)[href='/website/social/youtube'])" +
|
|
":has(a:eq(3)[href='/website/social/instagram'])" +
|
|
":has(a:eq(4)[href='/website/social/github'])" +
|
|
":has(a:eq(5)[href='/website/social/tiktok'])" +
|
|
":has(a:eq(6)[href='https://www.youtu.be/y7TlnAv6cto']:has(i.fa-youtube))" +
|
|
":has(a:eq(7)[href='https://whatever.it/1EdSw9X']:has(i.fa-pencil))" +
|
|
":has(a:eq(8)[href='https://instagr.am/odoo.official/']:has(i.fa-instagram))",
|
|
run: () => {}, // This is a check.
|
|
},
|
|
// Create a custom link, not officially supported, ensure icon is found.
|
|
{
|
|
content: 'Change custom social to unsupported link',
|
|
trigger: 'we-list table input:eq(6)',
|
|
run: 'text_blur https://www.paypal.com/abc',
|
|
},
|
|
{
|
|
content: "Ensure paypal icon is found",
|
|
trigger: "iframe .s_social_media" +
|
|
":has(a:eq(6)[href='https://www.paypal.com/abc']:has(i.fa-paypal))",
|
|
run: () => {}, // This is a check.
|
|
},
|
|
...preventRaceConditionStep,
|
|
{
|
|
content: 'Delete the custom link',
|
|
trigger: 'we-list we-button.o_we_select_remove_option',
|
|
run: 'click',
|
|
},
|
|
{
|
|
content: "Ensure custom link was removed",
|
|
trigger: 'iframe .s_social_media:has(a:eq(6)[href="https://whatever.it/1EdSw9X"]:has(i.fa-pencil))',
|
|
run: () => {}, // This is a check.
|
|
},
|
|
{
|
|
content: 'Click on the toggle to show Facebook',
|
|
trigger: 'we-list table we-button.o_we_user_value_widget:not(.active)',
|
|
run: 'click',
|
|
},
|
|
{
|
|
content: "Check if the result is correct after removing",
|
|
trigger: "iframe .s_social_media" +
|
|
":has(a:eq(0)[href='/website/social/twitter'])" +
|
|
":has(a:eq(1)[href='/website/social/linkedin'])" +
|
|
":has(a:eq(2)[href='/website/social/youtube'])" +
|
|
":has(a:eq(3)[href='/website/social/instagram'])" +
|
|
":has(a:eq(4)[href='/website/social/github'])" +
|
|
":has(a:eq(5)[href='/website/social/tiktok'])" +
|
|
":has(a:eq(6)[href='/website/social/facebook'])" +
|
|
":has(a:eq(7)[href='https://whatever.it/1EdSw9X']:has(i.fa-pencil))" +
|
|
":has(a:eq(8)[href='https://instagr.am/odoo.official/']:has(i.fa-instagram))",
|
|
run: () => {}, // This is a check.
|
|
},
|
|
{
|
|
content: 'Change url of the DB instagram link',
|
|
trigger: 'we-list table input:eq(3)',
|
|
run: 'text_blur https://instagram.com/odoo.official/',
|
|
},
|
|
...wTourUtils.clickOnSave(),
|
|
...wTourUtils.clickOnEditAndWaitEditMode(),
|
|
wTourUtils.clickOnSnippet({
|
|
id: 's_social_media',
|
|
name: 'Social Media',
|
|
}),
|
|
{
|
|
content: "Check if we can still change custom icons",
|
|
trigger: 'iframe .s_social_media a[href="https://whatever.it/1EdSw9X"] i.fa-pencil',
|
|
run: 'dblclick',
|
|
},
|
|
{
|
|
content: "Select a new icon",
|
|
trigger: '.o_select_media_dialog .fa-heart',
|
|
},
|
|
{
|
|
content: "Check if the result is correct after setting the icon",
|
|
trigger: "iframe .s_social_media" +
|
|
":has(a:eq(0)[href='/website/social/twitter'])" +
|
|
":has(a:eq(1)[href='/website/social/linkedin'])" +
|
|
":has(a:eq(2)[href='/website/social/youtube'])" +
|
|
":has(a:eq(3)[href='/website/social/instagram'])" +
|
|
":has(a:eq(4)[href='/website/social/github'])" +
|
|
":has(a:eq(5)[href='/website/social/tiktok'])" +
|
|
":has(a:eq(6)[href='/website/social/facebook'])" +
|
|
":has(a:eq(7)[href='https://whatever.it/1EdSw9X']:has(i.fa-heart))" +
|
|
":has(a:eq(8)[href='https://instagr.am/odoo.official/']:has(i.fa-instagram))",
|
|
isCheck: true,
|
|
},
|
|
// Create a social network but replace its icon by an image before setting
|
|
// the link (`replaceIcon` parameter set to `true`).
|
|
...addNewSocialNetwork(9, 9, "https://google.com", true),
|
|
// Create a social network after replacing the first icon by an image.
|
|
...replaceIconByImage("/website/social/twitter"),
|
|
...addNewSocialNetwork(10, 10, "https://facebook.com"),
|
|
{
|
|
content: "Check if the result is correct after adding images",
|
|
trigger: "iframe .s_social_media" +
|
|
":has(a:eq(0)[href='/website/social/twitter']:has(img))" +
|
|
":has(a:eq(9)[href='https://google.com']:has(img))" +
|
|
":has(a:eq(10)[href='https://facebook.com']:has(img))",
|
|
run: () => {}, // This is a check.
|
|
},
|
|
...wTourUtils.clickOnSave(),
|
|
]);
|