diff --git a/API.php b/API.php index a3bc203..dc8cf2c 100755 --- a/API.php +++ b/API.php @@ -61,6 +61,14 @@ require_once __ROOT__.'/manager/security.php'; case 'modules': if( isset($request->level_1) ){ require_once __ROOT__.'/manager/modules.php'; modules_switch_level_1($request, $answer); } else { $answer->request = 'missing_level_1'; } + break; + + /**********/ + /* MODULE */ + /**********/ + case 'phpExcel': + if( isset($request->level_1) ){ require_once __ROOT__.'/manager/phpExcel.php'; xlsx_switch_lvl1($request, $answer); } + else { $answer->request = 'missing_level_1'; } break; diff --git a/css/global.css b/css/global.css index 7d3b2b4..525298a 100755 --- a/css/global.css +++ b/css/global.css @@ -279,9 +279,26 @@ td select > option{ padding: 0; } /* extra */ cursor: pointer; + + /* scroll */ + overflow: hidden; } +.confirm [type=file]{ + /* position */ + display: block; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + + /* extra */ + opacity: 0; + cursor: pointer; +} + /* @all */ diff --git a/manager/career.php b/manager/career.php index fccb380..995bd32 100755 --- a/manager/career.php +++ b/manager/career.php @@ -197,6 +197,28 @@ require_once __ROOT__.'/manager/database.php'; + + + + /**********************/ + /* intégration du MCC */ + /**********************/ + case 'setMCC': if( permission('admin') ){ + + + if( isset($request->mcc) && isset($request->semestre) && is_numeric($request->semestre) ){ // si tout les paramètres sont bons + DataBase::getInstance()->setMCC($request->semestre, $request->mcc); + $answer->request = 'success'; + }else + $answer->request = 'param_error'; + + }else + $answer->request = 'permission_error'; + break; + + + + /***********/ /* DEFAULT */ /***********/ diff --git a/manager/database.php b/manager/database.php index 2bb7b3f..bfa5314 100755 --- a/manager/database.php +++ b/manager/database.php @@ -123,7 +123,7 @@ class DataBase{ * @mcc contient toutes les données du MCC * */ - public static function setMCC($semestre, $mcc){debug(); + public static function setMCC($semestre, $mcc){ foreach($mcc as $ue){ diff --git a/manager/import.php b/manager/import.php new file mode 100755 index 0000000..fa8674f --- /dev/null +++ b/manager/import.php @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/manager/phpExcel.php b/manager/phpExcel.php index 6fb6236..66b77ad 100755 --- a/manager/phpExcel.php +++ b/manager/phpExcel.php @@ -276,118 +276,114 @@ function xlsx_switch_lvl1($request, $answer){ /**********************/ case 'import_mcc': - if(isset($request->docPath)) { - // $inputFileType = 'Excel2007'; - $inputFileName = $request->docPath; - - // Charger le fichier en tant que document Excel - $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); - - // Get sur la première case - $sheet = $objPHPExcel->getSheet(0); - $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); - + $filePath = __ROOT__.'/src/files/'.$_SESSION['identifiant'].'_import_mcc.xlsx'; - /* permet d'éviter les doublons */ - $mcc = array(); // contiendra le tableau de retour - $ueuid = array(); + // file_put_contents($filePath, $file['file']); - /****************************/ - /* TRAITEMENT SUR LES CASES */ - /****************************/ - foreach($mccData as $line){ + // // $inputFileType = 'Excel2007'; + // $inputFileName = $request->docPath; + + // Charger le fichier en tant que document Excel + $objPHPExcel = PHPExcel_IOFactory::load($filePath); + + // Get sur la première case + $sheet = $objPHPExcel->getSheet(0); + $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); + - if( $line[0] != null ){ + /* permet d'éviter les doublons */ + $mcc = array(); // contiendra le tableau de retour + $ueuid = array(); + + /****************************/ + /* TRAITEMENT SUR LES CASES */ + /****************************/ + foreach($mccData as $line){ + + if( $line[0] != null ){ - /* [1] On récupère les données de l'UE, si les champs sont définis + /* [1] On récupère les données de l'UE, si les champs sont définis + =========================================================================*/ + if( /*$line[0] != null && */ $line[1] != null && $line[2] != null ){ + + if( $line[0] != null && !in_array($line[0], $ueuid) ){ // on créé l'UE dans la liste s'il n'y est pas déjà + + array_push( // on ajoute l'UE + $mcc, + array( + 'nom' => $line[0], + 'libelle' => $line[1], + 'coefficient' => $line[2], + 'modules' => array(), + 'moduid' => array() + ) + ); + + array_push($ueuid, $line[0]); // on dis qu'on a déjà enregistré l'ue + } + + if( $line[0] != null ) + $ueIndex = array_search($line[0], $ueuid); + + /* [2] On récupère les données du module, si les champs sont définis =========================================================================*/ - if( /*$line[0] != null && */ $line[1] != null && $line[2] != null ){ - - if( $line[0] != null && !in_array($line[0], $ueuid) ){ // on créé l'UE dans la liste s'il n'y est pas déjà - + if( /*$line[3] != null && */ $line[4] != null && $line[5] != null ){ + + if( $line[3] != null && !in_array($line[3], $mcc[$ueIndex]['moduid']) ){ // on créé le module dans la liste de cet UE s'il n'y est pas déjà array_push( // on ajoute l'UE - $mcc, + $mcc[$ueIndex]['modules'], array( - 'nom' => $line[0], - 'libelle' => $line[1], - 'coefficient' => $line[2], - 'modules' => array(), - 'moduid' => array() + 'nom' => $line[3], + 'libelle' => $line[4], + 'coefficient' => $line[5], + 'controles' => array(), + 'ctrluid' => array() ) ); - array_push($ueuid, $line[0]); // on dis qu'on a déjà enregistré l'ue + array_push($mcc[$ueIndex]['moduid'], $line[3]); // on dis qu'on a déjà enregistré le module } - - if( $line[0] != null ) - $ueIndex = array_search($line[0], $ueuid); - - /* [2] On récupère les données du module, si les champs sont définis - =========================================================================*/ - if( /*$line[3] != null && */ $line[4] != null && $line[5] != null ){ - - if( $line[3] != null && !in_array($line[3], $mcc[$ueIndex]['moduid']) ){ // on créé le module dans la liste de cet UE s'il n'y est pas déjà - array_push( // on ajoute l'UE - $mcc[$ueIndex]['modules'], - array( - 'nom' => $line[3], - 'libelle' => $line[4], - 'coefficient' => $line[5], - 'controles' => array(), - 'ctrluid' => array() - ) - ); - - array_push($mcc[$ueIndex]['moduid'], $line[3]); // on dis qu'on a déjà enregistré le module - } - } - - if( $line[3] != null ) - $modIndex = array_search($line[3], $mcc[$ueIndex]['moduid']); - - /* [3] On récupère les contrôles du module, si les champs sont définis - =========================================================================*/ - if( $line[6] != null && $line[7] != null && $line[8] != null ){ - - if( !in_array($line[6], $mcc[$ueIndex]['modules'][$modIndex]['ctrluid']) ){ // on créé le contrôle dans la liste de ce module s'il n'y est pas déjà - array_push( // on ajoute l'UE - $mcc[$ueIndex]['modules'][$modIndex]['controles'], - array( - 'nom' => $line[6], - 'libelle' => $line[7], - 'coefficient' => $line[8] - ) - ); - - array_push($mcc[$ueIndex]['modules'][$modIndex]['ctrluid'], $line[6]); // on dis qu'on a déjà enregistré le module - } - } - } + if( $line[3] != null ) + $modIndex = array_search($line[3], $mcc[$ueIndex]['moduid']); + /* [3] On récupère les contrôles du module, si les champs sont définis + =========================================================================*/ + if( $line[6] != null && $line[7] != null && $line[8] != null ){ + + if( !in_array($line[6], $mcc[$ueIndex]['modules'][$modIndex]['ctrluid']) ){ // on créé le contrôle dans la liste de ce module s'il n'y est pas déjà + array_push( // on ajoute l'UE + $mcc[$ueIndex]['modules'][$modIndex]['controles'], + array( + 'nom' => $line[6], + 'libelle' => $line[7], + 'coefficient' => $line[8] + ) + ); + + array_push($mcc[$ueIndex]['modules'][$modIndex]['ctrluid'], $line[6]); // on dis qu'on a déjà enregistré le module + } + } } } + } - /* [4] Affinage des données, on supprime les données temporaires - =========================================================================*/ - foreach($mcc as $iter_ue=>$ue){ - unset( $mcc[$iter_ue]['moduid'] ); + /* [4] Affinage des données, on supprime les données temporaires + =========================================================================*/ + foreach($mcc as $iter_ue=>$ue){ + unset( $mcc[$iter_ue]['moduid'] ); - foreach($mcc[$iter_ue]['modules'] as $iter_m=>$mod) - unset( $mcc[$iter_ue]['modules'][$iter_m]['ctrluid'] ); - } + foreach($mcc[$iter_ue]['modules'] as $iter_m=>$mod) + unset( $mcc[$iter_ue]['modules'][$iter_m]['ctrluid'] ); + } - $answer->mcc = $mcc; - $answer->request = 'success'; - - - }else - $answer->request = 'param_error'; + $answer->mcc = $mcc; + $answer->request = 'success'; break; diff --git a/page/_JS/modules.js b/page/_JS/modules.js index b30139d..fc2bc71 100755 --- a/page/_JS/modules.js +++ b/page/_JS/modules.js @@ -93,4 +93,75 @@ creerSemestre.addEventListener('click', function(e){ }, false); + + + + + + +/* GESTION DE L'IMPORT DE MCC */ +var importMcc = document.getElementById('import_mcc'); +importMcc.addEventListener('change', function(e){ + + addClass( importMcc, 'loading' ); + + var file = importMcc.files[0]; + + /* IMPORTATION DU FICHIER */ + var fd = new FormData(); + fd.append('filename', 'import_mcc'); + fd.append('file', file, file.name); + + var xhr = new XMLHttpRequest(); + + xhr.open('POST', 'manager/import.php', true); + + xhr.onreadystatechange = function(){ + if( xhr.readyState == 4 ) + if( [0, 200].indexOf(xhr.status) > -1 ) + if( xhr.responseText == 'success' ){ + + + var request = { + level_0: 'phpExcel', + level_1: 'import_mcc' + } + + API.send(request, function(e){ + if( e.request == 'success' ){ // si on a récupéré l'objet MCC, on lance maintenant l'intégration + + requestIntegration = { + level_0: 'career', + level_1: 'setMCC', + semestre: 1, + mcc: e.mcc + } + + API.send( requestIntegration, function(f){ + if( f.request == 'success' ){ + console.log('mcc intégré'); + reload(); + }else + console.log('Mcc non intégré'); + }); + + }else + reload(); + }); + + + + + } + } + + xhr.send(fd); + + + + + + + +}, false); --> \ No newline at end of file diff --git a/page/modules.php b/page/modules.php index 06d93bd..ecdb269 100755 --- a/page/modules.php +++ b/page/modules.php @@ -529,7 +529,6 @@ if( permission('admin') ){ echo "
"; $anneesListe = array(); - $semestresListe = array(); /**********************/ /* AFFINAGE PAR ANNEE */ @@ -554,6 +553,7 @@ if( permission('admin') ){ /*************************/ /* AFFINAGE PAR SEMESTRE */ /*************************/ + $semestresListe = array(); foreach($answer->yearList as $annee){ if( in_array($annee['annee'], $anneesListe) ){ // on récupère la liste des ids foreach($annee['semestres'] as $semestre){ if( !in_array($semestre['id'], $semestresListe) ){ array_push($semestresListe, $semestre['id']); @@ -561,8 +561,7 @@ if( permission('admin') ){ }} // si semestreOpt n'est pas cohérent (pas pour cette année) - if( !in_array($semestreOpt, $semestresListe) ) $semestreOpt = null; - + if( $semestreOpt == null || !in_array($semestreOpt, $semestresListe) ) $semestreOpt = $semestresListe[0]; $count = 0; echo "
"; @@ -571,7 +570,6 @@ if( permission('admin') ){ foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){ $count++; - if( $semestreOpt == null ) $semestreOpt = $semestre['id']; if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné echo "".$semestre['formation']." - ".$semestre['nom'].''; @@ -632,7 +630,7 @@ if( permission('admin') ){ // if( $answer->request == 'success' ){ // si pas d'erreur echo "
"; echo "Importation des MCC d'un semestre
"; - echo "(Fichier .xlsx suivant le modèle : modèle de fichier)
"; + echo "(Fichier .xlsx suivant le modèle : modèle de fichier)
"; /**********************/ @@ -662,8 +660,6 @@ if( permission('admin') ){ echo "
"; foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){ - if( $semestreOpt == null ) $semestreOpt = $semestre['id']; - if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné echo "".$semestre['formation']." - ".$semestre['nom'].''; else // sinon on affiche normalement @@ -680,7 +676,7 @@ if( permission('admin') ){ - echo "
Importer les MCC
"; + echo "
Importer les MCC
"; echo "
"; @@ -742,12 +738,12 @@ if( permission('admin') ){ echo ""; echo "
"; - echo "
"; + echo "
"; echo "
"; echo "
"; echo "
"; - echo "
Créer le semestre
"; + echo "
Créer le semestre
"; diff --git a/src/nouveau_modele.xlsx b/src/files/admin_import_mcc.xlsx old mode 100755 new mode 100644 similarity index 100% rename from src/nouveau_modele.xlsx rename to src/files/admin_import_mcc.xlsx diff --git a/src/import_mcc.xlsx b/src/import_mcc.xlsx new file mode 100755 index 0000000..5570669 Binary files /dev/null and b/src/import_mcc.xlsx differ diff --git a/src/loader.gif b/src/loader.gif old mode 100644 new mode 100755 diff --git a/xdoc/empty.sql b/xdoc/empty.sql old mode 100644 new mode 100755