diff --git a/amd/build/suivi-table.js b/amd/build/suivi-table.js index 4ea69f804bc97ca1ba552f017d804c53546efa4c..15ba3a92c0fd16756d43184291a4fd80d863f62b 100644 --- a/amd/build/suivi-table.js +++ b/amd/build/suivi-table.js @@ -68,7 +68,6 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], .done(function(html, js){ $("#container-modal").html(html); - console.log($("#container-modal")); $('#details-modal').modal('toggle'); //templates.runTemplateJS(js); //window.history.pushState('suivi',"", url); diff --git a/amd/build/suivi.js b/amd/build/suivi.js index a98f7f95b6edc397f7e857e5980b503f87f4d877..2a8c5a4f0d9104b4203bedae0bd36510833603b7 100644 --- a/amd/build/suivi.js +++ b/amd/build/suivi.js @@ -78,22 +78,21 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], //initActivityFilter(); }, registerSelectAllGroupsFilter:function(){ + checkAllGroupsFilter(); $('.selectallgroups').click(function() { if ($(".selectallgroups").is(':checked')) { checkAllGroupsFilter(); } else { $('.group-option').prop('checked', false); - var message=str.get_string('selectedActivities', 'format_iena'); - $.when(message).done(function(localizedEditString) { - $(".group-dropdown-text").html('0 '+localizedEditString); - }); - changeGroup(); + displayTotalGroupsFilter(); + changeGroup(); } }); }, initTable:function(){ initActivityFilter(false); displayTotalActivitiesFilter(false); + displayTotalGroupsFilter(false); displayActivities(false); initGroupFilter(false); registerGroupFilter(); @@ -124,14 +123,6 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], groupid=$("#group-select").val(); sectionid=$("#section-select").val(); filter=$("#symbol-select").val() + $("#filter-select").val(); - /*checkedActivities=$('input[name="options[]"]:checked'); - activities=[]; - for(var i=0; i< checkedActivities.length; i++){ - if(checkedActivities[i].value >0){ - activities.push(checkedActivities[i].value); - } - - }*/ completeUrl='suivi_unit.php?courseid='+courseid; if(sectionid){ completeUrl+='§ionid='+sectionid; @@ -158,10 +149,11 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], data: {action: 'fetchgroups', groupsid:groupsid}, type: 'post', success: function(request) { - data=calcPercentage(JSON.parse(request)); //initGroupFilter(); changeSection(); + localStorage.setItem("groups",request); + displayTotalGroupsFilter(false); } }); } @@ -619,7 +611,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], else { $('.selectallgroups').prop('checked', false); } - //displayTotalActivitiesFilter(); + displayTotalActivitiesFilter(); //displayActivities(); }); @@ -630,6 +622,7 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], if(localStorage.groups){ var checkedGroups=JSON.parse(localStorage.groups); var groups=$("input[type='checkbox'].justone-group"); + if($("input[type='checkbox'].justone-group[value="+checkedGroups[0]+"]").length > 0){ if(groups.length===checkedGroups.length ){ $(".selectallgroups").prop("checked", true); @@ -648,19 +641,42 @@ define(['jquery', 'core/ajax', 'core/templates', 'core/str'], } } } - //displayTotalActivitiesFilter(); + else{ + checkAllGroupsFilter(); + } + displayTotalActivitiesFilter(); //displayActivities(); } - //Coche toutes les activités quand on change de section + //Coche tous les groupes quand le select all est coché function checkAllGroupsFilter(){ $('.selectallgroups').prop('checked', true); $('.group-option').prop('checked', true); + console.log("on check bien tout du coup ?"); changeGroup(); $(".select-text").html(' Deselect'); } + //Update activities filter label + function displayTotalGroupsFilter(){ + var total = $('input[name="groupoptions[]"]:checked').length; + if(total == $('input[name="groupoptions[]"]').length){ + var message=str.get_string('allActivities', 'format_iena'); + $.when(message).done(function(localizedEditString) { + $(".dropdown-text-group").html(localizedEditString); + }); + } + else{ + var message=str.get_string('selectedActivities', 'format_iena'); + $.when(message).done(function(localizedEditString) { + $(".dropdown-text-group").html(total + ' '+localizedEditString); + }); + } + } + + + }); diff --git a/classes/observer.php b/classes/observer.php index 7a98da39468d25aaa5faaab19bf394480f34051b..e1c0874eff55cc60e927e211b36e2b6693ad351f 100644 --- a/classes/observer.php +++ b/classes/observer.php @@ -19,4 +19,13 @@ class format_iena_observer { public static function user_module_completion(\core\event\course_module_completion_updated $event){ cache_helper::purge_by_event('iena_newprogress'); } + + public static function group_add_member(\core\event\group_member_added $event){ + cache_helper::purge_by_event('iena_newprogress'); + } + public static function group_remove_member(\core\event\group_member_removed $event){ + cache_helper::purge_by_event('iena_newprogress'); + } + + } diff --git a/db/events.php b/db/events.php index 4324bfeac04c150c5304c8c5e907b404d076619c..79c28470b4b0f9fbe08d8a4f16010bb514c2d07e 100644 --- a/db/events.php +++ b/db/events.php @@ -13,6 +13,14 @@ $observers = array( array( 'eventname' => '\core\event\course_module_completion_updated', 'callback' => 'format_iena_observer::user_module_completion', + ), + array( + 'eventname' => '\core\event\group_member_added', + 'callback' => 'format_iena_observer::group_add_member', + ), + array( + 'eventname' => '\core\event\group_member_removed', + 'callback' => 'format_iena_observer::group_remove_member', ) ); diff --git a/lib.php b/lib.php index 64a7111a7717f3174a2a1deeb2c1b4d1f8f76ed2..57d0dc67b7cd682a30483f5ce68a8588bd8ee026 100644 --- a/lib.php +++ b/lib.php @@ -34,8 +34,8 @@ class format_iena extends format_topics { */ public function course_format_options($foreditform = false) { global $PAGE; - static $courseformatoptions = false; - if ($courseformatoptions === false) { + /*static $courseformatoptions = false; + if ($courseformatoptions === false) {*/ $courseformatoptions['allmodulesbreadcrum'] = array( 'default' => 0, 'type' => PARAM_INT, @@ -44,7 +44,7 @@ class format_iena extends format_topics { 'default' => 1, 'type' => PARAM_INT, ); - } + //} if ($foreditform && !isset($courseformatoptions['coursedisplay']['label'])) { $choicetab = array(); $choicetab['1'] = get_string('yes', 'format_iena'); diff --git a/styles.css b/styles.css index e74d2fb1c1db6327442c1f8cf9ce552be50279be..7ee1fa81915a937f4b3714a43d8bca3ed46ecf3d 100644 --- a/styles.css +++ b/styles.css @@ -1210,3 +1210,7 @@ border-bottom: 1px solid #dee2e6; background-color: #efefef; margin-bottom: 10px; } + +#iena-group-dropdown optgroup{ + margin-left: 8px; +} \ No newline at end of file diff --git a/suivi_unit.php b/suivi_unit.php index b6cd3f16d43ddce91a66a3307d515ff7742e3134..817e3699778d4e7b0c85da0a84abf126e82d5112 100644 --- a/suivi_unit.php +++ b/suivi_unit.php @@ -371,7 +371,6 @@ for($i=0; $i<count($activegroupsids); $i++){ } - $activesectionid = 0; // Section du get acquise depuis le clic sur l'indicateur dans la page du cours, // section depuis laquelle on a cliqué sur le bouton pour voir le suivi. diff --git a/templates/suivi.mustache b/templates/suivi.mustache index 2a866bb2ff931f340e1c20e6e4d683f8ea5c8173..6e0699aa2e9c20e6dfc76a4db8f4ae6b327dcb05 100644 --- a/templates/suivi.mustache +++ b/templates/suivi.mustache @@ -77,15 +77,19 @@ </div> <div class="dropdown mr-sm-2 iena-custom-dropdown" id="group-select" name="groupid"> <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown"> - <span class="group-dropdown-text">Tous les groupes</span> + <span class="dropdown-text-group">Tous les groupes</span> <span class="caret"></span></button> <ul class="dropdown-menu dropdown-menu-form" id="iena-group-dropdown"> <li> <label class="checkbox"> <input type="checkbox" class="selectallgroups" checked value='0' {{default_group}}>Tous les groupes</label> </li> + <li class="divider"></li> - + <li> + <label class="checkbox"> + <input type="checkbox" class="selectwithoutgroups group-option justone-group" name="groupoptions[]" value='-1'>Sans groupe</label> + </li> <optgroup label="Mes groupes"> </optgroup> <ul class="iena-dynamic-options">