Files
edx-platform/lms/static/js/notes.js
Michael Terry a34c8c8233 Drop remaining coffee use
This basically commits the transpiled CoffeeScript JS (with minor
cleanup) and removes coffee build support.

A tiny amount of support for xblocks exists, because external users
may have xblocks with coffee. But no coffee in our tree anyway.
2018-04-13 14:10:40 -04:00

169 lines
4.6 KiB
JavaScript

// Once generated by CoffeeScript 1.9.3, but now lives as pure JS
/* eslint-disable */
(function() {
var StudentNotes,
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
StudentNotes = (function() {
StudentNotes.prototype._debug = false;
/*
holds elements with annotator() instances
*/
StudentNotes.prototype.targets = [];
/*
Adds a listener for "notes" events that may bubble up from descendants.
*/
function StudentNotes($, el) {
this.onInitNotes = bind(this.onInitNotes, this);
var events;
if (this._debug) {
console.log('student notes init', arguments, this);
}
if (!$(el).data('notes-instance')) {
events = {
'notes:init': this.onInitNotes
};
$(el).delegate('*', events);
$(el).data('notes-instance', this);
}
}
/*
Initializes annotations on a container element in response to an init event.
*/
StudentNotes.prototype.onInitNotes = function(event, uri, storage_url, token) {
var courseid, found, idDUdiv, idUdiv, options, ova, parts, uri_root;
if (uri == null) {
uri = null;
}
if (storage_url == null) {
storage_url = null;
}
if (token == null) {
token = null;
}
event.stopPropagation();
found = this.targets.some(function(target) {
return target === event.target;
});
/*
Get uri
*/
if (uri.substring(0, 4) !== "http") {
uri_root = window.location.href.split(/#|\?/).shift() || "";
uri = uri_root + uri.substring(1);
}
parts = window.location.href.split("/");
courseid = parts[4] + "/" + parts[5] + "/" + parts[6];
/*
Get id and name user
*/
idUdiv = $(event.target).parent().find(".idU")[0];
idDUdiv = $(event.target).parent().find(".idDU")[0];
idUdiv = (typeof idUdiv !== "undefined" ? idUdiv.innerHTML : "");
idDUdiv = (typeof idDUdiv !== "undefined" ? idDUdiv.innerHTML : "");
options = {
optionsAnnotator: {
permissions: {
user: {
id: idUdiv,
name: idDUdiv
},
userString: function(user) {
if (user && user.name) {
return user.name;
}
return user;
},
userId: function(user) {
if (user && user.id) {
return user.id;
}
return user;
}
},
auth: {
token: token
},
store: {
prefix: storage_url,
annotationData: {
uri: uri
},
urls: {
create: '/create',
read: '/read/:id',
update: '/update/:id',
destroy: '/delete/:id',
search: '/search'
},
loadFromSearch: {
limit: 10000,
uri: uri,
user: idUdiv
}
}
},
optionsVideoJS: {
techOrder: ["html5", "flash", "youtube"],
customControlsOnMobile: true
},
optionsOVA: {
posBigNew: 'none',
NumAnnotations: 20
},
optionsRichText: {
tinymce: {
selector: "li.annotator-item textarea",
plugins: "media image insertdatetime link code",
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 "
}
}
};
if (found) {
if (Annotator._instances.length !== 0) {
$(event.target).annotator("destroy");
}
return ova = new OpenVideoAnnotation.Annotator($(event.target), options);
} else {
if (event.target.id === "annotator-viewer") {
return ova = new OpenVideoAnnotation.Annotator($(event.target), options);
} else {
return this.targets.push(event.target);
}
}
};
return StudentNotes;
})();
/*
Enable notes by default on the document root.
To initialize annotations on a container element in the document:
$('#myElement').trigger('notes:init');
Comment this line to disable notes.
*/
$(document).ready(function($) {
return new StudentNotes($, this);
});
}).call(this);