etudiants:2014:bertrand:bugreport3

Ceci est une ancienne révision du document !


En construction...

BugReport : plateforme de remonté d'incidents

Documentation technique - Sommaire :

  1. Gestion des groupes

Nom Type Descriptif
$_SESSION["ckAll"] Booléen Etat de la case à cocher permettant de sélectionner ou de désélectionner tous les groupes
$_SESSION["selectedGroups"] Tableau d'entiers Ids des groupes sélectionnés

4.1 vGroups

<div id="groups">
    <fieldset class="cadre">
    <legend><input type="checkbox" id="ckAll" title="(Dé)sélectionner les groupes">&nbsp;Groupes :</legend>
        <table id="usersTable">
            <?php Gui::show($data["groups"],"addDelete")?>
        </table>
        <div class="buttons">
            <div class="btn" id="btAdd" name="btAdd" title="Ajouter un nouveau groupe"><span class="add">Ajouter un groupe...</span></div>
            <div id="multi"><b>Pour la sélection :</b>&nbsp;
                <a href="#" class="delete" id="btMultiDelete" name="btMultiDelete" title="Supprimer les groupes sélectionnés">Supprimer</a>&nbsp;
            </div>
        </div>
    </fieldset>
</div>
<?php echo $data["js"];?>

4.2 vAddGroup

<?php $group=$data["group"];?>
<form id="frmAddGroup" name="frmAddGroup" onsubmit="return false;">
<fieldset>
<legend><?php echo $data["title"];?></legend>
    <input type="hidden" id="id" name="id" value="<?php echo $group->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 $group->getLibelle();?>" maxlength="30" required><br>
    <div class="buttons">
        <div id="btValidAddGroup" class="btn">Valider</div>
        <div id="btCancelAddGroup" class="btn">Annuler</div>
    </div>
</fieldset>
</form>
<?php echo $data["js"];?>

5.1 cGroupe/index

Fonctionnalité Descriptif
Gestion des groupes Contrôleur de gestion des groupes
Appel du contrôleur refresh

public function index(){
		$this->refresh();
	}

5.2 cGroupe/refresh

Fonctionnalité Descriptif
Liste des groupes Utilisé pour l'affichage initial et le rafraîchissement après une modification
Chargement des groupes $groups
Application de la sélection des groupes
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 vGroups

public function refresh(){
		//Chargement des groupes $groups
		$groups=DAO::getAll("Groupe");
		//Application de la sélection des groupes
		$selectedGroups=SessionUtils::getArray("selectedGroups");
		 
		$js=JsUtils::getAndBindTo("#btAdd", "click", "cGroupe/add","{}","#operation");
		$js.=JsUtils::getAndBindTo(".delete", "click", "cGroupe/confirmDelete","{}","#operation");
		$js.=JsUtils::getAndBindTo(".update", "click", "cGroupe/update","{}","#operation");
		$js.=JsUtils::getAndBindTo(".ck", "click", "cGroupe/select","{}","#message");
		$js.=JsUtils::setChecked("ck", $selectedGroups);
		$js.=JsUtils::setChecked("ckAll", SessionUtils::getBoolean("ckAll"));
		$js.=JsUtils::getAndBindTo("#deleteMulti", "click", "cGroupe/confirmDelete/multi","{}","#operation");
		$js.=JsUtils::postAndBindTo("#ckAll", "click", "cGroupe/selectAll/",'{ids: $("input:checkbox[class=ck]").map(function(){return this.value;}).get().join(",")}',"#message");
		 
		 
		$nb=sizeof($selectedGroups);
		if($nb>0)
			$js.=JsUtils::doSomethingOn("#multi", "show");
		else
			$js.=JsUtils::doSomethingOn("#multi", "hide");
		 
		$data=array("groups"=>$groups, "js"=>$js);
		$this->loadView("vGroups", $data);
	}

5.3 cGroupe/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'un groupe
Si le formulaire est posté (POST)
Instanciation d'un nouveau groupe
Affectation des variables du POST aux membres du groupe
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
#btValidAddGroup -> add
#btCancelAddGroup -> annulation
Passage des variables et chargement de la vue vAddGroup

public function add(){
		if($_SERVER['REQUEST_METHOD']=='POST'){
			$group=new Groupe();
			RequestUtils::setValuesToObject($group,RequestUtils::getPost());
			 
			 
			if(DAO::insert($group)){
				Gui::showOne($group);
				echo " ajouté";
				echo JsUtils::get("cGroupe/refresh","{}","#groups");
			}else
				echo "ajout impossible";
			echo JsUtils::doSomethingOn("#operation", "hide",200);
		}else{
			$js=JsUtils::postFormAndBindTo("#btValidAddGroup", "click", "cGroupe/add", "frmAddGroup","#message",true);
			$js.=JsUtils::doSomeThingAndBindTo("#btCancelAddGroup", "click", "#operation","hide",200);
			$js.=JsUtils::setHtmlAndBindTo("#btCancelAddGroup", "click", "#message","Opération d\'ajout annulée");
			$js.=JsUtils::doSomethingOn("#operation", "show",400);
			 
			$group=new Groupe();
			$this->loadView("vAddGroup",array("group"=>$group,"js"=>$js,"title"=>"Ajouter un groupe :"));
		}
	}

5.4 cGroupe/update

Scénario pratiquement identique au contrôleur cGroupe/add

public function update($id){
		if($_SERVER['REQUEST_METHOD']=='POST'){
			$group=new Groupe();
			RequestUtils::setValuesToObject($group,RequestUtils::getPost());
			 
			if(DAO::update($group)){
				Gui::showOne($group);
				echo " modifié";
				echo JsUtils::get("cGroupe/refresh","{}","#groups");
			}else
				echo "modification impossible";
			echo JsUtils::doSomethingOn("#operation", "hide",200);
		}else{
			$id=str_replace("update", "", $id[0]);
			if(is_numeric($id)){
				$group=DAO::getOne("Groupe", "id=".$id);
				$js=JsUtils::postFormAndBindTo("#btValidAddGroup", "click", "cGroupe/update", "frmAddGroup","#message",true);
				$js.=JsUtils::doSomeThingAndBindTo("#btCancelAddGroup", "click", "#operation","hide",200);
				$js.=JsUtils::setHtmlAndBindTo("#btCancelAddGroup", "click", "#message","Opération de mise à jour annulée");
				$js.=JsUtils::doSomethingOn("#operation", "show",400);
				$this->loadView("vAddGroup",array("group"=>$group,"js"=>$js,"title"=>"Modifier le groupe :"));
			}
		}
	}

  • etudiants/2014/bertrand/bugreport3.1385473219.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)