User tests: Successful: Unsuccessful:
DRAFT - help requested @dgrammatiko @Fedik
I obviously have an error in the buildscripts (?) or most likely how I added the js to build/media_source/plg_editors_tinymce/js/plugins/paste_from_word/
The demo I built on codepen shows it working https://codepen.io/brianteeman/pen/RwOeyWL
When we upgraded to TinyMCE 6 with joomla 5.0 we missed that the "paste from word" functionality was removed from the paste plugin and now only exists in the non-free paste plugin.
This PR follows the advice from TinyMCE to implement a forked version of the original paste plugin with just the paste from word funtionality. https://github.com/pangaeatech/tinymce-paste-from-word-plugin
I consider the lack of paste from word to be a regression bug and therefore this PR is for 5.1.1 but I can see why others consider it a feature and should wait for 5.2. So I leave that to the maintainers to decided.
Use a sample word doc (for example from https://sample-videos.com/download-sample-doc-file.php or https://file-examples.com/index.php/sample-documents-download/sample-doc-download/)
Copy and paste the doc into Joomla. Save and then view the source
lots of mso tags etc in the source
example
<li class="MsoNormal" style="mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;"><span lang="EN-US">First item of bulleted list. </span></li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;"><span lang="EN-US">Second item of bulleted list.</span></li>
no mso tags in the source
Please select:
Documentation link for docs.joomla.org:
No documentation changes for docs.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
Status | New | ⇒ | Pending |
Category | ⇒ | Repository NPM Change JavaScript Front End Plugins |
I thought that the paste feature now is default for new tinymce.
If we want to "fork", we should do it from source:
https://github.com/tinymce/tinymce/blob/release/5.10/modules/tinymce/src/plugins/paste/main/ts/Plugin.ts
The same need to do for "template":
https://github.com/tinymce/tinymce/blob/release/5.10/modules/tinymce/src/plugins/template/main/ts/Plugin.ts
Need to complie ts
to js
, and copy non-minified version.
I had no time for that, maybe will look later or Dimitris will be faster ?
No, no TS, compile then add.
Well, can also use some existing forks.
No, no TS, compile then add.
That means we need a repo for these plugins. Not a bad idea but:
FWIW this PR just needs:
npm install -S @pangaeatech/tinymce-paste-from-word-plugin
build/media_source/plg_editors_tinymce/js/plugins/paste_from_word/plugin.es6.js
with contents:import '@pangaeatech/tinymce-paste-from-word-plugin';
build/media_source/plg_editors_tinymce/js/plugins/paste_from_word/plugin.min.js
That means we need a repo for these plugins.
No, just as in good old days, copy the js file and call it done ?
"One time compile"
I thought that the paste feature now is default for new tinymce.
No that was the mistake we made. Paste is a default feature but without the paste from word.
If we want to "fork", we should do it from source:
No the correct way is to use the repo I linked to. As explained by tinymce tinymce/tinymce#7487 it is not a simple fork. and the linked repo as done what they said should be done.
FWIW this PR just needs:
Ah - I tried it that way before but I missed the
add a file build/media_source/plg_editors_tinymce/js/plugins/paste_from_word/plugin.es6.js with contents:
import '@pangaeatech/tinymce-paste-from-word-plugin';
I will do that now and see.
Labels |
Added:
NPM Resource Changed
PR-5.1-dev
|
@dgrammatiko I have done what I believe you are suggesting but I must be missing something as after the build the folder media\plg_editors_tinymce\js\plugins\paste_from_word is empty
@brianteeman you have a typo in the filename: build/media_source/plg_editors_tinymce/js/plugins/paste_from_word/plugin.es6.js
es6
not e6
@dgrammatiko please can you check out this pr (not code review) something isnt correct and I cant see what. Just look at the console errors
Title |
|
This pull request has been automatically rebased to 5.2-dev.
Title |
|
Labels |
Added:
Feature
PR-5.2-dev
|
@dgrammatiko @Fedik could you take a look at this please. I must be missing something obvious. The js is correctly being loaded by
$wa->useScript('plg_editors_tinymce.paste_from_word');
but if i try to init the plugin with
$plugins[] = 'paste_from_word';
it will try to additionaly load the plugin from /media/vendor/tinymce/plugins/paste_from_word/plugin.min.js
where it does not exist and gives a 404
No matter what I try I cannot get the plugin to load and initialise
There some error with this plugin.
I got Cannot read properties of undefined (reading 'tinymce')
from this plugin.
Need some time to debug.
Does it work outside of Joomla? :)
Sommething with our build script (rollup corrupting the code) and the plugin script itself (it does not provide ES module).
When I copy their file node_modules/@pangaeatech/tinymce-paste-from-word-plugin/index.js
to media/plg_editors_tinymce/js/plugins/paste_from_word/plugin.min.js
And change "type": "module"
to "defer": true
in asset defination. then it works.
Complicated :)
still no go for me
Status | Pending | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2024-06-27 05:23:29 |
Closed_By | ⇒ | brianteeman |
@brianteeman allow PRs in your cloned repo so I can sent you the code