Implement a JSON Review UI that allow user to perform actions on json files

Review Request #9515 — Created Jan. 21, 2018 and updated — Latest diff uploaded

Information

Review Board
release-4.0.x

Reviewers

Json files is handled as an uneditble attachments in the current
version.
I implemented a new class JSONReviewUI that
enhence Review board's ability to process JSON file.

New features include:

  • Rendering JSON in an easy-to-read format.
  • Allowing the user to comment on the prettified file based on
    line numbers.
  • Auto-sorting of output keys.
  • Allow user to compare the changes of files in diffs
  • A thumbnail that render in the easy-to-read format, too.

Ran unit tests.

Tested the development environment with:

  • Properly formatted JSON files.
  • JSON files with long lines.
  • Minified JSON files.
  • Highly-nested JSON files.