Smart Update Notification

Review Request #8738 — Created Feb. 11, 2017 and discarded — Latest diff uploaded

Information

Review Board
master

Reviewers

When viewing a review request, Review Board periodically checks to see if there have been any updates to the review request.Currently we only receive the last update regarding the type of change and who it was made by.
The goal of this project is to retrieve and display all sorts of updates since a specific timestamp with the type of change, who it was made by, and other useful details.

Manual tests in the browsers have been done on both UpdateBubble and TextBubble:
- No update: no update bubble was opened
- 1 update: update bubble was shown the 1 update with the update type and username
- Multiple updates: update bubble was shown with counts by username and update type. Please refer to attached file screenshot
- Hovering over the UpdateBubble will expand the bubble to display the text bubbles with some CSS transition
- All the texts are capped at 300 character per with a [...] indicator
- The text pane is vertically scrollable when necessary
- "Ship it!" label is displayed on middle top of text box when appliable
- For review/reply, text is either "body-top" content or first comment.
- For update, text is a short summary with some relevant description.
- Clicking on each text bubble will refresh the page and navigate to the specific location.

Python testing cases for review_request_last_update API include as following:
- New reviews/comments: pass
- New replies: pass
- New udpates (diffsets, field changes and file attachments): pass
- default case for no/improperly-formatted timestamp: pass
- Test case for no updates: pass

Jasmine JavaScript Unit tests have been added for:
- UpdateBubbleView: pass
- TextBubbleView: pass