From 22a2123ea6f4f07eb4dfdf9e86b746e12e950c7f Mon Sep 17 00:00:00 2001
From: Myriam Delaruelle
 <Myriam Delaruelle@bdn-un-mdelarue.ad.univ-lorraine.fr>
Date: Fri, 9 Jul 2021 16:57:46 +0200
Subject: [PATCH] add activities

---
 competency_iena_competencies_api.php    | 14 ++++++++------
 entity/block_competency_iena_module.php |  9 +++++++--
 js/matrix.js                            | 23 ++++++++++++++++++-----
 lang/en/block_competency_iena.php       |  2 +-
 lang/fr/block_competency_iena.php       |  2 +-
 styles.css                              |  3 ++-
 templates/modal_activities.mustache     |  8 ++++----
 7 files changed, 41 insertions(+), 20 deletions(-)

diff --git a/competency_iena_competencies_api.php b/competency_iena_competencies_api.php
index 6423b9b..f9eb5e9 100644
--- a/competency_iena_competencies_api.php
+++ b/competency_iena_competencies_api.php
@@ -31,6 +31,7 @@
 	$course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST);
 	require_login($course, false, NULL);
 	
+
 	if ($_POST) {
 		//Donne les infos sur la comp
 		if (isset($_POST["idcompetence"])) {
@@ -44,6 +45,7 @@
 		}
 		//Ajoute un tableau d'id de compétences à la matrice
 		if (isset($_POST["addcomp"])) {
+			echo "wtf friend ?";
 			$value = $_POST["addcomp"];
 			//return var_dump($value);
 			
@@ -69,7 +71,8 @@
 			
 			
 		}
-		else if (isset($_POST["addactivities"])) {
+		if (isset($_POST["addactivities"])) {
+		
 			$value = $_POST["addactivities"];
 			//return var_dump($value);
 			
@@ -77,10 +80,10 @@
 			$errorInsert=false;
 			$moduleI = new block_competency_iena_module();
 			
-			foreach($value[0] as $activityid){
-				$is_insert = $refI->add_matrix_module($activityid, $value[1]);
+			foreach($value[0] as $activity){
+				$is_insert = $moduleI->add_matrix_module($activity['id'], $activity['section_id']);
 				if (!$is_insert) {
-					$resultInsert.=" ".$activityid.",";
+					$resultInsert.=" ".$activity->id.",";
 					$errorInsert=true;
 
 				}
@@ -90,8 +93,7 @@
 			}
 			else{
 				echo get_string('error_insert', 'block_competency_iena').$resultInsert;
-			}			
-			
+			}
 		}
 //		updateTextRef
 		if (isset($_POST["idref"])) {
diff --git a/entity/block_competency_iena_module.php b/entity/block_competency_iena_module.php
index 07c10a6..3d9c473 100644
--- a/entity/block_competency_iena_module.php
+++ b/entity/block_competency_iena_module.php
@@ -166,8 +166,13 @@ class block_competency_iena_module {
             $record = new stdClass();
             $record->cmid=$cmid;
             $record->sectionid=$sectionid;
-            $request = $DB->insert_record('block_competency_iena', $record, false);
-            return $request;
+            
+            try {
+                $DB->insert_record('block_competency_iena', $record, false);
+            } catch (dml_exception $e) {
+            }
+            return true;
+           
         }
 
         public function delete_matrix_module($cmid, $sectionid){
diff --git a/js/matrix.js b/js/matrix.js
index ee60ff6..4231001 100644
--- a/js/matrix.js
+++ b/js/matrix.js
@@ -156,11 +156,18 @@ function addActivities(url, idcourse){
 	var arrayActivities=[];
 	var activities = $('#tree-activities').find('.iena-checkbox-activities:checked');
 	for(var i=0; i<activities.length;i++){
-		arrayActivities.push(activities[i].value);
+
+		section_id=$(activities[i]).parents('.section-iena').attr("data-section");
+		//section_id=
+		newActivity={id:activities[i].value, section_id:section_id}
+		arrayActivities.push(newActivity);
 	}
+
+	//return true;
 	var value = [];
 	value[0]=arrayActivities;
 	value[1] = idcourse;
+
 	$.ajax({
 		url: url,
 		type: 'POST',
@@ -321,6 +328,7 @@ 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){
@@ -349,10 +357,13 @@ function selectCompetency(obj){
 
 //Sélectionne/déselectionne une activité et ses enfants
 function selectActivity(obj){
-	console.log("on select une co");
-	 $('#btn-activities-iena').removeAttr('disabled');
+	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++){
@@ -362,6 +373,7 @@ 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++){
@@ -371,8 +383,9 @@ function selectActivity(obj){
 		}
 	}
 	var count=countSelectedObjects('activities');
+	console.log(count);
 	if(count==0){
-		$('#btn-activities-iena').prop('disabled', true);;
+		$('#btn-activities-iena').prop('disabled', true);
 	}
 	$("#iena-counter-activities").html(count);
 }
@@ -383,7 +396,7 @@ function countSelectedObjects(object){
 		return $('#tree3').find('.iena-checkbox-cpt:checked').length;
 	}
 	else{
-		return $('#tree-activities').find('.iena-checkbox-cpt:checked').length;
+		return $('#tree-activities').find('.iena-checkbox-activities:checked').length;
 	}
 	
 }
diff --git a/lang/en/block_competency_iena.php b/lang/en/block_competency_iena.php
index 0826b23..f582eb9 100644
--- a/lang/en/block_competency_iena.php
+++ b/lang/en/block_competency_iena.php
@@ -82,5 +82,5 @@
     $string['activities_placeholder']="Filter activities/resources";
     $string['count_activities']=" activities/resources selected";
     $string['add_activities']="Add activities/resources";
-    $string['select_act'] = 'Activites selector;
+    $string['select_act'] = 'Activities selector';
 ?>
\ No newline at end of file
diff --git a/lang/fr/block_competency_iena.php b/lang/fr/block_competency_iena.php
index 4a103cd..d340010 100644
--- a/lang/fr/block_competency_iena.php
+++ b/lang/fr/block_competency_iena.php
@@ -81,7 +81,7 @@
     $string['activities_placeholder']="Filter les activités/ressources du cours";
     $string['count_activities']=" activité(s)/ressource(s) sélectionnée(s)";
     $string['add_activities']="Ajouter les activités/ressources";
-    $string['select_act'] = 'Sélecteur d\'activités;
+    $string['select_act'] = 'Sélecteur d\'activités';
 
 
 
diff --git a/styles.css b/styles.css
index 8aba9b9..d29d8af 100644
--- a/styles.css
+++ b/styles.css
@@ -158,7 +158,8 @@
 }
 
 .fram-iena .iena-checkbox-cpt,
-.iena-cpt-sel-tree .iena-checkbox-activities{
+.iena-cpt-sel-tree .iena-checkbox-activities,
+.iena-cpt-sel-tree .iena-checkbox-section{
     margin-right: 5px;
     vertical-align: middle;
 }
diff --git a/templates/modal_activities.mustache b/templates/modal_activities.mustache
index 3e95629..6288658 100644
--- a/templates/modal_activities.mustache
+++ b/templates/modal_activities.mustache
@@ -17,10 +17,10 @@
 					
 							<div class="well well-lg iena-cpt-sel-tree mb-3">
 								<ul id='tree-activities'>
-									<li class='activity-iena '>
+									<li class='activity-iena'>
 									{{#sections}}
-										<li class="activity-iena section-{{id}}">
-											<input class="iena-checkbox-activities" onclick="selectActivity(this, 'section')" type="checkbox" id="{{name}}" value="{{id}}"><a>{{name}}</a>
+										<li class="activity-iena section-iena section-{{id}}" data-section="{{id}}">
+											<input class="iena-checkbox-section" onclick="selectActivity(this, 'section')" type="checkbox" id="{{name}}" value="{{id}}"><a>{{name}}</a>
 											<ul>
 												{{#modules}}
 												<li class="activity-iena">
@@ -39,7 +39,7 @@
 							<div class="iena-text-counter">
 								<span id="iena-counter-activities">0</span> {{#str}} count_activities, block_competency_iena {{/str}}
 							</div>
-							<button id='btn-activities-iena' disabled='disabled' onclick="addActivities('{{update_activities_link}}', '{{courseid}}')" type="button" class="btn btn-success btn-block mb-3">{{# str }}add_activities, block_competency_iena{{/ str }}</button>
+							<button id='btn-activities-iena' disabled='disabled' onclick="addActivities('{{update_link}}', '{{courseid}}')" type="button" class="btn btn-success btn-block mb-3">{{# str }}add_activities, block_competency_iena{{/ str }}</button>
 						</div>
 					
 					</div>
-- 
GitLab