N°9565 - Extension Mgmt : display progression during analysis#975
N°9565 - Extension Mgmt : display progression during analysis#975Lenaick wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Moves extension-removal compilation and auditing to asynchronous operations with progress feedback.
Changes:
- Adds AJAX compilation and audit workflows.
- Persists setup state through session parameters.
- Adds progress, success, error, and empty-result UI messaging.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
sources/Service/Session/SessionParameters.php |
Avoids unchanged session writes. |
setup/wizardsteps/WizStepLandingBeforeAudit.php |
Reuses session-backed setup parameters. |
setup/setuputils.class.inc.php |
Updates feature-removal return routing. |
datamodels/2.x/combodo-data-feature-removal/templates/Features.html.twig |
Updates return-application identifier. |
datamodels/2.x/combodo-data-feature-removal/templates/AnalysisResult.ready.js.twig |
Runs compilation and audit asynchronously. |
datamodels/2.x/combodo-data-feature-removal/templates/AnalysisResult.html.twig |
Displays progress and AJAX results. |
datamodels/2.x/combodo-data-feature-removal/templates/AjaxRunAudit.html.twig |
Renders audit and cleanup results. |
datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php |
Implements AJAX operations and session-backed cleanup state. |
datamodels/2.x/combodo-data-feature-removal/dictionaries/fr.dict.combodo-data-feature-removal.php |
Adds French progress messages. |
datamodels/2.x/combodo-data-feature-removal/dictionaries/en.dict.combodo-data-feature-removal.php |
Adds English progress messages. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
| Filename | Overview |
|---|---|
| setup/wizardsteps/WizStepLandingBeforeAudit.php | Removed all SavePostedParameter calls for extension/module parameters; the else branch now only saves copy_setup_files, so wizard steps that depend on selected_modules, selected_extensions, etc. will receive empty defaults. |
| datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php | Refactored compile and audit into two separate AJAX operations (OperationAjaxCompile, OperationAjaxRunAudit); parameters migrated from POST-based to SessionParameters; success_message is always emitted even on error. |
| datamodels/2.x/combodo-data-feature-removal/templates/AnalysisResult.ready.js.twig | New JS template: chains ajax_compile() to ajax_run_audit() with in-progress/success/error indicators; both .fail() handlers correctly hide spinners. |
| datamodels/2.x/combodo-data-feature-removal/templates/AjaxRunAudit.html.twig | New template for the AJAX audit result: renders deletion plan table or no-cleanup success message with a launch-setup form. |
| datamodels/2.x/combodo-data-feature-removal/templates/AnalysisResult.html.twig | Refactored to show extension diff summary and AJAX progress placeholders immediately; compile/audit result injected asynchronously into #ajax_run_audit. |
| sources/Service/Session/SessionParameters.php | Added a short-circuit optimization in SetParameter to skip the session write when value is unchanged; safe for both scalars and arrays. |
| setup/setuputils.class.inc.php | Renames the return_application switch case from 'itop' to 'DataFeatureRemoval' to match the new session parameter value set by OperationMain(). |
Sequence Diagram
%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant Browser
participant DFR as DataFeatureRemovalController
participant Session as SessionParameters
participant Wizard as WizStepLandingBeforeAudit
Browser->>DFR: GET OperationAnalysisResult
DFR->>Session: Seed extension/module params
DFR-->>Browser: AnalysisResult.html + JS
Browser->>DFR: POST ajax_compile
DFR->>Session: Read selected_extensions
DFR->>DFR: DoCompile()
DFR->>Session: SetParameter(selected_modules)
DFR-->>Browser: JSON success or error
alt Compile OK
Browser->>DFR: POST ajax_run_audit
DFR->>DFR: RunDataAudit()
DFR->>Session: SetParameter(classes)
DFR-->>Browser: HTML AjaxRunAudit
alt Deletion needed
Browser->>DFR: POST DoDeletion
DFR->>Session: Read classes
DFR->>DFR: ExecuteCleanup()
DFR-->>Browser: Redirect OperationAnalysisResult
else No deletion needed
Browser->>Wizard: "POST _class=WizStepLandingBeforeAudit"
Note over Wizard: selected_modules / selected_extensions NOT in wizard params
Wizard-->>Browser: WizStepDataAudit
end
end
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant Browser
participant DFR as DataFeatureRemovalController
participant Session as SessionParameters
participant Wizard as WizStepLandingBeforeAudit
Browser->>DFR: GET OperationAnalysisResult
DFR->>Session: Seed extension/module params
DFR-->>Browser: AnalysisResult.html + JS
Browser->>DFR: POST ajax_compile
DFR->>Session: Read selected_extensions
DFR->>DFR: DoCompile()
DFR->>Session: SetParameter(selected_modules)
DFR-->>Browser: JSON success or error
alt Compile OK
Browser->>DFR: POST ajax_run_audit
DFR->>DFR: RunDataAudit()
DFR->>Session: SetParameter(classes)
DFR-->>Browser: HTML AjaxRunAudit
alt Deletion needed
Browser->>DFR: POST DoDeletion
DFR->>Session: Read classes
DFR->>DFR: ExecuteCleanup()
DFR-->>Browser: Redirect OperationAnalysisResult
else No deletion needed
Browser->>Wizard: "POST _class=WizStepLandingBeforeAudit"
Note over Wizard: selected_modules / selected_extensions NOT in wizard params
Wizard-->>Browser: WizStepDataAudit
end
end
Reviews (3): Last reviewed commit: "N°9565 - Extension Mgmt : display progre..." | Re-trigger Greptile
bc5c77a to
f31e7df
Compare
6b068cd to
6bae7b8
Compare
N°9565 - Extension Mgmt : display progression during analysis