// JavaScript Code genommen und angepasst von local/boostnavigation/amd/src // User-Preferences erstmal entfernt define(['jquery'], function($) { "use strict"; var nodesArray = []; function toggleClickHandler(node, nodename) { node.click(function(e) { // Prevent that the browser opens the node's default action link (if existing). e.preventDefault(); if(nodename == "mycourses") { // "MyCourses" angeklickt um diesen einzuklappen if (node.attr('data-collapse') == 0) { // Alle Semester verstecken nodesArray.forEach(function(semster){ $('.list-group-item[data-key=' + semster + ']').attr("data-collapse", "1"); $('.list-group-item[data-key=' + semster + ']').attr("data-hidden", "0"); }); // TODO User-Preferences setzen //M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 1); // If the parent node is currently collapsed. } else if (node.attr('data-collapse') == 1) { // Alle Kurse verstecken nodesArray.forEach(function(nodekey) { // Set the hidden attribute to true for all elements which have the nodename as their data-parent-key attribute. $('.list-group-item[data-parent-key=' + nodekey + ']').attr("data-hidden", "1"); $('.list-group-item[data-parent-key=' + nodekey + ']').attr("data-collapse", "1"); }); // Semester wieder sichtbar machen, Kurse weiterhin verstecken nodesArray.forEach(function(semster){ $('.list-group-item[data-key=' + semster + ']').attr("data-collapse", "1"); $('.list-group-item[data-key=' + semster + ']').attr("data-hidden", "1"); }); //TODO: User-Preferences einbinden //M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 0); } } else { // Ein Semester angeklickt um dieses auf oder zu zu klappen // If the parent node is currently expanded. if (node.attr('data-collapse') == 0) { // Set the hidden attribute to true for all elements which have the nodename as their data-parent-key attribute. $('.list-group-item[data-parent-key=' + nodename + ']').attr("data-hidden", "1"); // Change the collapse attribute of the node itself to true. node.attr("data-collapse", "1"); // TODO User-Preferences setzen //M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 1); // If the parent node is currently collapsed. } else if (node.attr('data-collapse') == 1) { // Set the hidden attribute to false for all elements which have the nodename as their data-parent-key attribute. $('.list-group-item[data-parent-key=' + nodename + ']').attr("data-hidden", "0"); // Change the collapse attribute of the node itself to false. node.attr("data-collapse", "0"); // TODO User-Preferences setzen //M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 0); } } }); } function initToggleNodes(nodename) { // Sonst wäre das Array mit "" initialisiert -> Fehler if(nodesArray[0] === "") { nodesArray = new Array(); } // Search node to be collapsible. var node = $('.list-group-item[data-key="' + nodename + '"]'); if(nodename === "mycourses") { node.attr("data-collapse", "0"); } else { node.attr("data-collapse", "1"); } if(nodename !== "" && nodename !== "mycourses") { node.addClass('list-group-item-action semesternode'); node.attr("data-isexpandable", "1"); var childNode = $('.list-group-item[data-parent-key=' + nodename + ']'); childNode.attr("data-hidden", "1"); childNode.attr("data-collapse", "1"); if(!nodesArray.includes(nodename)) { nodesArray.push(nodename); } } // Add a click handler to this node. toggleClickHandler(node, nodename); } function openNode(nodename) { var node = $('.list-group-item[data-key="' + nodename + '"]'); node.attr("data-hidden", "0"); node.attr("data-collapse", "0"); $('.list-group-item[data-parent-key=' + nodename + ']').attr("data-hidden", "0"); $('.list-group-item[data-parent-key=' + nodename + ']').attr("data-collapse", "0"); } return { init: function(params) { for (var i = 0, len = params.length; i < len; i++) { initToggleNodes(params[i]); } }, openSemester: function (nodename) { openNode(nodename); } }; });