Fix openIssue checkbox set to default when reloading the page with explicitly set value

Review Request #6867 — Created Feb. 1, 2015 and submitted

Information

Review Board
release-2.0.x
29720ca...

Reviewers

In the "View Diff" page, click one line in diff content to open one comment dialog
and create one comment WITHOUT issue opened. And reload that view diff page, click
the flag of that comment we just created, the "IssueOpened" checkbox is checked in
the dialog. Close it and reopen it again, the checked status is OK.

Since the status setting is missed, we set the issueOpened status and issued status
when creating the draftcomment in the comment block.

Added a unit test, which passes along with all other tests.

Tested with a commentEditor which contains a comment whose 'loaded' attribute and
'issueOpened' attribute are false and the default setting is true. Previously, the
editor's 'openIssue' attribute is true. After, the attribute will set to user's setting
with the patch.

Test for some cases, all passed.

Description From Last Updated

Let's break up this long line - maybe after comment.text,, like: this.ensureDraftComment(comment.comment_id, comment.text, comment.issue_opened, comment.issue_status);

mike_conleymike_conley

We might want to check for the presence of issue_opened and issue_status. We seem to do the same for text, …

mike_conleymike_conley

Can you remove the trailing whitespace on this line? (Any trailing whitespace is always highlighted in red in the diff …

anselinaanselina

If w're modifying this function signature, maybe instead we want to just pass a dictionary of attributes to set. We …

chipx86chipx86

Blank line between these.

chipx86chipx86

Blank line between these.

chipx86chipx86

In JavaScript, you actually want to use ===. That is a strict comparison, whereas == will try casting to equivalent …

chipx86chipx86

var statements should go at the top of hte function.

chipx86chipx86

This should happen at the top of the function (before the // We load in ... comment). We define all …

daviddavid
reviewbot
  1. Tool: Pyflakes
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
    
    Tool: PEP8 Style Checker
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
  2. 
      
MI
mike_conley
  1. 
      
  2. Show all issues

    Let's break up this long line - maybe after comment.text,, like:

    this.ensureDraftComment(comment.comment_id, comment.text,
                            comment.issue_opened, comment.issue_status);
    
  3. Show all issues

    We might want to check for the presence of issue_opened and issue_status. We seem to do the same for text, so might as well follow the pattern.

    1. I think issueOpended may not need if statement since it can be null. Whether set it or not, it has no influence.

  4. 
      
MI
mike_conley
  1. Hey Mingyi, just a reminder to address the issues that I opened. Also, please mark them "Fixed" as you address them. Thanks!

  2. 
      
chipx86
  1. Make sure to read through the guide on writing summaries and descriptions :) - https://www.reviewboard.org/docs/codebase/dev/writing-good-descriptions/

  2. 
      
MI
reviewbot
  1. Tool: PEP8 Style Checker
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
    
    Tool: Pyflakes
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
  2. 
      
anselina
  1. 
      
  2. Show all issues

    Can you remove the trailing whitespace on this line? (Any trailing whitespace is always highlighted in red in the diff viewer.)

  3. 
      
MI
reviewbot
  1. Tool: Pyflakes
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
    
    Tool: PEP8 Style Checker
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
  2. 
      
david
  1. Can you put the bug number into the "Bugs" field on the right-hand side?

  2. 
      
chipx86
  1. 
      
  2. Show all issues

    If w're modifying this function signature, maybe instead we want to just pass a dictionary of attributes to set. We can then just call comment.set(attrs); later.

  3. Show all issues

    Blank line between these.

  4. Show all issues

    Blank line between these.

  5. Show all issues

    In JavaScript, you actually want to use ===. That is a strict comparison, whereas == will try casting to equivalent types.

  6. Show all issues

    var statements should go at the top of hte function.

  7. 
      
MI
reviewbot
  1. Tool: Pyflakes
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
    
    Tool: PEP8 Style Checker
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
  2. 
      
david
  1. 
      
  2. Show all issues

    This should happen at the top of the function (before the // We load in ... comment). We define all variables at the top because javascript will hoist their definitions up there anyway, so it makes it less error-prone to read that way.

    1. Is there any docuement about JavaScript code conventions in rb?

    2. Not explicitly, but if you install the "jshint" tool, you can run it on your code and it will catch most of these.

      There's some work to get jshint running on Review Bot but it's not quite there yet.

    3. Got it. Thanks :)

  3. 
      
MI
reviewbot
  1. Tool: Pyflakes
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
    
    Tool: PEP8 Style Checker
    Ignored Files:
        reviewboard/static/rb/js/models/abstractCommentBlockModel.js
        reviewboard/static/rb/js/models/commentEditorModel.js
        reviewboard/static/rb/js/models/tests/commentEditorModelTests.js
    
    
  2. 
      
david
  1. Ship It!
  2. 
      
MI
Review request changed
Status:
Completed
Change Summary:
Pushed to release-2.0.x (8a4bc09)