/** * An object for managing the blob of text at the top of a problem describing it. * This isn't a very busy component. * * TODO: Isn't most of this redundant now? * * @constructor * @this {BlockPyEditor} * @param {Object} main - The main BlockPy instance * @param {HTMLElement} tag - The HTML object this is attached to. */ function BlockPyPresentation(main, tag) { this.main = main; this.tag = tag; var presentationEditor = this; //this.main.model.settings.instructor.subscribe(function() {presentationEditor.setVisible()}); } /** * Removes the editor when it's not in use. * DEPRECATED */ BlockPyPresentation.prototype.closeEditor = function() { this.tag.destroy(); }; /** * Updates the contents of the presentation blob, possibly updating the * editor's size too. * * @param {String} content - The new text of the presentation blob. */ BlockPyPresentation.prototype.setBody = function(content) { this.main.model.assignment.introduction(content); this.main.components.editor.blockly.resize(); }; /** * Makes the editor available or not. * DEPRECATED. */ BlockPyPresentation.prototype.setVisible = function() { if (this.main.model.settings.instructor()) { this.startEditor(); } else { this.closeEditor(); } } /** * Creates the Summer Note editor for the presentation blob. * DEPRECATED. */ BlockPyPresentation.prototype.startEditor = function() { var presentationEditor = this; this.tag.summernote({ codemirror: { // codemirror options theme: 'monokai' }, onChange: function(content) {presentationEditor.setBody(content)}, toolbar: [ ['style', ['bold', 'italic', 'underline', 'clear']], ['font', ['fontname', 'fontsize']], ['insert', ['link', 'table', 'ul', 'ol']], ['misc', ['codeview', 'help']] ] }); this.tag.code(this.main.model.assignment.introduction()); //this.name.tag(); };