• 
      

    File Attachment Revision Slider

    Review Request #6591 — Created Nov. 15, 2014 and submitted

    Information

    Review Board
    master
    884ccba...

    Reviewers

    The slider is now functional for image attachments and text attachments (including rendered text), initiating the controls for different diff modes. The slider actions trigger a hard redirect for now (window.location.replace).
    With enough time I may be able to do a soft redirect using router and ajax (like _loadRevision in diffViewerPageView.js)

    The URL argument is what is used to specify the files being diffed. ".../r/<rrID>/<FileAttachmentID>-<DiffID>/"

    The first option in the slider is the No Diff option, which will redirect to
    .../r/<rrID>/<FileAttachmentID>/
    This is how switching back to single files works.
    This mirrors the way the slider works in review requests. (diffRevisionSelectorView.js).

    A title has been added to the slider that behaves the same as the title for the diffviewer revision slider. The class implementation is more or less the same except is refers to the fileAttachmentRevisionModel instead of the diffRevisionModel.

    Clicking on labels other than the no diff will redirect to that single file view.

    I'm having trouble changing the text attachment title header to have each file title allign with their respective file, so for now they are just spaced out with an & symbol.

    TODO:
    - Text File title allignment (columns?)
    - CSS Spacing issues?

    For another Review Request
    - Adding coverage to unit tests
    - soft redirect

    Verified by hand that url argument <ID>-<diffID> throws a 404 if the two IDs do not share attachment history for both images and text attachments.

    All unit tests pass

    Manually tested the slider for text, markdown and images.


    Description From Last Updated

    Why does the revision slider make the footer of the table beige? Can it be modified so that the footer …

    brenniebrennie

    Col: 80 E501 line too long (188 > 79 characters)

    reviewbotreviewbot

    Should only have one var statement.

    chipx86chipx86

    Spaces around the -.

    chipx86chipx86

    This would be easier to read if you only did the conditional once, and computed the proper set of values …

    chipx86chipx86

    Here too.

    chipx86chipx86

    I don't think the default UI should be deciding where this goes, or should even place it anywhere. It should …

    chipx86chipx86

    Col: 80 E501 line too long (80 > 79 characters)

    reviewbotreviewbot

    We're doing this twice. Best to get the results once, convert to a list, then use it both here and …

    chipx86chipx86

    Alphabetical order.

    chipx86chipx86

    Blank line between these.

    chipx86chipx86

    Indentation error on the mark_safe line.

    chipx86chipx86

    And between these.

    chipx86chipx86

    Blank line here.

    chipx86chipx86

    And here.

    chipx86chipx86

    Can you add comments on exactly what's happening here? It's unclear.

    chipx86chipx86

    Blank line here.

    chipx86chipx86

    We're doing two requests needlessly here, and database requests are expensive. I think we should just do a get_object_or_404 with …

    chipx86chipx86

    Arguments should align.

    chipx86chipx86

    This is a bit long. How about just _revisionSelectorView?

    chipx86chipx86

    Arguments must align.

    chipx86chipx86

    Looks like a missing ` on base.

    chipx86chipx86

    No blank line here.

    chipx86chipx86

    This should go before the variables without values.

    chipx86chipx86

    Blank line here.

    chipx86chipx86

    Multi-line comments should use the: /* * */ form.

    chipx86chipx86

    Let's compute a URL once, then use window.location.replace().

    chipx86chipx86

    Same comment about the name.

    chipx86chipx86

    Same comment about alignment. Above comments also all apply to this file as well.

    chipx86chipx86
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/templates/reviews/ui/default.html
          reviewboard/static/rb/js/views/revisionSelectorView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/templates/reviews/ui/default.html
          reviewboard/static/rb/js/views/revisionSelectorView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
    2. reviewboard/reviews/ui/base.py (Diff revision 1)
       
       
      Show all issues
      Col: 80
       E501 line too long (188 > 79 characters)
      
    3. 
        
    RM
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/templates/reviews/ui/default.html
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/templates/reviews/ui/default.html
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
    2. 
        
    chipx86
    1. 
        
    2. Show all issues

      Should only have one var statement.

    3. Show all issues

      Spaces around the -.

    4. Show all issues

      This would be easier to read if you only did the conditional once, and computed the proper set of values for this._values once depending on that.

    5. Show all issues

      Here too.

    6. 
        
    chipx86
    1. 
        
    2. Show all issues

      I don't think the default UI should be deciding where this goes, or should even place it anywhere. It should be up to the specific review UI implementation to create an element for use in the revision slider.

    3. 
        
    RM
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
    2. 
        
    RM
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/ui/base.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
    2. 
        
    RM
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
    2. 
        
    RM
    RM
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
    2. 
        
    RM
    RM
    RM
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
      
      
    2. reviewboard/reviews/ui/text.py (Diff revision 7)
       
       
      Show all issues
      Col: 80
       E501 line too long (80 > 79 characters)
      
    3. 
        
    RM
    RM
    RM
    brennie
    1. 
        
    2. Show all issues

      Why does the revision slider make the footer of the table beige? Can it be modified so that the footer won't be modified in this way?

      1. I changed the position of the slider to above the file attachment, something that was suggested in the meeting.

    3. 
        
    RM
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/css/pages/text-review-ui.less
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/css/pages/text-review-ui.less
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
    2. 
        
    chipx86
    1. 
        
    2. reviewboard/reviews/ui/base.py (Diff revision 8)
       
       
      Show all issues

      We're doing this twice. Best to get the results once, convert to a list, then use it both here and for the IDs list.

    3. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
      Show all issues

      Alphabetical order.

    4. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
      Show all issues

      Blank line between these.

    5. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
       
      Show all issues

      Indentation error on the mark_safe line.

    6. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
      Show all issues

      And between these.

    7. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
      Show all issues

      Blank line here.

    8. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
      Show all issues

      And here.

    9. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
       
       
      Show all issues

      Can you add comments on exactly what's happening here? It's unclear.

    10. reviewboard/reviews/ui/text.py (Diff revision 8)
       
       
       
      Show all issues

      Blank line here.

    11. reviewboard/reviews/views.py (Diff revision 8)
       
       
       
       
       
       
      Show all issues

      We're doing two requests needlessly here, and database requests are expensive. I think we should just do a get_object_or_404 with the entire query in the if statement.

    12. Show all issues

      Arguments should align.

    13. Show all issues

      This is a bit long. How about just _revisionSelectorView?

    14. Show all issues

      Arguments must align.

    15. Show all issues

      Looks like a missing ` on base.

    16. Show all issues

      No blank line here.

    17. Show all issues

      This should go before the variables without values.

    18. Show all issues

      Blank line here.

    19. Show all issues

      Multi-line comments should use the:

      /*
       *
       */
      

      form.

      1. I fixed it, but this will likely be a comment I trim out before this change gets finalized.

    20. Show all issues

      Let's compute a URL once, then use window.location.replace().

    21. Show all issues

      Same comment about the name.

    22. Show all issues

      Same comment about alignment.

      Above comments also all apply to this file as well.

    23. 
        
    RM
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/css/pages/text-review-ui.less
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/css/pages/text-review-ui.less
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
      
      
    2. 
        
    RM
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/css/pages/text-review-ui.less
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionLabelView.js
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/reviews/ui/base.py
          reviewboard/reviews/ui/text.py
          reviewboard/reviews/urls.py
          reviewboard/staticbundles.py
      
      Ignored Files:
          reviewboard/static/rb/css/pages/text-review-ui.less
          reviewboard/templates/reviews/ui/text.html
          reviewboard/static/rb/js/views/textBasedReviewableView.js
          reviewboard/static/rb/js/models/fileAttachmentReviewableModel.js
          reviewboard/static/rb/js/views/imageReviewableView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionSelectorView.js
          reviewboard/static/rb/js/views/fileAttachmentRevisionLabelView.js
      
      
    2. 
        
    RM
    david
    1. Ship It!
    2. 
        
    RM
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to ucosp/rmdone/file-attachment-revisions (c73a7ad)