Before this commit when computing the deepest position for a non-visible node, if that node had no next visible sibling it used the previous siblings, but it still marked the offset within that sibling as 0. Because of this, the selection sometimes got lost. E.g. in Firefox, drop an "Image - Text" block and triple click on the header text: upon changing its color the range got set to the text node but ending at offset 0. After this commit if the used node in the "previous sibling" from the evaluated element, the offset is set to the length of that node. task-2655176 closes odoo/odoo#77567 X-original-commit: 3c4426c71ebe080bcbd285e271c61bf1580c3afa Signed-off-by: Antoine Guenet <Zinston@users.noreply.github.com> Signed-off-by: Benoit Socias (bso) <bso-odoo@users.noreply.github.com>
Odoo editor
A fast wysiwyg editor targeting documents and website structures.
Key features
Unbreakable nodes
When editing some sections of a website, there is a possibility for a selection to start or end within a node that is contained in an unbreakable.
If the user deletes the content of the selection, the unbreakable node should not be merged with another one.
Demo
To open the demo page:
http://<host:port>/web_editor/static/lib/odoo-editor/demo/index.html
Tests
To open the test page, go to
http://<host:port>/web_editor/static/lib/odoo-editor/test/editor-test.html
Prettify
# install prettier
npm install -g prettier
# prettify
prettier --config '<odoo-path>/addons/web_editor/static/lib/odoo-editor/_prettierrc.js' --ignore-path='<odoo-path>/odoo/addons/web_editor/static/lib/odoo-editor/_prettierignore' '<odoo-path>/odoo/addons/web_editor/static/lib/odoo-editor/**/*.js' --write
Prettify with vscode
Install vscode extention esbenp.prettier-vscode.
Add the following configuration in your vscode user config or workspace config:
"prettier.requireConfig": true,
"prettier.configPath": "<odoo-path>/odoo/addons/web_editor/static/lib/odoo-editor/.prettierrc.js",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
Then you can use the command Format Document or use ctrl+h to format a file.