1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-08 15:57:01 +02:00

Update InputfieldTinyMCE.js to support "saved" and "saveReady" JS events to ensure that TinyMCE content gets populated to original input/textarea elements. Seems to be necessary for LRP but likely to come in handy elsewhere too.

This commit is contained in:
Ryan Cramer
2024-06-14 10:56:34 -04:00
parent cc79223bc8
commit 34c10a5417

View File

@@ -115,6 +115,7 @@ var InputfieldTinyMCE = {
*
*/
cls: {
main: 'InputfieldTinyMCE',
lazy: 'InputfieldTinyMCELazy',
inline: 'InputfieldTinyMCEInline',
normal: 'InputfieldTinyMCENormal',
@@ -794,6 +795,30 @@ var InputfieldTinyMCE = {
if($placeholders.length) t.initPlaceholders($placeholders);
if($editors.length) t.initEditors($editors);
*/
})
.on('saved', '.' + t.cls.main, function(e) {
// saved event like when triggered by LRP
var $t = $(this);
var $editors = $t.hasClass(t.cls.loaded) ? $t : $t.find('.' + t.cls.loaded);
if($editors.length) t.destroyEditors($editors);
})
.on('saveReady', '.' + t.cls.main, function(e) {
// saveReady event, such as from LRP
// manually dump current value to input to ensure it gets saved
var $editors = $(this).find('.' + t.cls.loaded);
$editors.each(function() {
var $editor = $(this);
if($editor.hasClass(t.cls.inline)) {
// inline editor, map name property to separate input[name] with Inputfield_ prefix
var name = 'Inputfield_' + $(this).attr('name');
var $input = $editor.next('input[name=' + name + ']');
$input.val($editor.html());
} else {
// regular editor
var editor = tinymce.get($(this).attr('id'));
$(this).val(editor.getContent());
}
});
});
/*