diff --git a/common/lib/xmodule/xmodule/imageannotation_module.py b/common/lib/xmodule/xmodule/imageannotation_module.py index db4572c914..60d31fcfe4 100644 --- a/common/lib/xmodule/xmodule/imageannotation_module.py +++ b/common/lib/xmodule/xmodule/imageannotation_module.py @@ -115,7 +115,7 @@ class ImageAnnotationModule(AnnotatableFields, XModule): if self.runtime.get_real_user is not None: try: self.user_email = self.runtime.get_real_user(self.runtime.anonymous_student_id).email - except: # pylint: disable=broad-except + except Exception: # pylint: disable=broad-except self.user_email = _("No email address found.") def _extract_instructions(self, xmltree): diff --git a/common/lib/xmodule/xmodule/textannotation_module.py b/common/lib/xmodule/xmodule/textannotation_module.py index 761585316f..662637f7c3 100644 --- a/common/lib/xmodule/xmodule/textannotation_module.py +++ b/common/lib/xmodule/xmodule/textannotation_module.py @@ -109,7 +109,7 @@ class TextAnnotationModule(AnnotatableFields, XModule): if self.runtime.get_real_user is not None: try: self.user_email = self.runtime.get_real_user(self.runtime.anonymous_student_id).email - except: # pylint: disable=broad-except + except Exception: # pylint: disable=broad-except self.user_email = _("No email address found.") def _extract_instructions(self, xmltree): diff --git a/common/lib/xmodule/xmodule/videoannotation_module.py b/common/lib/xmodule/xmodule/videoannotation_module.py index 7825f6417f..78ac023af4 100644 --- a/common/lib/xmodule/xmodule/videoannotation_module.py +++ b/common/lib/xmodule/xmodule/videoannotation_module.py @@ -109,7 +109,7 @@ class VideoAnnotationModule(AnnotatableFields, XModule): if self.runtime.get_real_user is not None: try: self.user_email = self.runtime.get_real_user(self.runtime.anonymous_student_id).email - except: # pylint: disable=broad-except + except Exception: # pylint: disable=broad-except self.user_email = _("No email address found.") def _extract_instructions(self, xmltree): diff --git a/common/static/js/vendor/ova/OpenSeaDragonAnnotation.js b/common/static/js/vendor/ova/OpenSeaDragonAnnotation.js index 37d674dbb8..a3da590ca3 100644 --- a/common/static/js/vendor/ova/OpenSeaDragonAnnotation.js +++ b/common/static/js/vendor/ova/OpenSeaDragonAnnotation.js @@ -577,13 +577,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. var isRP = (typeof rp!='undefined'); var isSource = false; - // Double checks that the image being displayed matches the annotations - var source = this.viewer.source; - var tilesUrl = typeof source.tilesUrl!='undefined'?source.tilesUrl:''; - var functionUrl = typeof source.getTileUrl!='undefined'?source.getTileUrl:''; - var compareUrl = tilesUrl!=''?tilesUrl:('' + functionUrl).replace(/\s+/g, ' '); - if(isContainer) isSource = (an.target.src == compareUrl); - + // Though it would be better to store server ids of images in the annotation that + // would require changing annotations that were already made, instead we check if + // the id is a substring of the thumbnail, which according to OpenSeaDragon API should be the case. + var sourceId = this.viewer.source['@id']; + var targetThumb = an.target.thumb; + if (isContainer) { + isSource = (targetThumb.indexOf(sourceId) !== -1); + } return (isOpenSeaDragon && isContainer && isImage && isRP && isSource); }, diff --git a/common/static/js/vendor/ova/catch/js/catch.js b/common/static/js/vendor/ova/catch/js/catch.js index 1711c1b44c..75f037fc8d 100644 --- a/common/static/js/vendor/ova/catch/js/catch.js +++ b/common/static/js/vendor/ova/catch/js/catch.js @@ -874,7 +874,9 @@ CatchAnnotation.prototype = { var an = allannotations[item]; // Makes sure that all images are set to transparent in case one was // previously selected. - an.highlights[0].style.background = "rgba(0, 0, 0, 0)"; + if (an.highlights) { + an.highlights[0].style.background = "rgba(0, 0, 0, 0)"; + } if (typeof an.id !== 'undefined' && an.id === osdaId) { // this is the annotation var bounds = new OpenSeadragon.Rect(an.bounds.x, an.bounds.y, an.bounds.width, an.bounds.height); osda.viewer.viewport.fitBounds(bounds, false); @@ -883,7 +885,9 @@ CatchAnnotation.prototype = { 'slow'); // signifies a selected annotation once OSD has zoomed in on the // appropriate area, it turns the background a bit yellow - an.highlights[0].style.background = "rgba(255, 255, 10, 0.2)"; + if (an.highlights !== undefined) { + an.highlights[0].style.background = "rgba(255, 255, 10, 0.2)"; + } } } }, @@ -912,7 +916,7 @@ CatchAnnotation.prototype = { startOffset = hasRanges?an.ranges[0].startOffset:'', endOffset = hasRanges?an.ranges[0].endOffset:''; - if (typeof startOffset !== 'undefined' && typeof endOffset !== 'undefined') { + if (typeof startOffset !== 'undefined' && typeof endOffset !== 'undefined' && typeof an.highlights) { $(an.highlights).parent().find('.annotator-hl').removeClass('api'); // change the color