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