Conversation
…in imageSepalExport.js and timeSeriesSepalExport.js
There was a problem hiding this comment.
Pull request overview
This PR continues #363 by adding a task details UI and related backend endpoint, while also standardizing how “retrieve” tasks are submitted across recipes (including new output-path metadata and a new filename prefix for SEPAL exports). It additionally adds UI-side validation for SEPAL workspace destinations by listing directory contents and recognizing “pending export” markers.
Changes:
- Add a TaskDetails modal (GUI) +
/api/tasks/task/{id}/detailsendpoint (server) to display richer task metadata. - Standardize retrieve task submission via a shared
recipeTaskSubmitter, includingtaskInfo(destination/output path) and Drive folder handling. - Add SEPAL export
filenamePrefixand UI validation of destination folders; introduce.task_pendingmarker creation/removal for SEPAL exports.
Reviewed changes
Copilot reviewed 40 out of 40 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| modules/user-files/src/filesystem.js | Adds count to listFiles response to support UI validation. |
| modules/task/src/tasks/timeSeriesSepalExport.js | Updates params shape, adds filename prefix handling, and creates/removes .task_pending marker. |
| modules/task/src/tasks/imageSepalExport.js | Adds filename prefix support and .task_pending marker handling for SEPAL image exports. |
| modules/task/src/tasks/imageDriveExport.js | Switches Drive export folder source to task-provided folder name. |
| modules/task/src/tasks/ccdcAssetExport.js | Adjusts CCDC export submit signature to new {image, description} params structure. |
| modules/task/src/rxjs/fileSystem.js | Introduces createLock$/releaseLock$ utilities for .task_pending markers. |
| modules/task/src/jobs/export/toSepal.js | Extracts Drive path helper into shared utility. |
| modules/task/src/jobs/export/toDrive.js | Uses shared Drive path helper. |
| modules/task/src/jobs/export/driveUtils.js | New shared drivePath utility. |
| modules/sepal-server/src/main/groovy/org/openforis/sepal/component/task/endpoint/TaskEndpoint.groovy | Adds /tasks/task/{id}/details endpoint. |
| modules/gui/src/widget/workspaceDestination.jsx | Adds debounced server-side folder listing to validate SEPAL destination emptiness/pending tasks. |
| modules/gui/src/app/home/body/tasks/tasks.jsx | Opens TaskDetails modal on task click; updates click handling to avoid propagation issues. |
| modules/gui/src/app/home/body/tasks/taskDetails.module.css | New styling for TaskDetails modal layout. |
| modules/gui/src/app/home/body/tasks/taskDetails.jsx | New modal that loads task details and renders status/config/location/progress sections. |
| modules/gui/src/app/home/body/process/recipe/unsupervisedClassification/unsupervisedClassificationRecipe.js | Migrates retrieve submission to shared submitter and custom band selection. |
| modules/gui/src/app/home/body/process/recipe/timeSeries/timeSeriesRecipe.js | Updates time series task submission to include image wrapper + taskInfo. |
| modules/gui/src/app/home/body/process/recipe/stack/stackRecipe.js | Migrates retrieve submission to shared submitter. |
| modules/gui/src/app/home/body/process/recipe/remapping/remappingRecipe.js | Migrates retrieve submission to shared submitter with pyramiding policy. |
| modules/gui/src/app/home/body/process/recipe/regression/regressionRecipe.js | Migrates retrieve submission to shared submitter and custom band selection. |
| modules/gui/src/app/home/body/process/recipe/recipeTaskSubmitter.js | New shared helper to build/submit retrieve tasks consistently across recipes. |
| modules/gui/src/app/home/body/process/recipe/recipeOutputPath.js | New helper to compute outputPath + taskInfo (destination, sharing, filenamePrefix). |
| modules/gui/src/app/home/body/process/recipe/radarMosaic/radarMosaicRecipe.js | Migrates retrieve submission to shared submitter with RADAR dataset tagging. |
| modules/gui/src/app/home/body/process/recipe/planetMosaic/planetMosaicRecipe.js | Migrates retrieve submission to shared submitter with PLANET dataset tagging. |
| modules/gui/src/app/home/body/process/recipe/phenology/phenologyRecipe.js | Migrates retrieve submission to shared submitter with OPTICAL dataset tagging. |
| modules/gui/src/app/home/body/process/recipe/opticalMosaic/opticalMosaicRecipe.js | Migrates retrieve submission to shared submitter with visualization filtering. |
| modules/gui/src/app/home/body/process/recipe/mosaic/panels/retrieve/retrievePanel.jsx | Adds filenamePrefix field and defaults it from recipe title/placeholder. |
| modules/gui/src/app/home/body/process/recipe/masking/maskingRecipe.js | Migrates retrieve submission to shared submitter with change-based pyramiding policy. |
| modules/gui/src/app/home/body/process/recipe/indexChange/indexChangeRecipe.js | Migrates retrieve submission to shared submitter with change-based pyramiding policy. |
| modules/gui/src/app/home/body/process/recipe/classification/classificationRecipe.js | Migrates retrieve submission to shared submitter with class-based pyramiding policy. |
| modules/gui/src/app/home/body/process/recipe/classChange/classChangeRecipe.js | Migrates retrieve submission to shared submitter with transition-based pyramiding policy. |
| modules/gui/src/app/home/body/process/recipe/changeAlerts/changeAlertsRecipe.js | Migrates retrieve submission to shared submitter with sample pyramiding policy. |
| modules/gui/src/app/home/body/process/recipe/ccdcSlice/ccdcSliceRecipe.js | Migrates retrieve submission to shared submitter with custom band selection. |
| modules/gui/src/app/home/body/process/recipe/ccdc/ccdcRecipe.js | Updates CCDC GEE task submission to include image wrapper + taskInfo. |
| modules/gui/src/app/home/body/process/recipe/baytsHistorical/baytsHistoricalRecipe.js | Migrates retrieve submission to shared submitter with custom band selection. |
| modules/gui/src/app/home/body/process/recipe/baytsAlerts/baytsAlertsRecipe.js | Migrates retrieve submission to shared submitter with sample pyramiding policy. |
| modules/gui/src/app/home/body/process/recipe/bandMath/bandMathRecipe.js | Migrates retrieve submission to shared submitter. |
| modules/gui/src/app/home/body/process/recipe/asset/assetRecipe.js | Migrates retrieve submission to shared submitter with RADAR dataset tagging. |
| modules/gui/src/api/userFiles.js | Adds listFiles$ API call for workspace validation. |
| modules/gui/src/api/tasks.js | Adds loadDetails$ API call for TaskDetails modal. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
modules/gui/src/app/home/body/process/recipe/timeSeries/timeSeriesRecipe.js
Outdated
Show resolved
Hide resolved
|
@copilot I've just made the refactoring. LGTM. |
|
@dfguerrerom I've opened a new pull request, #370, to work on those changes. Once the pull request is ready, I'll request review from you. |
Continuation of #363.
I've created this new PR because the other became dirty due to all the new features in master. This is a clean continuation.
update: