Commit Graph

60 Commits

Author SHA1 Message Date
Sara Arjona 84c5a2c7ea Merge branch 'MDL-79152-main' of https://github.com/andrewnicols/moodle 2024-01-24 16:02:23 +01:00
Andrew Nicols 81d9f60840 MDL-79152 editor_tiny: Enable browser-based spell-checking 2024-01-18 12:53:20 +08:00
Sara Arjona c06553f908 Merge branch 'MDL-80058-main' of https://github.com/meirzamoodle/moodle 2024-01-17 18:46:09 +01:00
meirzamoodle 958b48c54d MDL-80081 editor_tiny: Allow empty content in the i tag 2024-01-12 14:04:17 +07:00
meirzamoodle d744c7f510 MDL-80058 editor_tiny: add preformatted format to the blocks 2024-01-10 09:37:26 +07:00
meirzamoodle f456416318 MDL-80257 editory_tiny: Implement ui_mode: split
Since version 6.4 and later, TinyMCE had a feature `ui_mode: split`.

It enables support for editors in scrollable containers,
and Moodle has some pages, especially the course pages, that are using the scrollable containers.
Therefore, all workaround that is addressed should be replaced by the feature to avoid future problems
regarding the overflow and the z-index issues.
2023-12-04 16:27:47 +07:00
Huong Nguyen e38aa09dee MDL-78239 editor_tiny: Calculate correct height for non-visible editors 2023-09-26 14:50:13 +07:00
Andrew Nicols b3d8c1a862 Merge branch 'MDL-75268-master' of https://github.com/davewoloszyn/moodle 2023-09-05 11:39:41 +08:00
Andrew Nicols c81e889a8d Merge branch 'MDL-77979-master' of https://github.com/meirzamoodle/moodle 2023-09-01 11:00:59 +08:00
Ilya Tregubov 9bf3e5a893 Merge branch 'MDL-78745-master' of https://github.com/meirzamoodle/moodle 2023-09-01 10:52:26 +08:00
meirzamoodle 9526b815f5 MDL-77979 tiny_noautolink: Add the noautolink plugin to the quickbar
Modified the addQuickbarsToolbarItem function on the util to make the additional toolbar item work.
2023-09-01 09:36:42 +07:00
Ilya Tregubov c2dcd9ade8 Merge branch 'MDL-79107-master-2' of https://github.com/andrewnicols/moodle 2023-09-01 09:24:30 +08:00
Andrew Nicols 10525085a3 MDL-79107 editor_tiny: Target correct element on editor removal 2023-09-01 09:06:39 +08:00
Jun Pataleta 37aaae3b13 Merge branch 'MDL-79107-master' of https://github.com/junpataleta/moodle 2023-08-31 21:09:56 +08:00
Andrew Nicols db23620cdb MDL-79107 editor_tiny: Inform Behat of field type 2023-08-31 20:36:32 +08:00
meirzamoodle a164fc5317 MDL-78745 editor_tiny: Stored text in non-entity form
TinyMCE has a default entity_encoding 'named',
which causes text with diacritic symbols to be converted to HTML entities,
e.g. pâté will be convert to pâté
That will be a problem with the Glossary auto-linking filter if a course has a text concept like pâté,
then the filter will likely fail to get the text concept.
Changing the TinyMCE entity_encoding to 'raw' will resolve the problem.
2023-08-30 08:56:26 +07:00
Andrew Nicols af7719682d MDL-79064 core: Update all get_strings as uses 2023-08-29 10:57:54 +08:00
David Woloszyn cd064a40eb MDL-75268 editor_tiny: Add items after specified node 2023-08-28 12:06:06 +10:00
Sara Arjona 1d486cb100 Merge branch 'master_MDL-79066' of https://github.com/mattporritt/moodle 2023-08-23 22:15:42 +08:00
Matt Porritt fb4ffa5d53 MDL-79066 TinyMCE: Add fullscreen button
Enable the existing fullscreen functionality to be able
to be accessed from a button on the default editor toolbar.
2023-08-18 16:02:10 +10:00
Kevin Percy 7db066a823 MDL-78436 editor_tiny: mform disabledIf works with TinyMCE 2023-08-15 14:15:07 +08:00
Jun Pataleta c3a27a0070 Merge branch 'MDL-77817-master' of https://github.com/meirzamoodle/moodle 2023-08-10 18:32:15 +07:00
Andrew Nicols 9f9814ae41 MDL-78714 editor_tiny: Disable HTML Sanitisation in TinyMCE
This is in keeping with other Editors such as Atto and resolves an issue
where DOM Purification incorrectly identifies HTML-like string content
as an HTML tag with a JS variable.

