• 
      

    Revision selectors

    Review Request #6120 — Created July 19, 2014 and discarded

    Information

    Review Board

    Reviewers

    Adding revision selector for attachments. To avoid code duplication with existing selector for diffs, a common parent class called CommonRevisionSelectorView was created.

    Tested as part of https://reviews.reviewboard.org/r/5824/

    Description From Last Updated

    __super__ isn't a public part of backbone's API. Instead, we should be using our own _super method: _super(this).initialize.apply(this, arguments);

    david david

    This won't quite work. Instead, you should use this: { attachmentRevisionText: iterpolate( gettext('Attachment Revision %s'), [this.options.revision]) }

    david david

    Same comment about __super__. Because you're specifying your own arguments, call is a better choice than apply: return _super(this).render.call( this, …

    david david

    This comment is wrong.

    david david

    There's no value variable delclared in this method, which means that this is global. It also seems like this method …

    david david

    What is '4'?

    david david

    This should use _super and call

    david david

    This comment is wrong.

    david david

    This should use _super and call

    david david

    This fits on one line

    david david

    I don't know what this comment is about.

    david david

    Remove this line?

    david david

    Add a blank line between these.

    david david

    _super

    david david

    _super and call

    david david

    _super and call

    david david

    _super and call

    david david

    This does exactly what the parent class' _onLabelClick implementation does, so you can remove it.

    david david

    Indentation is super weird here.

    david david

    This comment can go away.

    david david

    Did you mean to be passing an array for the argument? I suspect not. Also, this would all fit on …

    david david

    Did you mean to be passing an array for the argument? I suspect not.

    david david

    We should have slightly different labels between these two. For diffs, we want ['orig', '1', '2', '3', ...], because the …

    david david

    Doesn't this end up adding one too many ticks for file attachments?

    david david

    You're passing one single argument to the super render, which is an array of stuff. Based on your implementation above, …

    david david

    This should use _super and call

    david david

    Shouldn't have an array around ev.

    david david
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/commonRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/diffRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/attachmentRevisionSelectorView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/commonRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/diffRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/attachmentRevisionSelectorView.js
      
      
    2. 
        
    david
    1. 
        
    2. Show all issues

      __super__ isn't a public part of backbone's API. Instead, we should be using our own _super method:

      _super(this).initialize.apply(this, arguments);
      
    3. Show all issues

      This won't quite work. Instead, you should use this:

      {
          attachmentRevisionText: iterpolate(
              gettext('Attachment Revision %s'),
              [this.options.revision])
      }
      
    4. Show all issues

      Same comment about __super__.

      Because you're specifying your own arguments, call is a better choice than apply:

      return _super(this).render.call(
          this, this.options.numRevisions, true, 1);
      
    5. Show all issues

      This comment is wrong.

    6. Show all issues

      There's no value variable delclared in this method, which means that this is global.

      It also seems like this method half assumes that there can be multiple handles, and half assumes that there's a single value.

    7. Show all issues

      What is '4'?

    8. Show all issues

      This should use _super and call

    9. Show all issues

      This comment is wrong.

    10. Show all issues

      This should use _super and call

    11. Show all issues

      This fits on one line

    12. Show all issues

      I don't know what this comment is about.

    13. Show all issues

      Remove this line?

    14. Show all issues

      Add a blank line between these.

    15. Show all issues

      _super

    16. Show all issues

      _super and call

    17. Show all issues

      _super and call

    18. Show all issues

      _super and call

    19. reviewboard/static/rb/js/diffviewer/views/diffRevisionSelectorView.js (Diff revision 1)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      This does exactly what the parent class' _onLabelClick implementation does, so you can remove it.

      1. Sorry, I hadn't noticed the slight difference between the two implementations.

    20. 
        
    VO
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/commonRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/diffRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/attachmentRevisionSelectorView.js
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/commonRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/diffRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/attachmentRevisionSelectorView.js
      
      
    2. 
        
    david
    1. 
        
    2. Show all issues

      Indentation is super weird here.

    3. Show all issues

      This comment can go away.

    4. Show all issues

      Did you mean to be passing an array for the argument? I suspect not. Also, this would all fit on one line.

      1. All of these were arrays when apply function was used. I forgot to fix them :(

    5. Show all issues

      Did you mean to be passing an array for the argument? I suspect not.

    6. Show all issues

      We should have slightly different labels between these two.

      For diffs, we want ['orig', '1', '2', '3', ...], because the options are to diff between the original file and one of the revisions, or between two of the revisions.

      For file attachments, there's no 'orig', since there's no upstream version of the file. We therefore should have ['1', '2', '3', ...]

      1. I started numeration from 0 if that's OK. If not, I'll fix it.

    7. Show all issues

      Doesn't this end up adding one too many ticks for file attachments?

      1. Right now numRevisions is numTotal - 1, mimicing revisions definition for diffs. We once discussed this in https://reviews.reviewboard.org/r/5824/ (that issue is still open). I think it might be a bit misleading to have different definitions for revisions in different cases (maybe it should be called otherwise then), e.g. numTotal for attachments and numTotal - 1 for diffs. While taking the defition from diffs isn't perfect as well, I think it works better, because:
        1) We actually are uprgarding a file attachement - there is an initial version and subsequent revisions to it.
        2) In several places of the code we won't have to do

        if (isFileAttachment) {
        numRevisions = ...;
        } else {
        numRevisions = ...;
        }

        and just use the same logic in both cases.

    8. Show all issues

      You're passing one single argument to the super render, which is an array of stuff. Based on your implementation above, each of these should just be additional arguments to call.

      Can you thoroughly test diffs and interdiffs to make sure you're not causing any regressions?

    9. Show all issues

      This should use _super and call

    10. Show all issues

      Shouldn't have an array around ev.

    11. 
        
    VO
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/commonRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/diffRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/attachmentRevisionSelectorView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/diffviewer/views/commonRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/diffRevisionSelectorView.js
          reviewboard/static/rb/js/diffviewer/views/attachmentRevisionSelectorView.js
      
      
    2. 
        
    VO
    Review request changed
    Status:
    Discarded
    Change Summary:
    Obsoleted by /r/6342/