Filter Usablity

4 posts, 0 answers
  1. Jay Mathis
    Jay Mathis avatar
    28 posts
    Member since:
    Oct 2004

    Posted 18 Feb 2010 Link to this post

    This usefulness of a control like this will be beyind measure.   However, in my opinion the current UI is not intuitive.  Even as a technical person I am having trouble figuring out how the ANDs and ORs relate to each and which things are being grouped together.  If i can't figure it out, there is no way my users will be able to figure it out.

    I know its still early, but here is some general feedback:

    1) It would be more intuitive if the filter clauses where structured like a familiar SQL where clause.  Currently, the first thing is the filter is a AND or OR.  That doesn't make intuitive sense.  What am I ANDing together?  Nothing yet.  

    What if I only need 1 filter?  (OrderID = 123). 

    The first thing in the filter should be an actual filter (ie.  OrderID=123), THEN have the ability to add AND or OR concatenators.

    2) The drop down context menu on the "+" button needs some clarification.  After trial and error, I was able to figure out that the first option adds a filter clause to the chain and the second option adds a AND/OR concatenator.  But it is not intuitive. 

    3) Add some type of grouping visual indicator.  I suggest the familiar parantheses as people understand that this groups things together and they can tell which items are being concatenated.   I think you could also accomplisht this with indentation, which appears to be the direction you are headed, but currently, it seems like you can only indent one direction.

    Consider this difference:

    WHERE
    (OrderID > 100 AND OrderID < 200)
    OR
    (Country = "France")

    versus:

    WHERE
    (OrderID  > 100 AND (OrderID < 200 OR Country = "France"))

    There is a difference, but I couldn't figure out how to represent these using the UI.

    4) Consider adding a text representation of the resulting WHERE clause so the user can see what they aare building to confirm it.
  2. Nikolay Rusev
    Admin
    Nikolay Rusev avatar
    2285 posts

    Posted 19 Feb 2010 Link to this post

    Hello Jay,

    Thank you for your feedback. We really appreciate any feedback that will help us improve our controls.

    I would like to explain a little misunderstanding about RadFilter. RadFilter assumes that all expressions are contained by one group root expression item. To this root expression can be added two types of expressions group type and condition type expression.

    Group expressions has list of child expressions and group operator. Group operator is applied on the child expression in the current group.

    For example:
    Add operator Group Expression
                    Child Expression 1
                    Child Expression 2


    Will form following SQL query :
    (Child Expression 1 AND Child Expression 2)

    If you have only one expression in the group it will form  expression like:
    (Child Expression 1) – group operator will not be applied as there is only one item in the group.

    Another example having following structure:
    Add operator Group Expression
                    Child Expression 1
                    Child Expression 2

                    Or operator GroupExpression
                                   Child Expression 1-1
                                   Child Expression 1-2


    Will form following expression:
    (Child Expression 1 AND Child Expression 2 AND (Child Expression 1-1 OR Child Expression 1-2) )

    However we have in mind the suggestions you gave us and we are already planning some improvements for Q1 2010. Also as a token of gratitude I have also updated your Telerik points.

    Sincerely yours,
    Nikolay
    the Telerik team


    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Jay Mathis
    Jay Mathis avatar
    28 posts
    Member since:
    Oct 2004

    Posted 19 Feb 2010 Link to this post

    Thanks you for the very clear explaination.  After reading, I now understand better how to use the control.  Obvivously, it goes without saying, that the fact you had to explain it like this just highlights how it needs to be more intuitive.

    Having thought more about it, I would add the following suggestions:

    1) In the current implementation, everything within the same level group has the same concatenator.   
    AND operator Group Expression
                    Child Expression 1
                    Child Expression 2
                    Child Expression 3

    However, this is very limiting and I think the source of my initial confusion.  For example it does not intuitively allows for this statement:
    OrderID > 100 AND Order < 200 OR Country="France"

    The problem is bundling the group function together with the AND/OR concatenator.  It should not be mandatory that everything in the group uses the same AND or OR.

     Instead, remove the concept that the group and AND/OR are tied together.  Make the drop down list have 3 optiions:
    • New Group
    • New Filter Expression
    • New AND/OR concatenator

    A Group element effectively wraps its child items in parenthesis.
    And by separating the AND/OR part fom the Group part, the user can add multiple ANDs or ORs to the same group.  This is more in line with how people think and how SQL can written.
    (OrderID > 100 AND OrderID < 200 OR Country = "France)


    2) Change the inital root control to just say "WHERE:" (remove the "AND/OR").  This will make it more intuitive when the user only wants to have one filter expression, which is likely the most common use case anyway.   This WHERE root element is really just a Group object which renders parenthesis.

    "OrderID>123" is exactly the same thing as "(OrderID>123)" 

    However, to the end user, there is no group if there is only one item, so there is no need to tell them that the initial WHERE is really a Group element.

    3) Only Group elements would have the drop down menu to add a new element (Group , AND/OR, filter) to the end of the selected Group.  If the user tries to add a filter or group and the last item was also a filter or group, automatically add a AND/OR element for the user in between (you can default it to AND).
     
    4) Consider adding the ability to drag and drop elements so expressions could be rearranged without having to delete and re-add filter expressions.

    So the resulting rendered control might look something like this:
    WHERE  [+/-] [x]
                    Child Expression 1 [x]
                    AND [x]
                    Child Expression 2 [x]
                    OR [x]
                    Child Expression 3 [x]

    or this:

    WHERE [+/-] [x]
                    Child Expression 1 [x]
                    AND [x]
                    Child Expression 2 [x]
                    OR [x]
                    GROUP [+/-] [x]
                        Child Expression 3 [x]
                        AND [x]
                        Child Expression 4 [x]

  5. Nikolay Rusev
    Admin
    Nikolay Rusev avatar
    2285 posts

    Posted 25 Feb 2010 Link to this post

    Hello Jay,

    Thank you for getting back to us.

    I am afraid that RadFilter logic regarding building expressions will remain as it is currently.
    We will consider adding additonal item - something like status bar that will shows end user what expression is going to be build on apply command. The syntax of the expression tree for that status will be SQL-like or some pseudo code for simplicity. There will be also other usability improvements for Q1 2010.

    Kind regards,
    Nikolay
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
Back to Top