From bb943bbb3ba30cae0672a71a2cc581e8e88895f9 Mon Sep 17 00:00:00 2001 From: Frode Petterson Date: Mon, 4 Apr 2016 15:50:41 +0200 Subject: [PATCH] Easier to use override --- js/questionset.js | 31 +++++++++++++++++------------ language/ar.json | 29 ++++++++++++++++++--------- language/de.json | 29 ++++++++++++++++++--------- language/fr.json | 29 ++++++++++++++++++--------- language/it.json | 29 ++++++++++++++++++--------- language/nb.json | 31 +++++++++++++++++++---------- language/nn.json | 31 +++++++++++++++++++---------- library.json | 2 +- semantics.json | 50 +++++++++++++++++++++++++++++------------------ upgrades.js | 27 +++++++++++++++++++++++++ 10 files changed, 200 insertions(+), 88 deletions(-) diff --git a/js/questionset.js b/js/questionset.js index c34a4a8..abac1c2 100644 --- a/js/questionset.js +++ b/js/questionset.js @@ -94,11 +94,6 @@ H5P.QuestionSet = function (options, contentId) { retryButtonText: 'Retry', showAnimations: false }, - override: { - overrideButtons: false, - overrideShowSolutionButton: false, - overrideRetry: false - }, questionLabel: 'Question' }; @@ -113,18 +108,30 @@ H5P.QuestionSet = function (options, contentId) { var up; renderSolutions = false; + // Set overrides for questions + var override; + if (params.override.showSolutionButton || params.override.retryButton) { + override = {}; + if (params.override.showSolutionButton) { + // Force "Show solution" button to be on or off for all interactions + override.enableSolutionsButton = + (params.override.showSolutionButton === 'on' ? true : false); + } + + if (params.override.retryButton) { + // Force "Retry" button to be on or off for all interactions + override.enableRetry = + (params.override.retryButton === 'on' ? true : false); + } + } + // Instantiate question instances for (var i = 0; i < params.questions.length; i++) { var question = params.questions[i]; - // TODO: Render on init, inject in template. - // override content parameters. - if (params.override.overrideButtons) { + if (override) { // Extend subcontent with the overrided settings. - $.extend(question.params.behaviour, { - enableRetry: params.override.overrideRetry, - enableSolutionsButton: params.override.overrideShowSolutionButton - }); + $.extend(question.params.behaviour, override); } var questionInstance = H5P.newRunnable(question, contentId, undefined, undefined, {parent: self}); questionInstance.on('resize', function () { diff --git a/language/ar.json b/language/ar.json index 55032b7..b2b1edd 100644 --- a/language/ar.json +++ b/language/ar.json @@ -139,19 +139,30 @@ }, { "label": "إعدادات زر \"مشاهدة حل \" وزر \"إعادة المحاولة\" ", - "description": "وهذه الخيارات تمكنك من تجاوز وقت العرض بزر \"مشاهدة حل \" وزر \"إعادة المحاولة \" في محتويات متكامل h5p.", "fields": [ { - "label": "تفعيل زر تجاوز \"مشاهدة حل \" و إعدادات \"إعادة \"المحاولة", - "description": "وإذا تم تفعيل هذه الأسئلة سيتم تجاهل الإعدادات الخاصة وسيتم استخدام الضبط أدناه بدلا من ذلك" + "label": "Override \"Show Solution\" button", + "description": "This option determines if the \"Show Solution\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] }, { - "label": "تفعيل زر \"إظهار الحل\"", - "description": "تفعيل هذا الخيار يجعل الأسئلة تظهر زر \"مشاهدة الحل\"" - }, - { - "label": "تفعيل زر \"إعادة المحاولة\"", - "description": "تفعيل هذا الخيار يجعل المستخدم قادرا على \"إعادة المحاولة\"" + "label": "Override \"Retry\" button", + "description": "This option determines if the \"Retry\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] } ] }, diff --git a/language/de.json b/language/de.json index 428a353..b1b9bc8 100644 --- a/language/de.json +++ b/language/de.json @@ -154,19 +154,30 @@ }, { "label": "Einstellungen für \"Zeige die Lösung\" Button und \"Nochmal\".", - "description": "Diese Möglichkeiten überschreiben die Anzeige von \"Zeige die Lösung\" Button und \"Nochmal\" bei integrierten h5p Inhalten.", "fields": [ { - "label": "Aktiviert das Überschreiben für \"Zeige die Lösung\" Button und \"Wiederholen\" Einstellungen.", - "description": "Wenn dies ausgewählt wurde, werden die Einstellungen der Frage ignoriert und stattdessen werden die nachfolgenden Einstellungen verwendet." + "label": "Override \"Show Solution\" button", + "description": "This option determines if the \"Show Solution\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] }, { - "label": "Aktiviert \"Zeige die Lösung\" Buttons.", - "description": "Wenn dies ausgewählt wurde, werden die Fragen den \"Zeige die Lösung\" Button haben." - }, - { - "label": "Aktiviert \"Wiederholen\".", - "description": "Wenn diese Option gewählt wurde, ermöglicht es den Benutzern zu \"Wiederholen\" ." + "label": "Override \"Retry\" button", + "description": "This option determines if the \"Retry\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] } ] } diff --git a/language/fr.json b/language/fr.json index 27eb841..7d01efc 100644 --- a/language/fr.json +++ b/language/fr.json @@ -139,19 +139,30 @@ }, { "label": "Options pour les boutons \"Montrer la solution\" et \"Réessayer\".", - "description": "Ces options vous permettent de choisir quand afficher les boutons \"Solutions\" et \"Réessayer\" dans votre acivité h5p..", "fields": [ { - "label": "Activer les réglages par défaut pour les boutons \"Solution\" et \"Réessayer\".", - "description": "Si cette option est choisie, les réglages seront valables pour toutes les questions, les réglages individuels ne seront pas pris en compte." + "label": "Override \"Show Solution\" button", + "description": "This option determines if the \"Show Solution\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] }, { - "label": "Afficher le bouton \"Solution\".", - "description": "Affiche le bouton \"Solution\"." - }, - { - "label": "Afficher le bouton \"Réessayer\".", - "description": "Affiche le bouton \"Réessayer\"." + "label": "Override \"Retry\" button", + "description": "This option determines if the \"Retry\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] } ] }, diff --git a/language/it.json b/language/it.json index 6f52c6f..bc2725e 100644 --- a/language/it.json +++ b/language/it.json @@ -139,19 +139,30 @@ }, { "label": "Impostazioni per i pulsanti \"Mostra soluzione\" e \"Riprova\".", - "description": "Queste opzioni consentono di ignorare quando visualizzare i pulsanti \"Mostra soluzione\" e \"Riprova\" nel contenuto H5P integrato.", "fields": [ { - "label": "Abilita ignora impostazioni per \"Mostra soluzione\" e \"Riprova\".", - "description": "Se questa opzione è abilitata le proprie impostazioni per le domande saranno ignorate e verranno utilizzate le impostazioni seguenti." + "label": "Override \"Show Solution\" button", + "description": "This option determines if the \"Show Solution\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] }, { - "label": "Abilita pulsanti \"Mostra soluzione\".", - "description": "L'attivazione di questa opzione farà in modo che le domande mostrino il tasto \"Mostra soluzione\"." - }, - { - "label": "Abilita \"Riprova\".", - "description": "L'attivazione di questa opzione farà in modo che per l'utente sia abilitata l'opzione \"Riprova\"." + "label": "Override \"Retry\" button", + "description": "This option determines if the \"Retry\" button will be shown for all questions, disabled for all or configured for each question individually.", + "options": [ + { + "label": "Enabled" + }, + { + "label": "Disabled" + } + ] } ] }, diff --git a/language/nb.json b/language/nb.json index 023a101..880001d 100644 --- a/language/nb.json +++ b/language/nb.json @@ -150,20 +150,31 @@ ] }, { - "label": "Innstillinger for \"Vis svar\" knapp og \"Prøv igjen\".", - "description": "Disse instillingene lar deg overstyre når \"Vis svar\" knapp og \"Prøv igjen\" er slått på i integrert h5p innhold.", + "label": "Innstillinger for «Vis svar»- og «Prøv igjen»-knapp", "fields": [ { - "label": "Slå på overstyring for \"Vis svar\" og \"Prøv igjen\".", - "description": "Aktivering vil overstyre de følgende innstillingene for integrert innhold." + "label": "Overstyr «Vis svar»-knapp", + "description": "Dette valget avgjør om «Vis svar»-knappen vil vises for alle spørsmål, skjules for alle eller konfigureres individuelt for hvert spørsmål.", + "options": [ + { + "label": "Aktivert" + }, + { + "label": "Deaktivert" + } + ] }, { - "label": "Slå på \"Vis svar\" knapp.", - "description": "Aktivering vil slå på \"Vis svar\" knappen." - }, - { - "label": "Slå på \"Prøv igjen\".", - "description": "Aktivering vil slå på \"Prøv igjen\" ." + "label": "Overstyr «Prøv igjen»-knapp", + "description": "Dette valget avgjør om «Prøv igjen»-knappen vil vises for alle spørsmål, skjules for alle eller konfigureres individuelt for hvert spørsmål.", + "options": [ + { + "label": "Aktivert" + }, + { + "label": "Deaktivert" + } + ] } ] }, diff --git a/language/nn.json b/language/nn.json index 106be80..216333e 100644 --- a/language/nn.json +++ b/language/nn.json @@ -150,20 +150,31 @@ ] }, { - "label": "Innstillinger for \"Vis svar\" knapp og \"Prøv igjen\".", - "description": "Disse instillingene lar deg overstyre når \"Vis svar\" knapp og \"Prøv igjen\" er slått på i integrert h5p innhald.", + "label": "Innstillinger for «Vis svar»- og «Prøv igjen»-knapp", "fields": [ { - "label": "Slå på overstyring for \"Vis svar\" og \"Prøv igjen\".", - "description": "Aktivering vil overstyre dei følgjande innstillingene for integrert innhald." + "label": "Overstyr «Vis svar»-knapp", + "description": "Dette valget avgjør om «Vis svar»-knappen vil vises for alle spørsmål, skjules for alle eller konfigureres individuelt for hvert spørsmål.", + "options": [ + { + "label": "Aktivert" + }, + { + "label": "Deaktivert" + } + ] }, { - "label": "Slå på \"Vis svar\" knapp.", - "description": "Aktivering vil slå på \"Vis svar\" knappen." - }, - { - "label": "Slå på \"Prøv igjen\".", - "description": "Aktivering vil slå på \"Prøv igjen\" ." + "label": "Overstyr «Prøv igjen»-knapp", + "description": "Dette valget avgjør om «Prøv igjen»-knappen vil vises for alle spørsmål, skjules for alle eller konfigureres individuelt for hvert spørsmål.", + "options": [ + { + "label": "Aktivert" + }, + { + "label": "Deaktivert" + } + ] } ] }, diff --git a/library.json b/library.json index b110dda..62bb6ac 100644 --- a/library.json +++ b/library.json @@ -3,7 +3,7 @@ "description": "Put together a set of different questions that has to be solved. (Quiz)", "contentType": "question", "majorVersion": 1, - "minorVersion": 7, + "minorVersion": 8, "patchVersion": 0, "embedTypes": [ "iframe" diff --git a/semantics.json b/semantics.json index de90e20..d670e08 100644 --- a/semantics.json +++ b/semantics.json @@ -300,30 +300,42 @@ { "name": "override", "type": "group", - "label": "Settings for \"Show solution\" button and \"Retry\".", - "description": "These options will let you override when to display \"Show solution\" button and \"Retry\" in integrated h5p content.", + "label": "Settings for \"Show solution\" and \"Retry\" buttons", "optional": true, "fields": [ { - "name": "overrideButtons", - "type": "boolean", - "label": "Enable override for \"Show solution\" and \"Retry\" settings.", - "description": "If this is enabled the questions own settings will be ignored and the below settings will be used instead.", - "default": false + "name": "showSolutionButton", + "type": "select", + "label": "Override \"Show Solution\" button", + "description": "This option determines if the \"Show Solution\" button will be shown for all questions, disabled for all or configured for each question individually.", + "optional": true, + "options": [ + { + "value": "on", + "label": "Enabled" + }, + { + "value": "off", + "label": "Disabled" + } + ] }, { - "name": "overrideShowSolutionButton", - "type": "boolean", - "label": "Enable \"Show solution\" buttons.", - "description": "Enabling this option will make questions show the \"Show solution\" button.", - "default": false - }, - { - "name": "overrideRetry", - "type": "boolean", - "label": "Enable \"Retry\".", - "description": "Enabling this option will make the user able to \"Retry\" .", - "default": false + "name": "retryButton", + "type": "select", + "label": "Override \"Retry\" button", + "description": "This option determines if the \"Retry\" button will be shown for all questions, disabled for all or configured for each question individually.", + "optional": true, + "options": [ + { + "value": "on", + "label": "Enabled" + }, + { + "value": "off", + "label": "Disabled" + } + ] } ] }, diff --git a/upgrades.js b/upgrades.js index 77c5add..210d1ac 100644 --- a/upgrades.js +++ b/upgrades.js @@ -14,6 +14,33 @@ H5PUpgrades['H5P.QuestionSet'] = (function ($) { }); } } + finished(null, parameters); + }, + + + /** + * Asynchronous content upgrade hook. + * Upgrades content parameters to support IV 1.7. + * + * Groups all UI text strings to make them eaiser to translate and handle. + * + * @params {Object} parameters + * @params {function} finished + */ + 8: function (parameters, finished) { + if (parameters.override.overrideButtons) { + // Set new variables + parameters.override.showSolutionButton = + (parameters.override.overrideShowSolutionButton ? 'on' : 'off'); + parameters.override.retryButton = + (parameters.override.overrideRetry ? 'on' : 'off'); + } + + // Remove old field variables + delete parameters.override.overrideButtons; + delete parameters.override.overrideShowSolutionButton; + delete parameters.override.overrideRetry; + finished(null, parameters); } }