Add ability to collapse entire files in the diff view.

Review Request #9337 - Created Oct. 28, 2017 and updated

Riley Creaghan
Review Board
release-3.0.x
02d1efa...
reviewboard, students
When viewing the diff of a review request not all files need to be
viewed, for example minified files don't need to be reviewed. It is
also helpful to have a way to hide files you have already reviewed.

Now files can be collapsed and expanded as the user wishes. Also,
minified files are collapsed by default.

This has not been tested yet, and there are use cases that I know
I haven't covered yet (for example, this doesn't work for a binary
file right now).

I just wanted to get feedback on what I've done so far, and find
out if I should be doing anything differently before I continue.

Also it might be worth mentioning that because the existing
"Collapse changes" button reloads the page, any files that were
manually collapsed or expanded will return to their default state.

Loading file attachments...

  • 1
  • 0
  • 4
  • 0
  • 5
Description From Last Updated
If there's a newly-added minified filename, I think depot_filename will be None, which might crash. This should also use single ... David Trowbridge David Trowbridge
David Trowbridge
  1. 
      
  2. reviewboard/diffviewer/diffutils.py (Diff revision 1)
     
     

    If there's a newly-added minified filename, I think depot_filename will be None, which might crash. This should also use single quotes, and probably test for .min..

  3. This comment should have an "Args" section explaining what e is.

  4. Because this is ES6, we can use a slightly shorter syntax:

    _toggleCollapseDiff(e) {
    
  5. These should use const instead of var.

  6. Should be indented only 1 space within its parent.

  7. 
      
Riley Creaghan
Review request changed

Checks run (2 succeeded)

flake8 passed.
JSHint passed.
Theodore Brockman
  1. 
      
  2. Don't know if this is helpful at all, or even a part of the requirements of your project, but if you did want to maintain the collapsed state of your elements even after page reload, you could save a list of collapsed file ids under an object in browser storage (probably local storage) indexed by the current review request id. If the list under the review request id exists, use it to determine which elements should be collapsed on client-side loading. If it doesn't, remove all other currently saved review request collapsed-lists (to not use up a bunch of local storage space).

  3. 
      
Loading...