From f25ead111122414f2766554715cf3c4d076707ff Mon Sep 17 00:00:00 2001 From: Tobias Baden <tobias.baden@stud.hs-hannover.de> Date: Tue, 14 Aug 2018 14:02:31 +0200 Subject: [PATCH] Added User Preferences Save wich Semesters are opened, reopen / close them if site is changed --- amd/build/collapse.min.js | 4 ++-- amd/src/collapse.js | 23 +++++++++++------------ lib.php | 17 +++++++++++++++-- settings.php | 1 - styles.css | 10 +++++++--- version.php | 4 ++-- 6 files changed, 37 insertions(+), 22 deletions(-) diff --git a/amd/build/collapse.min.js b/amd/build/collapse.min.js index 28224c9..b384274 100644 --- a/amd/build/collapse.min.js +++ b/amd/build/collapse.min.js @@ -1,2 +1,2 @@ -/*! hsh_boostnavigation 2018-06-20 */ -define(["jquery"],function(a){"use strict";function b(b,c){b.click(function(d){d.preventDefault(),"mycourses"==c?0==b.attr("data-collapse")?e.forEach(function(b){a(".list-group-item[data-key="+b+"]").attr("data-collapse","1"),a(".list-group-item[data-key="+b+"]").attr("data-hidden","0")}):1==b.attr("data-collapse")&&(e.forEach(function(b){a(".list-group-item[data-parent-key="+b+"]").attr("data-hidden","1"),a(".list-group-item[data-parent-key="+b+"]").attr("data-collapse","1")}),e.forEach(function(b){a(".list-group-item[data-key="+b+"]").attr("data-collapse","1"),a(".list-group-item[data-key="+b+"]").attr("data-hidden","1")})):0==b.attr("data-collapse")?(a(".list-group-item[data-parent-key="+c+"]").attr("data-hidden","1"),b.attr("data-collapse","1")):1==b.attr("data-collapse")&&(a(".list-group-item[data-parent-key="+c+"]").attr("data-hidden","0"),b.attr("data-collapse","0"))})}function c(c){""===e[0]&&(e=new Array);var d=a('.list-group-item[data-key="'+c+'"]');if("mycourses"===c?d.attr("data-collapse","0"):d.attr("data-collapse","1"),""!==c&&"mycourses"!==c){d.addClass("list-group-item-action semesternode"),d.attr("data-isexpandable","1");var f=a(".list-group-item[data-parent-key="+c+"]");f.attr("data-hidden","1"),f.attr("data-collapse","1"),f.addClass("coursenode"),e.includes(c)||e.push(c)}b(d,c)}function d(b){var c=a('.list-group-item[data-key="'+b+'"]');c.attr("data-hidden","0"),c.attr("data-collapse","0"),a(".list-group-item[data-parent-key="+b+"]").attr("data-hidden","0"),a(".list-group-item[data-parent-key="+b+"]").attr("data-collapse","0")}var e=[];return{init:function(a){for(var b=0,d=a.length;b<d;b++)c(a[b])},openSemester:function(a){d(a)}}}); \ No newline at end of file +/*! hsh_boostnavigation 2018-07-25 */ +define(["jquery"],function(a){"use strict";function b(b,c){b.click(function(d){d.preventDefault(),"mycourses"==c?0==b.attr("data-collapse")?e.forEach(function(b){a(".list-group-item[data-key="+b+"]").attr("data-collapse","1"),a(".list-group-item[data-key="+b+"]").attr("data-hidden","0"),M.util.set_user_preference("local_hsh_boostnavigation-collapse_"+b+"_node",0)}):1==b.attr("data-collapse")&&(e.forEach(function(b){a(".list-group-item[data-parent-key="+b+"]").attr("data-hidden","1"),a(".list-group-item[data-parent-key="+b+"]").attr("data-collapse","1")}),e.forEach(function(b){a(".list-group-item[data-key="+b+"]").attr("data-collapse","1"),a(".list-group-item[data-key="+b+"]").attr("data-hidden","1"),M.util.set_user_preference("local_hsh_boostnavigation-collapse_"+b+"_node",0)})):0==b.attr("data-collapse")?(a(".list-group-item[data-parent-key="+c+"]").attr("data-hidden","1"),b.attr("data-collapse","1"),M.util.set_user_preference("local_hsh_boostnavigation-collapse_"+c+"_node",0)):1==b.attr("data-collapse")&&(a(".list-group-item[data-parent-key="+c+"]").attr("data-hidden","0"),b.attr("data-collapse","0"),M.util.set_user_preference("local_hsh_boostnavigation-collapse_"+c+"_node",1))})}function c(c){""===e[0]&&(e=new Array);var d=a('.list-group-item[data-key="'+c+'"]');if("mycourses"===c?d.attr("data-collapse","0"):d.attr("data-collapse","1"),""!==c&&"mycourses"!==c){d.addClass("list-group-item-action semesternode"),d.attr("data-isexpandable","1");var f=a(".list-group-item[data-parent-key="+c+"]");f.attr("data-hidden","1"),f.attr("data-collapse","1"),f.addClass("coursenode"),e.includes(c)||e.push(c)}b(d,c)}function d(b){var c=a('.list-group-item[data-key="'+b+'"]');c.attr("data-hidden","0"),c.attr("data-collapse","0"),a(".list-group-item[data-parent-key="+b+"]").attr("data-hidden","0"),a(".list-group-item[data-parent-key="+b+"]").attr("data-collapse","0")}var e=[];return{init:function(a){for(var b=0,d=a.length;b<d;b++)c(a[b])},openSemester:function(a){d(a)}}}); \ No newline at end of file diff --git a/amd/src/collapse.js b/amd/src/collapse.js index 1c87d86..081ec44 100644 --- a/amd/src/collapse.js +++ b/amd/src/collapse.js @@ -14,13 +14,12 @@ define(['jquery'], function ($) { 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"); + nodesArray.forEach(function (semester) { + $('.list-group-item[data-key=' + semester + ']').attr("data-collapse", "1"); + $('.list-group-item[data-key=' + semester + ']').attr("data-hidden", "0"); + M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + semester + '_node', 0); //1 }); - //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 @@ -31,13 +30,13 @@ define(['jquery'], function ($) { }); // 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"); + nodesArray.forEach(function (semester) { + $('.list-group-item[data-key=' + semester + ']').attr("data-collapse", "1"); + $('.list-group-item[data-key=' + semester + ']').attr("data-hidden", "1"); + M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + semester + '_node', 0); //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 @@ -47,7 +46,8 @@ define(['jquery'], function ($) { $('.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"); - //M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 1); + + M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 0); //1 // If the parent node is currently collapsed. } else if (node.attr('data-collapse') == 1) { @@ -57,7 +57,7 @@ define(['jquery'], function ($) { // Change the collapse attribute of the node itself to false. node.attr("data-collapse", "0"); - //M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 0); + M.util.set_user_preference('local_hsh_boostnavigation-collapse_' + nodename + '_node', 1); //0 } } }); @@ -102,7 +102,6 @@ define(['jquery'], function ($) { $('.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++) { diff --git a/lib.php b/lib.php index 0adabd0..24e32d5 100644 --- a/lib.php +++ b/lib.php @@ -1,9 +1,9 @@ <?php include_once($CFG->dirroot . '/course/semester_date.php'); include_once($CFG->dirroot . '/local/hsh_boostnavigation/locallib.php'); - function local_hsh_boostnavigation_extend_navigation(global_navigation $navigation) { global $CFG, $PAGE; + $collapsenodesforjs[] = ''; $semesterList[] = ''; $semesterKeys[] = ''; @@ -104,7 +104,6 @@ function local_hsh_boostnavigation_extend_navigation(global_navigation $navigati } } - // if settings gewählt "aktuelles Semester aufklappen" if (!empty($collapsenodesforjs)) { // Add JavaScript for collapsing nodes to the page. // JavaScript-Code genommen und angepasst von local/boostnavigation/amd/src @@ -115,6 +114,20 @@ function local_hsh_boostnavigation_extend_navigation(global_navigation $navigati } } + // Durch alle Semester durchlaufen und die user preference checken + if(!empty($semesterList)) { + array_push($semesterList, $unabhaengig); + foreach ($semesterList as $semLst) { + ${"userpref_".$semLst->key} = get_user_preferences('local_hsh_boostnavigation-collapse_'.$semLst->key .'_node', 0); + if (${"userpref_".$semLst->key} == 1) { + $PAGE->requires->js_call_amd('local_hsh_boostnavigation/collapse', 'openSemester', [$semLst->key]); + } else { + // Semester war vorher geschlossen + } + } + } + + // if settings gewählt "aktuelles Semester aufklappen" if($openNewestSemester) { $PAGE->requires->js_call_amd('local_hsh_boostnavigation/collapse', 'openSemester', [$newestNode]); } diff --git a/settings.php b/settings.php index 46fddb5..2a710a0 100644 --- a/settings.php +++ b/settings.php @@ -45,7 +45,6 @@ if ($hassiteconfig) { $setting = new admin_setting_configselect($name, $title, $description, null, $choices); $setting->set_updatedcallback('theme_reset_all_caches'); $page->add($setting); - } // Add settings page to the appearance settings category. diff --git a/styles.css b/styles.css index 7dc3c5c..83afa0a 100644 --- a/styles.css +++ b/styles.css @@ -19,11 +19,11 @@ cursor: pointer; } -#nav-drawer .list-group-item[data-key|="mycourses"] ~ a.list-group-item[href*="course/view.php?id="] > div.m-l-1 { +#nav-drawer .list-group-item[data-key="mycourses"] ~ a.list-group-item[href*="course/view.php?id="] > div.m-l-1 { margin-left: 1rem !important; } -#nav-drawer .list-group-item[data-key|="mycourses"] ~ a.list-group-item[href*="course/view.php?id="].coursenode > div.m-l-1 { +#nav-drawer .list-group-item[data-key="mycourses"] ~ a.list-group-item[href*="course/view.php?id="].coursenode > div.m-l-1 { margin-left: 2rem !important; } @@ -31,10 +31,14 @@ margin-left: 0 !important; } -#nav-drawer .list-group-item[data-key|="mycourses"] ~ a.list-group-item[href*="course/view.php?id="] > div.m-l-2 { +#nav-drawer .list-group-item[data-key="mycourses"] ~ a.list-group-item[href*="course/view.php?id="] > div.m-l-2 { margin-left: 2rem !important; } .list-group-item[data-hidden="1"] { display: none; +} + +.list-group-item[data-hidden="1"][data-key="participants"], .list-group-item[data-hidden="1"][data-key="grades"], .list-group-item[data-hidden="1"][data-key="badgesview"] { + display: block !important; } \ No newline at end of file diff --git a/version.php b/version.php index fe2b91d..9441da6 100644 --- a/version.php +++ b/version.php @@ -25,8 +25,8 @@ defined('MOODLE_INTERNAL') || die(); $plugin->component = 'local_hsh_boostnavigation'; -$plugin->version = 2018062000; -$plugin->release = 'v1.1-r2'; +$plugin->version = 2018072500; +$plugin->release = 'v1.1-r3'; $plugin->requires = 2016120500; #$plugin->maturity = MATURITY_STABLE; -- GitLab