STUD-1465
Changed the XBlock rendering logic to use promises to track asynchronous tasks.
Each dependency is then only loaded once the previous one has completed, and the
XBlock initialization only happens once all dependencies are loaded. This gives
XBlocks the same semantics in Studio as they get when shown directly on a page.
This is the changes for STUD-1244, which introduces the ability for Studio to display
arbitrarily nested xblocks. In this change, a new container page is introduced which can
display nested xblocks. In particular, the xblock type of 'vertical' is special cased
to be shown inline as a collapsible section. The unit page is mostly unchanged, except
that container xblock's are shown as a link to their container page, rather than being
shown inline.
These changes implement STUD-813. The commit consists of the
following logical changes:
- a REST API has been implemented for a course's assets
- the page itself now fetches the assets client-side
- the Backbone.Paginator library is used to support pagination
- the AssetCollection has been refactored to extend
Backbone.Paginator.requestPager so that it can be paged
- an abstract PagingView class has been added to generalize
the communication with a paging REST API
- the AssetsView has been reimplemented to extend PagingView
- two new child views have been added:
- PagingHeader: the paging controls above the list of assets
- PagingFooter: the paging controls below the assets