BugReport : plateforme de remontée d'incidents
Documentations techniques - Sommaire :
- Gestion des applications
Documentations de supports- Sommaire :
Documentations de tests - Sommaire :
Gestion des applications
1- Fonctionnalités
2- Classes métiers
3- Variables de session ($_SESSION)
Nom | Type | Descriptif |
---|---|---|
$_SESSION["ckAll"] | Booléen | Etat de la case à cocher permettant de sélectionner ou de désélectionner toute les applications |
$_SESSION["selectedApps"] | Tableau d'entiers | Ids des applications sélectionnés |
$_SESSION["selectedUsesCases"] | Tableau d'entiers | Ids des cas d'utilisations sélectionnés |
4- Vues
4.1 VApps
Liste des applications
<div id="apps"> <fieldset class="cadre"> <legend><input type="checkbox" id="ckAll" title="(Dé)sélectionner les applications"> Applications :</legend> <table id="appsTable"> <?php Gui::show($data["apps"],"addDelete")?> </table> <div class="buttons"> <div class="btn" id="btAdd" name="btAdd" title="Ajouter une nouvelle application"><span class="add">Ajouter une application...</span></div> <div id="multi"><b>Pour la sélection :</b> <a href="#" class="delete" id="btMultiDelete" name="btMultiDelete" title="Supprimer les applications sélectionnées">Supprimer</a> </div> </div> </fieldset> </div> <?php echo $data["js"];?>
4.2 vAddApp
Ajouter une application
<?php $app=$data["app"];?> <form id="frmAddApp" name="frmAddApp" onsubmit="return false;"> <fieldset> <legend><?php echo $data["title"];?></legend> <input type="hidden" id="id" name="id" value="<?php echo $app->getId();?>"> <label class="label" for="libelle">Libellé <font color="red">*</font> :</label><input title="Libellé obligatoire" placeholder="libellé" type="text" id="libelle" name="libelle" value="<?php echo $app->getLibelle();?>" maxlength="30" required><br> <label class="label" for="mail">Descriptif :</label><input title="Descriptif de l'application" type="text" id="descriptif" name="descriptif" value="<?php echo $app->getDescriptif();?>"><br> <label class="label" for="version">Version :</label><input title="Version de l'application" placeholder="1.0.0.0" type="text" id="version" name="version" value="<?php echo $app->getVersion();?>"><br> <div class="buttons"> <?php echo $data['addUseCase'];?> <div id="btValidAddApp" class="btn">Valider</div> <div id="btCancelAddApp" class="btn">Annuler</div> </div> </fieldset> </form> <?php echo $data["js"];?>
4.3 vUseCase
Liste des cas d'utilisations de l'application sélectionnée
<div id="useCases"> <?php //$useCase=$data["useCase"];?> <form id="frmUseCase" name="frmUseCase" onsubmit="return false;"> <fieldset> <legend><?php echo $data["title"];?></legend> <input type="hidden" id="idApp" name="idApp" value="<?php echo $data["idApp"];?>"> <?php echo $data['useCases'];?> <div class="buttons"> <div class="btn" id="btAddUseCase" name="btAdd" title="Ajouter un cas d'utilisation"><span class="add">Ajouter un cas d'utilisation...</span></div> <div id="btValidUseCase" class="btn">Valider</div> <div id="btCancelUseCase" class="btn">Annuler</div> <div id="multiUseCase"><b>Pour la sélection :</b> <a href="#" class="deleteUseCase" id="btMultiDeleteUseCase" name="btMultiDeleteUseCase" title="Supprimer les cas d'utilisations sélectionnées">Supprimer</a> </div> </div> </fieldset> </form> </div> <?php echo $data["js"];?>
4.4 vAddUseCase
Ajouter un cas d'utilisation a l'application sélectionnée.
<form id="frmAddUseCase" name="frmAddUseCase" onsubmit="return false;"> <fieldset> <legend><?php echo $data["title"];?></legend> <input type="hidden" id="application" name="application" value="<?php echo $data['idApp'];?>"><br> <label class="label" for="code">Code <font color="red">*</font> :</label><input title="Code obligatoire" placeholder="Votre code" type="text" id="code" name="code" value="" maxlength="30" required><br> <label class="label" for="libelle">libelle <font color="red">*</font> :</label><input title="Libelle obligatoire" placeholder="Votre libelle" type="text" id="libelle" name="libelle" value="" maxlength="30" required><br> <div class="buttons"> <div id="btValidAddUseCase" class="btn">Valider</div> <div id="btCancelAddUseCase" class="btn">Annuler</div> </div> </fieldset> </form> <?php echo $data["js"];?>
5- Contrôleurs
5.1 cApplication/index
Fonctionnalité | Descriptif |
---|---|
Gestion des applications | Contrôleur de gestion des applications |
Appel du contrôleur refresh |
public function index(){ $this->refresh(); }
5.2 cApplication/refresh
Fonctionnalité | Descriptif |
---|---|
Liste des applications | Utilisé pour l'affichage initial et le rafraîchissement après une modification |
Chargement des applications $apps | |
Application de la sélection d'applications | |
Mise en place logique client
#btAdd -> add
.delete -> confirmDelete
.update -> update
.ck -> select
#ckAll -> selectAll
#deleteMulti -> confirmDelete
|
|
Passage de variables($data[]) et affichage de la vue vApps |
public function refresh(){ //Chargement des groupes $groups $apps=DAO::getAll("Application"); //Application de la sélection des groupes $selectedApps=SessionUtils::getArray("selectedApps"); $js=JsUtils::getAndBindTo("#btAdd", "click", "cApplication/add","{}","#operation"); $js.=JsUtils::getAndBindTo(".delete", "click", "cApplication/confirmDelete","{}","#operation"); $js.=JsUtils::getAndBindTo(".update", "click", "cApplication/update","{}","#operation"); $js.=JsUtils::doSomeThingAndBindTo(".update", "click", "#operation2","hide",200); $js.=JsUtils::getAndBindTo(".ck", "click", "cApplication/select","{}","#message"); $js.=JsUtils::setChecked("ck", $selectedApps); $js.=JsUtils::setChecked("ckAll", SessionUtils::getBoolean("ckAll")); $js.=JsUtils::getAndBindTo("#deleteMulti", "click", "cApplication/confirmDelete/multi","{}","#operation"); $js.=JsUtils::postAndBindTo("#ckAll", "click", "cApplication/selectAll/",'{ids: $("input:checkbox[class=ck]").map(function(){return this.value;}).get().join(",")}',"#message"); $nb=sizeof($selectedApps); if($nb>0) $js.=JsUtils::doSomethingOn("#multi", "show"); else $js.=JsUtils::doSomethingOn("#multi", "hide"); $data=array("apps"=>$apps, "js"=>$js); $this->loadView("vApps", $data); }
5.3 cApplication/add
Remarque :
Le contrôleur add gère l'appel de l'affichage du formulaire d'ajout (GET) et la soumission de ce même formulaire (POST).
Fonctionnalité | Descriptif |
---|---|
Ajout | Ajout d'une application |
Si le formulaire est posté (POST) | |
Instanciation d'une nouvelle application
Affectation des variables du POST aux membres de l'application
Ajout dans la base de données
Appel du contrôleur refresh
Affichage du message de mise à jour |
|
Sinon (GET) | |
Mise en place logique client
#btValidAddApp -> add
#btCancelAddApp -> annulation
Passage des variables et chargement de la vue vAddApp
|
public function add(){ if($_SERVER['REQUEST_METHOD']=='POST'){ $app=new Application(); RequestUtils::setValuesToObject($app,RequestUtils::getPost()); if(DAO::insert($app)){ Gui::showOne($app); echo " ajoute"; echo JsUtils::get("cApplication/refresh","{}","#apps"); }else echo "ajout impossible"; echo JsUtils::doSomethingOn("#operation", "hide",200); }else{ $js=JsUtils::postFormAndBindTo("#btValidAddApp", "click", "cApplication/add", "frmAddApp","#message",true); $js.=JsUtils::doSomeThingAndBindTo("#btCancelAddApp", "click", "#operation","hide",200); $js.=JsUtils::setHtmlAndBindTo("#btCancelAddApp", "click", "#message","Operation d\'ajout annulee"); $js.=JsUtils::doSomethingOn("#operation", "show",400); $addUseCase=""; $app=new Application(); $this->loadView("vAddApp",array("app"=>$app,"js"=>$js,"title"=>"Ajouter une application :","addUseCase"=>$addUseCase)); } }
5.4 cApplication/update
Scénario pratiquement identique au contrôleur cApplication/add
public function update($id){ if($_SERVER['REQUEST_METHOD']=='POST'){ $app=new Application(); RequestUtils::setValuesToObject($app,RequestUtils::getPost()); if(DAO::update($app)){ Gui::showOne($app); echo " modifie"; echo JsUtils::get("cApplication/refresh","{}","#apps"); }else echo "modification impossible"; echo JsUtils::doSomethingOn("#operation", "hide",200); }else{ $id=str_replace("update", "", $id[0]); if(is_numeric($id)){ $app=DAO::getOne("Application", "id=".$id); $js=JsUtils::getAndBindTo("#btUseCase", "click", "cUseCase/refresh","{\"id\":".$id."}","#operation2"); $js.=JsUtils::doSomeThingAndBindTo("#btUseCase", "click", "#operation2","show",200); $js.=JsUtils::doSomeThingAndBindTo("#btCancelAddApp", "click", "#operation2","hide",200); $js.=JsUtils::doSomeThingAndBindTo("#btCancelAddApp", "click", "#operation3","hide",200); $js.=JsUtils::postFormAndBindTo("#btValidAddApp", "click", "cApplication/update", "frmAddApp","#message",true); $js.=JsUtils::doSomeThingAndBindTo("#btCancelAddApp", "click", "#operation","hide",200); $js.=JsUtils::setHtmlAndBindTo("#btCancelAddApp", "click", "#message","Operation de mise a jour annulee"); $js.=JsUtils::doSomethingOn("#operation", "show",400); $addUseCase="<div id='btUseCase' class='btn'>Cas d'utilisations</div>"; $this->loadView("vAddApp",array("app"=>$app,"js"=>$js,"title"=>"Modifier l'application :","addUseCase"=>$addUseCase)); } } }
5.5 cApplication/confirmDelete
Fonctionnalité | Descriptif |
---|---|
Confirmation | Confirmation pour suppression d'application(s) |
Test pour savoir si la sélection est unique ou multiple | |
Affichage du message de confirmation et des options possibles |
|
Mise en place logique client
#confirmDelete -> delete ou deleteMulti
#cancelDelete -> annulation
|
public function confirmDelete($id){ $id=str_replace("delete", "", $id[0]); if(is_numeric($id)){ echo "<div class='cadre'>Souhaitez vous supprimer l'application ? <a id='confirmDelete".$id."' href='#' class='accept'>Confirmer la suppression</a>"; echo "<a id='cancelDelete' href='#' class='cancel'>Annuler</a>"; echo JsUtils::getAndBindTo("#confirmDelete".$id, "click", "cApplication/delete/".$id,"{}","#message"); }else{ echo "<div class='cadre'>Souhaitez vous supprimer les applications sélectionnés ? <a id='confirmDelete".$id."' href='#' class='accept'>Confirmer la suppression</a>"; echo "<a id='cancelDelete' href='#' class='cancel'>Annuler</a>"; echo JsUtils::getAndBindTo("#confirmDelete".$id, "click", "cApplication/deleteMulti/".$id,"{}","#message"); } echo JsUtils::doSomethingOn("#operation", "show",400); echo JsUtils::doSomeThingAndBindTo("#cancelDelete", "click", "#operation", "hide",200,JsUtils::_setHtml("#message","Suppression annule")); }
5.6 cApplication/deleteMulti
Fonctionnalité | Descriptif |
---|---|
Suppression | Supprimer 1 sélection d'applications |
Récupération (dans 1 tableau stocké en session) des ids de(s) application(s) à supprimer | |
Parcours des applications et suppression dans la BDD | |
Mise à jour de la sélection (en session) | |
Affichage du message post-suppression |
public function deleteMulti(){ $selectedAppId=SessionUtils::getArray("selectedApps"); $nb=0; foreach ($selectedAppId as $appId){ $app=new Application(); $app->setId($appId); if(DAO::delete($app)){ SessionUtils::removeValueFromArray("selectedApps", $appId); $nb++; } } echo JsUtils::get("cApplication/refresh","{}","#apps"); echo Gui::pluriel("application supprime", "applications supprimes", $nb); echo JsUtils::doSomethingOn("#operation", "hide",200); }
5.7 cApplication/delete
Fonctionnalité | Descriptif |
---|---|
Suppression | Supprimer 1 application |
Récupération (GET) de l'$id de l'application à supprimer | |
Suppression dans la BDD | |
Mise à jour de la sélection (en session) | |
Affichage du message post-suppression |
public function delete($id){ $id=str_replace("delete", "", $id[0]); if(is_numeric($id)){ $app=new Application(); $app->setId($id); if(DAO::delete($app)){ SessionUtils::removeValueFromArray("selectedApps", $id); Gui::showOne($app); echo " supprimé"; echo JsUtils::get("cApplication/refresh","{}","#apps"); }else { echo "Suppression impossible"; } } echo JsUtils::doSomethingOn("#operation", "hide",200); }
5.8 cApplication/select
Fonctionnalité | Descriptif |
---|---|
Sélection | (Dé)Sélectionner 1 application |
Récupération (GET) de l'$id de l'application à (dé)sélectionner | |
Ajout ou suppression de l'id de l'application dans le tableau $_SESSION["selectedApps"] | |
Affichage du message post-(dé)sélection |
public function select($id){ $id=str_replace("ck", "", $id[0]); if(is_numeric($id)){ SessionUtils::addOrRemoveValueFromArray("selectedApps", $id); $nb=sizeof($_SESSION["selectedApps"]); if($nb>0) echo JsUtils::doSomethingOn("#multi", "show"); else echo JsUtils::doSomethingOn("#multi", "hide"); echo Gui::pluriel("application selectionne", "applications selectionnes", $nb); } }
5.9 cApplication/selectAll
Fonctionnalité | Descriptif |
---|---|
Sélection | (Dé)Sélectionner toutes les applications |
Récupération de l'opération à effectuer : sélection ou désélection | |
Mise à jour dans le tableau $_SESSION["selectedApps"] | |
Affichage du message post-(dé)sélection |
public function selectAll(){ $nb=0; $ckAll=SessionUtils::checkBoolean("ckAll"); if(!$ckAll){ $_SESSION["selectedApps"]=array(); }else{ $_SESSION["selectedApps"]=explode(",", $_POST["ids"]); $nb=sizeof($_SESSION["selectedApps"]); } echo JsUtils::get("cApplication/refresh/","{}","#apps"); echo Gui::pluriel("application selectionne", "applications selectionnes", $nb); }