diff --git a/public/js/buttonFunctions.js b/public/js/buttonFunctions.js index bb528055..b81c5ac9 100755 --- a/public/js/buttonFunctions.js +++ b/public/js/buttonFunctions.js @@ -6,7 +6,7 @@ let newAssignment = function() { currentTableData.currentTermData.classes[selected_class_i].assignments.unshift({ "name": "Assignment", - "category": Object.keys(currentTableData.currentTermData.classes[selected_class_i].categories)[0], + "category": Object.keys(currentTableData.currentTermData.classes[selected_class_i].categories)[currentFilterRow >= 0 ? currentFilterRow : 0], "score": 10, "max_score": 10, "percentage": 100, diff --git a/public/js/home.js b/public/js/home.js index e3990efd..540e1156 100644 --- a/public/js/home.js +++ b/public/js/home.js @@ -150,6 +150,10 @@ let recentActivity = new Tabulator("#recentActivity", { classesTable.selectRow(1); }, }); + +// Index of the row that's currently selected in the categories table +// (gets reset to -1 whenever the class is changed) +let currentFilterRow = -1; let categoriesTable = new Tabulator("#categoriesTable", { // height: 400, selectable: 1, @@ -173,9 +177,16 @@ let categoriesTable = new Tabulator("#categoriesTable", { ], rowClick: function(e, row) { //trigger an alert message when the row is clicked assignmentsTable.clearFilter(); - assignmentsTable.addFilter([ - {field: "category", type:"=", value: row.getData().category} - ]); + + if (currentFilterRow !== row.getPosition()) { + currentFilterRow = row.getPosition(); + assignmentsTable.addFilter([ + {field: "category", type:"=", value: row.getData().category} + ]); + } + else { + currentFilterRow = -1; + } }, }); @@ -633,7 +644,10 @@ let classesTable = new Tabulator("#classesTable", { ], rowClick: function(e, row) { // trigger an alert message when the row is clicked $("#mostRecentDiv").hide(); + assignmentsTable.clearFilter(); + currentFilterRow = -1; + document.getElementById("categoriesTable").style.display = "block"; document.getElementById("assignmentsTable").style.display = "block"; selected_class_i = row.getPosition();