Skip to content

Conversation

@amigrave
Copy link
Member

The onchange is currently ignored when we set the value of a o2m embedding an editable list in editing state. We should be able to allow it by detaching then restoring the editing state.

Editor.shelve() and Editor.unshelve() are prepared but
doesn't work. Would need help of xmo.

amigrave added 2 commits May 26, 2014 14:20
The edition is cancelled when an onchange happen in o2m
while editing.

Editor.shelve() and Editor.unshelve() are prepared but
doesn't work. Would need help of xmo.
Still need to properly fix it, currently doesn't apply the onchange
@rco-odoo rco-odoo assigned xmo-odoo and unassigned xmo-odoo May 28, 2014
rco-odoo added a commit that referenced this pull request Jun 1, 2014
[FIX] Temporary fix o2m editable list onchange bug
@rco-odoo rco-odoo merged commit 7f9f623 into master-apiculture Jun 1, 2014
@rco-odoo rco-odoo deleted the master-apiculture-o2m-onchange-fme branch June 1, 2014 12:21
apineux pushed a commit that referenced this pull request Feb 24, 2015
cammarosano added a commit that referenced this pull request Dec 28, 2022
Issue #1: pasting image/video URL as link or text

Before this commit, pasting an image or video url as simple text was
failing, and pasting it as a link was undoing the last modification
before it.

This happens because Powerbox.preValidate() reverts one history step
before calling the callback attached to the Powerbox command.
When pasting the url as simple text, the result was deleting the already
inserted text. In case of pasting the url as a link, the callback to this command
already performs a historyUndo(), and reverting history one step further
leads to loss of previous modifications.

In order to skip the call to preValidate, this commit adds a "shouldPreValidate"
method (returning "false") to the command passed to Powerbox.open().
Such mechanism was introduced by commit
odoo@a9c363c.

Issue #2: transforming image/video URL pasted as text with space
After pasting a URL as text at the end of a line, there's no way to type
more text in that line (separated from the link by a space) without
transforming it into a link.
This commit ensures a space is added after the URL if it is pasted as
text before a line break (introduced by a BR or a block element).

Issue #3: pasting image/video URL + other text fragments

The powerbox commands are not compatible with an image/video URL + text
or multiple URLs. Choosing one of its commands will lead to loss of all
text fragments but the last valid URL.
This commit ensures the powerbox options are only offered when a single
image/video URL is pasted.

Issue #4: pasting image URL inside an exisiting link

Even though the Editor's specs do not allow a URL to be transformed into
a link when pasting it inside an exisiting link, pasting an image URL
inside a link would open the powerbox with 3 commands, one of them
allowing to transform the URL into a link.
This commit ensures the "Paste as URL" command is not present in the powerbox
in such case.

When pasting an image URL inside an "isolated" link (after having
clicked on it and making it the only contenteditable in the document),
the cursor disappeared, preventing the powerbox to open
(it would open later when insering text somewhere outside the link).
This commit fixes it by restoring the cursor position after pasting an
image URL inside an isolated link.

Issue #5: selection restore after pasting and UNDO

After pasting a valid URL (not image or video) on a non-collapsed
selection followed by UNDO, the selection was not restored to the
original range. This was due to not recording the selection in the
current history step before creating the link. This commit introduces a
call to _recordHistorySelection() before creating a link.

After pasting text composed of a valid URL between text fragments on a
non-collapsed selection followed by UNDO, the selection was again not
properly restored. This time, because each text fragment insertion was
done via execCommand, which calls _computeHistorySelection and thus
overwrites the current step's selection.
This commits calls _applyCommand instead, which skips the computing of
new selections and keeps the one done onSelectionChange.

Issue #6: unnecessary regex matching

Before this commit, every text fragment in "text URL text" was being
prepended with "https://" and a match with the URL regex was attempted.
Every fragment (text or URL) was also probed for a match with the
youtube video URL regex, but such matches would be discarded anyway in
apps where the allowCommandVideo option is set to false.

This commit avoids unnecessary searching with regular expressions by treating
pasting of a single URL (possibly an image or video URL that would lead
to powerbox commands) differently than URLs pasted among other text fragments
or other URLs (see issue #2 above).

Issue #7: historyPauseSteps with argument

This function takes no arguments. Yet, it was called with the string 'onPaste'
as argument. This commit removes it.

task-3099012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants