Skip to content

[WIP] Migrate Selection Dialog Components from BTable to GTable#22231

Draft
itisAliRH wants to merge 16 commits intogalaxyproject:devfrom
itisAliRH:btable-to-gtable-selection-dialogs
Draft

[WIP] Migrate Selection Dialog Components from BTable to GTable#22231
itisAliRH wants to merge 16 commits intogalaxyproject:devfrom
itisAliRH:btable-to-gtable-selection-dialogs

Conversation

@itisAliRH
Copy link
Copy Markdown
Member

WIP: This PR migrates SelectionDialog and its related components from Bootstrap-Vue's components to our GTable as part of the ongoing effort tracked in #21703.

How to test the changes?

(Select all options that apply)

  • I've included appropriate automated tests.
  • This is a refactoring of components with existing test coverage.
  • Instructions for manual testing are as follows:
    1. [add testing steps and prerequisites here if you didn't write automated tests covering all your changes]

License

  • I agree to license these and all my past contributions to the core galaxy codebase under the MIT license.

@itisAliRH itisAliRH added kind/enhancement area/UI-UX kind/refactoring cleanup or refactoring of existing code, no functional changes labels Mar 23, 2026
@itisAliRH itisAliRH force-pushed the btable-to-gtable-selection-dialogs branch from 6a84fe6 to bd6681a Compare March 25, 2026 15:15
- Remove deprecated BTable in favor of GTable for improved functionality.
- Update field types from FieldEntry to TableField for consistency.
- Enhance sorting and filtering capabilities with new computed properties.
- Refactor event handling for row clicks and sorting changes.
- Improve pagination reset logic when filters are applied.
- Deleted the FieldEntry interface from selectionTypes.ts as it is no longer needed.
- This change helps to clean up the code and improve maintainability.
- Updated the SelectionDialog test file to replace instances of BTable with GTable.
- Ensured that the tests correctly check for the existence of GTable instead of BTable.
- Updated the test file to remove the BTable component.
- Integrated GTable component to align with recent UI changes.
- Ensured that the tests reflect the current component structure.
- Changed fields definitions in DataDialog, FilesDialog, BasicSelectionDialog, and HistoryDatasetPicker components to explicitly use TableField type.
- Added labels for fields in each dialog to improve clarity and consistency.
- Change v-model to use :value and @input for filter binding
- Ensure proper data flow for search functionality
- Introduced TableClassValue type for better class management in GTable.
- Updated TableField interface to use TableClassValue for class and cellClass properties.
- Modified GTable.vue to utilize new class handling for rows and cells.
- Change the icon selection logic to use selectionState instead of _rowVariant.
- Update SelectionItem interface to replace _rowVariant with selectionState.
- Ensure proper type imports for TableClassValue in selectionTypes.
- Updated the FilesDialog component to use 'selectionState' instead of '_rowVariant' for better clarity.
- Adjusted related test cases to reflect this change.
- Ensured consistent handling of selection states across the component.
- Updated the variable name from _rowVariant to selectionState for clarity.
- Added a class binding based on the selection state to enhance UI feedback.
- Remove unused select icon field and related props.
- Rename props for clarity: selectAllVariant to selectable, showSelectIcon to allSelected.
- Implement syncSelectedItems function to manage selected items based on item classes and selection state.
- Update event handling for row clicks and select all actions to utilize syncSelectedItems.
- Remove unused selectAllIcon state.
- Replace selectAllIcon with allSelected prop for better clarity.
- Adjust SelectionDialog props for improved functionality.
- Removed computed property for selectAllIcon.
- Updated props for selection dialog to use allSelected directly.
- Enhanced clarity in the selection handling for datasets.
- Imported the Model from the local model file to enhance functionality within the DataDialog component.
@itisAliRH itisAliRH force-pushed the btable-to-gtable-selection-dialogs branch from bd6681a to 145a784 Compare April 15, 2026 12:51
Update FilesDialog tests to assert the GTable header checkbox state instead of the removed SelectionDialog selectAllVariant prop.\n\nAdd SelectionDialog regression tests that verify select-all checked/indeterminate behavior from incoming item selection metadata.\n\nKeep selected row indices synchronized with incoming table items so select-all state remains correct after directory navigation and recursive selection updates.
- Change the selector for the busy spinner in the selection dialog to use a data attribute for better specificity.
- Update the corresponding import dataset selector to match the new structure.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/UI-UX kind/enhancement kind/refactoring cleanup or refactoring of existing code, no functional changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant