Project

General

Profile

Feature #12439

TinyMCE Paste from Word & Character Count/Limit

Added by Philipp Gröbelbauer 5 months ago. Updated 5 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
Target version:
Start date:
23.04.2021
Due date:
% Done:

0%

Estimated time:
Discuss:

Description

Character Count & Limit

Der TinyMCE soll ein Character Count & Limit Feature bekommen, welches auch mit Paste (von Word oder sonstwo) funktioniert.

Es gibt ein Wordcount Plugin, welches per JS auch den Character Count ausgeben kann: https://www.tiny.cloud/docs/plugins/opensource/wordcount/
Verwendung dieses Plugins scheint aber nachteilhaft - man kann den default nicht auf Character Count setzen, ausser man nimmt das Plugin in den (sichtbaren) Editor Toolbar auf und simuliert nach Laden einen Klick auf das 'Count' Icon. (Beschrieben in einer Antwort auf https://stackoverflow.com/questions/34481959/tinymce-show-character-count-instead-of-word-count ) Zudem handelt es sich nur um Count und nicht um Limit.

Vielversprechendste Lösung wäre ein neuer selbst erstellter Param editor-character-limit. (Kein Limit wenn nicht definiert, sonst wird eine Zahl als Character Limit zugewiesen).
Das Javascript für den Count und Limit sollte grösstenteils aus der ersten Antwort von hier übernommen werden können: https://stackoverflow.com/questions/11342921/limit-the-number-of-character-in-tinymce
Das Paste-Plugin muss sehr wahrscheinlich aktiv sein, damit dies funktioniert, aufgrund der Verwendung von paste_preprocess.

Exkurs Paste (Ab hier nicht relevant für Beni, nur für Carsten/Medtool)

Paste from Word kann verbessert werden mit dem Paste Plugin ( https://www.tiny.cloud/docs-4x/plugins/paste/ ).

Dieses kann bereits verwendet werden mit Editor.parameter:
editor-plugins= paste [..other plugins...]

Damit wird bereits einiges an unbrauchbarem Word-Steuercode entfernt. Evt reicht es nicht (?), denn es gibt noch das Premium Powerpaste Plugin https://www.tiny.cloud/docs-4x/plugins/powerpaste/

Bilder aus Word werden by default als langer base64 string kopiert. Wenn das Paste Plugin aktiv ist, kann dies ausgeschalten werden mit:
editor-paste_data_images= false
Falls gar keine Formattierung kopiert werden soll:
editor-paste_as_text=true

Es gibt ein Drag & Drop Feature (Paste Drop Block), welches einfügen per drag & drop in den Tiny MCE erlaubt und das 'default' Pasting umgehen könnte. Evt in Betracht zu ziehen.


Files

tinyMCE.png (82.7 KB) tinyMCE.png Carsten Rose, 02.05.2021 16:36
#2

Updated by Philipp Gröbelbauer 5 months ago

  • Description updated (diff)
#3

Updated by Benjamin Baer 5 months ago

see git branch f12439-CharacterCount

mockup/richtexteditor.html

initialize:
data-config='{"plugins": "charactercount", "max_characters": 0, "allow_writing_past_limit": false}'

wenn max_characters: 0 - unlimited, zeigt aber charactercount, sonst nummer.
wenn allow_writing_past_limit: true, erlaubt das schreiben ueber das limit - zeigt nur warnung.

Standards: max_characters: 0, allow_writing_past_limit: false --- muessen also nicht angegeben werden.

Falls kein <p> wrap ueber alles gemacht werden soll: "forced_root_block": "" anfuegen

Styling kann ich leider nicht zu viel machen, da es unser css nicht nimmt (tinymce generiert eine eigene seite in einem iframe)

Vermutlich gibt es probleme mit anderen paste plugins, da ich das paste abschneide anhand der max_length - was vermutlich auch seltsame probleme geben koennen, falls es eine rich-text paste ist.

#4

Updated by Carsten Rose 5 months ago

Hallo Benj

Ich habe den Code soweit angepasst, allerdings bekommen ich weder das Mockup noch die QFQ Implementierung zum laufen. Koenntest Du Dir das mal anschauen?

Achtung: in 725c4a81 habe ich die JS Datei umbenannt - bitte den Branch f12439-CharacterCount neu ausschecken (darin ist auch mein Code enthalten).

Vielen Dank

CU
Carsten

#5

Updated by Benjamin Baer 5 months ago

  • mockup wurde aktualisiert auf /js/tinymce.charcount.js
  • crose/qfq website hat jetzt qfq.charcount.min.js als js include. funktioniert soweit. Wichtig: statusbar muss angezeigt werden, damit der charcount angezeigt wird.
#6

Updated by Benjamin Baer 5 months ago

  • charactercounter is now in the tinymce plugin directory and doesn't have to be loaded anymore :party:
#7

Updated by Carsten Rose 5 months ago

  • Target version changed from 21.8.0 to 21.7.0
#8

Updated by Carsten Rose 5 months ago

  • Status changed from New to ToDo
#9

Updated by Carsten Rose 5 months ago

  • Status changed from ToDo to In Progress
#10

Updated by Carsten Rose 5 months ago

  • Assignee changed from Benjamin Baer to Carsten Rose

Also available in: Atom PDF