etudiants:2014:bertrand:bugreport2

BugReport : plateforme de remontée d'incidents

Documentations techniques - Sommaire :

  1. Gestion des applications

Documentations de supports- Sommaire :

Documentations de tests - Sommaire :

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.1 VApps

Liste des applications

<div id="apps">
    <fieldset class="cadre">
    <legend><input type="checkbox" id="ckAll" title="(Dé)sélectionner les applications">&nbsp;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>&nbsp;
                <a href="#" class="delete" id="btMultiDelete" name="btMultiDelete" title="Supprimer les applications sélectionnées">Supprimer</a>&nbsp;
            </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>&nbsp;
	                <a href="#" class="deleteUseCase" id="btMultiDeleteUseCase" name="btMultiDeleteUseCase" title="Supprimer les cas d'utilisations sélectionnées">Supprimer</a>&nbsp;
	         </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.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);
	}

  • etudiants/2014/bertrand/bugreport2.txt
  • Dernière modification : il y a 5 ans
  • de 127.0.0.1