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

RoosterJS: Editor only has list or table, content is not inserted properly for inserting at begin or end #74

Closed
JiuqingSong opened this issue Jun 14, 2018 · 0 comments

Comments

@JiuqingSong
Copy link
Collaborator

RoosterJS base its insertion on object model.
For inserting at begin, it finds first block and insert content before it.
For inserting at end, it finds last block and insert content after it.

The current object model in RoosterJS has the block concept which essentially represents a parsing boundary, and is not equipped with Table or List. A List item or a table cell is a block, but beyond that (list or table), object model does not know.

So when you insert at end, and the end happens to be a table cell. The content will be inserted after the cell, but before the closing TR/Table.

A possible fix, as I discussed with Jia is to introduce a ContentBlock concept to representing block larger than block we have, i.e. TR, Table, List. BlockElement cannot be nested, but ContentBlock can be nested. For inserting at end and end is a table cell, we should go from a block element, and find topest Content Block and insert after.

Regards,
Nick Huang

JiuqingSong added a commit that referenced this issue Feb 14, 2019
JiuqingSong added a commit that referenced this issue Feb 15, 2019
@JiuqingSong JiuqingSong mentioned this issue Feb 15, 2019
JiuqingSong added a commit that referenced this issue Feb 28, 2019
* 7.1.1

* 7.1.2 Fix #218 (#219)

* 7.1.2 Fix #218

* Fix typo

