diff --git a/competency_iena_competencies_api.php b/competency_iena_competencies_api.php index f877df944324f6198339523dbff7ffa403f85830..58d6146ccfdb685fb220a2eb8aed0212c4c6ccee 100644 --- a/competency_iena_competencies_api.php +++ b/competency_iena_competencies_api.php @@ -16,6 +16,8 @@ require_once('entity/block_competency_iena_cron_roles.php'); require_once('entity/block_competency_iena_cron_competency.php'); require_once('entity/block_competency_iena_referentiel.php'); + require_once('entity/block_competency_iena_matrix.php'); + require_once('view/view_competency_iena_competencies.php'); @@ -30,9 +32,11 @@ $course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); require_login($course, false, NULL); - + error_log("post"); + error_log(var_dump($_POST)); if ($_POST) { + error_log("flag"); //Donne les infos sur la comp if (isset($_POST["idcompetence"])) { $idcompetence = htmlspecialchars($_POST["idcompetence"]); @@ -71,10 +75,7 @@ } if (isset($_POST["addactivities"])) { - $value = $_POST["addactivities"]; - //return var_dump($value); - $resultInsert=""; $errorInsert=false; $moduleI = new block_competency_iena_module(); @@ -91,7 +92,22 @@ echo "true"; } else{ - echo get_string('error_insert', 'block_competency_iena').$resultInsert; + echo get_string('error_delete', 'block_competency_iena').$resultInsert; + } + } + if (isset($_POST["delactivities"])) { + + $value = $_POST["delactivities"]; + $resultDelete=""; + $errorDelete=false; + $matrix_instance=new block_competency_iena_matrix(); + $request=$matrix_instance->delete_competencies_link_matrix($value[0]); + if($request){ + $matrix_instance->delete_activity_matrix($value[0]); + echo "true"; + } + else{ + echo "false"; } } // updateTextRef @@ -163,4 +179,7 @@ } } } + else{ + error_log("PAS POST ???"); + } \ No newline at end of file diff --git a/competency_iena_competencies_mgmt.php b/competency_iena_competencies_mgmt.php index 137f9782dd710aa8bf9cd36bacc4bc2b081a4d3c..97915d43ded2b914e9052096f8450c53276b8c82 100644 --- a/competency_iena_competencies_mgmt.php +++ b/competency_iena_competencies_mgmt.php @@ -25,7 +25,7 @@ $editmode=false; } if ($_POST) { - + error_log($_POST); if ($_POST['info'][0] == "delete_cpt") { //$module_id = htmlspecialchars($_POST['info'][1]); $module_id=$courseid; @@ -161,17 +161,8 @@ $competency->link = $CFG->wwwroot . "/blocks/competency_iena/competency_iena_user.php?courseid=" . $courseid . "&competencyid=" . $competency->id; } - - - //$matrix_modules=new block_competency_iena_module(); - - $module_instance = new block_competency_iena_module(); - //$modules = $module_instance->get_modules_by_courseID($courseid); - - //$section_instance = new block_competency_iena_section(); - //$sections = $section_instance->get_sections_by_id_course($courseid); $infos = get_fast_modinfo($COURSE->id); $sections=$infos->get_section_info_all(); @@ -179,6 +170,7 @@ $index=0; $sections_matrix=array(); $sections_modal=array(); + //Pour chaque section on va regarder s'il y a des modules, et si oui on formate et on ajoute les modules à la section foreach ($sections as $section) { diff --git a/entity/block_competency_iena_competency.php b/entity/block_competency_iena_competency.php index 8a5333f18636fe8a2629fbf20d791ae20367310f..a3dbb778cbaa8477f2b47a6a3e5b7118b680fa39 100644 --- a/entity/block_competency_iena_competency.php +++ b/entity/block_competency_iena_competency.php @@ -231,7 +231,11 @@ list_evidence_in_course } - // retourne la liste des compétences pour un module + /** + * Récupère les compétences par le module ID + * @param type $id_module + * @return type + */ public function get_competencies_by_moduleID($id_module) { global $DB; @@ -296,4 +300,6 @@ list_evidence_in_course return $data; } + + } diff --git a/entity/block_competency_iena_matrix.php b/entity/block_competency_iena_matrix.php new file mode 100644 index 0000000000000000000000000000000000000000..f14306a1d59e209b5597ba9f21b681b2e41899a5 --- /dev/null +++ b/entity/block_competency_iena_matrix.php @@ -0,0 +1,50 @@ +<?php +/** + * The iena filter plugin transforms the moodle resource links + * into a button that opens the resource in a modal + * + * @package block_competency_iena + * @category block + * @copyright 2021 Université de Lorraine + * @author Myriam Delaruelle + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * block_competency_iena_matrix + * + * + * @package competency_iena + * @copyright Université lorraine + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class block_competency_iena_matrix { + + public $activities; + public $competencies; + + public function delete_competencies_link_matrix($module_id){ + global $DB; + $status=0; + try{ + $status=$DB->delete_records('competency_modulecomp', ['cmid' => $module_id]); + + } + catch(dml_exception $e) { + + } + return $status; + } + + public function delete_activity_matrix($module_id){ + global $DB; + $request=0; + try{ + $request = $DB->delete_records('block_competency_iena', ['cmid' => $module_id]); + } + catch(dml_exception $e){ + + } + return $request; + } +} diff --git a/js/matrix.js b/js/matrix.js index 98b7694e06ecfdb59775534b187a4092c696dbff..0ba01acf8833a8a4f8695ff7e8d4762373381c90 100644 --- a/js/matrix.js +++ b/js/matrix.js @@ -19,7 +19,6 @@ jQuery(document).ready(function($){ $('#filter-iena-competence').keyup(function(){ - console.log("hello filter"); var searchText = $(this).val(); $('ul > li').each(function(){ var reg = new RegExp(searchText, 'gi'); @@ -35,6 +34,7 @@ jQuery(document).ready(function($){ }); + function treed(o, treeid){ var openedClass = 'glyphicon-minus-sign'; var closedClass = 'glyphicon-plus-sign'; @@ -109,24 +109,9 @@ function filter() { function showFilter(obj, pencil){ - /*var p = obj.parentNode.parentNode; - var c = p.children; - - if (c[2].dataset.edit == 'editOn') { - - obj.parentNode.parentNode.children[2].setAttribute("style", "display:inline"); - c[0].setAttribute("style", "display:inline"); - c[1].setAttribute("style", "display:none"); - c[2].dataset.edit = 'editOff'; - } else { - obj.parentNode.setAttribute("style", "display:none"); - c[0].setAttribute("style", "display:none"); - c[1].setAttribute("style", "display:inline"); - c[2].dataset.edit = 'editOn'; - }*/ - - console.log(pencil); + if(pencil==true){ + $("#"+obj).find(".iena-select").hide(); $("#"+obj).find(".iena-matrix-icons").show(); $("#"+obj).find(".module-outcome").show(); @@ -208,10 +193,6 @@ function addActivities(url, idcourse){ function supprimer_lien(obj) { var res = window.confirm('Etes-vous sûr de vouloir supprimer le lien entre cette activité et cette compétence ?'); if (res) { - - console.log(obj); - - var string=obj.split('-'); var module_id=string[0].substring(8); var competency_id=string[1].substring(10); @@ -273,36 +254,41 @@ function supprimer_lien_cpt(cpt_id) { }); } } -function select_value(){ +function supprimer_lien_activite(activity_id, url) { + var res = window.confirm('Etes-vous sûr de vouloir supprimer cette activité de ce cours ?'); + if (res) { + var value = []; + value[0]=activity_id; + $.ajax({ + url: url, + type: 'POST', + timeout: 10000, + contentType: 'application/x-www-form-urlencoded', + data: {delactivities:value}, + success: function(result) { + if (result.trim() == "true"){ + location.reload(); + } else { + alert(result); + } + } + }); + } + + } + //Edite le lien entre compétence et activité dans la matrice function select_update(obj){ - console.log(obj); - /*var t = obj.parentNode; - var p = t.parentNode; - var c = p.children; - - c[0].setAttribute("style", "display:inline"); - c[1].setAttribute("style", "display:none"); - c[2].setAttribute("style", "display:inline"); - - c[2].dataset.edit = 'editOff';*/ - var select=$("#"+obj); var choix_ruleoutcome=select.val(); - - var string=obj.split('-'); var module_id=string[0].substring(9); var competency_id=string[1].substring(10); - var cell=$("#tdmodule"+module_id+"-competency"+competency_id); - console.log(cell); var div_form=cell.find(".iena-select"); - console.log(div_form); - cell.find(".iena-select").hide(); cell.find(".iena-matrix-icons").show(); @@ -324,17 +310,10 @@ function select_update(obj){ if (status == "success"){ var renderer = data.split("/")[1]; var switchColor = data.split("/")[0]; - /*if (!(switchColor.trim() == "update")){ - changeColor(p); - }*/ - //var div_id = c[0].id; - //document.getElementById(div_id).firstChild.nextSibling.textContent = renderer; $("#divmodule"+module_id+"-competency"+competency_id+" p").html(renderer); $("#divmodule"+module_id+"-competency"+competency_id).show(); - - //cell.find(".iena-matrix-icons > .fa-times").data("edit", "editOff"); cell.find(".iena-matrix-icons > .fa-trash").show(); - //cell.find(".module-outcome").show(); + } }, @@ -363,7 +342,6 @@ function changeColor(obj) function selectCompetency(obj){ $('#btn-comp-iena').removeAttr('disabled'); box = $(obj); - console.log(box); if(box.is(':checked')){ children=$(obj).parent().find('.iena-checkbox-cpt'); if(children.length>0){ @@ -392,13 +370,10 @@ function selectCompetency(obj){ //Sélectionne/déselectionne une activité et ses enfants function selectActivity(obj){ - console.log("on select une activité"); - console.log($('#btn-activities-iena')); + $('#btn-activities-iena').removeAttr('disabled'); box = $(obj); - console.log(box); if(box.is(':checked')){ - console.log("ici chekc"); children=$(obj).parent().find('.iena-checkbox-activities'); if(children.length>0){ for(var i=0; i<children.length; i++){ @@ -408,7 +383,6 @@ function selectActivity(obj){ } } else if(!box.is(':checked')){ - console.log("ici pas check"); children=$(obj).parent().find('.iena-checkbox-activities'); if(children.length>0){ for(var i=0; i<children.length; i++){ @@ -418,7 +392,6 @@ function selectActivity(obj){ } } var count=countSelectedObjects('activities'); - console.log(count); if(count==0){ $('#btn-activities-iena').prop('disabled', true); } diff --git a/lang/en/block_competency_iena.php b/lang/en/block_competency_iena.php index 8add205e53ae6b8ea4f0a54b7c4550eb3112f5b6..0dec00c9df190afa508c8f35dcc50066fdbe557a 100644 --- a/lang/en/block_competency_iena.php +++ b/lang/en/block_competency_iena.php @@ -86,4 +86,5 @@ $string['manage_matrix'] = 'Edit matrix'; $string['manage_matrix_end'] = 'Exit edit mode'; $string['no_competency_description'] = 'This competency doesn\'t have a description' ; + $string['error_delete']="The activity/resource couldn't be deleted"; ?> \ No newline at end of file diff --git a/lang/fr/block_competency_iena.php b/lang/fr/block_competency_iena.php index d492fe060d9b50e8b95c799785d7d3c58eeaac5b..f3cad313aff947af984c83fceb7dfee3b0bd0dde 100644 --- a/lang/fr/block_competency_iena.php +++ b/lang/fr/block_competency_iena.php @@ -85,6 +85,7 @@ $string['manage_matrix'] = 'Modifier la matrice'; $string['manage_matrix_end'] = 'Quitter le mode édition'; $string['no_competency_description'] = 'Cette compétence n\'a pas de description.'; + $string['error_delete']="L'activité/ressource n'a pas pu être supprimée"; diff --git a/templates/matrix_competencies.mustache b/templates/matrix_competencies.mustache index 252cb4f5cc48297c3d80b8dadb63a5ffac89f777..11e3dfb32deb140dcce0ca57b09aac51e8f1db1a 100644 --- a/templates/matrix_competencies.mustache +++ b/templates/matrix_competencies.mustache @@ -30,7 +30,10 @@ </tr> {{#matrix_modules}} <tr> - <td><a href="{{link}}">{{name}}</a></td> + <td> + <a href="{{link}}">{{name}}</a> + {{#edit}}<i class="icon fa fa-trash fa-fw " style="color:#dc493a" onclick='supprimer_lien_activite({{moduleid}},"{{update_link}}")'></i>{{/edit}} + </td> {{#mcompetencies}} <td class="text-success" align=right id="tdmodule{{moduleid}}-competency{{id}}"> {{#module_ruleoutcomestring}}