Moodle already performs XSS sanitisation using HTML Purifier in PHP.
2023-08-09 09:07:04 +08:00
meirzamoodle e039eaa599 MDL-77817 editor_tiny: Fix menu and dialogue window position
The boost theme makes the TinyMCE editor rendered in a scrollable container,
scrolling the editor’s container will cause TinyMCE UI elements to be detached from the anchor.
Therefore, to keep the tinyMCE menu in the correct position,
adjustments must be made on the page drawers style.

When using TinyMCE editor in Safari browsers, a problem may occur where the dialogue
windows (such as modal dialogs) overlap with page drawers due to a specific behavior
in Safari's rendering. This function addresses the issue by adjusting the CSS overflow
property of the page drawers, ensuring they do not obscure the dialogue windows.
2023-08-03 11:31:28 +07:00
Stevani Andolo c2be53493d MDL-78485 editor_tiny: Allowed script tag to be added in tinyMCE editor 2023-07-04 13:36:10 +08:00
Jun Pataleta e07f28e276 Merge branch 'MDL-77896' of https://github.com/paulholden/moodle 2023-04-21 11:21:40 +08:00
Paul Holden 571292b6eb MDL-77896 editor_tiny: approximate height for non-visible editors.
When an editor is renderer initially invisible to the browser, e.g.
the forum "Add discussion" form, it has a `clientHeight` value of
zero. We can approximate an alternative value based on the number
of rows in the textarea.

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-04-20 15:24:23 +01:00
Paul Holden c81bfc4f45 Merge branch 'MDL-77897-master' of https://github.com/andrewnicols/moodle 2023-04-19 14:13:03 +01:00
Andrew Nicols 489a53ceb2 MDL-77897 editor_tiny: Save editor content on editor blur 2023-04-19 14:57:10 +08:00
Paul Holden adb6d5468e MDL-77895 editor_tiny: standardize quickbar selection toolbar.
Ensure the same heading tags are available as those defined in the
editor block formats configuration (c51b7e2c).

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-04-18 07:46:05 +01:00
Sara Arjona 9ce4fb65fd Merge branch 'MDL-77164-master' of https://github.com/marinaglancy/moodle 2023-04-13 14:00:18 +02:00
Marina Glancy 04f8fdd021 MDL-77164 various: fix javascript AMD module name 2023-04-13 09:43:15 +01:00
Paul Holden c51b7e2c44 MDL-77012 editor_tiny: correct block formats property syntax.
Co-authored-by: Hiroto Kagotani <hiroto.kagotani@gmail.com>
2023-04-04 09:53:13 +01:00
Paul Holden f60057a680 Merge branch 'MDL-77773-master' of https://github.com/andrewnicols/moodle 2023-03-30 10:41:15 +01:00
Andrew Nicols 7ba9097264 MDL-77773 editor_tiny: Improve initial editor size 2023-03-28 20:47:49 +08:00
Andrew Nicols 8fe80e743c MDL-77740 editor_tiny: Set the Editor window from the iFrame element
This is a workaround for an upstream bug which I have not been able to
reproduce outside of Moodle whereby the editor.contentWindow does not
match the editor.iframeElement.contentWindow when it should.

This issue only seems to affect Firefox, and it may even be a bug in
Firefox. It can only be reproduced when using a fresh browser which has
never had a TinyMCE window open.
2023-03-28 10:43:21 +08:00
Jun Pataleta 9bba8650c0 Merge branch 'MDL-76569-master' of https://github.com/andrewnicols/moodle 2023-02-07 22:54:12 +08:00
Paul Holden fe6db3e3b2 Merge branch 'MDL-76447-master' of https://github.com/meirzamoodle/moodle 2023-02-03 14:31:38 +00:00
Meirza 83b5089e54 MDL-76447 editor_tiny: Nest the dropdown menu in the parent DOM.
The TinyMCE menu has a significant issue with the Overflow style,
and the Boost theme heavily uses Overflow for drawer navigation.
Nest the dropdown menu container into the parent editor container makes it work correctly.

