Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add multi-selection support to dropdown widget #5138

Closed
wdanilo opened this issue Feb 5, 2023 · 16 comments · Fixed by #9621
Closed

Add multi-selection support to dropdown widget #5138

wdanilo opened this issue Feb 5, 2023 · 16 comments · Fixed by #9621
Assignees
Labels
-gui d-intermediate Difficulty: some prior knowledge required p-medium Should be completed in the next few sprints x-new-feature Type: new feature request
Milestone

Comments

@wdanilo
Copy link
Member

wdanilo commented Feb 5, 2023

The WidgetMultiSelection should work almost the same way as WidgetSelection, but (obviously) allow selecting multiple choices (it does not close after click at choice), and the picked items are put in List - and this list should be displayed with vector widget, because we want to allow reordering picked choices.


This task is automatically imported from the old Task Issue Board and it was originally created by Paweł Grabarz.
Original issue is here.

Step 3: Support for multi-selection

Delivery requirements:

The implementation should be refined to allow a multi-selection of entries. The information if the widget should allow multi-selection should be delivered from the engine together with the information that a particular input should be displayed as a drop-down widget.

See the widget metadata design to learn more: https://github.com/enso-org/design/blob/main/epics/widgets/drop-downs/dynamic-widgets.md

@farmaazon farmaazon added -gui and removed -gui labels Mar 6, 2024
@farmaazon farmaazon added this to the Beta Release milestone Mar 6, 2024
@farmaazon farmaazon added p-medium Should be completed in the next few sprints d-intermediate Difficulty: some prior knowledge required and removed p-low Low priority labels Mar 6, 2024
@farmaazon
Copy link
Contributor

The one difficulty I can think of is passing configuration of picked options to vector elements (each element could have different option picked, and thus different config). However, as I remember, it is the WidgetFunction now (not WidgetSelection), which picks of which option a configuration should be applied.

@farmaazon
Copy link
Contributor

farmaazon commented Mar 7, 2024

Refinement notes:

  • Recognizing what options are selected should be simple text matching of vector's elements code (like it is in single-choice right now).
  • Now we assume the widget always produces a vector (it may try to read non-vector as a single value, but any change would turn it to vector)
  • Let's also add API for Vector AST node and use it in WidgetVector as well (see TODO there)

@kazcw kazcw self-assigned this Mar 7, 2024
@kazcw kazcw mentioned this issue Mar 7, 2024
5 tasks
kazcw added a commit that referenced this issue Mar 8, 2024
Add `Vector` AST type, corresponding to the `RawAst.Tree.Array` type (name `Array` not used for obvious reasons).

This is the first step of #5138.

### Important Notes

- Switched some string-based vector construction to `Vector.new`, improving type-safety.
- The `Ast` changes are covered by the round-trip tests; the use-site changes have been tested manually.
@enso-bot
Copy link

enso-bot bot commented Mar 19, 2024

Keziah Wesley reports a new STANDUP for today (2024-03-18):

Progress: Implemented multiselect support in selection widget. It should be finished by 2024-03-22.

Next Day: Next day I will be working on the #5138 task. Add multi-choice mode to vector widget; e2e testing.

@enso-bot
Copy link

enso-bot bot commented Mar 20, 2024

Keziah Wesley reports a new STANDUP for today (2024-03-19):

Progress: Still working on testing. It should be finished by 2024-03-22.

Next Day: Next day I will be working on the #5138 task. Finish e2e tests.

@enso-bot
Copy link

enso-bot bot commented Mar 21, 2024

Keziah Wesley reports a new STANDUP for yesterday (2024-03-19):

Progress: Addressed backend/most testing issues. Working on maintaining dropdown state when a selection is made and the placeholder widget is replaced with an argument widget. It should be finished by 2024-03-22.

Next Day: Next day I will be working on the #5138 task. Probably finish feature.

@enso-bot
Copy link

enso-bot bot commented Mar 22, 2024

Keziah Wesley reports a new STANDUP for today (2024-03-21):

Progress: Working on resumable widgets, split off a PR with the main dropdown implementation. It should be finished by 2024-03-22.

Next Day: Next day I will be working on the #5138 task. Finish up.

@enso-bot
Copy link

enso-bot bot commented Mar 26, 2024

Keziah Wesley reports a new STANDUP for the last Friday (2024-03-22):

Progress: Refactoring interactions to support resumable widget edits It should be finished by 2024-03-22.

Next Day: Next day I will be working on the #5138 task. Same task.

@enso-bot
Copy link

enso-bot bot commented Mar 27, 2024

Keziah Wesley reports a new 🔴 DELAY for yesterday (2024-03-25):

Summary: There is 7 days delay in implementation of the Add multi-selection support to dropdown widget (#5138) task.
It will cause 0 days delay for the delivery of this weekly plan.

Delay Cause: implementing

@enso-bot
Copy link

enso-bot bot commented Mar 27, 2024

Keziah Wesley reports a new STANDUP for yesterday (2024-03-25):

Progress: New interaction model passing tests. Cleaning up some implementation details. It should be finished by 2024-03-29.

Next Day: Next day I will be working on the #5138 task. PR.

@enso-bot
Copy link

enso-bot bot commented Mar 27, 2024

Keziah Wesley reports a new STANDUP for today (2024-03-26):

Progress: Merge conflicts. Refactoring to introduce new implementation with less API change for now. It should be finished by 2024-03-29.

Next Day: Next day I will be working on the #5138 task. PR.

@enso-bot
Copy link

enso-bot bot commented Mar 29, 2024

Keziah Wesley reports a new STANDUP for yesterday (2024-03-27):

Progress: Debugging unit tests that used low-level API. Implemented logic for recognizing a port that is a successor of another (placeholder) port. It should be finished by 2024-03-29.

Next Day: Next day I will be working on the #5138 task. PR.

@enso-bot
Copy link

enso-bot bot commented Mar 29, 2024

Keziah Wesley reports a new STANDUP for today (2024-03-28):

Progress: Finished except for one issue in e2e testing. It should be finished by 2024-03-29.

Next Day: Next day I will be working on the #5138 task. Fix time-traveling mocks and start next task.

@enso-bot
Copy link

enso-bot bot commented Apr 2, 2024

Keziah Wesley reports a new STANDUP for the last Friday (2024-03-29):

Progress: Refactoring to support reactive activity states to prevent bugs caused by explicit tracking of start/stop state getting out of sync with actual interaction It should be finished by 2024-03-29.

Next Day: Next day I will be working on the #5138 task. Fix test issues and start next task.

@enso-bot
Copy link

enso-bot bot commented Apr 3, 2024

Keziah Wesley reports a new 🔴 DELAY for yesterday (2024-04-01):

Summary: There is 5 days delay in implementation of the Add multi-selection support to dropdown widget (#5138) task.
It will cause 0 days delay for the delivery of this weekly plan.

Delay Cause: Issue involves a lot of design consideration for APIs for collaboration between widgets

@enso-bot
Copy link

enso-bot bot commented Apr 3, 2024

Keziah Wesley reports a new STANDUP for yesterday (2024-04-01):

Progress: Debugging reactivity. It should be finished by 2024-04-03.

Next Day: Next day I will be working on the #5138 task. Fix test issues and start next task.

@enso-bot
Copy link

enso-bot bot commented Apr 3, 2024

Keziah Wesley reports a new STANDUP for today (2024-04-02):

Progress: Finished reactive refactor. Documented some new APIs. Debugging unexpected order of events in mocks. It should be finished by 2024-04-03.

Next Day: Next day I will be working on the #5138 task. Fix test issues and start next task.

@kazcw kazcw linked a pull request Apr 3, 2024 that will close this issue
5 tasks
@mergify mergify bot closed this as completed in #9621 Apr 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-gui d-intermediate Difficulty: some prior knowledge required p-medium Should be completed in the next few sprints x-new-feature Type: new feature request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants