Convert the Issue Summary Table to ES6 and clean up the code.

Review Request #9121 — Created Aug. 6, 2017 and submitted — Latest diff uploaded

Information

Review Board
release-3.0.x
f8c9ab7...

Reviewers

The Issue Summary Table code was pretty old and a lot of the logic was
spread out unnecessarily. This change simplifies it a bit, converting
the view to ES6, documenting the functions, and simplifying the flow of
some of the code. Some small internal functions only called by one other
function have had their code moved into that function, making it easier
to read through and see exactly what the function is doing.

There was a logic change that impacts the code a bit more than just
in-view cleanup. Previously, the Issue Summary Table would take care of
navigating to the correct spot on the page when clicking an issue,
alongside triggering the issueClicked event. Now, it simply emits the
event (in a more structured form), leaving it up to the page to handle
the navigation to the correct anchor. This makes it easier to unit test
and keeps the Issue Summary Table from taking on more than it needs to.

Unit tests were also added for the view to help ensure it continues to
behave as expected. This caught a bug in the one of the conditions for
showing the "No Issues" text.

Unit tests pass.

Tested all forms of filtering (status types, reviewers) and column
sorting.

Tested that clicking an issue still navigated to the correct spot and
caused the entry to be expanded when collapsed.

Tested that issue state updates are still tracked, and that the entries
and counts are properly updated (taking into account the current filters).

Tested that the table still updates properly when resizing the page.