Co-authored-by: davewoloszyn <david.woloszyn@moodle.com>
Co-authored-by: xr0master <xr0master@gmail.com>
2023-02-01 17:33:18 +07:00
Meirza ec805cd575 MDL-76562 editor_tiny: Added functions to remove button/menu/submenu.
Added a few functions to remove the toolbar button, menubar and sub-menu items.
One of the implementations is to remove the justify alignment in the toolbar and
the sub-menu items to aid the accessibility aspect of the TinyMCE editor.
2023-01-20 09:57:52 +07:00
Huong Nguyen c4c85a8f1c MDL-76474 editor_tiny: Implement placeholder selector list
We created a list of placeholder selectors in placeholderSelectors option.
The purpose of this list is to indicate the contents that are only shown
in the editor and not to the users, by that way, we can decide to apply or
not to apply rules, styles, etc... to these contents
2023-01-12 10:51:02 +07:00
Andrew Nicols c7dd76dadb MDL-76734 editor_tiny: Listen to TinyMCE submit events
jQuery submit events do not trigger the native submit event, and
therefore the TinyMCE submit listener is not called. This means that the
tinymce.triggerSave() function is not called, and the editor content is
not saved.

To work around this, if there is a form for the Node that the editor is
attached to, the jQuery submit event is listened to and the save event
called.

Unfortunately it is not possible to use a global jQuery submit listener
added to the document to save all editors on the page.
In some cases, this is too late because the bubbling process means that
a child node consumer may attempt to consume the data before the
delegated handler is called for the document.
2022-12-21 13:02:21 +08:00
Andrew Nicols aea298513e MDL-76569 editor_tiny: Set table row header style
Configure Tiny to use markup of:

table > thead > tr > th

For all table headers.
2022-12-05 20:49:17 +08:00
Andrew Nicols 898e67ecb3 MDL-76440 editor_tiny: Add directionality plugins to toolbar 2022-11-23 11:11:47 +08:00
Andrew Nicols 126db9165c MDL-76025 editor_tiny: Adjust initial toolbar layout
Part of MDL-75966
2022-11-10 19:55:15 +08:00
Andrew Nicols 71046558b1 MDL-75260 tiny_media: Move uploader to editor_tiny
Part of MDL-75966
2022-11-10 19:53:54 +08:00
Andrew Nicols cdbabe8ef8 MDL-75263 tiny_autosave: Implement Autosave for TinyMCE
Part of MDL-75966
2022-11-10 19:53:39 +08:00
Andrew Nicols c4a0896134 MDL-75966 editor_tiny: Tidy up toolbar management 2022-11-10 19:53:31 +08:00
Andrew Nicols 9dd2921d7c MDL-75331 editor_tiny: Limit formatting options
This commit removes several contentious formatting options for now,
pending further consideration, in particular it removes:
- forecolor
- backcolor
- fontfamily
- styles

The two color plugins are written in such a way that the chosen colour
is embedded into a style tag in the generated content. This is not
ideal as it removes these decisions away from theme developers and upon
theme changes to a site, is likely to lead to inaccessible and/or broken
content.

We feel that a new colour plugin will be required which links to known
colour style classes within the theme to allow a subset of colours which
are guaranteed to work with the theme.

The fontfamily plugin is removed pending further administrator
configuration in a future release.

In the case of the 'styles' plugin, this duplicates large parts of the
Format menu into which it is placed but does so in a way that does
respect the configuration of other areas - for example the block_formats
tag is ignored in this menu.

Part of MDL-75966
2022-11-10 19:53:27 +08:00
Andrew Nicols 769cc95f92 MDL-75078 editor_tiny: Tidy up TinyMCE configuration
This change does not include any functional change, but
compartmentalises the existing configuration to make it easier to read.

Part of MDL-75966
2022-11-10 19:53:23 +08:00