From 20e133b4414a296951502ea98c9db81fe815f5c9 Mon Sep 17 00:00:00 2001 From: Frode Petterson Date: Fri, 19 Jun 2015 15:40:35 +0200 Subject: [PATCH] Get generic copyrights from content types that doesnt implement getCopyrights. --- js/questionset.js | 50 +++++++++++++++++++++++++++++++++-------------- semantics.json | 6 ++++++ 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/js/questionset.js b/js/questionset.js index ae0442b..c784991 100644 --- a/js/questionset.js +++ b/js/questionset.js @@ -98,7 +98,8 @@ H5P.QuestionSet = function (options, contentId) { overrideButtons: false, overrideShowSolutionButton: false, overrideRetry: false - } + }, + questionLabel: 'Question' }; var template = new EJS({text: texttemplate}); @@ -106,7 +107,7 @@ H5P.QuestionSet = function (options, contentId) { var params = $.extend(true, {}, defaults, options); var currentQuestion = 0; - var questionInstances = new Array(); + var questionInstances = []; var $myDom; renderSolutions = false; @@ -364,8 +365,7 @@ H5P.QuestionSet = function (options, contentId) { } }); if (question.getAnswerGiven()) { - $('.progress-dot:eq(' + i +')' - , $myDom).removeClass('unanswered').addClass('answered'); + $('.progress-dot:eq(' + i +')', $myDom).removeClass('unanswered').addClass('answered'); } } @@ -399,7 +399,7 @@ H5P.QuestionSet = function (options, contentId) { if (renderSolutions) { showSolutions(); } - + this.trigger('resize'); return this; @@ -439,20 +439,40 @@ H5P.QuestionSet = function (options, contentId) { } // Questions + var questionCopyrights; for (var i = 0; i < questionInstances.length; i++) { - var questionInstance = questionInstances[i]; - if (questionInstance.getCopyrights !== undefined) { - var rights = questionInstance.getCopyrights(); - if (rights !== undefined) { - rights.setLabel('Question '+(i+1)); - info.addContent(rights); - } + var instance = questionInstances[i]; + var qParams = params.questions[i].params; + questionCopyrights = undefined; + + if (instance.getCopyrights !== undefined) { + // Use the instance's own copyright generator + questionCopyrights = instance.getCopyrights(); } + if (questionCopyrights === undefined) { + // Create a generic flat copyright list + questionCopyrights = new H5P.ContentCopyrights(); + H5P.findCopyrights(questionCopyrights, qParams, contentId); + } + + // Determine label + var label = (params.questionLabel + ' ' + (i + 1)); + if (qParams.contentName !== undefined) { + label += ': ' + qParams.contentName; + } + else if (instance.getTitle !== undefined) { + label += ': ' + instance.getTitle(); + } + questionCopyrights.setLabel(label); + + // Add info + info.addContent(questionCopyrights); } // Success video + var video; if (params.endGame.successVideo !== undefined && params.endGame.successVideo.length > 0) { - var video = params.endGame.successVideo[0]; + video = params.endGame.successVideo[0]; if (video.copyright !== undefined) { info.addMedia(new H5P.MediaCopyright(video.copyright)); } @@ -473,7 +493,7 @@ H5P.QuestionSet = function (options, contentId) { }; this.showSolutions = function() { renderSolutions = true; - } + }; }; H5P.QuestionSet.prototype = Object.create(H5P.EventDispatcher.prototype); -H5P.QuestionSet.prototype.constructor = H5P.QuestionSet; \ No newline at end of file +H5P.QuestionSet.prototype.constructor = H5P.QuestionSet; diff --git a/semantics.json b/semantics.json index 2ddc479..a83cdc9 100644 --- a/semantics.json +++ b/semantics.json @@ -324,5 +324,11 @@ "default": false } ] + }, + { + "name": "questionLabel", + "type": "text", + "label": "Question label text", + "default": "Question" } ]