From d5e6fc18163339bbf621df86d8802ed5f4a93114 Mon Sep 17 00:00:00 2001 From: Anthony Geourjon <anthony.geourjon@tetras-libre.fr> Date: Fri, 20 Jun 2025 10:56:36 +0200 Subject: [PATCH] Add onComplete method to show summary of user answer --- .idea/dbnavigator.xml | 29 ++++++++++++++++++++++++++--- macao/assets/quiz.js | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml index d80aa00..fbc8dc3 100644 --- a/.idea/dbnavigator.xml +++ b/.idea/dbnavigator.xml @@ -1,5 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> + <component name="DBNavigator.Project.DDLFileAttachmentManager"> + <mappings /> + <preferences /> + </component> + <component name="DBNavigator.Project.DatabaseAssistantManager"> + <assistants /> + </component> <component name="DBNavigator.Project.DatabaseBrowserManager"> <autoscroll-to-editor value="false" /> <autoscroll-from-editor value="true" /> @@ -22,6 +29,7 @@ <display-mode value="TABBED" /> <navigation-history-size value="100" /> <show-object-details value="false" /> + <enable-sticky-paths value="true" /> </general> <filters> <object-type-filter> @@ -47,9 +55,15 @@ <object-type name="TYPE" enabled="true" /> <object-type name="TYPE_ATTRIBUTE" enabled="true" /> <object-type name="ARGUMENT" enabled="true" /> + <object-type name="JAVA_CLASS" enabled="true" /> + <object-type name="JAVA_INNER_CLASS" enabled="true" /> + <object-type name="JAVA_FIELD" enabled="true" /> + <object-type name="JAVA_METHOD" enabled="true" /> <object-type name="DIMENSION" enabled="true" /> <object-type name="CLUSTER" enabled="true" /> <object-type name="DBLINK" enabled="true" /> + <object-type name="CREDENTIAL" enabled="true" /> + <object-type name="AI_PROFILE" enabled="true" /> </object-type-filter> </filters> <sorting> @@ -86,9 +100,15 @@ <object-type name="FUNCTION" enabled="true" /> <object-type name="PACKAGE" enabled="true" /> <object-type name="TYPE" enabled="true" /> + <object-type name="JAVA CLASS" enabled="true" /> + <object-type name="INNER CLASS" enabled="true" /> + <object-type name="JAVA FIELD" enabled="true" /> + <object-type name="JAVA METHOD" enabled="true" /> + <object-type name="JAVA PARAMETER" enabled="true" /> <object-type name="DIMENSION" enabled="false" /> <object-type name="CLUSTER" enabled="false" /> <object-type name="DBLINK" enabled="true" /> + <object-type name="CREDENTIAL" enabled="false" /> </lookup-objects> <force-database-load value="false" /> <prompt-connection-selection value="true" /> @@ -363,9 +383,6 @@ <compile-dependencies value="ASK" /> <always-show-controls value="false" /> </compiler> - <debugger> - <debugger-type value="JDBC" /> - </debugger> </operation-settings> <ddl-file-settings> <extensions> @@ -379,6 +396,7 @@ <mapping file-type-id="TYPE" extensions="tpe" /> <mapping file-type-id="TYPE_SPEC" extensions="tps" /> <mapping file-type-id="TYPE_BODY" extensions="tpb" /> + <mapping file-type-id="JAVA_SOURCE" extensions="sql" /> </extensions> <general> <lookup-ddl-files value="true" /> @@ -388,6 +406,11 @@ <make-scripts-rerunnable value="true" /> </general> </ddl-file-settings> + <assistant-settings> + <credential-settings> + <credentials /> + </credential-settings> + </assistant-settings> <general-settings> <regional-settings> <date-format value="MEDIUM" /> diff --git a/macao/assets/quiz.js b/macao/assets/quiz.js index cabe865..c823886 100644 --- a/macao/assets/quiz.js +++ b/macao/assets/quiz.js @@ -63,6 +63,15 @@ $(function () { visibleIndex: 0, }); + Survey.JsonObject.metaData.addProperty("survey", { + name: "isSurveySummaryVisible", + type: "boolean", + category: "general", + default: "false", + visibleIndex: 0, + }); + + Survey.JsonObject.metaData.addProperty("question", { name: "helpComment", type: "text", @@ -153,6 +162,34 @@ $(function () { innerCss: "sd-btn nav-input" }); + survey.onComplete.add(function (sender) { + + if (sender.isSurveySummaryVisible) { + console.log("Survey summary is visible"); + const userData = sender.data; + const summaryDiv = document.getElementById("surveySummary"); + let html = "<h3>Your Results:</h3><ul>"; + + sender.getAllQuestions().forEach(q => { + const userAnswer = userData[q.name]; + const correctAnswer = q.correctAnswer; + const isCorrect = userAnswer === correctAnswer; + html += `<li><b>${q.title}</b><br> + Your answer: ${userAnswer} <br> + Correct answer: ${correctAnswer} <br> + <span style="color:${isCorrect ? 'green' : 'red'};"> + ${isCorrect ? "Correct" : "Incorrect"} + </span> + </li><br>`; + }); + + html += "</ul>"; + summaryDiv.innerHTML = html; + } + }); + + + // Ugly tricks to avoid creating a new theme const customTheme = SurveyTheme.DefaultLightPanelless; const primColor = getComputedStyle(document.documentElement, null).getPropertyValue('--macao-primary-color'); -- GitLab