From b82ce781aec73d063ddf39efc1d3f3c1398d71b6 Mon Sep 17 00:00:00 2001 From: lduarte1991 Date: Fri, 25 Apr 2014 16:05:06 -0400 Subject: [PATCH 01/15] Clean-up CSS and Added new Annotator Plugin --- .../css/vendor/ova/diacritic-annotator.css | 6 + .../static/css/vendor/ova/edx-annotator.css | 4 + .../css/vendor/ova/richText-annotator.css | 14 +- .../static/css/vendor/ova/tags-annotator.css | 2 +- common/static/js/vendor/ova/catch/js/catch.js | 4 +- .../js/vendor/ova/diacritic-annotator.js | 203 ++++++++++++++++++ .../js/vendor/ova/flagging-annotator.js | 3 +- common/static/js/vendor/ova/ova.js | 17 +- common/static/js/vendor/ova/rangeslider.js | 2 +- .../static/js/vendor/ova/reply-annotator.js | 2 +- .../js/vendor/ova/richText-annotator.js | 6 +- .../static/js/vendor/ova/share-annotator.js | 3 +- common/static/js/vendor/ova/tags-annotator.js | 34 ++- lms/envs/common.py | 2 + 14 files changed, 271 insertions(+), 31 deletions(-) create mode 100644 common/static/css/vendor/ova/diacritic-annotator.css create mode 100644 common/static/js/vendor/ova/diacritic-annotator.js diff --git a/common/static/css/vendor/ova/diacritic-annotator.css b/common/static/css/vendor/ova/diacritic-annotator.css new file mode 100644 index 000000000000..92a9a1fdf132 --- /dev/null +++ b/common/static/css/vendor/ova/diacritic-annotator.css @@ -0,0 +1,6 @@ +.mark{ + width:10px; + height:10px; + position:absolute; + background-size:contain; +} diff --git a/common/static/css/vendor/ova/edx-annotator.css b/common/static/css/vendor/ova/edx-annotator.css index 9b0c0de0b8fa..a4bc6f91ca2f 100644 --- a/common/static/css/vendor/ova/edx-annotator.css +++ b/common/static/css/vendor/ova/edx-annotator.css @@ -1,4 +1,8 @@ /*This is written to fix some design problems with edX*/ +.annotatable-wrapper .annotatable-header .annotatable-title{ + padding-top: 20px !important; +} + .annotator-wrapper .annotator-adder button { opacity:0; } diff --git a/common/static/css/vendor/ova/richText-annotator.css b/common/static/css/vendor/ova/richText-annotator.css index 395cfc5f173c..1985731032d8 100644 --- a/common/static/css/vendor/ova/richText-annotator.css +++ b/common/static/css/vendor/ova/richText-annotator.css @@ -17,9 +17,21 @@ } .annotator-wrapper .mce-container { - z-index:3000000000!important; /*To fix full-screen problems*/ + z-index: 3000000000!important; /*To fix full-screen problems*/ } +.mce-container-body { + min-width: 400px; +} + +.iframe[id="annotator-field"] { + width: inherit; + min-width: 400px; +} + +div.mce-tinymce.mce-container.mce-panel { + min-width:400px; +} /* Some change in the design of Annotator */ .annotator-editor .annotator-widget{ diff --git a/common/static/css/vendor/ova/tags-annotator.css b/common/static/css/vendor/ova/tags-annotator.css index e1e58286286a..054e797e967e 100644 --- a/common/static/css/vendor/ova/tags-annotator.css +++ b/common/static/css/vendor/ova/tags-annotator.css @@ -43,7 +43,7 @@ li.token-input-input-token { div.token-input-dropdown { position: absolute; - width: 120px; + width: 400px; background-color: #fff; overflow: hidden; border-left: 1px solid #ccc; diff --git a/common/static/js/vendor/ova/catch/js/catch.js b/common/static/js/vendor/ova/catch/js/catch.js index 113d7d95c818..83ef8a51ecfc 100644 --- a/common/static/js/vendor/ova/catch/js/catch.js +++ b/common/static/js/vendor/ova/catch/js/catch.js @@ -568,7 +568,6 @@ CatchAnnotation.prototype = { var moreBut = this.element.find('.annotationListButtons .moreButtonCatch'); moreBut.html('More'); - setTimeout(); }, // @@ -1095,11 +1094,10 @@ CatchAnnotation.prototype = { annotation = item.data('annotation'); var authorized = permissions.options.userAuthorize('delete', annotation,permissions.user); if(authorized){ - //annotator.deleteAnnotation(annotation); if(confirm('Would you like to delete this reply?')){ annotator.plugins['Store']._apiRequest('destroy', annotation, function(){}); item.remove(); - } + } } } } diff --git a/common/static/js/vendor/ova/diacritic-annotator.js b/common/static/js/vendor/ova/diacritic-annotator.js new file mode 100644 index 000000000000..5f29c2dbd842 --- /dev/null +++ b/common/static/js/vendor/ova/diacritic-annotator.js @@ -0,0 +1,203 @@ +/* + Diacritic Annotator Plugin v1.0 (https://github.com/lduarte1991/diacritic-annotator) + Copyright (C) 2014 Luis F Duarte + License: https://github.com/lduarte1991/diacritic-annotator/blob/master/LICENSE.rst + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +var _ref, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + +Annotator.Plugin.Diacritics = (function(_super) { + __extends(Diacritics, _super); + + //Options will include diacritic name, picture used, baseline + Diacritics.prototype.options = null; + Diacritics.prototype.diacriticmarks = null; + + //initiate diacritics elements + function Diacritics(element,options) { + this.pluginSubmit = __bind(this.pluginSubmit, this); + this.updateDiacritics = __bind(this.updateDiacritics, this); + this.updateViewer = __bind(this.updateViewer, this); + this.getDiacritics = __bind(this.getDiacritics, this); + this.getPos = __bind(this.getPos, this); + this.putMarkatLocation = __bind(this.putMarkatLocation, this); + this.updateEditorForDiacritics = __bind(this.updateEditorForDiacritics, this); + + this.options = options; + this.diacriticmarks = this.getDiacritics(); + _ref = Diacritics.__super__.constructor.apply(this, arguments); + return _ref; + } + + //example variables to be used to receive input in the annotator view + Diacritics.prototype.field = null; + Diacritics.prototype.input = null; + + //this function will initialize the plug in + Diacritics.prototype.pluginInit = function() { + console.log("Diacritics-pluginInit"); + + //Check that annotator is working + if (!Annotator.supported()) { + return; + } + var di = this.diacriticmarks; + + //-- Editor + var self = this; + if(di != 'undefined'){ + $.each(di,function(item){ + self.field = self.annotator.editor.addField({ + type: 'checkbox', //options (textarea,input,select,checkbox) + label: Annotator._t(item), + submit: self.pluginSubmit, + }); + }); + + //-- Viewer + var newview = this.annotator.viewer.addField({ + load: this.updateViewer, + }); + + this.annotator.subscribe('annotationsLoaded', this.updateDiacritics); + this.annotator.subscribe('annotationUploaded', this.updateDiacritics); + this.annotator.subscribe('annotationDeleted', this.updateDiacritics); + this.annotator.subscribe('annotationEditorShown', this.updateEditorForDiacritics, this.field); + + var self = this; + $(window).resize(function() { + self.updateDiacritics(); + }); + } + + return this.input = $(this.field).find(':input'); + }; + + //The following function is run when a person hits submit. + Diacritics.prototype.pluginSubmit = function(field, annotation) { + var checkedItems = $(this.field).find(':input'); + var self = this; + $.each(checkedItems, function(item){ + if(typeof annotation.tags != 'undefined'){ + var index = $.inArray(checkedItems[item].placeholder, annotation.tags); + if(index != -1){ + annotation.tags.splice(index, 1); + if (typeof $($('.annotator-wrapper')[0]).find('div.'+annotation.id)[0] != 'undefined'){ + $($('.annotator-wrapper')[0]).find('div.'+annotation.id)[0].remove(); + } else { + $($('.annotator-wrapper')[0]).find('div.undefined')[0].remove(); + } + } + + if(checkedItems[item].checked == true){ + annotation.tags.unshift(checkedItems[item].placeholder); + self.putMarkatLocation(annotation, checkedItems[item].placeholder); + } + } else { + if(checkedItems[item].checked == true){ + annotation['tags'] = [checkedItems[item].placeholder]; + self.putMarkatLocation(annotation, checkedItems[item].placeholder); + } + } + }); + + } + + Diacritics.prototype.putMarkatLocation = function (annotation, mark){ + var loc = this.getPos(annotation.highlights[0]); + var alignment = this.diacriticmarks[mark][1]; + var imgurl = this.diacriticmarks[mark][0]; + + var newdiv = document.createElement('div'); + var className = 'mark ' + annotation.id; + newdiv.setAttribute('class',className); + if(alignment == 'top'){ + $(newdiv).css('top',""+(loc.y-5)+"px"); + } else if(alignment == 'bottom'){ + $(newdiv).css('top',""+(loc.y+loc.height-5)+"px"); + } else{ + $(newdiv).css('top',""+loc.y+"px"); + } + $(newdiv).css('left',""+(loc.x+(loc.width/2.0)-10)+"px"); + $(newdiv).css('background-image', 'url('+imgurl+')'); + $('.annotator-wrapper')[0].appendChild(newdiv); + } + + Diacritics.prototype.getDiacritics = function(){ + if(typeof this.options.diacritics != 'undefined'){ + var self = this; + var final = new Object(), prelim = this.options.diacritics.split(","); + prelim.forEach(function(item){ + var temp = item.split(";"); + if (temp.length <3) {return undefined;} + final[temp[0]] = [temp[1],temp[2]]; + }); + return final; + } + console.log("Was undefined"); + return undefined; + } + + Diacritics.prototype.getPos = function(el) { + var off = $(el).offset(); + return {x: off.left-$($('.annotator-wrapper')[0]).offset().left, y: off.top-$($('.annotator-wrapper')[0]).offset().top, width:$(el).width(), height:$(el).height()}; + } + + Diacritics.prototype.updateDiacritics = function(){ + $('.mark').remove(); + var annotations = this.annotator.plugins['Store'].annotations; + var self = this; + annotations.forEach(function(ann){ + $.each(self.diacriticmarks, function(item){ + if($.inArray(item, ann.tags) != -1){ + self.putMarkatLocation(ann, item); + } + }); + }); + } + + Diacritics.prototype.updateViewer = function(field,annotation){ + $(field).remove(); + } + + Diacritics.prototype.updateEditorForDiacritics = function(field, annotation){ + if (typeof annotation.tags == 'undefined'){ + return; + } + var self = this; + + var inputItems = $(this.field).find(':input'); + var dictOfItems = {} + $.each(inputItems, function(item){ + inputItems[item].checked = false; + dictOfItems[inputItems[item].placeholder] = inputItems[item]; + }); + annotation.tags.forEach(function(tag){ + if(typeof self.diacriticmarks[tag] != 'undefined'){ + dictOfItems[tag].checked = true; + } + }); + } + + + + return Diacritics; + +})(Annotator.Plugin); \ No newline at end of file diff --git a/common/static/js/vendor/ova/flagging-annotator.js b/common/static/js/vendor/ova/flagging-annotator.js index ac24ffff240d..8aa792334ffe 100644 --- a/common/static/js/vendor/ova/flagging-annotator.js +++ b/common/static/js/vendor/ova/flagging-annotator.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.6.3 var _ref, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __hasProp = {}.hasOwnProperty, @@ -101,4 +100,4 @@ Annotator.Plugin.Flagging = (function(_super) { return Flagging; -})(Annotator.Plugin); \ No newline at end of file +})(Annotator.Plugin); diff --git a/common/static/js/vendor/ova/ova.js b/common/static/js/vendor/ova/ova.js index 059af1322f6e..e5233a97771e 100644 --- a/common/static/js/vendor/ova/ova.js +++ b/common/static/js/vendor/ova/ova.js @@ -1,6 +1,6 @@ /* Open Video Annotation v1.0 (http://openvideoannotation.org/) -Copyright (C) 2014 CHS (Harvard University), Daniel Cebri‡n Robles and Phil Desenne +Copyright (C) 2014 CHS (Harvard University), Daniel Cebrian Robles and Phil Desenne License: https://github.com/CtrHellenicStudies/OpenVideoAnnotation/blob/master/License.rst This program is free software; you can redistribute it and/or @@ -2389,17 +2389,8 @@ OpenVideoAnnotation.Annotator = function (element, options) { if (typeof options.optionsAnnotator.highlightTags!='undefined') this.annotator.addPlugin("HighlightTags", options.optionsAnnotator.highlightTags); - - /* - this.annotator.addPlugin("Filter", { - filters: [ - { - label: 'Media', - property: 'media' - } - ] - });//it is obligatory to have - */ + if (typeof options.optionsAnnotator.diacriticMarksk != 'undefined' && typeof Annotator.Plugin["Diacritics"] === 'function') + this.annotator.addPlugin("Diacritics", options.optionsAnnotator.diacriticMarks); if (typeof Annotator.Plugin["Geolocation"] === 'function') this.annotator.addPlugin("Geolocation",options.optionsAnnotator.geolocation); @@ -2415,7 +2406,7 @@ OpenVideoAnnotation.Annotator = function (element, options) { if (typeof Annotator.Plugin["Reply"] === 'function') this.annotator.addPlugin("Reply"); - if (typeof Annotator.Plugin["Flagging"] === 'function') + if (typeof Annotator.Plugin["Flagging"] === 'function') this.annotator.addPlugin("Flagging"); //Will be add the player and the annotations plugin for video-js in the annotator diff --git a/common/static/js/vendor/ova/rangeslider.js b/common/static/js/vendor/ova/rangeslider.js index 51e054fcbad7..e0250b936a80 100644 --- a/common/static/js/vendor/ova/rangeslider.js +++ b/common/static/js/vendor/ova/rangeslider.js @@ -1,6 +1,6 @@ /* RangeSlider v1.0 (https://github.com/danielcebrian/rangeslider-videojs) -Copyright (C) 2014 Daniel Cebri‡n Robles +Copyright (C) 2014 Daniel Cebrian Robles License: https://github.com/danielcebrian/rangeslider-videojs/blob/master/License.rst This program is free software; you can redistribute it and/or diff --git a/common/static/js/vendor/ova/reply-annotator.js b/common/static/js/vendor/ova/reply-annotator.js index f88efae2daf0..74fd1c02da1f 100644 --- a/common/static/js/vendor/ova/reply-annotator.js +++ b/common/static/js/vendor/ova/reply-annotator.js @@ -1,6 +1,6 @@ /* Reply Annotator Plugin v1.0 (https://github.com/danielcebrian/reply-annotator) - Copyright (C) 2014 Daniel Cebri‡n Robles + Copyright (C) 2014 Daniel Cebrian Robles License: https://github.com/danielcebrian/reply-annotator/blob/master/License.rst This program is free software; you can redistribute it and/or diff --git a/common/static/js/vendor/ova/richText-annotator.js b/common/static/js/vendor/ova/richText-annotator.js index 828d7ef8ef89..271305b94291 100644 --- a/common/static/js/vendor/ova/richText-annotator.js +++ b/common/static/js/vendor/ova/richText-annotator.js @@ -1,6 +1,6 @@ /* Rich Text Annotator Plugin v1.0 (https://github.com/danielcebrian/richText-annotator) -Copyright (C) 2014 Daniel Cebri‡n Robles +Copyright (C) 2014 Daniel Cebrian Robles License: https://github.com/danielcebrian/richText-annotator/blob/master/License.rst This program is free software; you can redistribute it and/or @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -// Generated by CoffeeScript 1.6.3 var _ref, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __hasProp = {}.hasOwnProperty, @@ -36,6 +35,7 @@ Annotator.Plugin.RichText = (function(_super) { 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 | link image media rubric | code ", + resize: "both", } }; @@ -125,7 +125,7 @@ Annotator.Plugin.RichText = (function(_super) { RichText.prototype.updateEditor = function(field, annotation) { var text = typeof annotation.text!='undefined'?annotation.text:''; - tinymce.activeEditor.setContent(text); + tinymce.activeEditor.setContent(text); $(field).remove(); //this is the auto create field by annotator and it is not necessary } diff --git a/common/static/js/vendor/ova/share-annotator.js b/common/static/js/vendor/ova/share-annotator.js index 013933703f36..b6648e32456d 100644 --- a/common/static/js/vendor/ova/share-annotator.js +++ b/common/static/js/vendor/ova/share-annotator.js @@ -1,6 +1,6 @@ /* Share Annotation Plugin v1.0 (https://github.com/danielcebrian/share-annotator) -Copyright (C) 2014 Daniel Cebri‡n Robles +Copyright (C) 2014 Daniel Cebrian Robles License: https://github.com/danielcebrian/share-annotator/blob/master/License.rst This program is free software; you can redistribute it and/or @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -// Generated by CoffeeScript 1.6.3 var _ref, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __hasProp = {}.hasOwnProperty, diff --git a/common/static/js/vendor/ova/tags-annotator.js b/common/static/js/vendor/ova/tags-annotator.js index 36a28fa9de82..7d9a47c13929 100644 --- a/common/static/js/vendor/ova/tags-annotator.js +++ b/common/static/js/vendor/ova/tags-annotator.js @@ -1,3 +1,27 @@ +/* + HighlightTags Annotator Plugin v1.0 (https://github.com/lduarte1991/tags-annotator) + Copyright (C) 2014 Luis F Duarte + License: https://github.com/lduarte1991/tags-annotator/blob/master/LICENSE.rst + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ +/*=============================================================================== + =============================================================================== + =============================================================================== + =============================================================================== + ==============================================================================*/ /* * jQuery Plugin: Tokenizing Autocomplete Text Entry * Version 1.6.0 @@ -22,7 +46,7 @@ var DEFAULT_SETTINGS = { // Display settings hintText: "Type in a search term", - noResultsText: "No results", + noResultsText: "Not Found. Hit ENTER to add a personal tag", searchingText: "Searching...", deleteText: "×", animateDropdown: true, @@ -39,7 +63,7 @@ var DEFAULT_SETTINGS = { prePopulate: null, processPrePopulate: false, - // Manipulation settings + // Manipulation settings idPrefix: "token-input-", // Formatters @@ -271,6 +295,9 @@ $.TokenList = function (input, url_or_data, settings) { add_token($(selected_dropdown_item).data("tokeninput")); hidden_input.change(); return false; + } else{ + add_token({id:$(this).val(), name:$(this).val()}); + hidden_input.change(); } break; @@ -859,7 +886,6 @@ $.TokenList.Cache = function (options) { }; }(jQuery)); -// Generated by CoffeeScript 1.6.3 var _ref, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __hasProp = {}.hasOwnProperty, @@ -886,7 +912,7 @@ Annotator.Plugin.HighlightTags = (function(_super) { HighlightTags.prototype.field = null; HighlightTags.prototype.input = null; HighlightTags.prototype.colors = null; - HighlightTags.prototype.isFirstTime = true; + HighlightTags.prototype.isFirstTime = true; //this function will initialize the plug in. Create your fields here in the editor and viewer. HighlightTags.prototype.pluginInit = function() { diff --git a/lms/envs/common.py b/lms/envs/common.py index 161349528429..892e6c4de1b3 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -808,6 +808,7 @@ 'js/vendor/ova/reply-annotator.js', 'js/vendor/ova/tags-annotator.js', 'js/vendor/ova/flagging-annotator.js', + 'js/vendor/ova/diacritic-annotator.js', 'js/vendor/ova/jquery-Watch.js', 'js/vendor/ova/ova.js', 'js/vendor/ova/catch/js/catch.js', @@ -836,6 +837,7 @@ 'css/vendor/ova/richText-annotator.css', 'css/vendor/ova/tags-annotator.css', 'css/vendor/ova/flagging-annotator.css', + 'css/vendor/ova/diacritic-annotator.css', 'css/vendor/ova/ova.css', 'js/vendor/ova/catch/css/main.css' ], From 0480099e1ceb29031a3ca4754820d71bab549c4e Mon Sep 17 00:00:00 2001 From: lduarte1991 Date: Fri, 25 Apr 2014 18:12:03 -0400 Subject: [PATCH 02/15] UI Fixes for Diacritic Mark Plugin --- common/static/css/vendor/ova/diacritic-annotator.css | 10 ++++++---- common/static/js/vendor/ova/diacritic-annotator.js | 3 ++- common/static/js/vendor/ova/ova.js | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/common/static/css/vendor/ova/diacritic-annotator.css b/common/static/css/vendor/ova/diacritic-annotator.css index 92a9a1fdf132..f9055978c455 100644 --- a/common/static/css/vendor/ova/diacritic-annotator.css +++ b/common/static/css/vendor/ova/diacritic-annotator.css @@ -1,6 +1,8 @@ .mark{ - width:10px; - height:10px; - position:absolute; - background-size:contain; + width: 10px; + height: 10px; + position: absolute; + background-size: contain; + background-repeat: no-repeat; + background-position: 50% 0%; } diff --git a/common/static/js/vendor/ova/diacritic-annotator.js b/common/static/js/vendor/ova/diacritic-annotator.js index 5f29c2dbd842..87456096acaf 100644 --- a/common/static/js/vendor/ova/diacritic-annotator.js +++ b/common/static/js/vendor/ova/diacritic-annotator.js @@ -79,6 +79,7 @@ Annotator.Plugin.Diacritics = (function(_super) { this.annotator.subscribe('annotationsLoaded', this.updateDiacritics); this.annotator.subscribe('annotationUploaded', this.updateDiacritics); this.annotator.subscribe('annotationDeleted', this.updateDiacritics); + this.annotator.subscribe('annotationUpdated', this.updateDiacritics); this.annotator.subscribe('annotationEditorShown', this.updateEditorForDiacritics, this.field); var self = this; @@ -135,7 +136,7 @@ Annotator.Plugin.Diacritics = (function(_super) { } else{ $(newdiv).css('top',""+loc.y+"px"); } - $(newdiv).css('left',""+(loc.x+(loc.width/2.0)-10)+"px"); + $(newdiv).css('left',""+(loc.x+(loc.width/2.0)-5)+"px"); $(newdiv).css('background-image', 'url('+imgurl+')'); $('.annotator-wrapper')[0].appendChild(newdiv); } diff --git a/common/static/js/vendor/ova/ova.js b/common/static/js/vendor/ova/ova.js index e5233a97771e..fc5bda3d3698 100644 --- a/common/static/js/vendor/ova/ova.js +++ b/common/static/js/vendor/ova/ova.js @@ -2389,7 +2389,7 @@ OpenVideoAnnotation.Annotator = function (element, options) { if (typeof options.optionsAnnotator.highlightTags!='undefined') this.annotator.addPlugin("HighlightTags", options.optionsAnnotator.highlightTags); - if (typeof options.optionsAnnotator.diacriticMarksk != 'undefined' && typeof Annotator.Plugin["Diacritics"] === 'function') + if (typeof options.optionsAnnotator.diacriticMarks != 'undefined' && typeof Annotator.Plugin["Diacritics"] === 'function') this.annotator.addPlugin("Diacritics", options.optionsAnnotator.diacriticMarks); if (typeof Annotator.Plugin["Geolocation"] === 'function') From 949c3035f9bf44d6f8c4414f0b9a6e470f4f837b Mon Sep 17 00:00:00 2001 From: lduarte1991 Date: Fri, 25 Apr 2014 18:53:29 -0400 Subject: [PATCH 03/15] Removed diacritic mention and explained token --- common/lib/xmodule/xmodule/annotator_token.py | 7 ++++++- common/lib/xmodule/xmodule/textannotation_module.py | 6 ------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/common/lib/xmodule/xmodule/annotator_token.py b/common/lib/xmodule/xmodule/annotator_token.py index 9d4496249583..631db723c62a 100644 --- a/common/lib/xmodule/xmodule/annotator_token.py +++ b/common/lib/xmodule/xmodule/annotator_token.py @@ -17,11 +17,16 @@ def retrieve_token(userid, secret): the token was issued. This will be stored with the user along with the id for identification purposes in the backend. ''' + + #retrieve difference between current time and Greenwich time to assure timezones are normalized dtnow = datetime.datetime.now() dtutcnow = datetime.datetime.utcnow() delta = dtnow - dtutcnow + #use the new normalized time to retreive the date the token was issued newhour, newmin = divmod((delta.days * 24 * 60 * 60 + delta.seconds + 30) // 60, 60) newtime = "%s%+02d:%02d" % (dtnow.isoformat(), newhour, newmin) + #uses the issued time, the consumer key and the user's email to maintain a + #federated system in the annotation backend server custom_data = {"issuedAt": newtime, "consumerKey": secret, "userId": userid, "ttl": 86400} newtoken = create_token(secret, custom_data) - return newtoken \ No newline at end of file + return newtoken diff --git a/common/lib/xmodule/xmodule/textannotation_module.py b/common/lib/xmodule/xmodule/textannotation_module.py index 6cc0f9512fbd..e3ef5aa4f978 100644 --- a/common/lib/xmodule/xmodule/textannotation_module.py +++ b/common/lib/xmodule/xmodule/textannotation_module.py @@ -45,12 +45,6 @@ class AnnotatableFields(object): ) annotation_storage_url = String(help="Location of Annotation backend", scope=Scope.settings, default="http://your_annotation_storage.com", display_name="Url for Annotation Storage") annotation_token_secret = String(help="Secret string for annotation storage", scope=Scope.settings, default="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", display_name="Secret Token String for Annotation") - diacritics = String( - display_name="Diacritic Marks", - help= "Add diacritic marks to be added to a text using the comma-separated form, i.e. markname;urltomark;baseline,markname2;urltomark2;baseline2", - scope=Scope.settings, - default='', - ) class TextAnnotationModule(AnnotatableFields, XModule): From 1bedecba440b75307ee48b848147ca6d0eb2a196 Mon Sep 17 00:00:00 2001 From: lduarte1991 Date: Mon, 28 Apr 2014 13:59:22 -0400 Subject: [PATCH 04/15] Fixed Unit Test Issues --- common/lib/xmodule/xmodule/textannotation_module.py | 1 - common/lib/xmodule/xmodule/videoannotation_module.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/common/lib/xmodule/xmodule/textannotation_module.py b/common/lib/xmodule/xmodule/textannotation_module.py index e3ef5aa4f978..9a561b9411dc 100644 --- a/common/lib/xmodule/xmodule/textannotation_module.py +++ b/common/lib/xmodule/xmodule/textannotation_module.py @@ -84,7 +84,6 @@ def get_html(self): 'content_html': self.content, 'annotation_storage': self.annotation_storage_url, 'token':retrieve_token(self.user, self.annotation_token_secret), - 'diacritic_marks': self.diacritics, } return self.system.render_template('textannotation.html', context) diff --git a/common/lib/xmodule/xmodule/videoannotation_module.py b/common/lib/xmodule/xmodule/videoannotation_module.py index 2a7a0e75e5c3..c5d47b5c325f 100644 --- a/common/lib/xmodule/xmodule/videoannotation_module.py +++ b/common/lib/xmodule/xmodule/videoannotation_module.py @@ -91,7 +91,7 @@ def get_html(self): 'sourceUrl': self.sourceurl, 'typeSource': extension, 'poster': self.poster_url, - 'content_html': self._render_content(), + 'content_html': self.content, 'annotation_storage': self.annotation_storage_url, 'token': retrieve_token(self.user, self.annotation_token_secret), } From 9e7d1f5e83f190fd08b0f09585ba80a224a01df6 Mon Sep 17 00:00:00 2001 From: lduarte1991 Date: Mon, 28 Apr 2014 17:41:56 -0400 Subject: [PATCH 05/15] Adding Diacritics items from previous PR --- common/lib/xmodule/xmodule/textannotation_module.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/lib/xmodule/xmodule/textannotation_module.py b/common/lib/xmodule/xmodule/textannotation_module.py index 9a561b9411dc..7827bcc66872 100644 --- a/common/lib/xmodule/xmodule/textannotation_module.py +++ b/common/lib/xmodule/xmodule/textannotation_module.py @@ -45,6 +45,12 @@ class AnnotatableFields(object): ) annotation_storage_url = String(help="Location of Annotation backend", scope=Scope.settings, default="http://your_annotation_storage.com", display_name="Url for Annotation Storage") annotation_token_secret = String(help="Secret string for annotation storage", scope=Scope.settings, default="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", display_name="Secret Token String for Annotation") + diacritics = String( + display_name="Diacritic Marks", + help= "Add diacritic marks to be added to a text using the comma-separated form, i.e. markname;urltomark;baseline,markname2;urltomark2;baseline2", + scope=Scope.settings, + default='', + ) class TextAnnotationModule(AnnotatableFields, XModule): @@ -84,6 +90,7 @@ def get_html(self): 'content_html': self.content, 'annotation_storage': self.annotation_storage_url, 'token':retrieve_token(self.user, self.annotation_token_secret), + 'diacritic_marks': self.diacritics, } return self.system.render_template('textannotation.html', context) From 92b751e00d5a6a9afef8365af641eb499a291748 Mon Sep 17 00:00:00 2001 From: lduarte1991 Date: Tue, 29 Apr 2014 13:23:53 -0400 Subject: [PATCH 06/15] Fix comment formatting and Timezone explanation --- common/lib/xmodule/xmodule/annotator_token.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/lib/xmodule/xmodule/annotator_token.py b/common/lib/xmodule/xmodule/annotator_token.py index 631db723c62a..6fa569597851 100644 --- a/common/lib/xmodule/xmodule/annotator_token.py +++ b/common/lib/xmodule/xmodule/annotator_token.py @@ -18,15 +18,15 @@ def retrieve_token(userid, secret): the id for identification purposes in the backend. ''' - #retrieve difference between current time and Greenwich time to assure timezones are normalized + # the following five lines of code allows you to include the default timezone in the iso format + # for more information: http://stackoverflow.com/questions/3401428/how-to-get-an-isoformat-datetime-string-including-the-default-timezone dtnow = datetime.datetime.now() dtutcnow = datetime.datetime.utcnow() delta = dtnow - dtutcnow - #use the new normalized time to retreive the date the token was issued newhour, newmin = divmod((delta.days * 24 * 60 * 60 + delta.seconds + 30) // 60, 60) newtime = "%s%+02d:%02d" % (dtnow.isoformat(), newhour, newmin) - #uses the issued time, the consumer key and the user's email to maintain a - #federated system in the annotation backend server + # uses the issued time (UTC plus timezone), the consumer key and the user's email to maintain a + # federated system in the annotation backend server custom_data = {"issuedAt": newtime, "consumerKey": secret, "userId": userid, "ttl": 86400} newtoken = create_token(secret, custom_data) return newtoken From a5bfaf8f497acf90e0e7e8023e2c2c2ea289bf5d Mon Sep 17 00:00:00 2001 From: lduarte1991 Date: Tue, 29 Apr 2014 16:38:16 -0400 Subject: [PATCH 07/15] Moved annotation code to module and ui fixes --- cms/envs/common.py | 7 + common/lib/xmodule/xmodule/annotator_mixin.py | 55 ++ .../src}/ova/annotator-full-firebase-auth.js | 0 .../xmodule/js/src}/ova/annotator-full.js | 0 .../xmodule/js/src}/ova/catch/css/main.css | 0 .../xmodule/js/src}/ova/catch/js/catch.js | 0 .../js/src}/ova/catch/js/handlebars-1.1.2.js | 0 .../js/src}/ova/diacritic-annotator.js | 0 .../xmodule/js/src}/ova/flagging-annotator.js | 0 .../xmodule/js/src}/ova/jquery-Watch.js | 0 .../xmodule/xmodule/js/src}/ova/ova.js | 0 .../xmodule/js/src}/ova/rangeslider.js | 0 .../xmodule/js/src}/ova/reply-annotator.js | 1 + .../xmodule/js/src}/ova/richText-annotator.js | 16 +- .../xmodule/js/src}/ova/share-annotator.js | 0 .../xmodule/js/src}/ova/tags-annotator.js | 0 .../xmodule/js/src}/ova/tinymce.min.js | 0 .../xmodule/xmodule/js/src}/ova/video.dev.js | 0 .../xmodule/js/src}/ova/vjs.youtube.js | 0 .../xmodule/xmodule/textannotation_module.py | 12 +- .../xmodule/xmodule/videoannotation_module.py | 22 +- .../css/vendor/ova/diacritic-annotator.css | 8 - .../static/css/vendor/ova/edx-annotator.css | 108 ---- .../css/vendor/ova/flagging-annotator.css | 27 - common/static/css/vendor/ova/ova.css | 605 ------------------ common/static/css/vendor/ova/rangeslider.css | 186 ------ .../css/vendor/ova/richText-annotator.css | 45 -- .../static/css/vendor/ova/share-annotator.css | 203 ------ .../static/css/vendor/ova/tags-annotator.css | 97 --- lms/envs/common.py | 33 +- lms/templates/textannotation.html | 12 +- lms/templates/videoannotation.html | 12 +- 32 files changed, 109 insertions(+), 1340 deletions(-) create mode 100644 common/lib/xmodule/xmodule/annotator_mixin.py rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/annotator-full-firebase-auth.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/annotator-full.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/catch/css/main.css (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/catch/js/catch.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/catch/js/handlebars-1.1.2.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/diacritic-annotator.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/flagging-annotator.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/jquery-Watch.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/ova.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/rangeslider.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/reply-annotator.js (99%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/richText-annotator.js (94%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/share-annotator.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/tags-annotator.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/tinymce.min.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/video.dev.js (100%) rename common/{static/js/vendor => lib/xmodule/xmodule/js/src}/ova/vjs.youtube.js (100%) delete mode 100644 common/static/css/vendor/ova/diacritic-annotator.css delete mode 100644 common/static/css/vendor/ova/edx-annotator.css delete mode 100644 common/static/css/vendor/ova/flagging-annotator.css delete mode 100644 common/static/css/vendor/ova/ova.css delete mode 100644 common/static/css/vendor/ova/rangeslider.css delete mode 100644 common/static/css/vendor/ova/richText-annotator.css delete mode 100644 common/static/css/vendor/ova/share-annotator.css delete mode 100644 common/static/css/vendor/ova/tags-annotator.css diff --git a/cms/envs/common.py b/cms/envs/common.py index 00e606e42f47..98295e0fbbd1 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -337,6 +337,13 @@ ], 'output_filename': 'css/cms-style-vendor-tinymce-skin.css', }, + 'style-annotator' :{ + 'source_filenames':[ + 'css/vendor/ova/annotator.css', + 'css/vendor/ova/token-input.css' + ], + 'output_filename': 'css/lms-style-vendor-ova-annotator.css', + }, 'style-app': { 'source_filenames': [ 'sass/style-app.css', diff --git a/common/lib/xmodule/xmodule/annotator_mixin.py b/common/lib/xmodule/xmodule/annotator_mixin.py new file mode 100644 index 000000000000..c6f5fc447777 --- /dev/null +++ b/common/lib/xmodule/xmodule/annotator_mixin.py @@ -0,0 +1,55 @@ +""" +Annotations Tool Mixin +This file contains global variables and functions used in the various Annotation Tools. +""" +from pkg_resources import resource_string +from lxml import etree +from urlparse import urlparse +from os.path import splitext, basename + +def get_instructions(xmltree): + """ Removes from the xmltree and returns them as a string, otherwise None. """ + instructions = xmltree.find('instructions') + if instructions is not None: + instructions.tag = 'div' + xmltree.remove(instructions) + return etree.tostring(instructions, encoding='unicode') + return None + +def get_extension(srcurl): + ''' get the extension of a given url ''' + if 'youtu' in srcurl: + return 'video/youtube' + else: + disassembled = urlparse(srcurl) + file_ext = splitext(basename(disassembled.path))[1] + return 'video/' + file_ext.replace('.', '') + +ANNOTATOR_COMMON_JS = [ + resource_string(__name__, 'js/src/ova/annotator-full.js'), + resource_string(__name__, 'js/src/ova/annotator-full-firebase-auth.js'), + resource_string(__name__, 'js/src/ova/video.dev.js'), + resource_string(__name__, 'js/src/ova/vjs.youtube.js'), + resource_string(__name__, 'js/src/ova/rangeslider.js'), + resource_string(__name__, 'js/src/ova/share-annotator.js'), + resource_string(__name__, 'js/src/ova/richText-annotator.js'), + resource_string(__name__, 'js/src/ova/reply-annotator.js'), + resource_string(__name__, 'js/src/ova/tags-annotator.js'), + resource_string(__name__, 'js/src/ova/flagging-annotator.js'), + resource_string(__name__, 'js/src/ova/diacritic-annotator.js'), + resource_string(__name__, 'js/src/ova/jquery-Watch.js'), + resource_string(__name__, 'js/src/ova/ova.js'), + resource_string(__name__, 'js/src/ova/catch/js/handlebars-1.1.2.js'), + resource_string(__name__, 'js/src/ova/catch/js/catch.js'), +] + +ANNOTATOR_COMMON_CSS = [ + resource_string(__name__, 'css/ova/edx-annotator.css'), + resource_string(__name__, 'css/ova/rangeslider.css'), + resource_string(__name__, 'css/ova/share-annotator.css'), + resource_string(__name__, 'css/ova/richText-annotator.css'), + resource_string(__name__, 'css/ova/diacritic-annotator.css'), + resource_string(__name__, 'css/ova/flagging-annotator.css'), + resource_string(__name__, 'css/ova/ova.css'), + resource_string(__name__, 'js/src/ova/catch/css/main.css'), +] \ No newline at end of file diff --git a/common/static/js/vendor/ova/annotator-full-firebase-auth.js b/common/lib/xmodule/xmodule/js/src/ova/annotator-full-firebase-auth.js similarity index 100% rename from common/static/js/vendor/ova/annotator-full-firebase-auth.js rename to common/lib/xmodule/xmodule/js/src/ova/annotator-full-firebase-auth.js diff --git a/common/static/js/vendor/ova/annotator-full.js b/common/lib/xmodule/xmodule/js/src/ova/annotator-full.js similarity index 100% rename from common/static/js/vendor/ova/annotator-full.js rename to common/lib/xmodule/xmodule/js/src/ova/annotator-full.js diff --git a/common/static/js/vendor/ova/catch/css/main.css b/common/lib/xmodule/xmodule/js/src/ova/catch/css/main.css similarity index 100% rename from common/static/js/vendor/ova/catch/css/main.css rename to common/lib/xmodule/xmodule/js/src/ova/catch/css/main.css diff --git a/common/static/js/vendor/ova/catch/js/catch.js b/common/lib/xmodule/xmodule/js/src/ova/catch/js/catch.js similarity index 100% rename from common/static/js/vendor/ova/catch/js/catch.js rename to common/lib/xmodule/xmodule/js/src/ova/catch/js/catch.js diff --git a/common/static/js/vendor/ova/catch/js/handlebars-1.1.2.js b/common/lib/xmodule/xmodule/js/src/ova/catch/js/handlebars-1.1.2.js similarity index 100% rename from common/static/js/vendor/ova/catch/js/handlebars-1.1.2.js rename to common/lib/xmodule/xmodule/js/src/ova/catch/js/handlebars-1.1.2.js diff --git a/common/static/js/vendor/ova/diacritic-annotator.js b/common/lib/xmodule/xmodule/js/src/ova/diacritic-annotator.js similarity index 100% rename from common/static/js/vendor/ova/diacritic-annotator.js rename to common/lib/xmodule/xmodule/js/src/ova/diacritic-annotator.js diff --git a/common/static/js/vendor/ova/flagging-annotator.js b/common/lib/xmodule/xmodule/js/src/ova/flagging-annotator.js similarity index 100% rename from common/static/js/vendor/ova/flagging-annotator.js rename to common/lib/xmodule/xmodule/js/src/ova/flagging-annotator.js diff --git a/common/static/js/vendor/ova/jquery-Watch.js b/common/lib/xmodule/xmodule/js/src/ova/jquery-Watch.js similarity index 100% rename from common/static/js/vendor/ova/jquery-Watch.js rename to common/lib/xmodule/xmodule/js/src/ova/jquery-Watch.js diff --git a/common/static/js/vendor/ova/ova.js b/common/lib/xmodule/xmodule/js/src/ova/ova.js similarity index 100% rename from common/static/js/vendor/ova/ova.js rename to common/lib/xmodule/xmodule/js/src/ova/ova.js diff --git a/common/static/js/vendor/ova/rangeslider.js b/common/lib/xmodule/xmodule/js/src/ova/rangeslider.js similarity index 100% rename from common/static/js/vendor/ova/rangeslider.js rename to common/lib/xmodule/xmodule/js/src/ova/rangeslider.js diff --git a/common/static/js/vendor/ova/reply-annotator.js b/common/lib/xmodule/xmodule/js/src/ova/reply-annotator.js similarity index 99% rename from common/static/js/vendor/ova/reply-annotator.js rename to common/lib/xmodule/xmodule/js/src/ova/reply-annotator.js index 74fd1c02da1f..91a55b2b1402 100644 --- a/common/static/js/vendor/ova/reply-annotator.js +++ b/common/lib/xmodule/xmodule/js/src/ova/reply-annotator.js @@ -83,6 +83,7 @@ Annotator.Plugin.Reply = (function(_super) { return self; }); this.annotation = annotation; + field.remove(); //Create the actions for the buttons return ret; }; diff --git a/common/static/js/vendor/ova/richText-annotator.js b/common/lib/xmodule/xmodule/js/src/ova/richText-annotator.js similarity index 94% rename from common/static/js/vendor/ova/richText-annotator.js rename to common/lib/xmodule/xmodule/js/src/ova/richText-annotator.js index 271305b94291..0ce8ea33e985 100644 --- a/common/static/js/vendor/ova/richText-annotator.js +++ b/common/lib/xmodule/xmodule/js/src/ova/richText-annotator.js @@ -30,12 +30,21 @@ Annotator.Plugin.RichText = (function(_super) { RichText.prototype.options = { tinymce:{ selector: "li.annotator-item textarea", - plugins: "media image insertdatetime link code", + skin: 'studio-tmce4', + formats: { + code: { + inline: 'code' + } + }, + codemirror: { + path: "" + baseUrl + "js/vendor" + }, + plugins: "image link 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 | link image media rubric | code ", - resize: "both", + toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image rubric | code ", + resize: "both", } }; @@ -139,4 +148,3 @@ Annotator.Plugin.RichText = (function(_super) { return RichText; })(Annotator.Plugin); - diff --git a/common/static/js/vendor/ova/share-annotator.js b/common/lib/xmodule/xmodule/js/src/ova/share-annotator.js similarity index 100% rename from common/static/js/vendor/ova/share-annotator.js rename to common/lib/xmodule/xmodule/js/src/ova/share-annotator.js diff --git a/common/static/js/vendor/ova/tags-annotator.js b/common/lib/xmodule/xmodule/js/src/ova/tags-annotator.js similarity index 100% rename from common/static/js/vendor/ova/tags-annotator.js rename to common/lib/xmodule/xmodule/js/src/ova/tags-annotator.js diff --git a/common/static/js/vendor/ova/tinymce.min.js b/common/lib/xmodule/xmodule/js/src/ova/tinymce.min.js similarity index 100% rename from common/static/js/vendor/ova/tinymce.min.js rename to common/lib/xmodule/xmodule/js/src/ova/tinymce.min.js diff --git a/common/static/js/vendor/ova/video.dev.js b/common/lib/xmodule/xmodule/js/src/ova/video.dev.js similarity index 100% rename from common/static/js/vendor/ova/video.dev.js rename to common/lib/xmodule/xmodule/js/src/ova/video.dev.js diff --git a/common/static/js/vendor/ova/vjs.youtube.js b/common/lib/xmodule/xmodule/js/src/ova/vjs.youtube.js similarity index 100% rename from common/static/js/vendor/ova/vjs.youtube.js rename to common/lib/xmodule/xmodule/js/src/ova/vjs.youtube.js diff --git a/common/lib/xmodule/xmodule/textannotation_module.py b/common/lib/xmodule/xmodule/textannotation_module.py index 7827bcc66872..5593cbfbea3e 100644 --- a/common/lib/xmodule/xmodule/textannotation_module.py +++ b/common/lib/xmodule/xmodule/textannotation_module.py @@ -7,6 +7,7 @@ from xmodule.raw_module import RawDescriptor from xblock.core import Scope, String from xmodule.annotator_token import retrieve_token +from xmodule.annotator_mixin import get_instructions, ANNOTATOR_COMMON_JS, ANNOTATOR_COMMON_CSS import textwrap @@ -56,8 +57,8 @@ class AnnotatableFields(object): class TextAnnotationModule(AnnotatableFields, XModule): ''' Text Annotation Module ''' js = {'coffee': [], - 'js': []} - css = {'scss': [resource_string(__name__, 'css/annotatable/display.scss')]} + 'js': ANNOTATOR_COMMON_JS} + css = {'scss': ANNOTATOR_COMMON_CSS + [resource_string(__name__, 'css/annotatable/display.scss')]} icon_class = 'textannotation' def __init__(self, *args, **kwargs): @@ -73,12 +74,7 @@ def __init__(self, *args, **kwargs): def _extract_instructions(self, xmltree): """ Removes from the xmltree and returns them as a string, otherwise None. """ - instructions = xmltree.find('instructions') - if instructions is not None: - instructions.tag = 'div' - xmltree.remove(instructions) - return etree.tostring(instructions, encoding='unicode') - return None + return get_instructions(xmltree) def get_html(self): """ Renders parameters to template. """ diff --git a/common/lib/xmodule/xmodule/videoannotation_module.py b/common/lib/xmodule/xmodule/videoannotation_module.py index c5d47b5c325f..05610c97ffcc 100644 --- a/common/lib/xmodule/xmodule/videoannotation_module.py +++ b/common/lib/xmodule/xmodule/videoannotation_module.py @@ -8,6 +8,7 @@ from xmodule.raw_module import RawDescriptor from xblock.core import Scope, String from xmodule.annotator_token import retrieve_token +from xmodule.annotator_mixin import get_instructions, get_extension, ANNOTATOR_COMMON_JS, ANNOTATOR_COMMON_CSS import textwrap @@ -42,11 +43,11 @@ class VideoAnnotationModule(AnnotatableFields, XModule): resource_string(__name__, 'js/src/html/display.coffee'), resource_string(__name__, 'js/src/annotatable/display.coffee'), ], - 'js': [ + 'js': ANNOTATOR_COMMON_JS + [ resource_string(__name__, 'js/src/collapsible.js'), ] } - css = {'scss': [resource_string(__name__, 'css/annotatable/display.scss')]} + css = {'scss': ANNOTATOR_COMMON_CSS + [resource_string(__name__, 'css/annotatable/display.scss')]} icon_class = 'videoannotation' def __init__(self, *args, **kwargs): @@ -62,24 +63,11 @@ def __init__(self, *args, **kwargs): def _extract_instructions(self, xmltree): """ Removes from the xmltree and returns them as a string, otherwise None. """ - instructions = xmltree.find('instructions') - if instructions is not None: - instructions.tag = 'div' - xmltree.remove(instructions) - return etree.tostring(instructions, encoding='unicode') - return None + return get_instructions(xmltree) def _get_extension(self, srcurl): ''' get the extension of a given url ''' - if 'youtu' in srcurl: - return 'video/youtube' - else: - spliturl = srcurl.split(".") - extensionplus1 = spliturl[len(spliturl) - 1] - spliturl = extensionplus1.split("?") - extensionplus2 = spliturl[0] - spliturl = extensionplus2.split("#") - return 'video/' + spliturl[0] + return get_extension(srcurl) def get_html(self): """ Renders parameters to template. """ diff --git a/common/static/css/vendor/ova/diacritic-annotator.css b/common/static/css/vendor/ova/diacritic-annotator.css deleted file mode 100644 index f9055978c455..000000000000 --- a/common/static/css/vendor/ova/diacritic-annotator.css +++ /dev/null @@ -1,8 +0,0 @@ -.mark{ - width: 10px; - height: 10px; - position: absolute; - background-size: contain; - background-repeat: no-repeat; - background-position: 50% 0%; -} diff --git a/common/static/css/vendor/ova/edx-annotator.css b/common/static/css/vendor/ova/edx-annotator.css deleted file mode 100644 index a4bc6f91ca2f..000000000000 --- a/common/static/css/vendor/ova/edx-annotator.css +++ /dev/null @@ -1,108 +0,0 @@ -/*This is written to fix some design problems with edX*/ -.annotatable-wrapper .annotatable-header .annotatable-title{ - padding-top: 20px !important; -} - -.annotator-wrapper .annotator-adder button { - opacity:0; -} -.annotator-editor a, .annotator-filter .annotator-filter-property label{ - line-height: 24px !important; - color: #363636 !important; - font-size: 12px!important; - font-weight: bold !important; - text-shadow: none !important; -} -.annotator-outer ul { - list-style: none !important; - padding-left: 0em !important; -} -.annotator-outer li { - margin-bottom: 0em!important; -} -.vjs-rangeslider-holder span.vjs-time-text{ - line-height: 1!important; - float: left; -} -span.annotator-hl{ - font:inherit; -} -.vjs-has-started .vjs-loading-spinner { - display: none!important; -} -/*Catch*/ -#mainCatch *{ - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -/*PublicPrivate Notes in My notes */ -.notes-wrapper .PublicPrivate.separator, -.notes-wrapper .PublicPrivate.myNotes{ - position:relative; - float:left; -} -.notes-wrapper .PublicPrivate.active *{ - color:black; -} - -/* My notes buttons */ -.notes-wrapper .buttonCatch{ - -moz-box-shadow:inset 0px 1px 0px 0px #ffffff; - -webkit-box-shadow:inset 0px 1px 0px 0px #ffffff; - box-shadow:inset 0px 1px 0px 0px #ffffff; - - background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ffffff), color-stop(1, #a6a3a3)); - background:-moz-linear-gradient(top, #ffffff 5%, #a6a3a3 100%); - background:-webkit-linear-gradient(top, #ffffff 5%, #a6a3a3 100%); - background:-o-linear-gradient(top, #ffffff 5%, #a6a3a3 100%); - background:-ms-linear-gradient(top, #ffffff 5%, #a6a3a3 100%); - background:linear-gradient(to bottom, #ffffff 5%, #a6a3a3 100%); - filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#a6a3a3',GradientType=0); - - background-color:#ffffff; - - -moz-border-radius:6px; - -webkit-border-radius:6px; - border-radius:6px; - - border:1px solid #c2c2c2; - - display:inline-block; - color:#302f2f; - font-family:arial; - font-size:15px; - font-weight:bold; - padding:6px 24px; - text-decoration:none; - - text-shadow:0px 1px 0px #ffffff; - margin: 0px 5px 10px 5px; - cursor:pointer; -} -.notes-wrapper .buttonCatch.active{ - color:red; -} -.notes-wrapper .buttonCatch:hover { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #a6a3a3), color-stop(1, #ffffff)); - background:-moz-linear-gradient(top, #a6a3a3 5%, #ffffff 100%); - background:-webkit-linear-gradient(top, #a6a3a3 5%, #ffffff 100%); - background:-o-linear-gradient(top, #a6a3a3 5%, #ffffff 100%); - background:-ms-linear-gradient(top, #a6a3a3 5%, #ffffff 100%); - background:linear-gradient(to bottom, #a6a3a3 5%, #ffffff 100%); - filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#a6a3a3', endColorstr='#ffffff',GradientType=0); - - background-color:#a6a3a3; -} -.notes-wrapper .buttonCatch:active { - position:relative; - top:1px; -} - -.annotatable-content #sourceCitation { - color:#CCC; - font-style:italic; - font-size:12px; -} - diff --git a/common/static/css/vendor/ova/flagging-annotator.css b/common/static/css/vendor/ova/flagging-annotator.css deleted file mode 100644 index 575822b09bd0..000000000000 --- a/common/static/css/vendor/ova/flagging-annotator.css +++ /dev/null @@ -1,27 +0,0 @@ -.flag-icon{ - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAsCAMAAAAgsQpJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAytpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQ1NzExMTM2MEUwMTFFM0I2RjhDOENEOEZGRUY1MzQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQ1NzExMTI2MEUwMTFFM0I2RjhDOENEOEZGRUY1MzQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5kaWQ6YWNmNmE5ZGQtZDlkOC00YTlhLThmMjAtY2EzNGM5ODcxZDJhIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmFjZjZhOWRkLWQ5ZDgtNGE5YS04ZjIwLWNhMzRjOTg3MWQyYSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pnen528AAAAJUExURc3Nzf///////3aZ7dEAAAADdFJOU///ANfKDUEAAACzSURBVHjarNRLFoJADETRZ+1/0cpAYuevx8w4XOjQdApZ8SpVxQ+QJYRW4hzV+3GO4rk3hFNCWMG765a7NEhbBtlBxtK86peQNbws/y+teoz/ofiWFbSTtHLTHt0TErddqfMHNxxGWzUbj8SlUIdL5trBc9Br6AKh7PHh5pXc1XM9uQiT9lJYOQc//mGXj51LgrTIPpbOBWmTuizaC/moOZr79k44uDtIJ3cmriao2ekpwADT/geMPTQb1AAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-size:13px 13px; - top: 2px; - left: 5px; - float: left; - border: none; - width: 13px; - height: 13px; - cursor: pointer; - position: absolute; -} - -.flag-icon-used, .flag-icon:hover{ - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAsCAMAAAAgsQpJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAytpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQ1NzExMEY2MEUwMTFFM0I2RjhDOENEOEZGRUY1MzQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQ1NzExMEU2MEUwMTFFM0I2RjhDOENEOEZGRUY1MzQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5kaWQ6YWNmNmE5ZGQtZDlkOC00YTlhLThmMjAtY2EzNGM5ODcxZDJhIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmFjZjZhOWRkLWQ5ZDgtNGE5YS04ZjIwLWNhMzRjOTg3MWQyYSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpBey0IAAAAVUExURQAAAAEBAQ4ODrGxscHBwfj4+P///6napTIAAAAHdFJOU////////wAaSwNGAAABW0lEQVR42oyVWQLDIAhEBwZy/yNX3EpSo+WrSV+GVcT1NVf1682Qfquq/QNSAP4BEhC8+56gAUFOSVKVC9BUg4Sm7zQnh5GwVMWhwngQTR4w9KSRUkWIZuWlZZBNr5NKxbTpHcPP/Cscfp8gHKAT2URE8iO6c7jiYK0QUNlj0vuKu6c1auZFEUdOQ/UcY3FZuqm4eOKiO0Xtug4x1qaG4l6ydsZYwS1ZueLde6+TguXs2CafY3p8TI/SyyjN0rL5szy4LEPD1lZNaRjRO7M4HtbaGkCpcp+zFRiSZS4tPpkjvgTjYATHOY2vIOTBLcFyMki32yFcgZQQ8ju3AFnLZxIl3YFtU9nPGsIv56H6s9fwKHVwkbTv9mMPrNC07SJtgcXcHxZp4wDbL1KNBOKo2XaRek/jdd8jcy/h3fcjH0OwBqsSd5dCAy247S3TwYhQd9dWjnHVjWwfAQYAR+4aJLhjvXgAAAAASUVORK5CYII="); - background-repeat: no-repeat; - background-size:13px 13px; - top: 2px; - left: 5px; - float: left; - border: none; - width: 13px; - height: 13px; - cursor: pointer; - position: absolute; -} diff --git a/common/static/css/vendor/ova/ova.css b/common/static/css/vendor/ova/ova.css deleted file mode 100644 index 947dddd0cc2c..000000000000 --- a/common/static/css/vendor/ova/ova.css +++ /dev/null @@ -1,605 +0,0 @@ -/* --- BigNewAnnotation --- */ - -.vjs-default-skin .vjs-big-new-annotation{ - float: left; - cursor: pointer; - line-height: 1.6em; - margin: 3% 3% 3% 4%; - top: 41%; - width: 6em; - height: 6em; - background-color: rgba(7,40,50,.7); - border-radius: 6px; - border: 0.25em solid #ccc; -} - -.vjs-default-skin .vjs-big-new-annotation div{ - width: 100%; - height: 100%; - top: 0em; - font-weight: bold; - font-size: 600%; - padding-top: 0.32em; -} - -.vjs-default-skin.vjs-fullscreen .vjs-big-new-annotation{ - top: 68%; - width: 8em; - height: 8em; -} - -.vjs-default-skin.vjs-fullscreen .vjs-big-new-annotation div{ - font-size: 750%; - padding-top: 42%; -} - -.vjs-default-skin .vjs-big-new-annotation div:hover { - -webkit-box-shadow: 0 0 1em rgba(255, 255, 255, 1); - -moz-box-shadow: 0 0 1em rgba(255, 255, 255, 1); - box-shadow: 0 0 1em rgba(255, 255, 255, 1); -} - -div.video-js > div.vjs-big-new-annotation { - visibility:hidden; - opacity:0; - -webkit-transition: visibility 0s linear 1s,opacity 1s linear; - -moz-transition: visibility 0s linear 1s,opacity 1s linear; - -o-transition: visibility 0s linear 1s,opacity 1s linear; - transition:visibility 0s linear 1s,opacity 1s linear; -} -div.video-js:hover > div.vjs-big-new-annotation { - visibility:visible; - opacity:1; - transition-delay:0s; -} - - -.vjs-default-skin .vjs-big-new-annotation.ul{ - top:0%; -} -.vjs-default-skin .vjs-big-new-annotation.ur{ - top:0%; - float:right; -} -.vjs-default-skin .vjs-big-new-annotation.br{ - float:right; -} -.vjs-default-skin .vjs-big-new-annotation.c{ - top:24%; - left:40%; -} - -div.video-js:hover > div.vjs-big-new-annotation.none { - visibility:hidden; -} -.vjs-default-skin.vjs-fullscreen .vjs-big-new-annotation.c{ - top:35%; -} - - - -/* --- ControlBar --> AnContainerButtons --- */ - -.vjs-default-skin .vjs-container-button-annotation{ - width: 101px; -} - - - -/* --- ControlBar --> AnContainerButtons --> ShowStatistics --- */ -/* --- ControlBar --> AnContainerButtons --> NewAnnotation --- */ -/* --- ControlBar --> AnContainerButtons --> ShowAnnotations --- */ - -.vjs-default-skin .vjs-statistics-annotation, -.vjs-default-skin .vjs-showannotations-annotation, -.vjs-default-skin .vjs-new-annotation{ - float: right; - cursor: pointer; - line-height: 1.6em; - background-position: left top; - margin: 4px; - width: 23px; - height: 21px; - background-repeat: no-repeat; -} - -.vjs-default-skin .vjs-statistics-annotation.active, -.vjs-default-skin .vjs-showannotations-annotation.active, -.vjs-default-skin .vjs-statistics-annotation:hover, -.vjs-default-skin .vjs-showannotations-annotation:hover, -.vjs-default-skin .vjs-new-annotation:hover { - background-position: center top; -} - -.vjs-default-skin .vjs-statistics-annotation:active, -.vjs-default-skin .vjs-showannotations-annotation:active, -.vjs-default-skin .vjs-new-annotation:active { - background-position: center right; -} - -.vjs-default-skin .vjs-new-annotation { - background-image: url('data:image/png;base64,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'); -} - -.vjs-default-skin .vjs-showannotations-annotation { - background-image: url('data:image/png;base64,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'); -} - -.vjs-default-skin .vjs-statistics-annotation { - background-image: url('data:image/png;base64,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'); -} - -/* --- ControlBar --> BackAnDisplay --- */ - -.vjs-default-skin .vjs-back-anpanel-annotation{ - float: left; - left: 0em; - right: 0em; - position:absolute; - background-color: rgba(0,0,0,0.3); - width: auto; - /*font-size: .3em;*/ - font-size: .9em; - -webkit-transition: top .4s,height .4s,font-size .4s,-webkit-transform .4s; - -moz-transition: top .4s,height .4s,font-size .4s,-moz-transform .4s; - -o-transition: top .4s,height .4s,font-size .4s,-o-transform .4s; - transition: top .4s,height .4s,font-size .4s,transform .4s; - opacity:1; - visibility:visible; - transition-delay:0s; - -} - - - -/* --- ControlBar --> BackAnDisplay --> RangeSelectorDisplay --- */ - -.vjs-default-skin .vjs-rangeselector-anpanel-annotation{ - height: 100%; - width: 100%; - position: absolute; - top: -1em; -} - -.vjs-default-skin .vjs-back-anpanel-annotation.statistics .vjs-rangeselector-anpanel-annotation{ - z-index:2; -} - -/* RangeSelectorLeft */ -.vjs-default-skin .vjs-leftselector-anpanel-annotation{ - height: 100%; - margin-top: 1em; - width:0%; - float:left; - position:absolute; - left: 0%; -} -.vjs-default-skin .vjs-leftselector-anpanel-annotation .vjs-selector-arrow{ - z-index:10; - border-left: 1em solid #FFE800; - cursor: e-resize; -} -.vjs-default-skin .vjs-leftselector-anpanel-annotation .vjs-leftselector-back{ - right:100%; - border-right: 1px dashed #FFE800; -} -.vjs-default-skin .vjs-leftselector-anpanel-annotation.include .vjs-leftselector-back{ - border-right: 1px dashed rgb(255, 163, 0); -} -.vjs-default-skin .vjs-leftselector-anpanel-annotation.include .vjs-selector-arrow{ - border-left: 1em solid rgb(255, 163, 0); -} - -/* RangeSelectorRight */ -.vjs-default-skin .vjs-rightselector-anpanel-annotation{ - height: 100%; - margin-top: 1em; - width:100%; - float:right; - position:absolute; -} -.vjs-default-skin .vjs-rightselector-anpanel-annotation .vjs-selector-arrow{ - z-index:20; - border-right: 1em solid #FFE800; - margin-left: -1em; - cursor: w-resize; -} -.vjs-default-skin .vjs-rightselector-anpanel-annotation .vjs-rightselector-back{ - border-left: 1px dashed #FFE800; -} -.vjs-default-skin .vjs-rightselector-anpanel-annotation.include .vjs-rightselector-back{ - border-left: 1px dashed rgb(255, 163, 0); -} -.vjs-default-skin .vjs-rightselector-anpanel-annotation.include .vjs-selector-arrow{ - border-right: 1em solid rgb(255, 163, 0); -} - -.vjs-default-skin .vjs-leftselector-back, -.vjs-default-skin .vjs-rightselector-back{ - height: 100%; - width: 100%; - position:absolute; - background-color: rgba(0,0,0,0.6); -} -.vjs-default-skin .vjs-selector-arrow{ - width: 0; - height: 0; - border-top: 1em solid transparent; - border-bottom: 1em solid transparent; - opacity: 0.8; - position: absolute; - top: -2em; -} - -/* RangeSelectorBar */ -.vjs-default-skin .vjs-barselector-anpanel-annotation{ - height: 2em; - margin-top: -1em; - background-color: rgba(0,0,0,0.6); - border: 1px solid rgba(255,255,255,0.6); - position: absolute; - float: left; - visibility:visible; - transition-delay:0s; -} -.vjs-default-skin .vjs-barselector-anpanel-annotation.disable{ - visibility:hidden; - opacity:0; - -webkit-transition: visibility 0.5s linear 0.5s,opacity 0.5s linear; - -moz-transition: visibility 0.5s linear 0.5s,opacity 0.5s linear; - -o-transition: visibility 0.5s linear 0.5s,opacity 0.5s linear; - transition:visibility 0.5s linear 0.5s,opacity 0.5s linear; -} -.vjs-default-skin .vjs-barselector-anpanel-annotation .vjs-barselector-left{ - float: left; - left: 1em; -} -.vjs-default-skin .vjs-barselector-anpanel-annotation .vjs-barselector-right{ - right: 1em; - float: right; -} -.vjs-default-skin .vjs-barselector-anpanel-annotation .vjs-barselector-right, -.vjs-default-skin .vjs-barselector-anpanel-annotation .vjs-barselector-left{ - height: 2em; - font-size: 1.3em; - position: absolute; -} -.vjs-default-skin .vjs-rangeselector-anpanel-annotation.active .vjs-barselector-anpanel-annotation{ - z-index: 1; -} - -/* --- ControlBar --> BackAnDisplay --> AnDisplay --- */ - -.vjs-default-skin .vjs-anpanel-annotation{ - float: left; - width: 100%; - height: 100%; - left: 0em; - right: 0em; - position:absolute; - /*background-color: #FFE800; - background: #FFE800; - background: -moz-linear-gradient(top, #FFE800, #A69700); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFE800), to(#A69700)); - background: -webkit-linear-gradient(top, #FFE800, #A69700); - background: -o-linear-gradient(top, #FFE800, #A69700); - background: -ms-linear-gradient(top, #FFE800, #A69700); - background: linear-gradient(top, #FFE800, #A69700);*/ - opacity: 0.8; - overflow: hidden; -} - - -.vjs-default-skin .vjs-anpanel-annotation .annotation{ - height: 1em; - float: left; - width: 100%; - left: 0em; - right: 0em; - cursor:pointer; - position:absolute; - background-color: #FFE800; - background: #FFE800; - background: -moz-linear-gradient(top, #FFE800, #A69700); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFE800), to(#A69700)); - background: -webkit-linear-gradient(top, #FFE800, #A69700); - background: -o-linear-gradient(top, #FFE800, #A69700); - background: -ms-linear-gradient(top, #FFE800, #A69700); - background: linear-gradient(top, #FFE800, #A69700); - opacity: 0.8; -} - -.vjs-default-skin .vjs-anpanel-annotation .annotation.active { - background-color: #2DCF02; - background: #2DCF02; - background: -moz-linear-gradient(top, #2DCF02, #114F01); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#2DCF02), to(#114F01)); - background: -webkit-linear-gradient(top, #2DCF02, #114F01); - background: -o-linear-gradient(top, #2DCF02, #114F01); - background: -ms-linear-gradient(top, #2DCF02, #114F01); - background: linear-gradient(top, #2DCF02, #114F01); - z-index: 1; -} - -.vjs-default-skin .vjs-anpanel-annotation .annotation.point { - border-radius: 50%; - width: 1em; - height: 1em; - margin-left: -0.4em; -} - -.vjs-default-skin .vjs-back-anpanel-annotation.statistics .vjs-anpanel-annotation{ - visibility:hidden; -} - - - -/* --- ControlBar --> BackAnDisplay --> AnStat --- */ -.vjs-default-skin .vjs-anstat-annotation{ - float: left; - width: 100%; - height: 100%; - left: 0em; - right: 0em; - position: absolute; - opacity: 0.8; - visibility:visible; - transition-delay:0s; - font-size: 1.2em; -} - -.vjs-default-skin .vjs-anstat-annotation.disable{ - visibility:hidden; - opacity:0; -} - -.vjs-default-skin .vjs-totan-anstat-annotation, -.vjs-default-skin .vjs-maxcon-anstat-annotation{ - position: absolute; - top: 0.3em; - background-color: rgba(0,0,0,0.5); - border-radius: 0.5em; - padding: 0.1em; - color: rgb(255, 163, 0); -} -.vjs-default-skin .vjs-totan-anstat-annotation{ - float: right; - right:1em; -} -.vjs-default-skin .vjs-maxcon-anstat-annotation{ - float: left; - left:1em; -} - - - -/* --- ControlBar --> BackAnDisplay --> --- */ - -.vjs-default-skin .dashed-line{ - float: left; - right: 0em; - position:absolute; - color: #2DCF02; - border-left:0.23em dashed #2DCF02; - border-right:0.23em dashed #2DCF02; - opacity: 0.8; -} -.vjs-default-skin .dashed-line.point{ - border-right:0; -} - -.vjs-default-skin .box-dashed-line{ - height: 1em; - float: left; - right: 0em; - color: #2DCF02; - position:absolute; - background-color:#2DCF02; - opacity: 0.8; -} -.vjs-default-skin .boxup-dashed-line{ - height: 1em; - float: left; - right: 0em; - color: #2DCF02; - position:absolute; - opacity: 0.8; - background-color: #2DCF02; - background: #2DCF02; - background: -moz-linear-gradient(top, #2DCF02, #114F01); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#2DCF02), to(#114F01)); - background: -webkit-linear-gradient(top, #2DCF02, #114F01); - background: -o-linear-gradient(top, #2DCF02, #114F01); - background: -ms-linear-gradient(top, #2DCF02, #114F01); - background: linear-gradient(top, #2DCF02, #114F01); - z-index: 4; - -webkit-transition: top 1s,-webkit-transform .4s; - -moz-transition: top 1s,-moz-transform .4s; - -o-transition: top 1s,-o-transform .4s; - transition: top 1s,transform .4s; -} - -.vjs-default-skin .boxup-dashed-line.point{ - border-radius: 50%; - width: 1em; - height: 1em; - margin-left: -0.4em; -} - - - -/* --- ControlBar --> BackAnDisplay --> BackAnDisplayScroll --- */ - -.vjs-default-skin .vjs-down-scroll-annotation, -.vjs-default-skin .vjs-up-scroll-annotation{ - width:2em; - height:2em; - float: left; - right: 0em; - position:absolute; - cursor: pointer; - border-left: 1em solid transparent; - border-right: 1em solid transparent; - /*font-size: .3em;*/ - font-size: .9em; - -webkit-transition: top .4s,height .4s,font-size .4s,-webkit-transform .4s; - -moz-transition: top .4s,height .4s,font-size .4s,-moz-transform .4s; - -o-transition: top .4s,height .4s,font-size .4s,-o-transform .4s; - transition: top .4s,height .4s,font-size .4s,transform .4s; - opacity: 0.8; - transition-delay:0s; -} - -.vjs-default-skin .vjs-up-scroll-annotation{ - border-bottom: 1em solid black; -} - -.vjs-default-skin .vjs-down-scroll-annotation{ - top: -3em; - border-top: 1em solid black; -} -.vjs-default-skin .vjs-scroll-anpanel-annotation.disable, -.vjs-default-skin .vjs-back-anpanel-annotation.disable{ - visibility:hidden; - opacity:0; - /*-webkit-transition: visibility 1s linear 1s,opacity 1s linear; - -moz-transition: visibility 1s linear 1s,opacity 1s linear; - -o-transition: visibility 1s linear 1s,opacity 1s linear; - transition:visibility 1s linear 1s,opacity 1s linear;*/ -} - -.vjs-default-skin:hover .vjs-back-anpanel-annotation, -.vjs-default-skin:hover .vjs-down-scroll-annotation, -.vjs-default-skin:hover .vjs-up-scroll-annotation { - font-size: .9em; - -webkit-transition: top .2s,height .2s,font-size .2s,-webkit-transform .2s; - -moz-transition: top .2s,height .2s,font-size .2s,-moz-transform .2s; - -o-transition: top .2s,height .2s,font-size .2s,-o-transform .2s; - transition: top .2s,height .2s,font-size .2s,transform .2s; -} - - - -/* --- ControlBar --> BackAnDisplay --> BackAnDisplayScroll--> BackAnDisplayScrollBar --- */ - -.vjs-default-skin .vjs-scrollbar-anpanel-annotation{ - float: left; - position: absolute; - cursor: pointer; - right: 0.5em; - width: 1em; - /*font-size: .3em;*/ - font-size: .9em; - background-color: black; - opacity: 0.8; - visibility:visible; - transition-delay:0s; - -webkit-transition: top .4s,height .4s,font-size .4s,-webkit-transform .4s; - -moz-transition: top .4s,height .4s,font-size .4s,-moz-transform .4s; - -o-transition: top .4s,height .4s,font-size .4s,-o-transform .4s; - transition: top .4s,height .4s,font-size .4s,transform .4s; -} - -.vjs-default-skin .vjs-scrollbar-anpanel-annotation.disable{ - visibility:hidden; - opacity:0; - -webkit-transition: visibility 1s linear 1s,opacity 1s linear; - -moz-transition: visibility 1s linear 1s,opacity 1s linear; - -o-transition: visibility 1s linear 1s,opacity 1s linear; - transition:visibility 1s linear 1s,opacity 1s linear; -} -.vjs-default-skin .vjs-scrollbar-anpanel-annotation:hover{ - opacity: 0.8; - visibility:visible; - transition-delay:0s; -} - -.vjs-default-skin:hover .vjs-scrollbar-anpanel-annotation{ - font-size: .9em; -} - -.vjs-default-skin .vjs-scrollbar-selector{ - width: 1em; - background-color: gray; - border: 1px solid black; - position:absolute; - height: 3em; - border-radius: 0.4em; -} - - - -/* --- ControlBar --> BackAnDisplay --> BackAnDisplayScroll--> BackAnDisplayScrollTime --- */ -.vjs-default-skin .vjs-down-scrolltime-annotation, -.vjs-default-skin .vjs-up-scrolltime-annotation{ - width: 100%; - height:1em; - float: left; - position:absolute; - font-size: .9em; - opacity: 0.8; - transition-delay:0s; - right: 3em; - text-align: right; - margin-top:0.2em; -} - -.vjs-default-skin .vjs-down-scrolltime-annotation{ - top: -2.6em; - margin-top: -0.2em; -} - -.vjs-default-skin .vjs-scrolltime-anpanel-annotation span{ - font-size: 1.3em; - background-color: rgba(0,0,0,1); - border-radius: 0.5em; - padding: 0.1em; - border: 0.1em solid white; - padding-left: 0.4em; - padding-right: 0.4em; -} - - - -/* ---------------- Modify the CSS of Annotator plugin ---------------- */ -.annotator-wrapper.vjs-fullscreen .annotator-adder, -.annotator-wrapper.vjs-fullscreen .annotator-outer, -.annotator-wrapper.vjs-fullscreen .annotator-widget, -.annotator-wrapper.vjs-fullscreen .annotator-notice { - z-index:3000000000; /*To fix full-screen*/ -} - - - -/* ---------------- Modify the CSS of Video-js plugin ---------------- */ - -.vjs-default-skin *, .vjs-default-skin *:before, .vjs-default-skin *:after { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - - - -/* ---------------- Modify the CSS of Range Slider plugin ---------------- */ - -/* Selection bar in green color */ -.vjs-default-skin .vjs-rangeslider-holder.locked span.annotator-hl > div.vjs-selectionbar-RS { - background-color: #2DCF02; - background: #2DCF02; - background: -moz-linear-gradient(top, #2DCF02, #114F01); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#2DCF02), to(#114F01)); - background: -webkit-linear-gradient(top, #2DCF02, #114F01); - background: -o-linear-gradient(top, #2DCF02, #114F01); - background: -ms-linear-gradient(top, #2DCF02, #114F01); - background: linear-gradient(top, #2DCF02, #114F01); -} - -.vjs-default-skin div.vjs-rangeslider-holder.locked .vjs-rangeslider-handle > div.vjs-selectionbar-line-RS { - background-color: #2DCF02; -} - -.vjs-default-skin div.vjs-rangeslider-holder.locked .vjs-rangeslider-handle > div.vjs-selectionbar-arrow-RS { - border-top-color: #2DCF02; -} - diff --git a/common/static/css/vendor/ova/rangeslider.css b/common/static/css/vendor/ova/rangeslider.css deleted file mode 100644 index 9dd96bb0e209..000000000000 --- a/common/static/css/vendor/ova/rangeslider.css +++ /dev/null @@ -1,186 +0,0 @@ -/*Range Slider Bar Time*/ -.vjs-default-skin .vjs-timebar-RS{ - color: red; - top: -1em; - height: 100%; - position: relative; - background: rgba(100,100,100,.5);/*Quitar*/ -} - - - -/*Selection Range Slider Bar Selected*/ -.vjs-default-skin .vjs-rangeslider-holder{height: 100%;} - -.vjs-default-skin .vjs-selectionbar-RS{ - height: 100%; - float: left; - width: 100%; - left: 0em; - right: 0em; - position:absolute; - background-color: #FFE800; - background: #FFE800; - background: -moz-linear-gradient(top, #FFE800, #A69700); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFE800), to(#A69700)); - background: -webkit-linear-gradient(top, #FFE800, #A69700); - background: -o-linear-gradient(top, #FFE800, #A69700); - background: -ms-linear-gradient(top, #FFE800, #A69700); - background: linear-gradient(top, #FFE800, #A69700); - opacity: 0.8; -} - -.vjs-default-skin div.vjs-rangeslider-holder.locked > div.vjs-selectionbar-RS { - background-color: #FF6565; - background: #FF6565; - background: -moz-linear-gradient(top, #FF6565, #300000); - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FF6565), to(#300000)); - background: -webkit-linear-gradient(top, #FF6565, #300000); - background: -o-linear-gradient(top, #FF6565, #300000); - background: -ms-linear-gradient(top, #FF6565, #300000); - background: linear-gradient(top, #FF6565, #300000); -} - - -/*Arrow and Handle*/ -.vjs-default-skin div.vjs-rangeslider-handle { - position: absolute; - margin-top: 0; - cursor: pointer !important; - background-color: transparent; -} - -.vjs-default-skin .vjs-selectionbar-left-RS{height: 100%;left: 0;z-index:10} -.vjs-default-skin .vjs-selectionbar-right-RS{height: 100%;left: 100%;z-index:20} - -.vjs-default-skin div.vjs-selectionbar-left-RS, -.vjs-default-skin div.vjs-selectionbar-right-RS { - top: 0em; - position: absolute; - width:0em; -} - -.vjs-default-skin div.vjs-selectionbar-arrow-RS { - width: 0; - height: 0; - border-left: 1em solid transparent; - border-right: 1em solid transparent; - border-top: 1em solid #FFF273; - margin-left: -1em; - opacity: 0.8; - - position: absolute; - top: -1em; -} -.vjs-default-skin div.vjs-rangeslider-handle.active > div.vjs-selectionbar-arrow-RS { - border-top-color: #5F5FB3; -} - -.vjs-default-skin div.vjs-rangeslider-holder.locked .vjs-rangeslider-handle > div.vjs-selectionbar-arrow-RS { - border-top-color: #FF6565; -} - -.vjs-default-skin div.vjs-selectionbar-line-RS { - width: 1px; - height: 1em; - background-color: #FFF273; - - position:absolute; - top: 0em; -} -.vjs-default-skin div.vjs-rangeslider-handle.active > div.vjs-selectionbar-line-RS { - background-color: #5F5FB3; -} - -.vjs-default-skin div.vjs-rangeslider-holder.locked .vjs-rangeslider-handle > div.vjs-selectionbar-line-RS { - background-color: #FF6565; -} - - -/* Time Panel */ -.vjs-default-skin .vjs-timepanel-RS{ - width: 100%; - height: 1em; - font-weight: bold; - font-size: 15px; - top: -2em; - position: absolute; - visibility:visible; - opacity:1; - transition-delay:0s; -} -.vjs-default-skin .vjs-timepanel-RS.disable{ - visibility:hidden; - opacity:0; - -webkit-transition: visibility 1s linear 1s,opacity 1s linear; - -moz-transition: visibility 1s linear 1s,opacity 1s linear; - -o-transition: visibility 1s linear 1s,opacity 1s linear; - transition:visibility 1s linear 1s,opacity 1s linear; -} - -.vjs-default-skin .vjs-timepanel-left-RS, -.vjs-default-skin .vjs-timepanel-right-RS{ - font-weight: normal; - font-size: 1em; - color: #666666; - border: 1px solid #666666; - background-color: white; - border-radius: 5px; - position: absolute; - height:116%; - padding-right: 0.3em; - padding-left: 0.3em; -} -.vjs-default-skin .vjs-timepanel-left-RS{ - left:0.5% -} -.vjs-default-skin .vjs-timepanel-right-RS{ - left:92% -} - - - - -/* Control Time Panel */ -.vjs-default-skin .vjs-controltimepanel-RS{ - width: 18em; - font-size: 1em; - line-height: 3em; -} - -.vjs-default-skin .vjs-controltimepanel-RS input{ - width: 1.5em; - background: rgba(102, 168, 204, 0.16); - border: 1px solid transparent; - color: black; - font-size: 1em; - margin-left: 2px; - text-align: center; - color: white; -} - -.vjs-default-skin .vjs-controltimepanel-left-RS{ - width: 50%; - float: left; -} -.vjs-default-skin .vjs-controltimepanel-right-RS{ - float:right; - width: 48%; -} -.vjs-default-skin .vjs-controltimepanel-RS input{ - margin: 0; - padding: 0; - display: table-cell; -} - - -/* ---------------- Video-js plugin ---------------- */ - -.vjs-default-skin *, .vjs-default-skin *:before, .vjs-default-skin *:after { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - margin: 0; - padding: 0; -} - diff --git a/common/static/css/vendor/ova/richText-annotator.css b/common/static/css/vendor/ova/richText-annotator.css deleted file mode 100644 index 1985731032d8..000000000000 --- a/common/static/css/vendor/ova/richText-annotator.css +++ /dev/null @@ -1,45 +0,0 @@ -.annotator-viewer div:first-of-type.richText-annotation *, -.annotator-viewer div:first-of-type.richText-annotation{ - font-style: normal; - font-weight: inherit; - text-align: inherit; -} -.annotator-viewer div:first-of-type.richText-annotation{ - padding-top: 22px; -} - -/* Fix in the tinymce */ -.annotator-viewer div:first-of-type.richText-annotation strong{ - font-weight: bold; -} -.annotator-viewer div:first-of-type.richText-annotation em{ - font-style: italic; -} - -.annotator-wrapper .mce-container { - z-index: 3000000000!important; /*To fix full-screen problems*/ -} - -.mce-container-body { - min-width: 400px; -} - -.iframe[id="annotator-field"] { - width: inherit; - min-width: 400px; -} - -div.mce-tinymce.mce-container.mce-panel { - min-width:400px; -} - -/* Some change in the design of Annotator */ -.annotator-editor .annotator-widget{ - min-width: 400px; -} - -/*Rubric icon*/ -.mce-ico.mce-i-rubric{ - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QkBBB07nraNoQAAAhZJREFUKM+NkstrE1EUxr+5c08ykztpJtVoazHBF8FgQQzonyBKEZS6FrQKLl0EXBRT0ZULJSs3oii4TyHgu90IlTaL6qouWlv7Ck1N0BSnmZk714WbPHz07M4534+Pw3eAHdTY8A9+Nd9/bshU1DpnO4HXjh2ZY2J9/OSTxHTrnP8PvJYf+BDQ6qEDaQBB43jrTusUFy4oPjsYWYzF+VS91nxLYfdhKgONaQT3W/KMxr1XY5e+qj86f8zsKYYsZ6AvjWFzA8ORHkAnwN8So7evzL/8pzMAXL/Hq8mMv1up371T7Z+/c3n9cKeuDS6Xy6dN07zLuZ56Onk2Ed2/ANJsnE/PQMpgyffle+kYzwazB1+3waVS6X48Hr9BRPB9H57nYXplFKeSt8D1Hriug9XKF0x+Lmw+ys8m2m42DOOn4zhQSsGyLOi6jqONm9isbmFVFlDbaGKx8QaB1rvdlbNhGLAsC0IIGIYBIQSy2ROQ0oOp7wOPraHXEugRvDtnzjmi0SiICEIIEBGklAB9B6cmbG0AUnrY5m73h+m6DsYYTNMEYwxEBMY0hGNVhHkcZigBO9qHlDHS7cwYg23bAIBQKAQigud7IH0XwtxDoHwEIQ9SLKx0wa7rPiaivYyxESklXNeFBg0mjyNQTQSuATMSm6ipuYt//eVcLhdeXl5+UKlUlur1upqamVAv3j3/VCyOD3VqfwF6uLp3q+vMcgAAAABJRU5ErkJggg=='); - background-repeat: no-repeat; -} diff --git a/common/static/css/vendor/ova/share-annotator.css b/common/static/css/vendor/ova/share-annotator.css deleted file mode 100644 index d0968677a1cc..000000000000 --- a/common/static/css/vendor/ova/share-annotator.css +++ /dev/null @@ -1,203 +0,0 @@ -/* Editor */ -.share-container-annotator{ - display: block; - min-width: 100%; - border: none; - margin: 0; - color: rgb(60, 60, 60); - background: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -o-box-sizing: border-box; - box-sizing: border-box; - resize: none; - padding-left: 0.6em; - padding-right: 1em; - height: 3.1em; -} - -.share-container-annotator .share-text-annotator{ - float:left; - padding-top: 1em; -} - -.annotator-editor .share-container-annotator .share-text-annotator{ - height: 2.1em; -} - -.share-container-annotator .share-button{ - top: 0.3em; - outline: 0; - float:left; - position: relative; - text-align: center; - margin: 0; - padding: 0; - margin-left:0.3em; - height: 2.5em; - width: 2.5em; - background-repeat: no-repeat; - background-size: 2.5em; -} - -.share-container-annotator .share-button:hover{ - opacity: .6; - cursor: pointer; -} - -/* Popup */ - -.share-container-annotator .share-popup-overlay-bg{ - display: none; - position: fixed; - top: 0; - left: 0; - height:100%; - width: 100%; - cursor: pointer; - background: #000; /* fallback */ - background: rgba(0,0,0,0.75); - padding: 0; -} -.share-container-annotator .share-popup-overlay-bg .share-popup{ - background: #fff; - padding: 1% !important; - width: 30%; - position: relative; - top: 15%; - left: 50%; - margin: 0 0 0 -17% !important; /* add negative left margin for half the width to center the div */ - cursor: default; - border-radius: 4px; - box-shadow: 0 0 5px rgba(0,0,0,0.9); -} -.share-container-annotator .share-popup-overlay-bg .share-popup-copy, -.share-container-annotator .share-popup-overlay-bg .share-popup-title{ - font-style: normal; - font-weight: bold; - font-size: 21px; - padding-top: 0px; - padding-bottom: 20px; - color: #222; -} -.share-container-annotator .share-popup-overlay-bg .share-popup-uri{ - width:100%; - border: 1px solid rgb(144, 144, 144); - height: 24px; - margin-bottom: 10px; -} -.share-container-annotator .share-popup-overlay-bg .share-popup-copy{ - font-size: 15px; - float: left; - width: 100%; - padding:0; - margin: 1.0em 0em 0.5em 0em !important; -} -.share-container-annotator .share-popup-overlay-bg .share-popup .share-button{ - width: 50%; - padding: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -o-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid; - margin: 0; - text-align: center; - alignment-baseline: central; - background-position: 0.5em; - height: 4em; - padding-top: 1.3em !important; -} -/* Close button */ -.share-container-annotator .share-popup-overlay-bg .close-btn { - cursor: pointer; - position: relative; - display: inline-block; - padding: 0 12px 0 12px; - color: rgb(54, 54, 54); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75); - text-decoration: none; - line-height: 24px; - font-size: 12px; - font-weight: bold; - border: 1px solid rgb(162, 162, 162); - background-color: rgb(212, 212, 212); - background-image: -webkit-gradient( linear, left top, left bottom, from(rgb(245, 245, 245)), color-stop(0.5, rgb(210, 210, 210)), color-stop(0.5, rgb(190, 190, 190)), to(rgb(210, 210, 210)) ); - background-image: -moz-linear-gradient( to bottom, rgb(245, 245, 245), rgb(210, 210, 210) 50%, rgb(190, 190, 190) 50%, rgb(210, 210, 210) ); - background-image: -webkit-linear-gradient( to bottom, rgb(245, 245, 245), rgb(210, 210, 210) 50%, rgb(190, 190, 190) 50%, rgb(210, 210, 210) ); - background-image: linear-gradient( to bottom, rgb(245, 245, 245), rgb(210, 210, 210) 50%, rgb(190, 190, 190) 50%, rgb(210, 210, 210) ); - -webkit-box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.2), inset 0 0 1px rgba(255, 255, 255, 0.8); - -moz-box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.2), inset 0 0 1px rgba(255, 255, 255, 0.8); - -o-box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.2), inset 0 0 1px rgba(255, 255, 255, 0.8); - box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.2), inset 0 0 1px rgba(255, 255, 255, 0.8); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - -o-border-radius: 5px; - border-radius: 5px; -} - -.share-container-annotator .share-popup-overlay-bg .close-btn:hover { - outline: none; - border-color: rgb(67, 90, 160); - background-color: rgb(56, 101, 249); - background-image: -webkit-gradient( linear, left top, left bottom, from(rgb(118, 145, 251)), color-stop(0.5, rgb(80, 117, 251)), color-stop(0.5, rgb(56, 101, 249)), to(rgb(54, 101, 250)) ); - background-image: -moz-linear-gradient( to bottom, rgb(118, 145, 251), rgb(80, 117, 251) 50%, rgb(56, 101, 249) 50%, rgb(54, 101, 250) ); - background-image: -webkit-linear-gradient( to bottom, rgb(118, 145, 251), rgb(80, 117, 251) 50%, rgb(56, 101, 249) 50%, rgb(54, 101, 250) ); - background-image: linear-gradient( to bottom, rgb(118, 145, 251), rgb(80, 117, 251) 50%, rgb(56, 101, 249) 50%, rgb(54, 101, 250) ); - color: rgb(255, 255, 255); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.42); -} - -.share-container-annotator .share-popup-overlay-bg .close-btn:active { - border-color: rgb(112, 12, 73); - background-color: rgb(209, 46, 142); - background-image: -webkit-gradient( linear, left top, left bottom, from(rgb(252, 124, 202)), color-stop(0.5, rgb(232, 93, 178)), color-stop(0.5, rgb(209, 46, 142)), to(rgb(255, 0, 156)) ); - background-image: -moz-linear-gradient( to bottom, rgb(252, 124, 202), rgb(232, 93, 178) 50%, rgb(209, 46, 142) 50%, rgb(255, 0, 156) ); - background-image: -webkit-linear-gradient( to bottom, rgb(252, 124, 202), rgb(232, 93, 178) 50%, rgb(209, 46, 142) 50%, rgb(255, 0, 156) ); - background-image: linear-gradient( to bottom, rgb(252, 124, 202), rgb(232, 93, 178) 50%, rgb(209, 46, 142) 50%, rgb(255, 0, 156) ); -} - - - -/* Viewer */ -.annotator-viewer .share-viewer-annotator div.share-text-annotator, -.annotator-viewer .share-viewer-annotator div.share-button{ - border-top: 0; - padding: 0; - background-size: 2em; - margin-top: -0.2em; - top: -0.5em; - font-style: normal; -} - - - -/* Buttons */ -.share-container-annotator .share-facebook-annotator { - background-image: url('data:image/png;base64,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'); -} - - -.share-container-annotator .share-twitter-annotator { - background-image: url('data:image/png;base64,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'); -} - - -.share-container-annotator .share-google-annotator { - background-image: url('data:image/png;base64,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'); -} - - -.share-container-annotator .share-email-annotator { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABIUExURf///7KysrKyss/Pz9DQ0NHR0dLS0u7u7vDw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///37mbPQAAAACdFJOUwCWb//7SQAAAQNJREFUSMft1M2SgyAQRtHkC0RtbP6V93/TWZikFDuQ2c7krrCKU1gKXC7f/lNX9LvuAVB6AUdw78y/V2CEXltpjEcwmabQMNMR0GwbQsPOVAF2AXqR0wiOK2DYh/RGaKTg2VTA+pgXUWgsOXorghUq1ymsDVBOQqE0QYFK+xRKBxyFQumCvVAoH4ACFbe2+f0VnkKhfLICnmsoPJ46X2l7q1u4PUYdgNdxeY2aQDp4b/40+5AyxM2NLGw+YhcisrhbM+J5e9NsPWLKUinCnw7QZBg+hCgVggfXR3QksHVezlkGVZfAADIzs5Ving1hqO6lYZyIjBzRNA7He+nXV+W3v98P7gg+L5LCf08AAAAASUVORK5CYII='); -} - -.share-container-annotator .share-button-annotator { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAvCAMAAABE+WOeAAAAA3NCSVQICAjb4U/gAAAATlBMVEXMzMzZ2dn////r6+vPz8/n5+f5+fnl5eXT09P19fXz8/Pg4ODX19f7+/vR0dHp6enu7u7d3d339/fj4+PV1dX////b29vt7e3h4eHx8fHJkyUPAAAAGnRSTlP//wD//////////////////////////////zDtagYAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAedEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzUuMasfSOsAAAAVdEVYdENyZWF0aW9uIFRpbWUAOC8xNi8xM7KZeroAAAFnSURBVEiJrZaNbsMgDIS9jpCQ0dBoVaW9/4vOQHD4OVIh9aRKLf0UG9scoduYqF7Qs1UUpeys3/Buo1Kbu+BnQpo7/KogznmtiMcPr0MIv1/gRHvNLy0zcXH0dPxYSh483cR/TBmBerlPKYMUYT75FWQsndJpZRUeFTIr4SGVeFjJlg8ZUb5wnU94Bn8cwr/u9X5ZLvD1iHn9SjYmW908r1t6+eM0bNGvlCSB3e4MfqOovGO62XqRO6U702SZl+LH+E9uiwHTFKSYT9+NbNH1DgJXVHiZl/urS+c86s8VD/r/UX40H9mvgZ06+VQ8qWfXV2L9pb+xX767TcuTLJifn/44hPlp9mdNMfS5NJz/p/HzCcZ5652vBzwux/kCDVKnYeYRLvxBjm+2veQPyH/AeIj/IH8D/OlvIKN2nDL/BP7c2G3hz8D/Kzuv/B9FyPvV3C/D99fw/dgN0bt/vcbud6+x94e3+gd13Qxqz2VnfwAAAABJRU5ErkJggg=='); -} - - -/* Api */ -.annotator-wrapper .annotator-hl.api { - background:rgba(0, 190, 99, 0.3); -} diff --git a/common/static/css/vendor/ova/tags-annotator.css b/common/static/css/vendor/ova/tags-annotator.css deleted file mode 100644 index 054e797e967e..000000000000 --- a/common/static/css/vendor/ova/tags-annotator.css +++ /dev/null @@ -1,97 +0,0 @@ -/* Editor */ -li.token-input-token { - overflow: hidden; - height: auto !important; - margin: 3px; - padding: 1px 3px; - background-color: #eff2f7; - color: #000; - cursor: default; - border: 1px solid #ccd5e4; - font-size: 11px; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - display: inline; - white-space: nowrap; -} - -li.token-input-token p { - display: inline; - padding: 0; - margin: 0; -} - -li.token-input-token span { - color: #a6b3cf; - margin-left: 5px; - font-weight: bold; - cursor: pointer; -} - -li.token-input-selected-token { - background-color: #5670a6; - border: 1px solid #3b5998; - color: #fff; -} - -li.token-input-input-token { - margin: 0; - padding: 0; - list-style-type: none; -} - -div.token-input-dropdown { - position: absolute; - width: 400px; - background-color: #fff; - overflow: hidden; - border-left: 1px solid #ccc; - border-right: 1px solid #ccc; - border-bottom: 1px solid #ccc; - cursor: default; - font-size: 11px; - font-family: Verdana; - z-index: 1000000000; -} - -div.token-input-dropdown p { - margin: 0; - padding: 5px; - font-weight: bold; - color: #777; -} - -div.token-input-dropdown ul { - margin: 0; - padding: 0; -} - -div.token-input-dropdown ul li { - background-color: #fff; - padding: 3px; - margin: 0; - list-style-type: none; -} - -div.token-input-dropdown ul li.token-input-dropdown-item { - background-color: #fff; -} - -div.token-input-dropdown ul li.token-input-dropdown-item2 { - background-color: #fff; -} - -div.token-input-dropdown ul li em { - font-weight: bold; - font-style: normal; -} - -div.token-input-dropdown ul li.token-input-selected-dropdown-item { - background-color: #3b5998; - color: #fff; -} - -.token-input-list{ - padding:0px; -} \ No newline at end of file diff --git a/lms/envs/common.py b/lms/envs/common.py index 892e6c4de1b3..01f48bc52c61 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -797,22 +797,6 @@ 'js/vendor/jquery.qtip.min.js', 'js/vendor/swfobject/swfobject.js', 'js/vendor/jquery.ba-bbq.min.js', - 'js/vendor/ova/annotator-full.js', - 'js/vendor/ova/annotator-full-firebase-auth.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/diacritic-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', 'js/vendor/URI.min.js', ] @@ -829,17 +813,7 @@ 'css/vendor/jquery.qtip.min.css', 'css/vendor/responsive-carousel/responsive-carousel.css', 'css/vendor/responsive-carousel/responsive-carousel.slide.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/diacritic-annotator.css', - 'css/vendor/ova/ova.css', - 'js/vendor/ova/catch/css/main.css' ], 'output_filename': 'css/lms-style-vendor.css', }, @@ -855,6 +829,13 @@ ], 'output_filename': 'css/lms-style-vendor-tinymce-skin.css', }, + 'style-annotator' :{ + 'source_filenames':[ + 'css/vendor/ova/annotator.css', + 'css/vendor/ova/token-input.css' + ], + 'output_filename': 'css/lms-style-vendor-ova-annotator.css', + }, 'style-app': { 'source_filenames': [ 'sass/application.css', diff --git a/lms/templates/textannotation.html b/lms/templates/textannotation.html index adb39c1189e7..c5387a642b37 100644 --- a/lms/templates/textannotation.html +++ b/lms/templates/textannotation.html @@ -1,4 +1,10 @@ <%! from django.utils.translation import ugettext as _ %> +<%namespace name='static' file='/static_content.html'/> +<%static:css group='style-annotator'/> +<%static:css group='style-vendor-tinymce-content'/> +<%static:css group='style-vendor-tinymce-skin'/> +