Created a keyboard shortcut to add comments to a diff

Review Request #5442 — Created Feb. 8, 2014 and submitted

Information

Review Board
master
44

Reviewers

Fixes issue #44

Created a keyboard shortcut (r, R) to add comments to a block of a diff. Also saved the chunk that is highlighted when navigating the diff using keyboard shortcuts to use for detecting where to put the comments.

Navigated through a diff using keyboard shortcuts and pressed all three of the keyboard shortcuts to bring up a comment, which bring up the comment box.

If no block is selected, nothing happens when the shortcuts are pressed.

Tested on multi and single line blocks.

Tested on a diff with two files.

Description From Last Updated

The last item in javascript objects or arrays shouldn't have a comma after it (IE will fail to parse it).

daviddavid

Please remove "This" (have it just start with "Creates ...") and end the sentence with a period.

daviddavid

Please wrap this line to 80 characters. You should be able to just put the "endNode" on the next line, …

daviddavid

Last item shouldn't have a comma after it.

daviddavid

_chunk is kind of an ambiguous name. How about _highlightedChunk?

daviddavid

We should reset this._chunk here, since the files are getting reloaded/changed.

daviddavid

Add a space between the () and the {.

daviddavid

All of these should be prefixed with var. We also try to have a single var statement, to fit in …

daviddavid

var definitions should be the first statement in the function.

daviddavid

Please wrap this to 80 columns.

daviddavid

Same comment as the similar code in diffReviewableView.js.

daviddavid

Hmm. How about just using 'c' instead of both 'r' and 'c'?

daviddavid

The lines starting with '.' should be indented 4 spaces instead of 8.

daviddavid

The line starting with '.' should be indented 4 spaces instead of 8.

daviddavid

Can you capitalize the C in "chunk" for this variable name?

daviddavid

Hmm. I just realized that this is calling createComment for every file in the diff, which doesn't seem right. Did …

daviddavid
ED
ED
ED
david
  1. 
      
  2. Show all issues

    The last item in javascript objects or arrays shouldn't have a comma after it (IE will fail to parse it).

  3. Show all issues

    Please remove "This" (have it just start with "Creates ...") and end the sentence with a period.

  4. Show all issues

    Please wrap this line to 80 characters. You should be able to just put the "endNode" on the next line, indented to line up with "beginLineNum" above it.

  5. Show all issues

    Last item shouldn't have a comma after it.

  6. Show all issues

    _chunk is kind of an ambiguous name. How about _highlightedChunk?

  7. Show all issues

    We should reset this._chunk here, since the files are getting reloaded/changed.

  8. Show all issues

    Add a space between the () and the {.

  9. reviewboard/static/rb/js/pages/views/diffViewerPageView.js (Diff revision 1)
     
     
     
     
     
     
     
    Show all issues

    All of these should be prefixed with var. We also try to have a single var statement, to fit in with linting tools like jshint.

    We also should make sure that lines wrap to 80 columns.

    So this should look something like:

    var chunkID = this._chunk[0].id,
        lineElements = document
            .getElementById(chunkId)
            .getElementsByTagName('tr'),
        beginLineNum = ...
    
  10. Show all issues

    var definitions should be the first statement in the function.

  11. Show all issues

    Please wrap this to 80 columns.

  12. Show all issues

    Same comment as the similar code in diffReviewableView.js.

  13. 
      
ED
david
  1. Can you go through the old comments and click "Fixed" on all the opened issues that you've fixed?

    1. Oops, nevermind, had an out-of-date dashboard view.

  2. Show all issues

    Hmm. How about just using 'c' instead of both 'r' and 'c'?

    1. c was being used for _selectnextComment

    2. Ahh. I'm tempted to say that we shouldn't create confusion between 'c' and 'C' then, and just use 'rR'

    3. That makes sense

  3. Show all issues

    The lines starting with '.' should be indented 4 spaces instead of 8.

  4. Show all issues

    The line starting with '.' should be indented 4 spaces instead of 8.

  5. 
      
ED
david
  1. 
      
  2. Show all issues

    Can you capitalize the C in "chunk" for this variable name?

  3. 
      
ED
ED
david
  1. 
      
  2. Show all issues

    Hmm. I just realized that this is calling createComment for every file in the diff, which doesn't seem right. Did you try this with a diff that contained multiple files?

    Perhaps we should do something like conditionalize this on $.contains(diffReviewableView.el, beginNode) ?

  3. 
      
ED
ED
ED
david
  1. Ship It!

  2. 
      
ED
Review request changed
Status:
Completed
Change Summary:
Pushed to master (149ba95). Thanks!