#1464  Searching for issues is not user friendly (especially in kanban boards)
Released
Jerome St-Louis opened 10 months ago

While the powerful expressions can occasionally come in handy at times, 95% of the time what users of the kanban board need is a simple and intuitive way to search for issues e.g., to find and add an issue from the Backlog in to the current milestone, or to see potentially relevant issues when filing a new issue .

It is a major pain to have to type "Description" contains "...". Typing e.g., "#238" should also easily bring up issue #238. The "fuzzy search" does not even work at all in the Kanban board search box.

The fact that the fuzzy search turns the existing "state is open" into additional search terms adds to the problem.

There's got to be a way to present a UI that works better for the users. e.g, the main box being a free text search; a separate expression box for an expression query that could default to state is open that gets combined with the free search box query (that searches for the text in a fuzzy way in description and title alike).

The case sensitivity of the fields also adds to the problem.

"Title" contains "..." with an uppercase T.

Seriously. This is ridiculously hard. It just took me 5 minutes to find an issue.

"Malformed issue query" is not what the user wants to see. The user wants to see the issue they're looking for.

Robin Shen commented 10 months ago

Most of the time, you do not need to type "Title" contains or "Description" contains, just click the search box with your mouse and select relevant criterias from the dropdown (scroll down if you can not find desired criterias).

Jerome St-Louis commented 10 months ago

This dropdown in general is very annoying, hiding related issues in the kanban board that may provide useful things that I want to search for. I dislike using the mouse in general, scrolling through those fields is really annoying.

Typing "Title" contains ... , though a pain, is much less annoying than interacting with this awful dropdown that I strongly dislike.

(Again, I love OneDev, overall it is a wonderful piece of software, but this drop-down and how to find issues is the very single worst thing about OneDev. This is intended as feedback to make OneDev a more comfortable environment to a larger user audience).

(NOTE: I probably wouldn't hate the dropdown as much if it was only in a separate complex query expression box and there was a separate simple "title/description/issue number" fuzzy search box)

Robin Shen commented 10 months ago

The dropdown only displays when perform searches. This is the same when you type in IDE. I never find it to be a problem hiding important information during my daily use. But different people may have different taste...

Issue query is used in many places in OneDev including Kanban definition, state transition, event subscription etc. And often complex criterias need to be combined to achieve the goal. OneDev tries to use the same query syntax in all places.

But I agree that for simple adhoc query this might be a bit complex, and I will investigate to see if this can be simplifed.

Jerome St-Louis commented 10 months ago

Thank you very much!

This is the same when you type in IDE.

In our IDE, context dropdowns only pop up under certain limited circumstances such as typing . for a member or ( for a function call, or explicitly requesting to see the available members with Ctrl-Space, or the method/function parameters with Ctrl-Shift-Space.

In the kanban board, the dropdown appears as soon as you click the search box making it active, and it right away hides what is normally our "In Progress" issues for the current milestone, which is very distracting and often hides information that might be useful to search for an issue. In fact I might click the Search box (not expecting that making a GUI control active will hide any of the other controls in the UI) before really knowing what I want to search for, and the "In progress" issues are often relevant to whatever I might want to search for.

Robin Shen commented 10 months ago

Thanks for the explanation. Will see if an option to hide the dropdown when click the search box can be added.

OneDev changed state to 'Closed' 10 months ago
Previous Value Current Value
Open
Closed
OneDev commented 10 months ago

State changed as code fixing the issue is committed (45c466c6)

OneDev changed state to 'Released' 10 months ago
Previous Value Current Value
Closed
Released
OneDev commented 10 months ago

State changed as build #3912 is successful

jbauer commented 9 months ago

But I agree that for simple adhoc query this might be a bit complex, and I will investigate to see if this can be simplifed.

I did update OneDev and adhoc / fuzzy search is nice in board view. However a co-worker mentioned that the most natural search he would like to do is a combination of fuzzy search and expression/DSL based search.

For example:

  1. Show all issues that contain Cat. You can do that with fuzzy search now.
  2. From all those Cat issues I want to see those with high priority only. You would use OneDev DSL "Priority" is "high" and the most natural thing to do would be Cat AND "Priority" is "high".

My co-worker says, that he don't like to write

("Title" contains "cat" or "Description" contains "cat") AND "Priority" is "high"

because he has no idea how OneDev does fuzzy search and his DSL based search might have a different result compared to an imaginary

Cat AND "Priority" is "high"
or more complex: (cat OR dog) AND "Priority" is "high"

search query which combines fuzzy search with DSL based search.

I don't know if fuzzy search and DSL based search is executed differently by OneDev or if both are converted to the same type of db/elasticsearch query. If it is effectively the same then OneDev might be able to handle such a search query. For example OneDev could internally replace any "invalid" DSL nodes like Cat with valid ones, e.g. what you would use to do the fuzzy search (e.g. ("Title" contains "cat" or "Description" contains "cat")) and finally pass on the search query the usual way.

Robin Shen commented 9 months ago

This is somewhat complex as an invalid input will break auto-complete and query parsing. Nevertheless issue #1470 is opened to keep track of this and I will explore more on this later.

jbauer commented 9 months ago

This is somewhat complex as an invalid input will break auto-complete and query parsing. Nevertheless issue #1470 is opened to keep track of this and I will explore more on this later.

I see. Maybe you can make it valid input by updating the DSL grammar and when the search is executed work on the parsed AST to detect AST nodes that would trigger a fuzzy search.

Robin Shen commented 9 months ago

Now arbitrary text can be surrounded with ~, and then you can combine it with other criterias. For instance: ~some text to search~ and "State" is "Open"

You may just type text to search, and press tab to have OneDev adding ~ around the text automatically.

jbauer commented 9 months ago

@robin Just tried it and works great.

Just a minor improvement for OneDev search: when using the expression based search it would be great if you could make sure that after each expression a space character is automatically added. That way the auto complete popup opens automatically and one can continue to just type a few letters and hit tab key again.

Some expressions already do this like the boolean operators and/or but for most expressions one have to hit tab for autocomplete and then hit tab or space again to add a space.

Robin Shen commented 9 months ago

Hmm this will save a few tabs. Filed improvement request #1485 to address this.

issue 1 of 1
Type
Improvement
Priority
Normal
Assignee
Issue Votes (0)
Watchers (5)
Reference
onedev/server#1464
Please wait...
Page is in error, reload to recover