From: Vincent Vanwaelscappel Date: Thu, 20 Oct 2022 08:58:19 +0000 (+0200) Subject: wip #5471 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=4de742f860d2d8e65b0033f2c60ce22d72fbd712;p=fluidbook-toolbox.git wip #5471 @1 --- diff --git a/app/Models/Quiz.php b/app/Models/Quiz.php index a1551bc48..54007fb18 100644 --- a/app/Models/Quiz.php +++ b/app/Models/Quiz.php @@ -10,6 +10,7 @@ use App\Http\Controllers\Admin\Operations\Quiz\PreviewOperation; use App\Http\Controllers\Admin\Operations\Quiz\ReportOperation; use App\Models\Base\ToolboxModel; use App\Models\Traits\SCORMVersionTrait; +use Cubist\Backpack\Magic\Fields\Code; use Cubist\Backpack\Magic\Fields\SelectFromArray; use Cubist\Scorm\Manifest; use Cubist\Util\Files\VirtualDirectory; @@ -248,13 +249,12 @@ class Quiz extends ToolboxModel $f = array_merge($default, $color, ['name' => $name]); $this->addField($f); } - - $default = ['tab' => __('Thème'), 'type' => 'Images', 'maxFiles' => 1]; foreach (self::_getImages() as $name => $label) { $f = array_merge($default, ['name' => $name, 'label' => $label]); $this->addField($f); } + $this->addField('css', Code::class, __('Code CSS supplémentaire'), ['language' => 'css', 'tab' => __('Thème')]); } diff --git a/resources/quiz/js/app.js b/resources/quiz/js/app.js index 377fe20ef..3378b28eb 100644 --- a/resources/quiz/js/app.js +++ b/resources/quiz/js/app.js @@ -88,6 +88,9 @@ require('../../scorm/scorm'); } function initContents() { + if (DATA.css !== '') { + $("head").append(''); + } $("header .headerholder .titleHolder").append('

' + DATA.title + '

'); $("header .headerholder .titleHolder h1").css('width', '99%'); $("title").text(DATA.title); @@ -195,6 +198,26 @@ require('../../scorm/scorm'); passedAction = DATA.passedAction !== '' ? DATA.passedAction : null; failedAction = DATA.failedAction !== '' ? DATA.failedAction : null; + var results; + if (testMode) { + results = testResults(); + } else { + results = quizResults(); + } + + $("main").append(results); + + $(document).on('quizinit', function (event, state) { + init(state); + }); + + initApp(); + + resizeContainer(); + resize(); + } + + function quizResults() { var results = '
'; results += '
'; results += '

' + defaultMessage + '

'; @@ -209,17 +232,20 @@ require('../../scorm/scorm'); results = $(results); $(results).append(correction); + return results; + } - $("main").append(results); - - $(document).on('quizinit', function (event, state) { - init(state); + function testResults() { + var results = '
'; + results += '
'; + $.each(DATA.test_results, function (k, v) { + results += '

' + v.text + '

'; }); + results += '
'; + results += '
'; - initApp(); - - resizeContainer(); - resize(); + results = $(results); + return results; } function init(state) { @@ -305,12 +331,24 @@ require('../../scorm/scorm'); if ($(next).is("#resultsscreen")) { updateScore(); - var show = showReview === 'always' || (showReview === 'passed' && checkScore()); + if (quizMode) { + var show = showReview === 'always' || (showReview === 'passed' && checkScore()); - if (!show) { - $('#correction').hide(); + if (!show) { + $('#correction').hide(); + } else { + $('#correction').show(); + } } else { - $('#correction').show(); + $('.test_result').each(function () { + var show = score >= $(this).data('min') && score <= $(this).data('max'); + console.log(this, show, score, $(this).data('min'), $(this).data('max')); + if (show) { + $(this).show(); + } else { + $(this).hide(); + } + }); } completed(); } @@ -371,26 +409,29 @@ require('../../scorm/scorm'); } function checkScore() { - var normalizedScore = getNormalizedScore(false); - $('#results > h2').hide(); - var passed; - $('#restart').hide(); - if (threshold === 0) { - $('.defaultMessage').show(); - passed = true; - } else if (normalizedScore >= threshold) { - $(".passedMessage").show(); - execAction(passedAction); - passed = true; - } else { - $('.failedMessage').show(); - execAction(failedAction); - passed = false; - if ($(data).find('restart_button').text() === "1") { - $('#restart').show(); + if (quizMode) { + var normalizedScore = getNormalizedScore(false); + $('#results > h2').hide(); + var passed; + $('#restart').hide(); + if (threshold === 0) { + $('.defaultMessage').show(); + passed = true; + } else if (normalizedScore >= threshold) { + $(".passedMessage").show(); + execAction(passedAction); + passed = true; + } else { + $('.failedMessage').show(); + execAction(failedAction); + passed = false; + if ($(data).find('restart_button').text() === "1") { + $('#restart').show(); + } } + return passed; } - return passed; + return true; } function execAction(action) {