diff --git a/config/repositories.json b/config/repositories.json index 034db2d..fb237b4 100755 --- a/config/repositories.json +++ b/config/repositories.json @@ -1,5 +1,5 @@ { - "user" :[ + "user": [ "create", "search", @@ -16,7 +16,7 @@ "delete" ], - "machine" :[ + "machine": [ "create", "search", @@ -28,10 +28,12 @@ "getClusters", + "edit", + "delete" ], - "cluster" :[ + "cluster": [ "create", "link", "unlink", diff --git a/manager/module/machineDefault.php b/manager/module/machineDefault.php index 09a6e18..0cc662d 100755 --- a/manager/module/machineDefault.php +++ b/manager/module/machineDefault.php @@ -257,6 +257,51 @@ + /* MODIFIE UNE MACHINE DONNEE + * + * @id_machine UID de la machine + * @code Code RFID de la machine + * @name Identifiant l'utilisateur + * + * @return status Retourne si oui ou non tout s'est bien deroule + * + */ + public static function edit($id_machine=null, $code=null, $name=null){ + /* [1] Normalisation + verification des donnees + =========================================================*/ + $correct_param = Database::check('auto_increment_id', $id_machine); + $correct_param = $correct_param && Database::check('machine.code', $code); + $correct_param = $correct_param && Database::check('machine.name', $name); + + // Si les parametres ne sont pas corrects, on retourne une erreur + if( !$correct_param ) + return array('ModuleError' => ManagerError::ParamError); + + + /* [2] On verifie l'existence de la machine + =========================================================*/ + $machine_exists = new Repo('machine/getById', array($id_machine)); + $machine_exists = $machine_exists->answer(); + + // Si on a recupere aucun utilisateur, on retourne une erreur + if( !is_array($machine_exists) ) + return array('ModuleError' => ManagerError::ModuleError); + + + /* [3] Modification de la machine + =========================================================*/ + $request = new Repo('machine/edit', array($id_machine, $code, $name)); + $answer = $request->answer(); + + return array( + 'status' => $answer + ); + } + + + + + /* SUPPRIME UNE MACHINE DONNEE * * @id_machine UID de la machine en question diff --git a/manager/repo/machine.php b/manager/repo/machine.php index 11f2502..c5ef7ca 100644 --- a/manager/repo/machine.php +++ b/manager/repo/machine.php @@ -242,6 +242,62 @@ + /* MODIFICATION D'UNE MACHINE DONNEE + * + * @id_machine UID de la machine + * @code Code RFID de la machine + * @name Identifiant l'utilisateur + * + * @return status Renvoie si oui ou non tout s'est bien passe + * + */ + public static function edit($id_machine, $code, $name){ + /* [1] Verification de l'unicite de code+name (si differents) + =========================================================*/ + // On recupere les machine ayant le meme code ou name (si existent) + $getbycode = self::getByCode($code); + $getbyname = self::getByName($name); + + $check_unique = is_array($getbycode) && $getbycode['id_machine'] == $id_machine || !is_array($getbycode); + $check_unique = $check_unique && is_array($getbyname) && $getbyname['id_machine'] == $id_machine || !is_array($getbyname); + + // Si un utilisateur a deja ce code ou ce name (sauf lui), on renvoie une erreur + if( !$check_unique ) + return false; + + /* [2] Modification de la machine + =========================================================*/ + $edit_machine = Database::getPDO()->prepare("UPDATE machine + SET code = :code, + name = :name + WHERE id_machine = :id_machine"); + $edit_machine->execute(array( + ':code' => $code, + ':name' => $name, + ':id_machine' => $id_machine + )); + + + + /* [3] On retourne si tout a ete modifie, si erreur + =========================================================*/ + $check_machine = self::getById($id_machine); + + $checker = $check_machine['id_machine'] == $id_machine; + $checker = $checker && $check_machine['code'] == $code; + $checker = $checker && $check_machine['name'] == $name; + + // On retourne l'etat de la modification + return $checker; + } + + + + + + + + /* SUPPRIME UNE MACHINE DONNE * * @id_machine UID de la machine en question diff --git a/manager/repo/user.php b/manager/repo/user.php index 16c320e..b3070da 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -300,7 +300,7 @@ =========================================================*/ // On recupere les utilisateurs ayant le meme code ou username (si existent) $getbycode = self::getByCode($code); - $getbyusername = self::getByCode($username); + $getbyusername = self::getByUsername($username); $check_unique = is_array($getbycode) && $getbycode['id_user'] == $id_user || !is_array($getbycode); $check_unique = $check_unique && is_array($getbyusername) && $getbyusername['id_user'] == $id_user || !is_array($getbyusername); diff --git a/todo.md b/todo.md index ec31d77..67d1dde 100755 --- a/todo.md +++ b/todo.md @@ -8,8 +8,6 @@ # EN COURS # ############ -- [ ] [machineDefault] Implementer la modification - - [ ] [view/js/machines] Recherche instantanee - [ ] [view/js/users] Recherche instantanee @@ -18,6 +16,8 @@ ######## # FAIT # ######## +- [x] [machines.js][machineDefault][machineRepo] Gestion de la nouvelle modification (avec recherche) +- [x] [machineDefault] Implementer la modification - [x] [users.js][userDefault][userRepo] Gestion de la nouvelle modification (avec recherche) - [x] [view/js/machines] Modification de machine - [x] [userDefault] Implementer la modification diff --git a/view/js/machines.js b/view/js/machines.js index 67e6c7b..98fb1d4 100644 --- a/view/js/machines.js +++ b/view/js/machines.js @@ -269,6 +269,10 @@ if( section.edit.element != null ){ + + + + /* (2) Gestion de la recherche de la machine */ var lastsearch = null; var searchindex = 0; @@ -306,6 +310,39 @@ if( section.edit.element != null ){ + + + /* (n) Gestion de l'envoi du formulaire */ + section.edit.input.submit.addEventListener('click', function(e){ + // On annule l'envoi de base (PHP) + e.preventDefault(); + + // Si l'id est defini + if( section.edit.input.search.id.value != '' ){ + + var request = { + path: 'machineDefault/edit', // On veut creer une machine + data: [ + section.edit.input.search.id.value, + section.edit.input.code.value, + section.edit.input.name.value + ] + }; + + api.send(request, function(answer){ + if( answer.ModuleError == 0 && answer.status == true ) // Tout s'est bien deroule + console.log('Machine modifiee!'); + else // Erreur + console.error('ModuleError::'+answer.ModuleError); + }); + + } + + }, false); + + + + } \ No newline at end of file