Add a view for retrieving updates to the review request page.

Review Request #852 - Created Sept. 5, 2017 and updated

guest9448
Review Board
Mas
31e7f8a...
chipx86, heissen
This introduces a new internally-facing view that provides information
on the updates made to existing entries on the page (along with certain
UI elements, such as the issue summary table). The client will be able
to poll for this information and dynamically update the page without a
reload.

Each update contains JSON metadata consisting of basic information on
that entry/UI element, model attributes, and view options. The update
also contains new HTML for that part of the page.

Rather than using JSON or some other standard serialization format to
represent all the resulting changes on the page, the payload instead
uses a custom format that serializes updates as:

1. The byte length of the JSON metadata
2. The JSON metadata contents
3. The byte length of the HTML content
4. The HTML content

This is more compact than using a format like JSON, as the HTML can be
represented as-is and doesn't need to be escaped when serializing. It's
faster, as the JSON can be quickly parsed and the HTML directly set in
the DOM. It's also a streamable format, allowing us down the road to
push updates directly to the page piece-by-piece.

The view allows for filtering by specific entries or entry types, and
also allows for filtering by timestamp. The entries have been extended
to support ETag generation, allowing for flexible caching of results.

An upcoming change will make use of this client-side.

Testing Done:
Unit tests pass.

Tested the filtering options manually with a series of different
entries.

Tested the updates capabilities with the upcoming client-side change.

Reviewed at https://reviews.reviewboard.org/r/9133/


  • 1
  • 0
  • 0
  • 0
  • 1
Description From Last Updated
Ble guest9448 guest9448
Loading...