<%! from django.utils.translation import ugettext as _ %> <%namespace name='static' file='static_content.html'/> ${static.css(group='style-vendor-tinymce-content', raw=True)} ${static.css(group='style-vendor-tinymce-skin', raw=True)} ${static.css(group='style-xmodule-annotations', raw=True)} <%inherit file="main.html" /> <%! from django.core.urlresolvers import reverse %> <%block name="headextra"> <%static:css group='style-course-vendor'/> <%static:css group='style-course'/> <%static:js group='courseware'/> <style type="text/css"> blockquote { background:#f9f9f9; border-left:10px solid #ccc; margin:1.5em 10px; padding:.5em 10px; } blockquote:before { color:#ccc; content:'“'; font-size:4em; line-height:.1em; margin-right:.25em; vertical-align:-.4em; } blockquote p { display:inline; } .notes-wrapper { padding: 32px 40px; } .note { border-bottom: 1px solid #ccc; padding: 0 0 1em 0; } .note .text { margin-bottom: 1em; } .note ul.meta { margin: .5em 0; } .note ul.meta li { font-size: .9em; margin-bottom: .5em; } </style> </%block> <%block name="js_extra"> <script type="text/javascript"> </script> </%block> <%include file="/courseware/course_navigation.html" args="active_page='notes'" /> <section class="container"> <div class="notes-wrapper"> <h1>${_('My Notes')}</h1> <div id="notesHolder"></div> <section id="catchDIV"> <div class="annotationListContainer">${_('You do not have any notes.')}</div> </section> <script> // TODO: Fix indentation in the following block (function (require) { var init = function() { //Grab uri of the course var parts = window.location.href.split("/"), uri = ''; for (var index = 0; index <= 6; index += 1) uri += parts[index]+"/"; //Get the unit url var pagination = 100, is_staff = false, options = { optionsAnnotator: { permissions:{ user: { id:"${student.email}", name:"${student.username}" }, userString: function (user) { if (user && user.name) return user.name; return user; }, userId: function (user) { if (user && user.id) return user.id; return user; }, permissions: { 'read': [], 'update': ["${student.email}"], 'delete': ["${student.email}"], 'admin': ["${student.email}"] }, showViewPermissionsCheckbox: true, showEditPermissionsCheckbox: false, userAuthorize: function(action, annotation, user) { var token, tokens, _i, _len; if (annotation.permissions) { tokens = annotation.permissions[action] || []; if (is_staff){ return true; } if (tokens.length === 0) { return true; } for (_i = 0, _len = tokens.length; _i < _len; _i++) { token = tokens[_i]; if (this.userId(user) === token) { return true; } } return false; } else if (annotation.user) { if (user) { return this.userId(user) === this.userId(annotation.user); } else { return false; } } return true; }, }, auth: { token: "${token}" }, store: { // The endpoint of the store on your server. prefix: "${storage}", annotationData: {}, urls: { // These are the default URLs. create: '/create', read: '/read/:id', update: '/update/:id', destroy: '/delete/:id', search: '/search' }, loadFromSearch:{ limit:pagination, offset:0, uri:uri } }, }, optionsVideoJS: {techOrder: ["html5","flash","youtube"]}, optionsRS: {}, optionsOVA: {posBigNew:'none'}, optionsRichText: { tinymce:{ selector: "li.annotator-item textarea", plugins: "media image codemirror", menubar: false, toolbar_items_size: 'small', extended_valid_elements : "iframe[src|frameborder|style|scrolling|class|width|height|name|align|id]", toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | image rubric | code ", } }, auth: { token: "${token}" }, store: { // The endpoint of the store on your server. prefix: "${storage}", annotationData: {}, urls: { // These are the default URLs. create: '/create', read: '/read/:id', update: '/update/:id', destroy: '/delete/:id', search: '/search' }, } }; var imgURLRoot = "${settings.STATIC_URL}" + "js/vendor/ova/catch/img/"; //remove old instances if (Annotator._instances.length !== 0) { $('#notesHolder').annotator("destroy"); } delete ova; //Load the plugin Video/Text Annotation var ova = new OpenVideoAnnotation.Annotator($('#notesHolder'),options); // TODO: Fix to avoid using global scope! window.options = options; window.ova = ova; // END TODO //Catch var annotator = ova.annotator, catchOptions = { media:'text', externalLink:true, imageUrlRoot:imgURLRoot, showMediaSelector: true, showPublicPrivate: true, pagination:pagination,//Number of Annotations per load in the pagination, flags:is_staff, default_tab: "${default_tab}", }, Catch = new CatchAnnotation($('#catchDIV'),catchOptions); // TODO: Fix to avoid using global scope! window.Catch = Catch; // END TODO }; try { require(["ova"], init); } catch(error) { console.log("Error: " + error.message + " - Annotator not loaded in LMS."); } }).call(this, require || RequireJS.require); </script> </div> </section>