bpmn-io / dmn-js

View and edit DMN diagrams in the browser.
https://bpmn.io/toolkit/dmn-js/
Other
294 stars 136 forks source link

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

Open DaZang opened 2 years ago

DaZang commented 2 years ago

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:

Additional context

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

smbea commented 2 years ago

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

pmeyer-viadee commented 2 years ago

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 commented 2 years ago

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 commented 11 months ago

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.