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

Search and highlight entries or labels in a DMN and provide Keybinding Ctrl.+F #709

Open
DaZang opened this issue Aug 11, 2022 · 4 comments
Labels
backlog Queued in backlog enhancement New feature or request

Comments

@DaZang
Copy link

DaZang commented Aug 11, 2022

Is your feature request related to a problem? Please describe.

Not being able to search entries in a DMN file makes working with DMNs hard (especially in DMN-Tables with a lot of rows and columns). A lot of customers find DMN (dmn-js) hard to use for complex decision models because of the missing search feature.

Describe the solution you'd like

I would like to be able to search a dmn table in a way similar to searching in a bpmn process in bpmn-js with the Ctrl.+F keybinding.

The minimal solution would include being able to search the input entries of the currently opened decision table for a string entered in a search popup that opens when pressing Ctrl.+F. I would like a highlighting of the input entries that include the search string similar to the highlighting of the bpmn element in bpmn-js
grafik

An improvement to that would include being able to search all decision tables or even all decisions from the DRD view as well as searching the labels of the elements in the drd.

Another improvement would include being able to configure search parameters like:

  • extend the search only to the currently opened Decision or all decisions
  • Case (in)sensitivity
  • extend the search to:
    • input entries (default)
    • input names + input expressions
    • output names + output expressions

Additional context

I would like to make a contribution for this with my collegues from https://github.com/viadee and provide a pull request.

@DaZang DaZang added the enhancement New feature or request label Aug 11, 2022
@smbea
Copy link
Contributor

smbea commented Aug 12, 2022

Thanks for you input. Feel free to open a PR to implement this 🙂

@smbea smbea added the backlog Queued in backlog label Aug 12, 2022
@pmeyer-viadee
Copy link

Hi all,

we are currently implementing this feature and were already successful to integrate a SearchProvider in the DRD of dmn.js. Concerning the table view, it turns out that the SearchPad is not as easy to integrate because it requires a canvas and styles, which are not available by default in the table view.

What would you prefer in order to integrate the functionality in the table view:
A) Refactoring the SearchPad component that it works in both views
B) Develop a separate SearchProvider/SearchPad for the table view
C) ... ?

Cheers,
Philipp

@nikku
Copy link
Member

nikku commented Aug 15, 2022

Given that these are entirely different editors I'd go for option (B): Build a separate pad that works from the user point of view in a similar (or different, but appropriate) manner.

For both table and literal expression editors you could take inspiration from other text based editing tools and/or Google sheets / Excel.


One thing important to clarify that does impact the chose path: Shall we be able to switch between views using the search? I personally believe so.

@barmac
Copy link
Member

barmac commented Oct 13, 2023

I looked into this topic today. Too bad I missed this issue, because I confirmed independently that diagram-js SearchPad is indeed incompatible with the decision table 🤡 . Anyway, my WIP implementation of search is available at https://github.com/bpmn-io/dmn-js/tree/implement-search-in-decision-table. Indeed we need to rewrite search pad for dmn-js-decision-table in order to get it to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog Queued in backlog enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants