#12173 closed New Feature (fixed)
Basic paste integration with new drag and drop.
| Reported by: | Piotr Jasiun | Owned by: | Piotr Jasiun |
|---|---|---|---|
| Priority: | Normal | Milestone: | CKEditor 4.5.0 Beta |
| Component: | General | Version: | |
| Keywords: | Cc: |
Description (last modified by )
Part of #11437.
editor.paste event emitted from native paste should contain same data as editor.paste event (e.g. dataTransfer).
There should be paste event listener (with 0 priority) and if it contains dataTransfer with html or text data, such data should be put as a dataValue.
Change History (16)
comment:1 Changed 11 years ago by
| Description: | modified (diff) |
|---|
comment:2 Changed 11 years ago by
| Status: | new → confirmed |
|---|
comment:3 Changed 11 years ago by
| Milestone: | → CKEditor 4.5.0 |
|---|---|
| Owner: | set to Piotr Jasiun |
| Status: | confirmed → assigned |
comment:4 Changed 11 years ago by
| Status: | assigned → review |
|---|
comment:8 Changed 11 years ago by
More changes:
- do not use pasteBin on Chrome and Firefox at all,
- introduced
dataTransfer.isEmptymethod and do not fire paste if bothdataValueanddataTransferare empty, - removed unsupported
getClipboardDataDirectlyon non-IE browsers, - removed
targetEditorproperty fromdataTransferobject, - added mock methods to
bender.tools, - modified
bender.tools.emulatePasteso it put HTML intodataTransferon non-IE browsers, - added
dataattribute to thebender.tools.emulatePastemethod.
Note that you need to checkout both CKEditor and benderjs-ckeditor repos.
Changes in ckeditor t/12173 and benderjs-ckeditor t/12173.
comment:9 Changed 11 years ago by
I rebased branch on the newest major and moved changes from benders-ckeditor into ckeditor-dev. Now all changes are in ckeditor t/12173.
comment:12 Changed 11 years ago by
| Status: | review → review_passed |
|---|
Results of a 3 days review
- On
editable#cutcontent should be deleted with lower priority (999). Currently it's hard to override cut data, because it's immediately gone. initPasteDataTransferhas no documentation.- In
initPasteDataTransferandinitDropDataTransferyou expect first argument to be what? Because docs says it's native event, when it's not. - I mentioned this during one of previous reviews and I noticed this again - we can't write conditional code based on repeating
CKEDITOR.env.ieusage. This makes code hard to read and hard to maintain, because it's unclear what this condition means - why IE, why not other browsers, whether IE12, 13 too or not. You need to create meaningfull variables likedataTransferSetCustomDataSupportand use them. E.g. inpasteDataFromClipboardyou createdhtmlAlwaysInDataTransfer- it's great, just make it global for this plugin and then create more of them. CKEDITOR.DATA_TRANSFER_INTERNALflags should start from 1 (1, 2, 4).
TC1 (Chrome,FF):
- open http://ckeditor.dev/plugins/clipboard/dev/dnd.html
- copy text from textarea
- try pasting it into first editor
- nothing happens
TC2 (IE8):
- open http://ckeditor.dev/plugins/clipboard/dev/dnd.html
- copy text from textarea
- paste it... it's underlined :D
- it happens only when pasting into the framed editor and it happens also when pasting using button in the toolbar (and allowing clipboard access)
- and that happens because our pastebin doesn't grab data at all, but
editor#pasteis fired so... we access clipboard directly :|
What's next?
The code and tests look good, though I have to say that it's impossible to make a full review, because changes are huge.
Anyway, we can't fix all these issue in this ticket because too many depends on it already. I'm closing it for now and I'll report a separate tickets for these issues. These new tickets should be closed as soon as possible.
comment:13 Changed 11 years ago by
Merged to major with git:fd2aeb8. Thanks!
I'll close this ticket after I report its follow-ups.
comment:14 Changed 11 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | review_passed → closed |

Changes:
Changes in t/12173.