From e2ac37b8b9a58af478f456a227665e71e2c4a7fb Mon Sep 17 00:00:00 2001
From: TheJoeCoder <joe@radialbog9.uk>
Date: Tue, 23 Apr 2024 22:03:27 +0100
Subject: [PATCH] Make it work once and for all

---
 bvletools.user.js | 38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/bvletools.user.js b/bvletools.user.js
index f5967eb..573a758 100644
--- a/bvletools.user.js
+++ b/bvletools.user.js
@@ -123,7 +123,7 @@
         }
 
         // copied from https://vle.bromcomcloud.com/lib/pages/js/behaviour.js
-        var loadBehaviourTable = () => {
+        var loadBehaviourTable2 = () => {
             $(".wait").show();
             $.ajax({
                 url: "/Behaviour/StudentBehaviour",
@@ -135,7 +135,6 @@
                 success: function (data) {
                     console.log(data);
                     $(".wait").hide();
-                    var content = "";
 
                     var headerContentArr = [].concat(data.behaviourStudentEventHeader);
                     var lastPositionFromTop = 1;
@@ -156,43 +155,46 @@
 
 
                     // Append any non-existing contents to header
-                    var studentEvents = [].concat(data.studentEvents);
-
-                    if (studentEvents.length > 0) {
-                        var headerFirstObjectKeys = Object.keys(studentEvents[0]);
+                    if (data.studentEvents.length > 0) {
+                        var headerFirstObjectKeys = Object.keys(data.studentEvents[0]);
                         for(var i = 0; i < headerFirstObjectKeys.length; i++) {
                             var key = headerFirstObjectKeys[i];
                             if(!headerContentArrKeys.includes(key)) {
-                                var data = {
+                                var dta = {
                                     active: "True",
                                     fieldName: key,
                                     displayName: key,
                                     positionFromTop: lastPositionFromTop
                                 };
 
-                                headerContentArrKeys.push(data);
-                                console.log("[RB9] " + JSON.stringify(data));
+                                headerContentArr.push(dta);
+                                console.log("[RB9] " + JSON.stringify(dta));
 
                                 lastPositionFromTop++;
                             }
                         }
                     }
 
+                    // Build contents
                     var headerContent = "";
-                    headerContent += "<tr>"
+                    var content = "";
+
+                    headerContent += "<tr>";
                     for (var i = 0; i < headerContentArr.length; i++) {
-                        headerContent += "<th>" + headerContentArr[i].displayName.replace(/([A-Z])/g, ' $1').trim() + "</th>"
+                        headerContent += "<th>" + headerContentArr[i].displayName.replace(/([A-Z])/g, ' $1').trim() + "</th>";
                     }
-                    headerContent += "</tr>"
+                    headerContent += "</tr>";
+
+                    if (data.studentEvents.length > 0) {
+                        for (var i = 0; i < data.studentEvents.length; i++) {
+                            var event = data.studentEvents[i];
 
-                    if (studentEvents.length > 0) {
-                        for (var i = 0; i < studentEvents.length; i++) {
-                            content += "<tr>"
+                            content += "<tr>";
                             for (var j = 0; j < headerContentArr.length; j++) {
                                 content += '<td>' +
-                                    studentEvents[i][toCamelCase(headerContentArr[j].fieldName = headerContentArr[j].fieldName == "" ? headerContentArr[j].displayName : headerContentArr[j].fieldName)] + '</td>';
+                                event[toCamelCase(headerContentArr[j].fieldName = headerContentArr[j].fieldName == "" ? headerContentArr[j].displayName : headerContentArr[j].fieldName)] + '</td>';
                             }
-                            content += "</tr>"
+                            content += "</tr>";
                         }
                     }
 
@@ -247,7 +249,7 @@
                 "</table>");*/
             $("#Behaviour").append("<thead></thead>");
             $("#Behaviour").append("<tbody></tbody>");
-            loadBehaviourTable();
+            loadBehaviourTable2();
         });
     }
 })();
-- 
GitLab