* Track content changed events and report up to PickerPluginDataProvider (#222)

* Refactor ReplaceWithNode to use the editor core API (#223)

* Address comments raised in #225 but not addressed (#227)

* Fix a js error in insertNode (#229)

* 7.2.0 (#230)

* Fix 4 issues (#234)

* Fix #74 (#236)

* Fix #74

* Fix #74

* address comments

* Replace deprecated TSLint extension with MSFT TSLint (#240)

* 7.2.1 (#243)

* stopPropagation for key inputs (#245)

* Make picker plugin generic (#246)

* Make PickerPlugin generic

* fix build

* Selection Management step 1 (#247)

* Selection management step 1: New core API selectRange

* Fix build

* fix comment

* Fix bad merge
JiuqingSong added a commit that referenced this issue Mar 5, 2019
* 7.1.1

* 7.1.2 Fix #218 (#219)

* 7.1.2 Fix #218

* Fix typo

* Track content changed events and report up to PickerPluginDataProvider (#222)

* Refactor ReplaceWithNode to use the editor core API (#223)

* Address comments raised in #225 but not addressed (#227)

* Fix a js error in insertNode (#229)

* 7.2.0 (#230)

* Fix 4 issues (#234)

* Fix #74 (#236)

* Fix #74

* Fix #74

* address comments

* Replace deprecated TSLint extension with MSFT TSLint (#240)

* 7.2.1 (#243)

* stopPropagation for key inputs (#245)

* Make picker plugin generic (#246)

* Make PickerPlugin generic

* fix build

* Selection Management step 1 (#247)

* Selection management step 1: New core API selectRange

* Fix build

* fix comment

* Fix keyboard event issue (#251)
JiuqingSong added a commit that referenced this issue Mar 14, 2019
* 7.1.1

* 7.1.2 Fix #218 (#219)

* 7.1.2 Fix #218

* Fix typo

* Track content changed events and report up to PickerPluginDataProvider (#222)

* Refactor ReplaceWithNode to use the editor core API (#223)

* Address comments raised in #225 but not addressed (#227)

* Fix a js error in insertNode (#229)

* 7.2.0 (#230)

* Fix 4 issues (#234)

* Fix #74 (#236)

* Fix #74

* Fix #74

* address comments

* Replace deprecated TSLint extension with MSFT TSLint (#240)

* 7.2.1 (#243)

* stopPropagation for key inputs (#245)

* Make picker plugin generic (#246)

* Make PickerPlugin generic

* fix build

* Selection Management step 1 (#247)

* Selection management step 1: New core API selectRange

* Fix build

* fix comment

* Fix keyboard event issue (#251)

* Improve hyperlink onLinkClick option (#255)

Allow Hyperlink onLinkClick to fall back to default handling to reduce redundant code.

* Bump version (#256)

* fix autolink bug (#263)

* Filter CTRL+Click for Hyperlink plugin to main button (#262)

* 7.2.5 (#265)

* Fix some perf issue and some other changes (#272)

* 45000

* 7.2.6
JiuqingSong added a commit that referenced this issue Apr 29, 2019
* 7.1.1

* 7.1.2 Fix #218 (#219)

* 7.1.2 Fix #218

* Fix typo

* Track content changed events and report up to PickerPluginDataProvider (#222)

* Refactor ReplaceWithNode to use the editor core API (#223)

* Address comments raised in #225 but not addressed (#227)

* Fix a js error in insertNode (#229)

* 7.2.0 (#230)

* Fix 4 issues (#234)

* Fix #74 (#236)

* Fix #74

* Fix #74

* address comments

* Replace deprecated TSLint extension with MSFT TSLint (#240)

* 7.2.1 (#243)

* stopPropagation for key inputs (#245)

* Make picker plugin generic (#246)

* Make PickerPlugin generic

* fix build

* Selection Management step 1 (#247)

* Selection management step 1: New core API selectRange

* Fix build

* fix comment

* Fix keyboard event issue (#251)

* Improve hyperlink onLinkClick option (#255)

Allow Hyperlink onLinkClick to fall back to default handling to reduce redundant code.

* Bump version (#256)

* fix autolink bug (#263)

* Filter CTRL+Click for Hyperlink plugin to main button (#262)

* 7.2.5 (#265)

* Fix some perf issue and some other changes (#272)

* 45000

* 7.2.6

* init commit

* syntax error

* remove Input event so doesn't re-autocomplete

* StopPropagation for Input event (#276)

* Re-implemented the processList API. (#275)

* revert unneded changes and add check for char val

* ready for pr

* forgot 0 case again

* export from root

* undefined --> null, removes attribute instead of set as undefined

* Fix #279 (#281)

* take out unwanted change

* try that again

* 7.3.0 (#282)

* Add dark mode publish variant (#284)

* Fix #286 (#287)

* init commit

* add charcodes

* Fix #290 (#291)

* 7.3.1 (#294)

* 7.3.1-darkmode.0

* Fix an issue when call onKeyUp handler in PickerPlugin (#297)

* Check isSuggesting for function key in PickerPlugin

* 7.3.2

* Fix emoji reappear issue when space after backspace
JiuqingSong added a commit that referenced this issue Jun 10, 2019
* 7.1.1

* 7.1.2 Fix #218 (#219)

* 7.1.2 Fix #218

* Fix typo

* Track content changed events and report up to PickerPluginDataProvider (#222)

* Refactor ReplaceWithNode to use the editor core API (#223)

* Address comments raised in #225 but not addressed (#227)

* Fix a js error in insertNode (#229)

* 7.2.0 (#230)

* Fix 4 issues (#234)

* Fix #74 (#236)

* Fix #74

* Fix #74

* address comments

* Replace deprecated TSLint extension with MSFT TSLint (#240)

* 7.2.1 (#243)

* stopPropagation for key inputs (#245)

* Make picker plugin generic (#246)

* Make PickerPlugin generic

* fix build

* Selection Management step 1 (#247)

* Selection management step 1: New core API selectRange

* Fix build

* fix comment

* Fix keyboard event issue (#251)

* Improve hyperlink onLinkClick option (#255)

Allow Hyperlink onLinkClick to fall back to default handling to reduce redundant code.

* Bump version (#256)

* fix autolink bug (#263)

* Filter CTRL+Click for Hyperlink plugin to main button (#262)

* 7.2.5 (#265)

* Fix some perf issue and some other changes (#272)

* 45000

* 7.2.6

* init commit

* syntax error

* remove Input event so doesn't re-autocomplete

* StopPropagation for Input event (#276)

* Re-implemented the processList API. (#275)

* revert unneded changes and add check for char val

* ready for pr

* forgot 0 case again

* export from root

* undefined --> null, removes attribute instead of set as undefined

* Fix #279 (#281)

* take out unwanted change

* try that again

* 7.3.0 (#282)

* Add dark mode publish variant (#284)

* Fix #286 (#287)

* init commit

* add charcodes

* Fix #290 (#291)

* 7.3.1 (#294)

* Fix an issue when call onKeyUp handler in PickerPlugin (#297)

* Check isSuggesting for function key in PickerPlugin

* 7.3.2

* Fix emoji reappear issue when space after backspace

* Export code to codepen from demo site (#289)

* init commit

* move order one down

* mouseUp before

* Add more comments to improve doc (#302)

* Improve doc

* Add more comments

* Fix cursor stuck at list issue (#303)

* Fix cursor stuck at list issue

* fix build

* Add getTextContent

* address comments for getTextContent

* Address comment

* change some element to use the class param

* remove comments

* 7.4.0 (#308)
JiuqingSong added a commit that referenced this issue Jun 11, 2019
* 7.1.1

* 7.1.2 Fix #218 (#219)

* 7.1.2 Fix #218

* Fix typo

* Track content changed events and report up to PickerPluginDataProvider (#222)

* Refactor ReplaceWithNode to use the editor core API (#223)

* Address comments raised in #225 but not addressed (#227)

* Fix a js error in insertNode (#229)

* 7.2.0 (#230)

* Fix 4 issues (#234)

* Fix #74 (#236)

* Fix #74

* Fix #74

* address comments

* Replace deprecated TSLint extension with MSFT TSLint (#240)

* 7.2.1 (#243)

* stopPropagation for key inputs (#245)

* Make picker plugin generic (#246)

* Make PickerPlugin generic

* fix build

* Selection Management step 1 (#247)

* Selection management step 1: New core API selectRange

* Fix build

* fix comment

* Fix keyboard event issue (#251)

* Improve hyperlink onLinkClick option (#255)

Allow Hyperlink onLinkClick to fall back to default handling to reduce redundant code.

* Bump version (#256)

* fix autolink bug (#263)

* Filter CTRL+Click for Hyperlink plugin to main button (#262)

* 7.2.5 (#265)

* Fix some perf issue and some other changes (#272)

* 45000

* 7.2.6

* init commit

* syntax error

* remove Input event so doesn't re-autocomplete

* StopPropagation for Input event (#276)

* Re-implemented the processList API. (#275)

* revert unneded changes and add check for char val

* ready for pr

* forgot 0 case again

* export from root

* undefined --> null, removes attribute instead of set as undefined

* Fix #279 (#281)

* take out unwanted change

* try that again

* 7.3.0 (#282)

* Add dark mode publish variant (#284)

* Fix #286 (#287)

* init commit

* add charcodes

* Fix #290 (#291)

* 7.3.1 (#294)

* Fix an issue when call onKeyUp handler in PickerPlugin (#297)

* Check isSuggesting for function key in PickerPlugin

* 7.3.2

* Fix emoji reappear issue when space after backspace

* Export code to codepen from demo site (#289)

* init commit

* move order one down

* mouseUp before

* Add more comments to improve doc (#302)

* Improve doc

* Add more comments

* Fix cursor stuck at list issue (#303)

* Fix cursor stuck at list issue

* fix build

* Add getTextContent

* address comments for getTextContent

* Address comment

* change some element to use the class param

* remove comments

* 7.4.0 (#308)

* Revert #298 since it breaks IE (#310)

* revert #298

* 7.4.1
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

No branches or pull requests

1 participant