Changed "Status Page" -> "Page".
UX:
support for displaying built-in tabs
restored drag and drop on Studio Pages
additional styling for fixed state on Studio Pages
add a new page action added to bottom of Studio Pages
Dev
changes for viewing tabs in studio,
refactored the tab code,
decoupled the code from django layer.
is_hideable flag on tabs
get_discussion method is needed to continue to support
external_discussion links for now since used by 6.00x course.
override the __eq__ operator to support comparing with
dict-type tabs.
Test
moved test code to common,
added acceptance test for built-in pages
added additional unit tests for tabs.
changed test_split_modulestore test to support serializing objects
that are fields in a Course.
Env:
updated environment configuration settings so they are
consistent for both cms and lms.
As the code in this .js will break the url's integrity when there is already a query string inside the video source's url and cause the url to be invalid in some cases (for example, when working with a url from Windows Azure's Media Service, the appended '?' will cause the url being invalid).
I modified the code by first checking whether the url has already had a query string, and if so, then use '&' instead of '?' to prevent the breaking, and it works for the url from Windows Azure's Media Service.
1. In video_module.py, rewrite the get_ext() function to use the built-in urlparse module to parse the input filename first and then get the file's extension name from the parsed path.
2. In test_video.py, add two test cases (one with query string while the other without) in order to test the rewritten get_ext() function.
The availability of the YouTube API will be stored in student's settings.
The YouTube API is loaded asynchronously now, so no need to pass a
parameter to the front-end telling it if YouTube API should not be loaded
because of it's unavailability.
Removing loading of YouTube API from Studio RequireJS config. Now loading
of YouTube API is handled by Video module.
BLD-531.
Sometimes the video url may look like 'http://abc.com/path/video.mp4?xxxx'.
(For example, the Windows Azure's media service will offer such type of url.)
The original code in video_module.py will produce 'mp4?xxxx' instead of 'mp4'
as the extension of a filename for such type of url, and therefore the video
will be non-playable. The fix here uses the built-in urlparse module to retrive
only the path component from a url and therefore the extension 'mp4' will be
correctly fetched.