Ceci est une ancienne révision du document !
BugReport : plateforme de remontée d'incidents
Documentation technique - Sommaire :
- Gestion des applications
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);
}
Documentation technique - Sommaire :
- Gestion des applications





