framework-web:symfony:td7

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
framework-web:symfony:td7 [2018/03/28 03:04] – [1.1- Route project/{idProject}/board] jcheronframework-web:symfony:td7 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 9: Ligne 9:
   * Suite Projet **boards**   * Suite Projet **boards**
   * Application gestion de projets SCRUM   * Application gestion de projets SCRUM
 +
 +Commencer, à partir du dossier de votre projet par :
 +
 +<sxh bash;gutter:false>
 +composer update
 +</sxh>
  
 ===== Objectifs ===== ===== Objectifs =====
   * Conception d'interfaces Web client riche   * Conception d'interfaces Web client riche
-  * Manipulations datas+  * Manipulations de données avec Doctrine
   * Utilisation de composants   * Utilisation de composants
  
Ligne 29: Ligne 35:
 {{:richclient:emberjs:td7:projectstoriesboard.png?900|Dashboard}} {{:richclient:emberjs:td7:projectstoriesboard.png?900|Dashboard}}
  
 +=== Base de données ===
 +La base de données utilisée a été volontairement dénormalisée :
 +
 +Par exemple, la table **story** possède un champ **step** mémorisant l'attribut title de la step associée, et non l'id de step, comme on aurait pu s'y attendre.
 +
 +Il n'y a donc pas de relation effective de type père/fils dans la base entre **step et story**, ce qui implique :
 +  * qu'il n'y a pas de membre step de type Step dans la classe **Story**
 +  * pas plus qu'il n'y a de collection de **stories** dans chaque instance de **Step**
 +
 +Pour charger les instances de Story dans chaque Step, il faut donc le faire programmatiquement :
 +<sxh php>
 + protected function getStepsAndStories($project,StepRepository $stepRepo){
 +    $steps=$stepRepo->findAll();
 +    $stories=$project->getStories()->toArray();
 +    foreach ($steps as $step){
 +    $step->stories=array_filter($stories,function($story) use($step){
 +    return ($story->getStep()==$step->getTitle());
 +    });
 +    }
 +    return $steps;
 +}
 +</sxh>  
  
 === Comportement/conception de l'interface === === Comportement/conception de l'interface ===
Ligne 55: Ligne 83:
         'ten', 'eleven', 'twelve', 'thirteen', 'fourteen',         'ten', 'eleven', 'twelve', 'thirteen', 'fourteen',
         'fifteen', 'sixteen']         'fifteen', 'sixteen']
 +</sxh>
 +== Exemple d'utilisation du composant HtmlGrid de phpMv ==
 +
 +<sxh php;gutter:false>
 +$grid=$this->_semantic->htmlGrid("steps-grid");
 +foreach ($steps as $step){
 + $col=$grid->addCol();
 + $segTitle=new HtmlSegment("",'<i class="step forward icon"></i>&nbsp;'.$step->getTitle());
 + $segTitle->addClass("secondary");
 + $segContent=new HtmlSegment("step-".$step->getId());
 + $segContent->addClass("drop-zone");
 + $segContent->setProperty("data-ajax", $step->getTitle());
 + $segTitle->setAttachment($segContent,"top");
 + foreach ($step->stories as $story){
 + $segContent->addContent($this->displayStory($tagRepo,$story));
 + }
 + $col->setContent([$segTitle,$segContent]);
 +}
 </sxh> </sxh>
  
Ligne 94: Ligne 140:
 $js=$this->gui->getDeferred("project/settings","#settings-elm"); $js=$this->gui->getDeferred("project/settings","#settings-elm");
 </sxh> </sxh>
 +
 +Exemple avec utilisation de javascript pour compléter l'url :
 +<sxh php;gutter:false>
 +$js=$this->gui->getDeferred("project/settings","#settings-elm",["attr"=>'js:data+"/5"']);
 +</sxh>
 +
 +==== -- Route Stories/edit/{idStory} ====
 +
 +
 +<wrap mytodo>**<nowiki>//</nowiki>TODO 2.2**</wrap>
 +
 +<wrap info>Affiche la **story** correspondant au **code** passé dans l'url.</wrap>
 +
 +{{:richclient:emberjs:td7:storytasks.png?|Story tasks}}
 +
 +**Comportement de l'interface :**
 +
 +  * Une task **done** est barrée
 +  * Les cases à cocher permettent de faire passer une tâche de non réalisée (done=false) à réalisée (done=true) et inversement
 +
 +===== Thanks =====
 +
 +
 +<html><div class="todo">
 +<div style="font-size:14px;font-weight: bold;">Si vous avez apprécié :</div>
 +<br>
 +<a class="github-button" href="https://github.com/symfony/symfony" data-icon="octicon-star" data-show-count="true" aria-label="Star symfony/symfony on GitHub">symfony thanks</a>
 +<br>
 +<a class="github-button" href="https://github.com/phpmv/phpmv-ui" data-icon="octicon-star" data-show-count="true" aria-label="Star phpmv/phpmv-ui on GitHub">phpmv-UI toolkit thanks</a>
 +<br>
 +<a class="github-button" href="https://github.com/Semantic-Org/Semantic-UI" data-icon="octicon-star" data-show-count="true" aria-label="Star Semantic-Org/Semantic-UI on GitHub">Semantic-UI thanks</a>
 +</html>
 +<html></div></html>
 +<html><script async defer src="https://buttons.github.io/buttons.js"></script></html>
  
  • framework-web/symfony/td7.1522199062.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)