diff --git a/Gemfile.lock b/Gemfile.lock index 75602a864248..f3d7ec5691c3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,15 +6,15 @@ GEM sass (>= 3.2.0) thor colorize (0.5.8) - ffi (1.9.0) + ffi (1.9.3) launchy (2.1.2) addressable (~> 2.3) neat (1.4.0) bourbon (>= 2.1) sass (>= 3.2) rake (10.0.4) - rb-fsevent (0.9.3) - rb-inotify (0.9.2) + rb-fsevent (0.9.4) + rb-inotify (0.9.3) ffi (>= 0.5.0) sass (3.2.12) sys-proctable (0.9.3) diff --git a/cms/djangoapps/contentstore/views/component.py b/cms/djangoapps/contentstore/views/component.py index deda47f5fa24..3acc50649e83 100644 --- a/cms/djangoapps/contentstore/views/component.py +++ b/cms/djangoapps/contentstore/views/component.py @@ -42,6 +42,8 @@ OPEN_ENDED_COMPONENT_TYPES = ["combinedopenended", "peergrading"] NOTE_COMPONENT_TYPES = ['notes'] ADVANCED_COMPONENT_TYPES = [ + 'textannotation', + 'videoannotation', 'annotatable', 'word_cloud', 'graphical_slider_tool', diff --git a/cms/envs/common.py b/cms/envs/common.py index 7e1802ac7524..721be58254c4 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -256,6 +256,16 @@ 'css/vendor/jquery.qtip.min.css', 'js/vendor/markitup/skins/simple/style.css', 'js/vendor/markitup/sets/wiki/style.css', + 'css/vendor/ova/edx-annotator.css', + 'css/vendor/ova/annotator.css', + 'css/vendor/ova/video-js.min.css', + 'css/vendor/ova/rangeslider.css', + 'css/vendor/ova/share-annotator.css', + 'css/vendor/ova/richText-annotator.css', + 'css/vendor/ova/tags-annotator.css', + 'css/vendor/ova/flagging-annotator.css', + 'css/vendor/ova/ova.css', + 'js/vendor/ova/catch/css/main.css' ], 'output_filename': 'css/cms-style-vendor.css', }, @@ -291,6 +301,25 @@ 'output_filename': 'js/cms-modules.js', 'test_order': 1 }, + 'main_vendor': { + 'source_filenames': [ + 'js/vendor/ova/annotator-full.js', + 'js/vendor/ova/video.dev.js', + 'js/vendor/ova/vjs.youtube.js', + 'js/vendor/ova/rangeslider.js', + 'js/vendor/ova/share-annotator.js', + 'js/vendor/ova/tinymce.min.js', + 'js/vendor/ova/richText-annotator.js', + 'js/vendor/ova/reply-annotator.js', + 'js/vendor/ova/tags-annotator.js', + 'js/vendor/ova/flagging-annotator.js', + 'js/vendor/ova/jquery-Watch.js', + 'js/vendor/ova/ova.js', + 'js/vendor/ova/catch/js/catch.js', + 'js/vendor/ova/catch/js/handlebars-1.1.2.js' + ], + 'output_filename': 'js/cms-main_vendor.js', + }, } PIPELINE_COMPILERS = ( diff --git a/cms/templates/base.html b/cms/templates/base.html index 4f5c824c7ba5..6ce524d72aed 100644 --- a/cms/templates/base.html +++ b/cms/templates/base.html @@ -221,7 +221,7 @@ }; - + ## js templates diff --git a/lms/templates/static_htmlbook.html b/lms/templates/static_htmlbook.html index 56e53ceffcdb..5d4348c0b9b0 100644 --- a/lms/templates/static_htmlbook.html +++ b/lms/templates/static_htmlbook.html @@ -146,7 +146,8 @@
- + +
diff --git a/lms/templates/textannotation.html b/lms/templates/textannotation.html new file mode 100644 index 000000000000..f46ad5baf95d --- /dev/null +++ b/lms/templates/textannotation.html @@ -0,0 +1,185 @@ +
+
+ % if display_name is not UNDEFINED and display_name is not None: +
${display_name}
+ % endif +
+ % if instructions_html is not UNDEFINED and instructions_html is not None: +
+
+ Instructions + Collapse Instructions +
+
+ ${instructions_html} +
+
+ % endif +
+
+
${content_html}
+
Source: ${source}
+
+
You do not have any notes.
+
+
+
+
+ + + diff --git a/lms/templates/videoannotation.html b/lms/templates/videoannotation.html new file mode 100644 index 000000000000..9afa73238562 --- /dev/null +++ b/lms/templates/videoannotation.html @@ -0,0 +1,189 @@ +
+
+ % if display_name is not UNDEFINED and display_name is not None: +
${display_name}
+ % endif +
+ % if instructions_html is not UNDEFINED and instructions_html is not None: +
+
+ Instructions + Collapse Instructions +
+
+ ${instructions_html} +
+
+ % endif +
+
+
+ +
+
+
You do not have any notes.
+
+
+
+
+ + diff --git a/lms/urls.py b/lms/urls.py index ca154c21c541..214a5534866b 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -15,6 +15,7 @@ url(r'^update_certificate$', 'certificates.views.update_certificate'), url(r'^$', 'branding.views.index', name="root"), # Main marketing page, or redirect to courseware url(r'^dashboard$', 'student.views.dashboard', name="dashboard"), + url(r'^token$', 'student.views.token', name="token"), url(r'^login$', 'student.views.signin_user', name="signin_user"), url(r'^register$', 'student.views.register_user', name="register_user"),