Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master snippet options owl bso #3299

Draft
wants to merge 112 commits into
base: master-snippet-options-owl-ard
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
5fb5de8
[REF] web_editor: move SnippetOptionWidget into legacy file
detrouxdev Apr 8, 2024
0b4d6d1
[REF] web_editor: convert SnippetOption widget to an ES6 class
detrouxdev Apr 8, 2024
661d5fd
[REF] web_editor: convert UserValueWidget and <we-button> to OWL
detrouxdev Apr 24, 2024
0369fbf
[REF] web_editor: convert <we-select> to OWL
detrouxdev Apr 24, 2024
6102422
[REF] web_editor: add WeButtonGroup component
detrouxdev May 8, 2024
bac3ebc
[WIP] web_editor: add tooltips on buttons
detrouxdev May 8, 2024
fdfd1b3
[REF] web_editor: Convert column width to new Owl option
detrouxdev May 8, 2024
66c96fb
[REF] web_editor: adapt Unit & Input user value widget to Owl
bso-odoo Apr 26, 2024
259a370
[REF] web_editor: convert we-datetimepicker to OWL
bso-odoo May 15, 2024
b0b52aa
[REF] web_editor: convert we-row to OWL
detrouxdev May 16, 2024
835e581
[REF] web_editor: add WeTitle component
robinlej Aug 1, 2024
6f5a802
[REF] web_editor, website: convert column and grid option to OWL
detrouxdev May 21, 2024
91a43b2
[REF] web_editor: convert ColorpickerUserValueWidget to OWL
detrouxdev Jun 4, 2024
bdf273b
[WIP] web_editor: convert Mediapicker widget to OWL
robinlej May 7, 2024
66577ca
[IMP] web_editor: convert Range widget to Owl
bso-odoo May 2, 2024
cc85af4
[IMP] website: convert UrlPicker widget to Owl
bso-odoo May 6, 2024
99a9593
[REF] web_editor: convert we-checkbox to Owl
bso-odoo Jun 3, 2024
476a963
[REF] website: convert SnippetOption website patch
bso-odoo Jun 4, 2024
57e093d
[REF] web_editor: convert MultiUserValueWidget to Owl
bso-odoo Jun 10, 2024
7c9cf16
[REF] website: convert s_facebook_page options to Owl
agau-odoo Jun 20, 2024
a475943
[REF] website: convert s_image options to Owl
agau-odoo Jun 20, 2024
160ee60
[REF] web_editor: allow asynchronous start on UserValue
bso-odoo Jun 5, 2024
4ee4096
[REF] website: convert GPSPicker to Owl
bso-odoo May 29, 2024
d674f9f
[REF] website: convert s_google_map options
bso-odoo Jun 3, 2024
390b007
[REF] convert WeFontFamilyPicker to Owl
bso-odoo Jun 6, 2024
e4de5f1
[REF] website: convert s_instagram_page options to Owl
agau-odoo Jun 20, 2024
bac452b
[REF] website: convert s_map options to Owl
agau-odoo Jun 20, 2024
94371df
[MOV] web: move camelToKebab to strings utils
robinlej Jun 25, 2024
65dcedf
[REF] web_editor: convert ListUserValueWidget to OWL
robinlej May 27, 2024
8c0f4bb
[REF] web_editor: show widget components by default
robinlej Jun 11, 2024
84c5aff
[REF] web_editor, website: convert Many2oneUserValueWidget to OWL
robinlej Jun 7, 2024
46267d8
[REF] website: convert s_embed_code options to OWL
robinlej Jun 20, 2024
3216ca6
[REF] web_editor: convert "cover_update" trigger_up
robinlej Jun 25, 2024
1bd3554
[REF] (temp) website: use env in utils instead of trigger_up
robinlej Jun 26, 2024
548fde5
[REF] web_editor: convert option_update trigger_up to notifyOptions
robinlej Jun 28, 2024
5dea23a
[REF] web_editor, *: introduce a register mechanism for options
detrouxdev Jul 3, 2024
b1918da
[REF] web_editor, website: adapt background options to OWL
detrouxdev Jul 3, 2024
389c3e5
[REF] web_editor: add isElementSelected to subEnv
robinlej Jun 28, 2024
124c26f
[REF] website: convert s_blockquote options to Owl
bso-odoo Jul 4, 2024
1707933
[REF] website: convert vertical alignment option
bso-odoo Jun 12, 2024
f788525
[REF] website: convert card color/border/shadow options to Owl
bso-odoo Jun 13, 2024
e80997f
[REF] website: convert horizontal alignment options to Owl
bso-odoo Jun 13, 2024
86e26be
[REF] website: convert share/social option to Owl
bso-odoo Jun 13, 2024
831a1b9
[FIX] web_editor: delay OWL updateUI until after postSnippetDrop promise
detrouxdev Jul 5, 2024
540db97
[FIX] web_editor, website: fix tours with OWL options
detrouxdev Jul 8, 2024
3ea0730
[REF] website: remove old exports
detrouxdev Jul 8, 2024
8322e5b
[WIP][FIX] website: attempt to fix a tour
detrouxdev Jul 8, 2024
4fe4219
[WIP] web_editor: attempt at improving performance of tours
detrouxdev Jul 10, 2024
c32cdbb
[REF] website: convert s_countdown options to Owl
bso-odoo Jun 18, 2024
c67ce1c
[REF] website: convert s_media_list options to Owl
bso-odoo Jun 27, 2024
37f13b4
[REF] website: add only coulumn option
detrouxdev Jul 11, 2024
5c07f5b
[REF] website: convert s_process_steps options to Owl
bso-odoo Jun 27, 2024
725772e
[REF] website: convert GalleryImage options to OWL
robinlej Jun 25, 2024
f8ec375
[IMP] web_editor: add static defaultRenderingComponent to SnippetOpti…
agau-odoo Jun 27, 2024
cda4955
[REF] web_editor: add updateSnippetOptionVisibility to SnippetEditor …
robinlej Jun 28, 2024
b9bbaa3
[REF] website, web_editor: convert DeviceVisibility and ConditionalVi…
robinlej Jun 28, 2024
ebdd8f4
[REF] web_editor, *: refactor serviceCached to work with any services
detrouxdev Jul 16, 2024
c813146
[REF] website: convert SocialMedia options to OWL
robinlej Jul 1, 2024
397c6a2
[REF] website_sale: convert s_add_to_cart option to OWL
robinlej Jul 2, 2024
965d15a
[REF] website_mail_group: convert s_group options to OWL
robinlej Jul 3, 2024
97647a2
[REF] web_editor: hide editors for users not in group
robinlej Jul 4, 2024
595f445
[REF] web_editor: provide a way to display Owl options in overlay
bso-odoo Jun 27, 2024
351efbd
[REF] web_editor, website: convert SnippetMove options to Owl
bso-odoo Jun 27, 2024
08b7c1d
[REF] website: convert s_product_catalog options to Owl
bso-odoo Jun 27, 2024
f2c9ae6
[REF] website: convert s_progress_bar option to Owl
bso-odoo Jul 1, 2024
14d19b0
[REF] web_editor, website: convert s_chart to Owl
bso-odoo Jun 12, 2024
6b0b66d
[REF] website, *: convert dynamic snippet options to Owl
bso-odoo Jun 18, 2024
32b7ee6
[REM] website: s_progress_bar already in so_content_addition
bso-odoo Jul 1, 2024
7ef0f30
[REF] website: convert s_showcase option to Owl
bso-odoo Jul 1, 2024
d8c42ef
[REF] web_editor: support isTopOption in Owl snippet options
bso-odoo Jul 1, 2024
a177a10
[REF] website: convert s_tabs option to Owl
bso-odoo Jul 1, 2024
e832d2d
[REF] website: convert s_timeline option to Owl
bso-odoo Jul 1, 2024
b0a048a
[REF] web_editor: support naming editor block with data.string
bso-odoo Jul 2, 2024
dec2389
[REF] website: convert s_website_controller_page_listing to Owl
bso-odoo Jul 1, 2024
a094064
[REF] website, web_editor: Carousel, CarouselItem, GalleryElement
robinlej Jul 5, 2024
c9150b9
[REF] web_editor: convert SelectTemplate option to Owl
agau-odoo Jun 26, 2024
b5098a2
[REF] web_editor: convert s_masonry_block options to Owl
agau-odoo Jun 26, 2024
6e5a9ff
[IMP] web_editor: use forceNoDeleteButton in owl options
agau-odoo Jul 1, 2024
cf14b7b
[REF] web_editor, website: convert MegaMenuLayout options to owl
agau-odoo Jun 26, 2024
554bae5
[WIP] web_editor: disable test_options
detrouxdev Jul 23, 2024
5beda1a
[REF] website_payment, *: convert s_donation options to OWL
robinlej Jul 3, 2024
b7dab7d
[REF] website: convert s_rating option to Owl
bso-odoo Jul 1, 2024
67342bd
[REF] web_editor, website: convert s_website_form options to Owl
bso-odoo Jul 2, 2024
0565709
[WIP] disable legacy options and keep editors in DOM
detrouxdev Aug 6, 2024
1ea9cc1
[WIP] fixup! [REF] web_editor, website: convert s_website_form option…
detrouxdev Aug 6, 2024
0b118a4
[REF] web_editor, website: convert GridColumns option to Owl
bso-odoo Jul 12, 2024
1758fab
!fixup WeUrlPicker
bso-odoo Jul 15, 2024
e355974
fixup! [IMP] website: convert UrlPicker widget to Owl
robinlej Aug 2, 2024
6767bbd
[REF] web_editor, website, website_sale: convert ReplaceMedia
bso-odoo Jul 12, 2024
771e2b3
[REF] web_editor: convert VersionControl option to Owl
bso-odoo Jul 15, 2024
de845fa
[REF] web_editor, website: convert SaveSnippet option to Owl
bso-odoo Jul 15, 2024
11d04bf
[REF] web_editor: convert DynamicSvg option to Owl
bso-odoo Jul 15, 2024
92c412f
[REF] website: convert SwitchableViews option to Owl
bso-odoo Jul 16, 2024
3899120
[REF] web_editor: convert WeCollapse to Owl
bso-odoo Jul 19, 2024
de49238
!fixup media picker
bso-odoo Jul 22, 2024
fb92f9f
!fixup GPSPicker def keyreq
bso-odoo Aug 1, 2024
2b96f0c
!fixup s_google_map req call gmap
bso-odoo Aug 1, 2024
fb00480
[REF] web_editor, website: convert WebsiteLevelColor option to owl
bso-odoo Jul 16, 2024
f05025b
[REF] website: convert Accordion option to Owl
bso-odoo Jul 24, 2024
fcd4d0b
[REF] website: convert GridImage option to Owl
bso-odoo Jul 24, 2024
d8f4467
[REF] website: convert Button option to Owl
bso-odoo Jul 24, 2024
7b1eaa4
[REF] website, website_blog: convert CoverProperties option to Owl
bso-odoo Jul 24, 2024
cda91b7
[REF] website_blog: convert Blog tags and page options to Owl
bso-odoo Jul 30, 2024
7762e27
!fixup website_form
bso-odoo Jul 30, 2024
1f7364b
!fixup timeline
bso-odoo Jul 30, 2024
fa5afa9
!fixup website level color
bso-odoo Jul 30, 2024
5ed4465
[REF] website_event[_meet]: convert Event (and meet) page options to Owl
bso-odoo Jul 30, 2024
7ab66fb
[REF] mass_mailing: only show mass_mailing and web_editor options
agau-odoo Jul 26, 2024
3de47f4
[REF] mass_mailing: convert DesignTab to Owl
bso-odoo Aug 1, 2024
0bf486e
!fixup website form repair layout
bso-odoo Aug 8, 2024
6e2ed8b
!fixup website form required field message
bso-odoo Aug 8, 2024
8ccb787
!fixup WeOverlay
bso-odoo Aug 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions addons/mass_mailing/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@
'mass_mailing.assets_snippets_menu': [
('include', 'web_editor.assets_snippets_menu'),
'mass_mailing/static/src/js/snippets.editor.js',
'mass_mailing/static/src/js/snippets.registry.js',
'mass_mailing/static/src/js/design_tab.xml',
'mass_mailing/static/src/xml/mass_mailing.editor.xml',
],
'web.assets_frontend': [
Expand Down
313 changes: 313 additions & 0 deletions addons/mass_mailing/static/src/js/design_tab.xml

Large diffs are not rendered by default.

79 changes: 43 additions & 36 deletions addons/mass_mailing/static/src/js/mass_mailing_snippets.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/** @odoo-module **/

import options from "@web_editor/js/editor/snippets.options";
import { registry } from "@web/core/registry";
import options from "@web_editor/js/editor/snippets.options.legacy";
import { loadImage } from "@web_editor/js/editor/image_processing";
const SelectUserValueWidget = options.userValueWidgetsRegistry['we-select'];
import weUtils from "@web_editor/js/common/utils";
Expand All @@ -11,7 +12,12 @@ import {
transformFontFamilySelector,
} from "@mass_mailing/js/mass_mailing_design_constants";
import { isCSSColor, normalizeCSSColor } from "@web/core/utils/colors";

import {
SnippetOption,
WeButton,
WeSelect,
} from "@web_editor/js/editor/snippets.options";
import { registerMassMailingOption } from "./snippets.registry";

//--------------------------------------------------------------------------
// Options
Expand Down Expand Up @@ -67,41 +73,35 @@ options.registry.MassMailingImageTools = options.registry.ImageTools.extend({
}
});

