Skip to content

Commit

Permalink
Merge pull request #194 from bkd-mba-fbi/bug/722-excel-status-tests
Browse files Browse the repository at this point in the history
Bug/722 excel status tests
  • Loading branch information
schefbi authored Jul 30, 2024
2 parents abd067f + daf81c9 commit e4a92e9
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 35 deletions.
24 changes: 11 additions & 13 deletions public/apps/MasterExcel/X.js
Original file line number Diff line number Diff line change
Expand Up @@ -269,13 +269,13 @@ var X = {
var tests = X.collectTestNames();
index = tests.indexOf(aTest);
if (index == -1 && tests[aTest]) {
index = aTest;
index = aTest-1; // Es wurde eine leer Spalte eingefugt deswegen darf diese nicht gezählt werden
}
if (index == -1) {
// ungültiger Wert für aTest
return;
}
var kursname = tests[index];
var kursname = tests[index+1]; // Die leer Spalte am anfang muss übersprungen werden.
lines = X.strings[X.lang].views[aView].default_lines.join("\n").replace("%s", kursname) +
"\n" + X.collectNames(aView, index).join("\n") + "\n";
}
Expand Down Expand Up @@ -528,8 +528,8 @@ var X = {
// * ein "Ungültiger Wert" Fehler angezeigt, wenn die eingegebene Note in der
// Auswahlliste nicht vorkam
// * der Wert übertragen und kein Fehler angezeigt
$("bkd-test-edit-grades table tbody tr:not(:last-child)").each(function() {
var name = X.trimName($("td.name span:first-child", this).text());
$("bkd-test-edit-grades div table tbody tr:not(:last-child)").each(function() {
var name = X.trimName($("td.student-name a div:first-child", this).text());
var error = [null, null];

var cell = $("td.name, td:not(.sticky)", this).get(aTest);
Expand Down Expand Up @@ -598,16 +598,15 @@ var X = {
collectNames: function(aView, aIncData) {
var values = [];

var nameCell = aView == 4 ? "bkd-test-edit-grades tbody td.name span:first-child" :
var nameCell = aView == 4 ? "bkd-test-edit-grades div table tbody td.student-name a div:first-child" :
aView >= 2 ? "td.validationColumn + td" :
aView == 0 ? ".tablelabel + .content1" :
"td.tablelabel:first-child, table.WebPart-Adaptive td:first-child";

$(nameCell).each(function() {
var name = X.trimName($(this).text());
if (name) {
var data = "";
if (aIncData) {
if (aIncData >= 0) {
switch (aView) {
case 0:
var select = $(this).parent().find("select");
Expand Down Expand Up @@ -642,7 +641,7 @@ var X = {
break;
case 4:
// Noten/Punkte des gewünschten Tests
var cell = $(this).parents("tr").find("td.name, td:not(.sticky)").get(aIncData);
var cell = $(this).parents("tr").find("td.test-grade, td:not(.sticky)").get(aIncData);
var number = $("input[type=number]", cell);
if (number.length == 1) {
data = number.val();
Expand Down Expand Up @@ -703,8 +702,8 @@ var X = {
*/
getFirstInput: function(aView, aTest) {
if (aView == 4 && aTest) {
var rows = $("bkd-test-edit-grades table tbody tr");
var cell = $("td.name, td:not(.sticky)", rows.get(0)).get(aTest);
var rows = $("bkd-test-edit-grades div table tbody tr");
var cell = $("td.test-grade, td:not(.sticky)", rows.get(0)).get(aTest);
return $("input[type=number], select", cell).get(0);
}

Expand All @@ -727,11 +726,10 @@ var X = {
var table = $("bkd-test-edit-grades table");
var thead = table.find("thead th");
var tbody = table.find("tbody tr:first-child td.name, tbody tr:first-child td:not(.sticky)");

var tests = [null];
for (var i = 1; i < tbody.length; i++) {
for (var i = 1; i < tbody.length+1; i++) {
var name = thead.get(i).innerText.split("\n")[0];
var isUnlocked = X.contains(thead.get(i).innerText.split("\n"), "lock_open") || $("select[disabled]", tbody.get(i)).length == 0;
var isUnlocked = X.contains(thead.get(i).innerText.split("\n"), "lock_open");
tests.push(isUnlocked ? name : null);
}

Expand Down
47 changes: 25 additions & 22 deletions public/apps/MasterExcel/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,42 +72,45 @@ function insertButtonsTest() {
return;
}


// die Buttons nur einfügen, wenn sie nicht bereits da sind
if ($('#overlay-toggle-embedded-test').length === 1) {
return;
}

var dropdownItems = '';

var tests = X.collectTestNames();

var i = 0
tests.forEach(test => {
var dropdownItems = '';
var atworkTests = 0;
for (let index = 0; index < tests.length; index++) {
const test = tests[index];

if (dropdownItems.indexOf(test) === -1 && tests.indexOf(test) > 0 && test.length > 0) {
i++
dropdownItems = dropdownItems + '<a onclick="X.showOverlay(4,'+ i +')";>' + test + '</a>';
dropdownItems = dropdownItems + '<a onclick="X.showOverlay(4,'+ index +')";>' + test + '</a>';
atworkTests++;
}
}

// Falls sie vorhanden sind neu einfügen. Damit kann der useCase gelöst werden, falls ein Test publiziert wird das dieser nicht mehr dargestellt wird und umgekehrt.
var testslinks = $('#overlay-toggle-embedded-test div').first().children().length;
if (testslinks != atworkTests ) {
$('#excel-import').empty();
} else {
return;
}
});

var buttons_html = '<button id="overlay-toggle-embedded-test" type="button" class="btn btn-outline-primary ms-2 dropdown-toggle excelDropdown">\
<span>' + X.strings[getLanguage()].views[2].start_dropdown + ' </span>\
<div class="excelDropdown-content">'
+dropdownItems+
'</div> </button>';


if(document.getElementsByClassName('desktop').length > 0) {
var buttons = $(buttons_html);
$('#excel-import').append(buttons);
}

}


window.addEventListener("DOMNodeInserted", function (ev) {
setTimeout(function(){
insertButtonsGrading();
insertButtonsTest();
},200);
}, false);
const observer = new MutationObserver(mutationList =>
mutationList.filter(m => m.type === 'childList').forEach(m => {
setTimeout(function(){
insertButtonsGrading();
insertButtonsTest();
},200);

}));
observer.observe(window.document,{childList: true, subtree: true});

0 comments on commit e4a92e9

Please sign in to comment.