Conversation
|
| Filename | Overview |
|---|---|
| sources/Application/Helper/CKEditorHelper.php | Translation file paths correctly updated to .umd.js for both P1 (language+country) and P2 (language-only) lookups; stale maximize config key remains after Maximize→Fullscreen plugin swap. |
| js/ckeditor.handler.js | Correctly migrates to CKEditor v48 API: element passed via attachTo in config object and GPL license key set as default (overridable by callers via Object.assign). |
| lib/scssphp/scssphp/src/Compiler.php | Adds diff_recursive() method and fixes the Fatal Error caused by calling it as a bare function; implementation handles string-valued selector parts correctly for the SCSS use case. |
| datamodels/2.x/itop-portal-base/portal/public/css/vendors/_ckeditor.scss | New file that imports the compiled CKEditor theme, overrides the font-family CSS variable, and extends .ck-content for portal HTML display consistency. |
| css/backoffice/components/_quick-create.scss | Replaces @extend a (which caused SCSS compilation issues with the new scssphp) with explicit color and text-decoration property declarations. |
| node_modules/ckeditor5-itop-build/package.json | Bumps to v3.3.0; consolidates all @ckeditor/ckeditor5-* packages into the single ckeditor5@^48.0.0 umbrella dependency as required by CKEditor v42+ migration guide. |
| node_modules/ckeditor5-itop-build/webpack.config.js | Removes CKEditor-specific webpack plugins (CKEditorTranslationsPlugin, BannerPlugin); uses CopyPlugin to copy pre-built UMD translation files from ckeditor5 package instead. |
Sequence Diagram
sequenceDiagram
participant PHP as CKEditorHelper.php
participant Page as WebPage/RenderingOutput
participant JS as ckeditor.handler.js
participant CKE as ClassicEditor (v48)
participant SCSS as scssphp Compiler
PHP->>PHP: GetCkeditorConfiguration()
PHP->>PHP: GetJSFilesRelPathsForCKEditor()
Note over PHP: Resolves lang .umd.js files
PHP->>Page: LinkScriptFromAppRoot(ckeditor.js)
PHP->>Page: add_ready_script(CreateInstance)
Page->>JS: CreateInstance('#elem', config)
JS->>JS: PrepareConfiguration(sElem, aConfiguration)
JS->>CKE: ClassicEditor.create(Object.assign({attachTo, licenseKey:'GPL'}, config))
CKE-->>JS: editor instance
JS->>JS: instances[sElem] = editor
SCSS->>SCSS: diff_recursive() [fixed $this-> call]
Note over SCSS: Used during @extend resolution
Reviews (2): Last reviewed commit: "Fix translations specific language file ..." | Re-trigger Greptile
|
@greptileai review please :) |
Base information
Objective (enhancement)
Update CKEditor 5 from v41.4 to v48.0
Proposed solution (bug and enhancement)
Follow CKEditor v48 upgrade guide, only import CKEditor5 npm package, remove most of webpack use (we still need it to get a build), replace our custom Maximize plugin with the new default Fullscreen plugin
Adapt changes required in iTop's code
Fix issues due to bad SCSS
Checklist before requesting a review
Checklist of things to do before PR is ready to merge