summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src
AgeCommit message (Collapse)Author
2019-04-04[FIX] web_editor: support youtube-nocookie.comqsm-odoo
closes odoo/odoo#32332 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-02-13[FIX] web_editor: focus lost with inline editorNicolas Lempereur
When an inline editor is eg. in a form view, the focus is always stolen by it. This is because we trigger a mouseup on the editor to update its toolbars values and informations. note: backport of 11.0's 7a453b0b7ae In 10.0 this trigger could cause a "blur" which in some instance is not wanted (eg. inside a newline of a list view). opw-1906581 closes #31078
2019-02-13[FIX] web_editor: html widget empty value stay emptyNicolas Lempereur
The html widget automatically replace an empty field value by `<p><br></p>` to be able to add content. But this may cause unintended "onchange", since the value has "changed" and the onchange themself could cause error when triggered at the wrong time (eg. inside a list view with required fields). With this changeset, the onchange is averted when the value was false and is now `<p><br></p>`. opw-1906581 closes #31078
2019-02-07[FIX] web_editor: review drag and drop in the editorqsm-odoo
When dropping a snippet into a page, it is dropped in the drop-zone which is the nearest of the user cursor. When moving a snippet, that condition did not apply and the user was required to put the cursor at the exact location of the drop-zone. Also, for both drag and drop features, the drop zones which appeared were not displayed correctly for full width columns, which made dropping sometimes impossible when multiple col-*-12 were below each other. task-1937758 closes odoo/odoo#30899
2018-10-19[FIX] web_editor: disable strange resize handles on Firefoxqsm-odoo
See comments in the code for details... Closes https://github.com/odoo/odoo/pull/27964
2018-10-10[FIX] web_editor: properly allow to reset bg colorKishan Gajjar
If resetting a background color was the only edition that was done on a page and that this page was saved, the change was not properly saved as the page was not marked as dirty. Closes https://github.com/odoo/odoo/pull/27625 task-1879524
2018-10-10[FIX] web_editor: Not possible to edit a link on safariGoffin Simon
On Safari, when editing the template of a mail.mass_mailing, clicking the "Read more" button (or any button that can have a link to the website) didn't open pop up to set the URL of the website. PS: inspired from https://github.com/textAngular/textAngular/issues/762 opw:1889643
2018-09-05[FIX] web_editor: image nameNicolas Martinelli
Add the image name in the website for SEO purpose. This is a backport of: 88a5d9a0000a5ea43afdc00ed 886c07dabb636767b80abb849 152e3f8686ec4f48ba22e5c13 opw-1880472
2018-09-04[MERGE] forward port branch 9.0 up to 61b771256caChristophe Simonis
2018-09-03[FIX] web_editor: back to first -> history stay okNicolas Lempereur
If we do: - one change that will be saved in history - go back to the document before any change - do other change we can easily get in a state were the history is no longer recorded. The history is kept like this: - pos: our position in the history - aUndo: the snapshots of history - toSnap: the last history snapshop that is to be saved so for example if we start without change (at originalState): {pos: 0, aUndo=[], toSnap=null} Then we do two changes (change1, change2): {pos: 2, aUndo=[originalState, change1], toSnap=change2} If we make an undo, we will get to: {pos: 1, aUndo=[originalState,change1,change2], toSnap=null) If we make another change (change3): {pos: 2, aUndo=[originalState, change1], toSnap=change3} So the history after the position is removed. But when we get back to the original, the state would forever be: {pos: 0, aUndo=[originalState], toSnap=change85} because when doing a change, the code only removed history from the max(pos, 1) index. opw-1870119 closes #26701
2018-09-03[FIX] web_editor: normal up/down in content in cellNicolas Lempereur
In the editor in a table cell, when we press UP/DOWN keys: - we have default editor/browser behavior if there is content before (UP) or after (DOWN) the element we are currently on - else we go to the previous (UP) or next (DOWN) row if available - else we go to the next content if available - else we have the default editor/browser behavior But when checking if there is an element before/after the content, we did not take into account if there was an ancestor node inside the cell that had content after, so for example with this structure: ``` <table> <tr><td> <p>hello <b>world</b></p> <p>cruel</p> </td></tr> <tr><td> <p>bingo</p> </td></tr> </table> ``` if the current range was on 'world' text node, we would just check if there is content after this text node, not if there is content after its `<p/>` ancestor. Before the fix we would get on the next row, after we would have default editor/browser behavior: ie. if cruel is on another line, going to this line. opw-1870119 closes #26701
2018-06-14[MERGE] forward port branch 9.0 up to 90165e2d96aChristophe Simonis
2018-06-14[FIX] web_editor: properly save media dialog without any imageqsm-odoo
When saving the media dialog without any selected image, a crash occurred. Now, it properly closes the dialog. opw-1858614
2018-06-13[FIX] web_editor: link don't duplicate child textNicolas Lempereur
If we applied a link eg. on: ``` <span>hello <b>world</b></span> ``` The system actually gets the "label": hello worldworld because there is 3 nodes: text node: hello element node: `<b>world</b>` text node: world Also since "hello worldworld" is different than "hello world", instead of just keeping existing nodes and adding the link, the system would replace the selected range by: `<span><a>hello worldworld</a></span>' instead of: `<span><a>hello </a><b><a>world</a></b></span>` This commit ignores element nodes when creating a new link, since when getting the label of the link from the selection, only the text nodes insides the element nodes have any interest. There was a second issue because if we had: ``` <i><a href="hello">world</a></i>! ``` and tried to put a link over "world!", the code would decide: "world" is inside a link so we will just update that link. Thus we would get: ``` <i><a href="hello">world!</a></i>! ``` instead of: ``` <i><a href="hello">world</a></i><a href="hello">!</a> ``` opw-1848351 closes #25187
2018-06-13[FIX] web_editor: add <em> as inline tag and remove duplicate strongXavier Brochard
This commit closes #24818
2018-06-05[FIX] web_editor: disable button when html field loadingLucas Perais (lpe)
Backporting bed33e1 and 472c5a4f9fa262f2ec2e10f4ad3e97c8c1bf4083 from v10.0 OPW 1853150 closes #25043
2018-05-29[MERGE] forward port branch 9.0 up to ea0fcd52d92Christophe Simonis
2018-05-28[FIX] web_editor: properly save a t-field in a t-ignore environmentqsm-odoo
When a t-field element was in an editable t-ignore environement, modifying it was leaving the edit mode style attached to it. This was because of: 1) When the t-field element was changed, it was marked dirty but also its parent editable container. Fixing this, only solves the case where only the t-field (and not one of its neighbors) is changed but it was worth fixing anyway. 2) Before saving an element, the potential 'o_editable' and summernote classes were not removed of its descendant and were thus saved. Bug found with task-38069, merged in stable as it might occur there too.
2018-05-14[FIX] web_editor: ignore range error on RestrictedNicolas Lempereur
In firefox, if we have a range on eg.: `<input type="file">` and we tabulate to get to it, we have the range over: `<button type="button" tabindex="0">Browse…</button>` which seems to be a "virtual" element inside the `<input/>` but this magic element is "Restricted" and causes error such as: `Permission denied to access property "nodeName"` So this fix ignore errors when getting a range from current selection on keyup. opw-1819279 closes #24524
2018-05-11[FIX] web_editor: inline space in source codeNicolas Lempereur
Backport of 57f7c681062f07002312e91d79d02b2b1b59d9fe
2018-05-09[FIX] web_editor: optimize big mail transcodingNicolas Lempereur
The browser may throw an error when a big mail such as one with hundreds thousands of tags is being transformed to have a style more compatible with mail clients. The error would be: "Uncaught RangeError: Maximum call stack size exceeded" This happens in jquery because we hare too many nodes (there is an ongoing issue at https://github.com./jquery/sizzle/issues/403) so this commit replace that part by a DFS traversal over DOM nodes. There was also an issue that not having the option "style-inline" would still cause some style code to be ran albeit it was intended not to be solved in 55c7d2d5b00. opw-1841107 closes #24550
2018-05-02[FIX] web_editor: disable button when html field loadingLucas Perais (lpe)
Commit bed33e1ca241c9cb0ff22897dbe60af476d59590 forgot to include the case where the html field is in a modal This commit accounts for that case closes #24500
2018-04-26[FIX] web_editor: firefox remember CTRL+A selectionNicolas Lempereur
In firefox the range when doing CTRL+A is the first level content of the contenteditable element, but this was not taken into account when "remembering" the range after clicking on buttons or features of the editor. In chrome the selection begin with the first displayed element (so it may not be a direct child of the editable and is taken into account in the code). opw-1824017 closes #24424
2018-04-23[MERGE] forward port branch 9.0 up to c9e7433c237Christophe Simonis
2018-04-23[FIX] web_editor: prevent crash on outside-iframe clickqsm-odoo
The editor is performing text selection check when clicking on the window. However, when clicking outside the iframe an editor is running in, a crash may occur as the editor was trying to check a range outside of its environment (the iframe). Related to opw-1837818
2018-04-12[FIX] web_editor: indent just a line inside tableNicolas Lempereur
Inside the cell of a table, indenting had several behaviors: - if the selection is contained in several nodes elements: indent the element child nodes of common ancestor - if the selection is contained in one or more list items: indent these list items - if the selection is contained in one 'content block': indent the whole cell content The two first behaviors are expected, but the third one is a little odd and unexpected next to other existing editors behaviors. With this commit, the third behavior becomes: - if the selection is contained in one `content block`: indent this content block note: 'content block' is defined as p, pre, h1, h2, ..., blockquote, td opw-1824647 closes #24182
2018-03-28[FIX] web_editor: block only the form's buttonsLucas Perais (lpe)
Commit cae188514fa8b0a7c785a630ac4aff677b2071fa was largely incomplete and inaccurate in fixing the issue at hand The aim of this commit is to deactivate the form buttons when the Html field is not completely loaded thus preventing the temporary value of the iframe to be saved OPW 1824545 closes #23905
2018-03-02[FIX] web_editor: show 'open in new window' on link editJeremy Kersten
Before this commit, when a user open an existing link in the editor he cannot check/uncheck the option "Open in new Window" while he don't update the url. The field was hidden while keyup was not called. After this commit, if the url contains a url, we show directly the checkbox. This commit fixes opw-1819601
2018-02-21[MERGE] forward port branch 9.0 up to e544ec8df70Christophe Simonis
2018-02-20[FIX] web, web_editor: Better email validation with regex (JS)Romain Derie
This commit improves link creation in web editor. Before this commit, anything with a @​ would be considered as valid email which is obviously not the case. It would then be prefixed by 'mailto:'. This was causing 2 issues: - URL with @​ symbol in it would have 'mailto:' added as prefix, like google maps coordinates. eg: mailto:http://www.google.com/maps/whatever/@​312211.22,321321 - Incorrect emails would go through (eg: @​@​@​, ko@​k@​k@​, mail@​mail) Now, we will try to detect and identify valid emails from invalid emails from URLs. It will also handle 'mailto:' directly typed in the input. This commit comes with it's counterpart in enterprise https://github.com/odoo/enterprise/pull/1859 This closes #11984, closes #22936 Note that there is a WIP in master to use this new is_email function everywhere we try to validate emails. It will aim to uniformize email validation in odoo's javascript that are often performed with different mean here and there, some more permissive than others, some only checking for @​.
2018-02-13[MERGE] forward port branch 9.0 up to 2d73ea9bed1Christophe Simonis
2018-02-13[FIX] mass_mailing, *: duplicating two-columns snippetsqsm-odoo
* web_editor, website This commit fixes a bug with table duplication in mailing template: - Click on a snippet with two columns - Duplicate it -> the snippet is duplicated but the two columns are transformed in two rows. This was because there is an implemented behavior for column duplication: if we duplicate a column which was alone on its row, we duplicate the row instead. This code should however be triggered when duplicating the column alone to be working, not the snippet that contains it. Note: this required a backport of a33ec972abf1cadbae2a6a04f759617c82f2a95e which was fixing a non-critical "bug" for 11.0. This non-critical "bug" is therefor fixed here too. opw-807105
2018-02-13[FIX] web_editor, mass_mailing: better transcode alignment inheritanceqsm-odoo
Browsers' default alignement of <td/> is 'inherit'. Some mail clients do not set this value properly though and even if it is explicitely set, they do not compute the final value well. As a fix, this commit forces the 'inherit' value on <td/> and computes the real alignment for 'inherit' values when transcoding. opw-813688
2018-02-12[FIX] web_editor: error on cross domain stylesheetNicolas Lempereur
On latest chromium (as of version 64), accessing rules of a stylesheet is forbidden for cross-domain. This commit catch and ignores the error when that happened. chromium commit: https://chromium.googlesource.com/chromium/src/+/a4ebe08c91 opw-813480 opw-815860 closes #23009
2018-02-08[MERGE] forward port branch 9.0 up to ce51ad7e69dChristophe Simonis
2018-02-08[FIX] web_editor: allow deleting all images in table cellsqsm-odoo
Before this commit, it was impossible to delete an image which was a direct child of a table cell using the trash-icon button in the toolbar. This commit fixes the behavior by changing the logic quite a lot, so it is kinda tricky (see https://github.com/odoo/odoo/commit/25849e918651eba080dac3af4e4fcdc8f1280241 for more explaination). Closes https://github.com/odoo/odoo/issues/22523
2018-02-08[FIX] web_editor: fix image deletion and replacementqsm-odoo
Deleting/replacing an image through summernote gave unexpected results. As modifiying the related function may be tricky, this commit instead wrap them to solve the specific erratic behavior: if the range is in/ matches an image, then simply remove the image and move the cursor to its previous location.
2018-02-05[FIX] web_editor: correct check of 'rules' propertyGéry Debongnie
see issue #22517
2018-02-05[FIX] web_editor: correct check of property 'rules'remi-filament
Port of PR #22603 from v9 to v10 See Issue #22517 (#22679)
2018-02-01[MERGE] forward port branch 9.0 up to cbaecc5cbb8Christophe Simonis
2018-02-01[FIX] web_editor: firefox editor hidden mass mailNicolas Lempereur
When saving a modified mass mailing, the editor will do a number of things to improve the mail readability accross mail client. One of those is replacing font awesome icons by image, but firefox acts differently than other browser. On a display:none iframe, doing .css('color') or .height() on an element returns respectively `undefined` and 0. This caused an error when getting the color that we could solve by doing a fallback for firefox like this: window.parent.getComputedStyle($font[0]).color But to get the height() of an element, it seems we always need the iframe displayed. With this change, when the iframe is hidden and the browser is firefox, the code try to display the iframe (with "visibility:hidden;height:1px") when this part of the code happen. note: backport of 10.0 13c326caaa opw-807180 closes #22701
2018-01-31[FIX] web_editor: firefox editor hidden mass mailNicolas Lempereur
When saving a modified mass mailing, the editor will do a number of things to improve the mail readability accross mail client. One of those is replacing font awesome icons by image, but firefox acts differently than other browser. On a display:none iframe, doing .css('color') or .height() on an element returns respectively `undefined` and 0. This caused an error when getting the color that we could solve by doing a fallback for firefox like this: window.parent.getComputedStyle($font[0]).color But to get the height() of an element, it seems we always need the iframe displayed. With this change, when the iframe is hidden and the browser is firefox, the code try to display the iframe (with "visibility:hidden;height:1px") when this part of the code happen. opw-807180 closes #22639
2018-01-26[FIX] web_editor: properly show link alignment in toolbarqsm-odoo
When clicking on a link in the editor, the "center" alignment button was always marked as active whatever the real alignment of the link. This was because it considered the alignment of the text inside the link instead of the link's one inside its parent.
2018-01-25[MERGE] forward port branch 9.0 up to 222cadda415Christophe Simonis
2018-01-25[FIX] web_editor: ready when translations readyNicolas Lempereur
$('web_editor.base').ready() returns a deferred that: - wait at least for $(document).ready() - wait at least for require('web.ajax').loadXML() - at most once starts translations configuration But there is an issue since there is unexpectedly no reference to the translations, whilst it should have also been ready when ready was resolved. This commit keep the reference so translations can be used after $('web_editor.base').ready() is resolved as it was before 7dfdfa0103. note: in 11.0 it should be solved with 29729769 (so fix is for [10,11[) opw-804148 closes #22522
2018-01-25[FIX] web_editor: properly allow formatting text (normal/header 1/...)qsm-odoo
Sometimes the formatting buttons had no effect or formatted more than they should (like a whole column when triple clicking on a paragraph only). This was because of the `listBetween` function implementation. This is supposed to return all the nodes between one element and another one... but the logic is wrong without saying from which *point* to start and which *point* to end. For example, when asking the list between an element and its parent, the result is very wrong as there is no way to go from the beginning of an element to the beginning of its parent using the `walkPoint` function as the `listBetween` function is doing. Ideally, the function should be entirely fixed but this can be tricky. For now, the function is just extended to allow to specify points instead of nodes, and those are used by the `formatBlock` function to solve the current problem.
2018-01-25[FIX] web_editor: fix double Shift + Enterqsm-odoo
Pressing Shift + Enter twice was buggy because of small refactoring made by https://github.com/odoo/odoo/commit/c227b8fd88e0ed635a8e807501b559b46fee7786#diff-cc5180b5ec2395c1df5c4e475aff43fbL416 opw-806003
2018-01-25[FIX] web_editor: solve all triple-click issuesqsm-odoo
... hopefully. This *must* be forward-ported. Depending on the browser, the triple-click behavior is different. This is especially problematic on Chrome, where blank characters at the start of the neighbor of the clicked element are selected. A weak attempt to solve that was made by commit https://github.com/odoo/odoo/commit/b85bd358234684974f9af63bc5f28cfabb527767 This commit hopes to solve all the issues once and for all by fully reimplementing the triple-click for all browsers. The concept is simple: when a triple-click occurs, select the whole *inner* content of the deepest DOM *element* that was clicked.
2018-01-25[FIX] web_editor: prevent crash when dropping snippetsqsm-odoo
For some unknown reasons, the editor sometimes crashes when dropping a snippet. As a temporary fix, the non-critical line that causes the problem is try/catch protected by this commit.
2018-01-22[MERGE] forward port branch 9.0 up to 216edc206c7Christophe Simonis