Hello,
Quelques news depuis … Novembre
Énormément de changements ces deux derniers mois !
On a littéralement déconnecté jQuery du Core 4.4 ! C’est un boulot juste monstrueux, puisqu’il a fallut réécrire tout le front-end en pur js : les actions et fonctions, les délégations des events, etc. Mais surtout il a fallut construire une architecture complète sur laquelle s’appuyer, notamment pour gérer tous les appels ajax, qui passait avant par jQuery
Au final, on se rend compte que jQuery masque énormément de choses et qu’il a fallut apprendre… Mais c’est un mal pour un bien, on a repris le contrôle total du front-end
Bien sur il n’y a pas que les js et les fonctions, il y a aussi les plugins jQuery et les libs dépendantes de jQuery. On en récrit beaucoup, et intégré quelques nouvelles en pur js.
On a notamment développé en interne la lib jeeDialog() qui gère maintenant tous les popup, alertes, boites de confirmations, et boites de dialogues (qui sont maintenant maximisable!). Idem pour jeeComplete, jeeCtxMenu, jeeFileUploader, jeeResize, etc …
Nous avons aussi intégrer SortableJS, une des meilleures libs pour la gestion des drag/drop. Ce qui, par exemple, améliore la gestion des déplacements de blocs dans les scénarios.
Adieux donc jQuery Autocomplete, jQuery bootbox, jQuery UI, jQuery Sortable, jQuery caret, jQuery contextMenu, jQuery FileUpload etc etc !
Aujourd’hui, il nous reste deux libs à remplacer :
- jstree, utilisé pour quelques plugins et la modale select icon.
- jQuery tablesorter (filtre et tri des tables).
Pour l’instant on a pas trouvé de remplaçant …
Enfin, l’éditeur de fichiers, basé sur la lib elFinder, est également jQuery dépendant, et pas de remplaçant pour l’instant.
Pour les curieux (et les devs du Core et de plugins), vous pouvez tester vos plugins sur le Core sans Jquery ni Bootstrap (oui on a rendu le Core bootstrap less aussi… ).
Pour cela, éditez le fichier desktop/php/index.php et mettez la variable loadJquery à false : $loadJquery = false;. Par contre attention, vous ne pourrez pas rouvrir l’éditeur si vous fermez la fenêtre puisqu’il a besoin de jQuery. Mais les devs ont généralement un accès direct aux fichiers de leur alpha.
Bref, tout ceci pour vous tenir au courant des évolutions du Core, qui ne sont pas … légères ! Et les performances de l’interface sur cette 4.4 sont juste pas comparables … A tout réécrire on est aussi, forcément, tombé sur des bugs ou incohérences ici et là qu’on a bien sur laissé .
Aux devs de plugins, pas d’inquiétude, tout a été pensé pour éviter au maximum de casser quoique ce soit. Testez vos plugins en alpha, si quelque chose ne va pas on essayera d’apporter une solution. Pour l’instant, rien ne presse pour les plugins puisque tous ceci ne sera dispo qu’à partir de la 4.4. Mais un jour … Doc dev.
En attendant la beta 4.4, on entre dans une phase de stabilisation de l’alpha où il va falloir dénicher le moindre petit bug… tout ayant été récrit, il y en a forcément ! Le top serait de remplacer les qql libs dépendantes de jQuery qu’il reste, afin de proposer une 4.4 full $less sur laquelle pourront s’appuyer les plugins plus tard.