import {CubeSCORM} from '/application/resources/scorm/scorm';
import lottie from "lottie-web";
import SplitType from 'split-type'
-import 'simplebar'
+import SimpleBar from 'simplebar'
import 'simplebar/dist/simplebar.css'
+import Handlebars from "handlebars";
import QuizResize from "./quiz.resize";
import QuizAnimations from "./quiz.animations";
const $el = $(".active-screen .btn.action")
let status = quiz.score.questionStatus
+ let currentPosition = quiz.score.lastAnsweredQuestion + 1
quiz.score.updateScore()
// if form exist and responses are validated
// pour récupérer le premier enfant de la nav
this.activeNav( (parseInt(this.question.currentPosition())+1) )
this.updateBtnValidation()
+ // si c'est la dernière question a été validée alors on affiche le résultat au prochain screen
+ if(this.question.last(currentPosition)) {
+ this.result()
+ }
},
//
activeNav: function(position = 1) {
const questionStatus = quiz.score.questionStatus
const lastAnsweredQuestion = quiz.score.lastAnsweredQuestion
- let $el = $(".progress-container .progress-item:nth-child("+position+")")
+ if($(".active-screen").find(".progress-item").length > 0) {
+ let $el = $(".progress-container .progress-item:nth-child(" + position + ")")
- $(".progress-container .progress-item").removeClass("active")
- $el.addClass("active")
+ $(".progress-container .progress-item").removeClass("active")
+ $el.addClass("active")
- let n = (lastAnsweredQuestion + 1)
- let $_el = $(".progress-container .progress-item:nth-child("+n+")")
+ let n = (lastAnsweredQuestion + 1)
+ let $_el = $(".progress-container .progress-item:nth-child(" + n + ")")
- if(lastAnsweredQuestion > -1) {
- if (questionStatus[lastAnsweredQuestion].ok === 'ok') {
- $_el.addClass("ok")
- }
- if (questionStatus[lastAnsweredQuestion].ok === 'nok') {
- $_el.addClass("nok")
+ if (lastAnsweredQuestion > -1) {
+ if (questionStatus[lastAnsweredQuestion].ok === 'ok') {
+ $_el.addClass("ok")
+ }
+ if (questionStatus[lastAnsweredQuestion].ok === 'nok') {
+ $_el.addClass("nok")
+ }
}
}
},
let maxScore = quiz.score.maxScore,
score = quiz.score.score
+ let status = quiz.score.questionStatus
+ let reviewList = this.question.getAll();
+
+ reviewList = reviewList.map((c,i) => {
+ return {
+ 'question': c['question'],
+ 'answers': c['answers'].filter((c) => {
+ return c['correct'] === 1
+ }),
+ 'status': status[i].ok
+ }
+ })
+ let $ul = $("#answers-list")
+
+ $("[id^=score-]").text(score)
+ $("[id^=maxScore-]").text(maxScore)
+
+ Handlebars.registerHelper("inc", (value) => { return parseInt(value) + 1; });
+
+ const source = $("#template").html();
+ const template = Handlebars.compile(source);
+ const html = template({reviewList: reviewList});
+ $ul.html(html)
+ // mise en place de la scrollbar personnalisé
+ // https://github.com/Grsmto/simplebar/tree/master/packages/simplebar
+ const simpleBar = new SimpleBar($ul.get(0))
}
}
-<div class="container-screen active-screen">
+<div class="container-screen none">
@include('quizv2.header_title', ['data', $data])
<div class="screen score" id="score">
<div class="score-content">
<div class="score-answers-review">
<h2>Answers review</h2>
<p class="subtitle">Review your answers before you go</p>
- <ul id="answers-list" data-simplebar>
- <li class="item">
- <p class="position">Question 1</p>
- <p class="question">Which of the following definitions best characterizes drive ?</p>
- <p class="answer">Pushing others to get results</p>
- </li>
- <li class="item">
- <p class="position">Question 2</p>
- <p class="question">Which of the following definitions best characterizes drive ?</p>
- <p class="answer">Pushing others to get results</p>
- </li>
- <li class="item">
- <p class="position">Question 3</p>
- <p class="question">Which of the following definitions best characterizes drive ?</p>
- <p class="answer">Pushing others to get results</p>
- </li>
- <li class="item">
- <p class="position">Question 4</p>
- <p class="question">Which of the following definitions best characterizes drive ?</p>
- <p class="answer">Pushing others to get results</p>
- </li>
- <li class="item">
- <p class="position">Question 5</p>
- <p class="question">Which of the following definitions best characterizes drive ?</p>
- <p class="answer">Pushing others to get results</p>
- </li>
- <li class="item">
- <p class="position">Question 6</p>
- <p class="question">Which of the following definitions best characterizes drive ?</p>
- <p class="answer">Pushing others to get results</p>
- </li>
- <li class="item">
- <p class="position">Question 7</p>
- <p class="question">Which of the following definitions best characterizes drive ?</p>
- <p class="answer">Pushing others to get results</p>
- </li>
+ <ul id="answers-list">
+ @verbatim
+ <script id="template" type="text/x-handlebars-template">
+ {{#each reviewList}}
+ <li class="item {{this.status}}">
+ <p class="position">Question {{inc @index}}</p>
+ <p class="question">{{this.question}}</p>
+ {{#each this.answers}}
+ <p class="answer">{{this.answer}}</p>
+ {{/each}}
+ </li>
+ {{/each}}
+ </script>
+ @endverbatim
</ul>
</div>
</div>