Opened 2 years ago

Closed 15 months ago

#2724 closed Bug (fixed)

Bug in collapse function of Actions tables

Reported by: nsony Owned by: capedfuzz
Priority: major Milestone: 1.11 - Piwik 1.11
Component: UI - UX (AngularJS, twig, less) Keywords:
Cc: Sensitive: no


Recently I found one issue related to on click collapse function on Actions tables.
If we look at code in plugins/CoreHome/datatable.js for collapse function:

we add an attribute parent that contains the ID of all the parent categories
this ID is used when collapsing a parent row, it searches for all children rows
which 'parent' attribute's value contains the collapsed row ID
$(this).attr('parent', function(){
return self.parentAttributeParent + ' ' + self.parentId;

For example, parent row id=166 and one of the children rows of this parent row id =66.
When we click on row with id=66 to collapse all its children, as its siblings parent id contains 66 (actually it is 166), so it is collapsing its siblings as well along with its children. This was happened in my case only, by debugging js code, I came to know that below piece of code making the issue:

if(parents.indexOf(idSubTable) >= 0

parents.indexOf('subDataTable_'+idSubTable) >= 0)

Collapse this element

Change History (4)

comment:1 Changed 2 years ago by matt (mattab)

A similar bug was reported in #1474

comment:2 Changed 2 years ago by vipsoft (robocoder)

  • Component changed from Core to UI (templates, javascript)

comment:3 Changed 21 months ago by matt (mattab)

  • Milestone changed from 1.8.x - Piwik 1.8.x to 1.8.3 - Piwik 1.8.3
  • Owner set to capedfuzz

Thank you for taking a look at this long standing bug!

comment:4 Changed 15 months ago by capedfuzz (diosmosis)

  • Resolution set to fixed
  • Status changed from new to closed

(In [7817]) Fixes #2724, split parent ID list and use Array.indexOf instead of String.indexOf when collapsing datatable tree node so collapsing row w/ id '66' does not result in closing row w/ id '166'. Thanks to nsony for very descriptive bug report!

Note: See TracTickets for help on using tickets.