Feat 134 close all studies options#197
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a safer bulk-close workflow by letting users select specific open studies to close (rather than closing everything), and enhances progress feedback during long-running bulk operations.
Changes:
- Reworks the bulk-close modal UI to show a selectable/filterable table of open studies and disables closing when nothing is selected.
- Extends the
studyCloseBulksocket handler to optionally operate on an explicit list of study IDs and to return aclosedCount. - Improves progress bar display by showing
(current / total)alongside the percentage.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| frontend/src/components/dashboard/study/BulkCloseModal.vue | Replaces “close all” confirmation with a selectable table of open studies and emits an id-list based bulk close request. |
| frontend/src/basic/Modal.vue | Enhances progress UI to show item counts in addition to percent complete. |
| backend/webserver/sockets/study.js | Adds id-list mode for bulk closing, returns closedCount, and improves progress emission efficiency. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const wf = this.$store.getters["table/workflow/get"](id); | ||
| return { | ||
| value: id, | ||
| name: wf?.name ? `${wf.name} (id ${id})` : `Workflow ${id}`, |
| v-model="selectedStudies" | ||
| :columns="columns" | ||
| :data="tableRows" | ||
| :options="tableOptions" |
| name: study.name || `Study ${study.id}`, | ||
| workflowName: workflow?.name || `Workflow ${study.workflowId ?? "-"}`, | ||
| ownerName, | ||
| createdAt: new Date(study.createdAt).toLocaleString(), | ||
| }; |
| * @socketEvent studyCloseBulk | ||
| * @param data The data required for the bulk close operation. | ||
| * @param data.projectId the project ID of the studies to close | ||
| * @param data.ignoreClosedState if true, also close studies that are already closed | ||
| * @param data.progressId the ID of the progress bar to update | ||
| * @param data.progressId optional id for progressUpdate events |
| async closeBulk(data, options) { | ||
| const projectId = Number(data.projectId); | ||
| const ignoreClosedState = data.ignoreClosedState === true; | ||
| const progressId = data.progressId; | ||
| let studies; |
| !s.template, | ||
| ); | ||
| } else { | ||
| studies = await this.models["study"].getAllByKey("projectId", data.projectId); |
Combine session overview UI refactor, study dashboard updates, and nav migration adjustments into one feature commit for cleaner review and merge.
|
Hello, this commit (23cc9d9) is just me updating this feature branch |
There was a problem hiding this comment.
I think we don't need to change the basic component. for bulk assignment creation i used progressbar you can use the same code to make it work.
| /** | ||
| * Modal for bulk closing studies | ||
| * Modal for bulk closing studies (optional filters: workflow, study user) | ||
| * @author: Dennis Zyska |
There was a problem hiding this comment.
add your name in the author you created this functionality right?
|
add also https://github.com/UKPLab/CARE/pull/164/changes all the changes from karim merge req are inside this merge req i think we only need to change study.js, bulkclose.vue and study.vue |
Selective Study Closing with Workflow and User Filters
Previously, users could only close all studies at once. This feature adds the ability to selectively close studies by filtering them based on workflow type and/or user, reducing the risk of unintentionally closing studies and providing finer-grained control over bulk operations.
New User Features
New Dev Features
workflowIdanduserIdparameters to filter study lists before closing.Improvements