options.userValueWidgetsRegistry['we-fontfamilypicker'] = SelectUserValueWidget.extend({
/**
* @override
* @see FONT_FAMILIES
*/
start: async function () {
const res = await this._super(...arguments);
// Populate the `we-select` with the font family buttons
for (const fontFamily of FONT_FAMILIES) {
const button = document.createElement('we-button');
button.style.setProperty('font-family', fontFamily);
button.dataset.customizeCssProperty = fontFamily;
button.dataset.cssProperty = 'font-family';
button.dataset.selectorText = this.el.dataset.selectorText;
button.textContent = getFontName(fontFamily);
this.menuEl.appendChild(button);
};
return res;
},
});
class MassMailingWeFontFamilyPicker extends WeSelect {
static isContainer = true;
static template = "mass_mailing.MassMailingWeFontFamilyPicker";
static components = { WeSelect, WeButton };

setup() {
super.setup();
this.fontFamilies = FONT_FAMILIES;
this.getFontName = getFontName;
}
}
// Widget registry is shared - prefixing component name to avoid collision.
registry.category("snippet_widgets").add("MassMailingWeFontFamilyPicker", MassMailingWeFontFamilyPicker);


options.registry.DesignTab = options.Class.extend({
export class DesignTab extends SnippetOption {
/**
* @override
*/
init() {
this._super(...arguments);
constructor() {
super(...arguments);
// Set the target on the whole editable so apply-to looks within it.
this.setTarget(this.options.wysiwyg.getEditable());
},
}
/**
* @override
*/
async start() {
const res = await this._super(...arguments);
async willStart() {
const res = await super.willStart(...arguments);
const $editable = this.options.wysiwyg.getEditable();
this.document = $editable[0].ownerDocument;
this.$layout = $editable.find('.o_layout');
Expand All @@ -123,7 +123,7 @@ options.registry.DesignTab = options.Class.extend({
sheetOwner.textContent = this.styleElement.textContent;
this.styleSheet = sheetOwner.sheet;
return res;
},
}

//--------------------------------------------------------------------------
// Public
Expand Down Expand Up @@ -196,7 +196,7 @@ options.registry.DesignTab = options.Class.extend({
}
}
this._commitCss();
},
}
/**
* Option method to change the size of buttons.
*
Expand All @@ -221,7 +221,7 @@ options.registry.DesignTab = options.Class.extend({
}
}
this._commitCss();
},
}

//--------------------------------------------------------------------------
// Private
Expand All @@ -239,12 +239,12 @@ options.registry.DesignTab = options.Class.extend({
// Flush the rules cache for convert_inline, to make sure they are
// recomputed to account for the change.
this.options.wysiwyg._rulesCache = undefined;
},
}
/**
* @override
*/
async _computeWidgetState(methodName, params) {
const res = await this._super(...arguments);
const res = await super._computeWidgetState(...arguments);
if (res === undefined) {
switch (methodName) {
case 'applyButtonSize':
Expand Down Expand Up @@ -299,7 +299,7 @@ options.registry.DesignTab = options.Class.extend({
} else {
return res;
}
},
}
/**
* Take a CSS selector and split it into separate selectors, all prefixed
* with the `CSS_PREFIX`. Return them as an array.
Expand All @@ -310,7 +310,7 @@ options.registry.DesignTab = options.Class.extend({
*/
_getSelectors(selectorText) {
return selectorText.split(',').map(t => `${t.startsWith(CSS_PREFIX) ? '' : CSS_PREFIX + ' '}${t.trim()}`.trim());;
},
}
/**
* Take a CSS selector and find its matching rule in the mailing's custom
* stylesheet, if it exists.
Expand All @@ -320,5 +320,12 @@ options.registry.DesignTab = options.Class.extend({
*/
_getRule(selectorText) {
return [...(this.styleSheet.cssRules || this.styleSheet.rules)].find(rule => rule.selectorText === selectorText);
},
}
}

registerMassMailingOption("DesignTab", {
Class: DesignTab,
template: "mass_mailing.design_tab",
selector: "design-options",
noCheck: true,
});
9 changes: 9 additions & 0 deletions addons/mass_mailing/static/src/js/snippets.editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,15 @@ export class MassMailingSnippetsMenu extends snippetsEditor.SnippetsMenu {
html.querySelectorAll('img').forEach(img => img.setAttribute("loading", "lazy"));
return super._computeSnippetTemplates(html);
}
/**
* @override
*/
getOptions() {
const options = super.getOptions().filter(([, option]) => {
return ["mass_mailing", "web_editor"].includes(option.module);
});
return options;
}
/**
* @override
*/
Expand Down
8 changes: 8 additions & 0 deletions addons/mass_mailing/static/src/js/snippets.registry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { registerOption } from "@web_editor/js/editor/snippets.registry";

export function registerMassMailingOption(name, def, options) {
if (!def.module) {
def.module = "mass_mailing";
}
return registerOption(name, def, options);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/** @odoo-module **/

import options from "@web_editor/js/editor/snippets.options";
import options from "@web_editor/js/editor/snippets.options.legacy";

options.registry.MasonryLayout = options.registry.SelectTemplate.extend({
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/** @odoo-module **/

import options from "@web_editor/js/editor/snippets.options";
import options from "@web_editor/js/editor/snippets.options.legacy";

options.registry.MediaItemLayout = options.Class.extend({

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/** @odoo-module **/

import { MediaDialog } from "@web_editor/components/media_dialog/media_dialog";
import options from "@web_editor/js/editor/snippets.options";
import options from "@web_editor/js/editor/snippets.options.legacy";

options.registry.Rating = options.Class.extend({
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/** @odoo-module **/

import options from "@web_editor/js/editor/snippets.options";
import options from "@web_editor/js/editor/snippets.options.legacy";

options.registry.Showcase = options.Class.extend({
/**
Expand Down
Loading