Project

General

Profile

Development #16669

Ne pas laisser ckeditor forcer par défaut les dimensions de l'image

Added by Frédéric Péters over 5 years ago. Updated over 2 years ago.

Status:
Information nécessaire
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
02 June 2017
Due date:
29 March 2018
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

À la sélection d'une image, ckeditor remplit automatiquement ses champs largeur/hauteur et le résultat ensuite une fois l'image insérée c'est un attribut style="width: ...px; height: ...px;".

Dans des environnements "responsives" où la largeur des images est bloquée à la largeur de l'écran (ex: img { max-width: 100% }), le résultat c'est que l'image se trouvera compressée sur sa largeur mais conservera une hauteur identique; vraiment pas terrible.

Il faudrait que par défaut ckeditor ne mette pas en dur ces dimensions.


Files


Related issues

Related to Intégrations graphiques Publik - Development #40417: Toutes les images flexibles par défaultSolution déployée04 March 2020

Actions

History

#1

Updated by Anonymous almost 5 years ago

  • Due date set to 15 June 2017
  • Assignee set to Anonymous
#2

Updated by Frédéric Péters almost 5 years ago

Sur la réalisation, peut-être que ckeditor propose un moyen très facile de contrôler ça et ce serait très bien.

À défaut, si l'impression donnée est que ça nécessite de remuer des trucs internes qui semblent plutôt friables, un plan tout à fait valide serait de refaire cette fenêtre d'ajout d'image, de manière propre à Publik.

Celle-ci serait alors plus légère en options, genre proposer un champ d'upload de fichier, une sélection dans les images existantes et peut-être permettre une URL. Et comme paramètres supplémentaires, l'alignement gauche/droite pour taper le float correspondant, et de quoi remplir l'attribut "alt". Et ça pourrait s'arrêter là il me semble.

#3

Updated by Anonymous almost 5 years ago

  • Status changed from Nouveau to Information nécessaire

Frédéric Péters a écrit :

Sur la réalisation, peut-être que ckeditor propose un moyen très facile de contrôler ça et ce serait très bien.

J'ai trouvé cette solution de configuratoin : https://docs.ckeditor.com/ckeditor4/latest/guide/dev_disallowed_content.html#how-to-allow-everything-except. En mettant disallowedContent: 'img{width, height}'

Mais pour passer la configuration type CKEDITOR.dtd dans les settings django, c'est impossible.
Je cherche un moyen de passer ce bout de config en JS dans manager_base.html, je m'arrête pour le moment : la question d'avoir 2 bouts de configurations à différents endroits me gratte. Ckeditor c'est du JS, sa configuration depuis python est forcément limitée et là je crois qu'on touche les limites.

Est-ce qu'on met toute la configuration dans un config.js et plus dans settings.py ?

#4

Updated by Frédéric Péters almost 5 years ago

En mettant disallowedContent: 'img{width, height}'

C'était sans doute pas clair mais le problème ce n'était pas vraiment l'utilisation de width/height, c'est que la boite de dialogue de ckeditor trouve opportun par défaut de les positionner. C'est pour ça qu'en alternative à un paramétrage simple qui pemettrait d'éviter ceci je notais la possibilité de refaire la boite de dialogue avec uniquement les paramètres qu'on souhaiterait. (sans avoir non plus regardé si c'était facile d'ajouter notre propre bouton, ou de modifier le comportement du bouton existant).

~~

Mais pour reprendre sur l'interdiction de width/height, en se disant que ce n'est pas si grave si c'est interdit (je ne sais pas); on peut voir pour que CKEditorWidget ajoute un fichier js supplémentaire (cf CKEditorWidget::Media::js), avec les bouts de config désirés. (mais l'avantage de la config dans les settings django c'est qu'elle profite de toute l'infrastructure multitenant, je crains avec le js qu'on perde tout ça).

#5

Updated by Frédéric Péters almost 5 years ago

(et aussi, si tout ça ajoute des trucs trop compliqués, je préfère continuer à vider ces champs préremplis à la main plutôt que complexifier les choses juste pour ça)

#6

Updated by Anonymous almost 5 years ago

Frédéric Péters a écrit :

(et aussi, si tout ça ajoute des trucs trop compliqués, je préfère continuer à vider ces champs préremplis à la main plutôt que complexifier les choses juste pour ça)

J'ai trouvé un moyen de modifier une boite de dialogue comme ça : https://docs.ckeditor.com/ckeditor4/latest/guide/dev_howtos_dialog_windows.html
C'est bien ça (enlever les champs du dialog) qu'on cherche à faire ?

Mais pas sûr dans cette solution que la fonction resetSize() qui je crois écrit dans ces champs height/width (https://github.com/ckeditor/ckeditor-dev/blob/master/plugins/image/dialogs/image.js#L154) ne soit neutralisée et qu'on ne se retrouve pas non plus avec un style inline quand même inséré dans l'HTML...

#7

Updated by Frédéric Péters almost 5 years ago

C'est bien ça (enlever les champs du dialog) qu'on cherche à faire ?

C'est enlever le préremplissage automatique de ces champs. Si ça passe par leur suppression, so be it.

#8

Updated by Anonymous almost 5 years ago

Frédéric Péters a écrit :

C'est enlever le préremplissage automatique de ces champs. Si ça passe par leur suppression, so be it.

J'ai tenté d'enlever les input concernées, sans succès. Le crash JS a lieu lors de l'ajout d'une image :

Uncaught TypeError: Cannot read property 'getValue' of undefined
    at CKEDITOR.dialog.getValueOf (ckeditor.js:574)
    at l (image.js?t=F62B:7)
    at CKEDITOR.dialog.<anonymous> (image.js?t=F62B:10)
    at ckeditor.js:26

Il faudrait modifier le code du plugin image.js pour ignorer les éléments de la dialog 'txtWidth', 'txtHeight' et 'ratio', or ils sont codé dans les fonctions lorsqu'on upload une nouvelle image.
Cela prendra plus de temps et je pense pas possible avant la release du 22 mars.
Je propose de faire ce ticket pour la release suivante, donc.

#9

Updated by Frédéric Péters almost 5 years ago

Ou sérieusement le zapper, en se disant que ça ne vaut pas la peine. (vraiment, c'est juste un détail de confort)

#10

Updated by Anonymous almost 5 years ago

Frédéric Péters a écrit :

Ou sérieusement le zapper, en se disant que ça ne vaut pas la peine. (vraiment, c'est juste un détail de confort)

Ou bien étudier un changement d'éditeur. Un éditeur si lourd mais qui pose des contraintes non-paramétrables de ce type, c'est pas vraiment ce qu'on veut avec un outil aussi lourd. Par exemple Pell : https://github.com/jaredreich/pell/#readme

#11

Updated by Frédéric Péters almost 3 years ago

#12

Updated by Frédéric Péters over 2 years ago

  • Patch proposed changed from Yes to No

Also available in: Atom PDF