2

Is there a way to hide epic stories (i.e. stories with children) from Rally's kanban board app (presumably by customizing the kanban "catalog app" code to be a custom app)?

I found the part of the kanban javascript app code where it sets up a query depending on whether stories "allocated to a release" are hidden (and I'd added another checkbox into the settings to control the showing / hiding of epic stories), but haven't had any success modifying the query to exclude stories that have children. (Whether or not the query can be modified, or whether the cards need to be filtered after fetching the query results, I'm not sure).

2 Answers2

1

Unfortunately for now this is unsupported by our WSAPI. Being able to filter by collection count is one of the more requested features however- (Children.Count = 0) or something similar would be awesome.

There is one app in the catalog that does prevent epics from showing up on a board- Estimation Board. It is entirely manual though. Data is queried first with Children included in the fetch and any items with Children are filtered out of the results on the client side before being passed to the CardBoard component. There are also performance issues to consider when pulling back this additional volume of data.

Kyle Morse
  • 8,390
  • 2
  • 15
  • 16
0

You cannot filter data based upon the qualities of items in collections it contains. For example you could not return Stories with no children or defects. You could filter change the query to return the children of the stories if you wanted. This would enable you to filter the stories in memory on the browser side.

There are a few issues with this plan that kept me from filtering them when we wrote the Kanban App. If the the first page of stories returned contained entirely epics for one of the columns queries you would end up with a column with no data in it even if further down rank you had leaf stories that you would of been shown.

The second issue is that due to the Rally's WSAPI ability to fetch fields semi-recursively each child object can be rather large. Some of our customers have a single epic with many many children I didn't want to chance the lack of responsiveness for those customers.

If you are comfortable with this issues on your personal version of our Kanban board you can just listen to the onDataRetrieved event and filter out your unwanted stories.

Internally we are very aware of the annoyances that this causes and we are working to find a good general solution to this issue.

If we release one I will dig this post back up and make sure the new solution is explained.

Charles Ferentchak
  • 1,237
  • 1
  • 9
  • 14
  • Thanks Charles and understood on your caveats (I'd like to try and see how it goes). I see how the filtering is done on the Estimation board, inside the callback from the call to findAll. But for the Rally Kanban catalog app, although I see where the query is set up (inside _redisplayBoard), I haven't yet found the callback (similar to the onDataRetreived you mention) where I can filter out the items I don't want to show. Can you point me in the right direction on this? – user1141827 Jan 10 '12 at 23:32
  • At the bottom of _redisplayBoard there is a part where we add the an item listener. The code below will print the items to the log. You can make changes to that collection of items to filter the cards from the board that have children. cardboard.addEventListener("preUpdate", that._onBeforeItemUpdated); cardboard.addEventListener("onDataRetrieved", function(cardboard,args){ console.log(args.items); }); cardboard.display("kanbanBoard"); – Charles Ferentchak Jan 11 '12 at 00:13
  • You will also want to add "Children" to your fetch to make sure that you can filter them out. – Charles Ferentchak Jan 11 '12 at 00:13
  • Thanks - I have this running ok now (& I see the potential implications about reduction in responsiveness with large data sets). For your other concern about "if the 1st page returned only epics", how is the size of the 1st page defined? (Is it defined by the number of items returned - e.g.as part of the server query, or the number of items capable of being displayed vertically at any one time, or something else?) – user1141827 Jan 12 '12 at 01:11
  • The number of items that can be shown per column and type defaults to 100. You can overwrite this in the config sent to cardboard to the max page size which is 200. This is overridden using the maxCardsPerColumn config option. – Charles Ferentchak Jan 17 '12 at 05:48