diff --git a/js/questionset.js b/js/questionset.js index 655c042..ae0442b 100644 --- a/js/questionset.js +++ b/js/questionset.js @@ -123,7 +123,7 @@ H5P.QuestionSet = function (options, contentId) { enableSolutionsButton: params.override.overrideShowSolutionButton }); } - var questionInstance = H5P.newRunnable(question, contentId); + var questionInstance = H5P.newRunnable(question, contentId, undefined, undefined, {parent: self}); questionInstances.push(questionInstance); questionInstance.on('resize', function() { self.trigger('resize'); diff --git a/language/ar.json b/language/ar.json new file mode 100644 index 0000000..e5b357f --- /dev/null +++ b/language/ar.json @@ -0,0 +1,159 @@ +{ + "semantics": [ + { + "label": "مقدمة المسابقة", + "fields": [ + { + "label": "عرض المقدمة" + }, + { + "label": "العنوان", + "description": "سيتم عرض هذا العنوان فوق النص المقدمة" + }, + { + "label": "مقدمة النص", + "description": "سيتم عرض هذا النص قبل أن تبدأ هذه المسابقة" + }, + { + "label": "بدء زر النص" + }, + { + "label": "صورة الخلفية", + "description": "إدخال صورة خلفية اختيارية" + } + ] + }, + { + "label": "صورة الخلفية", + "description": "صورة خلفية اختيارية لأسئلة" + }, + { + "label": "مؤشر التقدم", + "description": "أسئلة لتعيين نمط مؤشر التقدم", + "options": [ + { + "label": "النصية" + }, + { + "label": "النقاط" + } + ] + }, + { + "label": "نسبة النجاح", + "description": "النسبة المئوية لمجموع النقاط المطلوبة لاجتياز الاختبار" + }, + { + "label": "الأسئلة", + "widgets": [ + { + "label": "الافتراضي" + }, + { + "label": "النصية" + } + ], + "entity": "السؤال", + "field": { + "label": "نوع السؤال", + "description": "مكتبة لهذا السؤال" + } + }, + { + "label": "واجهة النصوص لهذه المسابقة", + "fields": [ + { + "label": "زر الرجوع" + }, + { + "label": "زر التقدم" + }, + { + "label": "زر الانتهاء" + }, + { + "label": "نص التقدم", + "description": "النص المستخدم إذا تم تحديد التقدم نصيا" + } + ] + }, + { + "label": "انتهاء المسابقة", + "fields": [ + { + "label": "عرض النتائج" + }, + { + "label": "نص راس الملاحظات", + "description": "سيتم عرض هذا العنوان في نهاية هذه المسابقة حيثما أجاب المستخدم على جميع الأسئلة المستعملة" + }, + { + "label": "عرض نص النتيجة", + "description": "النص يستخدم لعرض مجموع النقاط للمستخدم \"@score\" سوف تحل محلها النتيجة المحسوبة, \"@total\" حسب أقصى درجة ممكنة" + }, + { + "label": "تعليق النجاح بالمسابقة", + "description": "سيتم عرض هذا النص أعلاه النتيجة إذا انقضى المستخدم بنجاح هذه المسابقة" + }, + { + "label": "ملاحظة النجاح", + "description": "سيتم عرض هذه الملاحظة بعد النتيجة إذا انقضى المستخدم بنجاح هذه المسابقة" + }, + { + "label": "تعليق الرسوب بالمسابقة", + "description": "سيتم عرض هذا النص أعلاه النتيجة إذا كان المستخدم قد فشلت في المسابقة" + }, + { + "label": "ملاحظة الرسوب", + "description": "سيتم عرض هذه الملاحظة بعد النتيجة إذا كان المستخدم قد فشلت في المسابقة" + }, + { + "label": "تسمية زر اظهار الحل", + "description": "نص زر الحل" + }, + { + "label": "تسمية زر إعادة المحاولة", + "description": "نص زر إعادة المحاولة" + }, + { + "label": "نص زر الانتهاء" + }, + { + "label": "عرض الفيديو قبل نتائج المسابقة" + }, + { + "label": "تفعيل زر تخطى الفيديو" + }, + { + "label": "تسمية زر تخطى الفيديو" + }, + { + "label": "فيديو النجاح بالمسابقة", + "description": "سيتم تشغيل هذا الفيديو إذا كان المستخدم ناجحا بهذه المسابقة" + }, + { + "label": "فيديو الرسوب بالمسابقة", + "description": "سيتم تشغيل هذا الفيديو إذا كان المستخدم راسبا بهذه المسابقة" + } + ] + }, + { + "label": "إعدادات زر \"مشاهدة حل \" وزر \"إعادة المحاولة\" ", + "description": "وهذه الخيارات تمكنك من تجاوز وقت العرض بزر \"مشاهدة حل \" وزر \"إعادة المحاولة \" في محتويات متكامل h5p.", + "fields": [ + { + "label": "تفعيل زر تجاوز \"مشاهدة حل \" و إعدادات \"إعادة \"المحاولة", + "description": "وإذا تم تفعيل هذه الأسئلة سيتم تجاهل الإعدادات الخاصة وسيتم استخدام الضبط أدناه بدلا من ذلك" + }, + { + "label": "تفعيل زر \"إظهار الحل\"", + "description": "تفعيل هذا الخيار يجعل الأسئلة تظهر زر \"مشاهدة الحل\"" + }, + { + "label": "تفعيل زر \"إعادة المحاولة\"", + "description": "تفعيل هذا الخيار يجعل المستخدم قادرا على \"إعادة المحاولة\"" + } + ] + } + ] +} diff --git a/language/it.json b/language/it.json new file mode 100644 index 0000000..9f20c35 --- /dev/null +++ b/language/it.json @@ -0,0 +1,159 @@ +{ + "semantics": [ + { + "label": "Introduzione quiz", + "fields": [ + { + "label": "Visualizza introduzione" + }, + { + "label": "Titolo", + "description": "Questo titolo verr� visualizzato sopra il testo introduttivo." + }, + { + "label": "Testo introduttivo", + "description": "Questo testo verr� visualizzato prima dell'inizio del quiz." + }, + { + "label": "Testo pulsante Start" + }, + { + "label": "Immagine di sfondo", + "description": "Immagine di sfondo facoltativa per l'introduzione." + } + ] + }, + { + "label": "Immagine di sfondo", + "description": "Immagine di sfondo facoltativa per il set di domande." + }, + { + "label": "Indicatore di avanzamento", + "description": "Stile dell'indicatore di avanzamento del set di domande.", + "options": [ + { + "label": "Testuale" + }, + { + "label": "Punti" + } + ] + }, + { + "label": "Percentuale superamento quiz", + "description": "Percentuale minima del punteggio totale richiesto per passare il quiz." + }, + { + "label": "Domande", + "widgets": [ + { + "label": "Predefinito" + }, + { + "label": "Testuale" + } + ], + "entity": "domanda", + "field": { + "label": "Tipo di domanda", + "description": "Biblioteca per questa domanda." + } + }, + { + "label": "Testi di interfaccia nel quiz", + "fields": [ + { + "label": "Pulsante Indietro" + }, + { + "label": "Pulsante Prossimo" + }, + { + "label": "Pulsante Fine" + }, + { + "label": "Testo Avanzamento", + "description": "esto utilizzato se il testo Avanzamento � selezionato." + } + ] + }, + { + "label": "Quiz terminato", + "fields": [ + { + "label": "Visualizza risultati" + }, + { + "label": "Intestazione Feedback", + "description": "Questa intestazione verr� visualizzata alla fine del quiz, dopo che l'utente avr� risposto a tutte le domande." + }, + { + "label": "Testo visualizza punteggio", + "description": "Testo utilizzato per visualizzare il punteggio Totale dell'utente. \"@score\" verr� rimpiazzato dal punteggio calcolato, \"@total\" sar� rimpiazzato dal punteggio massimo possibile. " + }, + { + "label": "Messaggio di superamento quiz", + "description": "Questo testo verr� visualizzato sopra il punteggio se l'utente ha superato con successo il quiz." + }, + { + "label": "Commento di superamento quiz", + "description": "Questo commento verr� visualizzato dopo il punteggio se l'utente ha superato con successo il quiz." + }, + { + "label": "Titolo quiz fallito", + "description": "Questo testo verr� visualizzato sopra il punteggio se l'utente non ha superato il quiz." + }, + { + "label": "Commento quiz fallito", + "description": "Questo commento verr� visualizzato dopo il punteggio se l'utente non ha superato il quiz." + }, + { + "label": "Etichetta pulsante Soluzione", + "description": "Testo per il pulsante Soluzione." + }, + { + "label": "Etichetta pulsante Riprova", + "description": "Testo per il pulsante Riprova." + }, + { + "label": "Testo pulsante Fine" + }, + { + "label": "Visualizza il video prima dei risultati del quiz" + }, + { + "label": "Abilita pulsante Salta video" + }, + { + "label": "Etichetta pulsante Salta video" + }, + { + "label": "Video di superamento quiz", + "description": "Questo video verr� visualizzato sopra il punteggio se l'utente ha superato con successo il quiz." + }, + { + "label": "Video quiz fallito", + "description": "Questo testo verr� visualizzato se l'utente non ha superato il quiz." + } + ] + }, + { + "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": "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\"." + } + ] + } + ] +} \ No newline at end of file diff --git a/library.json b/library.json index 24bfb11..82719bf 100644 --- a/library.json +++ b/library.json @@ -2,8 +2,8 @@ "title": "Question set", "contentType": "question", "majorVersion": 1, - "minorVersion": 2, - "patchVersion": 0, + "minorVersion": 3, + "patchVersion": 2, "embedTypes": [ "iframe" ], @@ -13,7 +13,7 @@ "author": "Joubel AS", "coreApi": { "majorVersion": 1, - "minorVersion": 4 + "minorVersion": 5 }, "license": "cc-by-sa", "preloadedJs": [ @@ -55,4 +55,4 @@ "minorVersion": 0 } ] -} +} \ No newline at end of file diff --git a/semantics.json b/semantics.json index 8addef2..3337530 100644 --- a/semantics.json +++ b/semantics.json @@ -110,11 +110,11 @@ "label": "Question type", "description": "Library for this question.", "options": [ - "H5P.MultiChoice 1.2", - "H5P.DragQuestion 1.2", - "H5P.Blanks 1.2", - "H5P.MarkTheWords 1.2", - "H5P.DragText 1.2" + "H5P.MultiChoice 1.3", + "H5P.DragQuestion 1.3", + "H5P.Blanks 1.3", + "H5P.MarkTheWords 1.3", + "H5P.DragText 1.3" ] } }, diff --git a/upgrades.js b/upgrades.js new file mode 100644 index 0000000..77c5add --- /dev/null +++ b/upgrades.js @@ -0,0 +1,21 @@ +var H5PUpgrades = H5PUpgrades || {}; + +H5PUpgrades['H5P.QuestionSet'] = (function ($) { + return { + 1: { + 3: function (parameters, finished) { + for (var i = 0; i < parameters.questions.length; i++) { + if (parameters.questions[i].subContentId === undefined) { + // NOTE: We avoid using H5P.createUUID since this is an upgrade script and H5P function may change in the + // future + parameters.questions[i].subContentId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(char) { + var random = Math.random()*16|0, newChar = char === 'x' ? random : (random&0x3|0x8); + return newChar.toString(16); + }); + } + } + finished(null, parameters); + } + } + }; +})(H5P.jQuery);