My project has a table with '+add' button and filtering.

The add button opens a dialog to add item, and then to 'save' which closes it too

Today I noticed the following flow:

  • Filter table on subject with value 'dummySubject'

  • Add new item with subject 'somethingelse'

  • save and close the new item

    ==> the new item is shown in the table

So the outcome is that an item that does not qualify the filtering appears in the table.

When I asked around I got the following answer

We don't want the new item to 'disappear' on creation just because it does not qualify the filtering. So we display it

If you filter again, it will disappear as it should

I can almost understand that logic, but still it sounds wrong. I would rather have like a toaster saying 'new item create' with a 'goto' link.

My question is

  • is the current user experience considered a reasonable one?
  • what is the best practice way to handle such scenario?


download bmml source – Wireframes created with Balsamiq Mockups

  • Could you provide a graphical representation of current scenario? – divy3993 Jun 29 '16 at 11:12
  • @divy3993 gladly. is there a tool to make it easy for me to do so? – guy mograbi Jun 30 '16 at 4:12
  • i think you can add inside your question by using default UI Frame here(Shortcut Ctrl/Command + M), by editing your question. – divy3993 Jun 30 '16 at 4:54
  • @divy3993 did my best – guy mograbi Jun 30 '16 at 5:05
  • Great! Would also like to know that when user loads page/application, and directly tries to "ADD" new item(without using filter yet), how does the added item shows up. I mean is any message shown to user like "New Item Added"? – divy3993 Jun 30 '16 at 5:50

It took me a few reads to realise what you were asking for. So you have a filtered table and when you create a new item it does not meet the filter criteria so the new item is not visible in the table and the user cannot see it.

There are multiple approaches to this problem.

You have discovered one of them (just show the new item in the table which will ignore the filter if it does not match the filter criteria). I have seen this approach a number of times, and typically the new item is always placed in the first row of the table. Changing or refreshing the filter criteria may or may not show this new item again but if it meets the filter criteria it will be in the correct position in the table.

The other approach is to hide the new item if it does not meet the filter criteria and show a Save Success message containing the name of the new item. This confirms to the user their new item has been created, even though they may not see it. You can even embellish the Save Success message to say that this new item may not be visible due to the filter being applied.

| improve this answer | |
  • isn't showing the item on the table misleading? For example - planning tasks to a sprint.. I filter the table to show only this sprint, and then start to create tasks.. I will see the tasks even if I forgot to set 'sprint' field.. others will not.. sounds like bad practice to me – guy mograbi Jun 30 '16 at 4:12
  • I don't know your Information Architecture, nor your object and data modelling, or your implementation of filters, so there is a limit to the advice I can give you. The strategies available to you will be based on all of those things. Another strategy is to put a link to the new record in the Save Success message (if it is not visible in the current filter). To use your example, if tasks are being created surely these must be linked to a sprint, so wouldn't you make Sprint a required field? – SteveD Jun 30 '16 at 8:59

Guy Mograbi, I like the Splatz suggestions. Please correct me if I am wrong, is it possible to create two section, 1st for "adding an item" and 2nd for "search", for your reference please find attached wireframe.

Please check the link: https://au.pinterest.com/pin/180284791312260308/

*note: my browser is old, so i am not able to add the image. i upload the wireframe to pinterest for your reference.

| improve this answer | |

1. Consistency is key

It's important to be consistent and the simple act of reapplying the same filter and seeing different results is inconsistent.

2. Warn users before something unexpected happens

Some users will expect their newly added item which doesn't match the current filter to be hidden while other users may wonder if they accidentally messed up and try to add it again and again.

You've already identified this as an area of possible confusion so it's important to add some clearly marked help text at the top of the Add dialog when a filter is set...

Warning : A filter is applied to the current list of items showing. A new item may still be added though it will only appear in the list if it meets the current filter criteria.

There is no need to add this text if a filter isn't set. Hopefully this is the most common case so users will rarely see the warning. When users do get in this situation of adding an item with a filter set they will appreciate the heads up and it will be extra noticeable since it's not usually there.

| improve this answer | |
  • Making users reapply the current filter to see reality is bad practice because now they have to wonder at all times if what they see is accurate. To borrow a line from The Princess Bride, "There's a big difference between mostly filtered and all filtered!" 😊 – DaveAlger Jun 30 '16 at 10:32

Many of the approaches others have mentioned make sense. It's also important to make it clear to the user that he or she has filters applied. If you filter the list, then leave the product and come back to it later, it's very easy to forget that the list is filtered and thus be confused when you add something and it doesn't appear in the table. I would do this combined with showing a toast success message with a link, as suggested above. The toast, or maybe a separate message located where the user is more likely to read it, could also explicitly mention that the new item is hidden because filters are applied.

Personally, I think it just doesn't make sense to show the new item in the table when the filter is applied - you want to let the user remain in control, and he or she applied the filter for a reason.

Whatever you decide, you should consider testing it with a few users to see how it works for them.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.