giteaservice = $giteaservice; } public function list($id, Request $request) { $em = $this->getDoctrine()->getManager(); // Récupérer les repos de gitea if($id==0) $scrums=$em->getRepository("App:Scrum")->findBy([],["name"=>"ASC"]); else $scrums=$em->getRepository("App:Scrum")->findBy(["id"=>$id],["name"=>"ASC"]); $giteacategorys=[]; $gitearepos=[]; $giteamilestones=[]; $giteacolumns=[]; $gitealabels=[]; $giteaassignees=$em->getRepository("App:User")->findBy([],["username"=>"ASC"]); foreach($scrums as $key => $scrum) { if(!in_array($scrum->getCategory(),$giteacategorys)) array_push($giteacategorys,$scrum->getCategory()); $gitearepo=$this->giteaservice->getRepo($scrum->getGiteajson()["id"]); if(!$gitearepo) die("Probleme de connexion avec gitea veuillez vous reconnecter"); if($gitearepo->updated_at!=$scrum->getGiteajson()["updated_at"]||$gitearepo->open_issues_count!=$scrum->getGiteajson()["open_issues_count"]) { $scrum->setGiteajson(json_decode(json_encode($gitearepo), true)); $em->persist($scrum); $em->flush(); } if($gitearepo->open_issues_count>0) { $giteatmp=$this->giteaservice->getMilestones($scrum->getGiteajson()["owner"]["login"],$scrum->getGiteajson()["name"]); foreach($giteatmp as $key => $value) { $giteatmp[$key]->title = $scrum->getGiteajson()["full_name"]. " = ".$giteatmp[$key]->title; } array_push($giteatmp,["id"=>$scrum->getGiteajson()["full_name"],"title"=> $scrum->getGiteajson()["full_name"]. " = Aucun Jalon"]); $giteamilestones=array_merge($giteamilestones,$giteatmp); $giteaissues=$this->giteaservice->getIssues($scrum->getGiteajson()["owner"]["login"],$scrum->getGiteajson()["name"]); $json=$scrum->getGiteajson(); $json["issues"]=$giteaissues; $json["category"]=$scrum->getCategory(); $tmp=[]; foreach($scrum->getScrumcolumns() as $column) { array_push($tmp,$column->getGiteaid()); if(!in_array($column->getGiteajson()["name"],$giteacolumns)) array_push($giteacolumns,$column->getGiteajson()["name"]); } $json["columns"]=$tmp; array_push($gitearepos,$json); foreach($giteaissues as $giteaissue) { foreach($giteaissue->labels as $label) { if(!in_array($label->name,$gitealabels)) array_push($gitealabels,$label->name); } } } } $keysort = array_column($giteamilestones, 'title'); array_multisort($keysort, SORT_DESC, $giteamilestones); sort($giteacolumns); sort($gitealabels); sort($giteacategorys); // Préférences utilisateur $filtercategorys = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filtercategorys",$id); $filterrepos = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filterrepos",$id); $filtermilestones = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filtermilestones",$id); $filtercolumns = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filtercolumns",$id); $filterlabels = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filterlabels",$id); $filterassignees = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filterassignees",$id); return $this->render($this->render.'list.html.twig',[ "useheader" => true, "usesidebar" => false, "id" => $id, "giteacategorys" => $giteacategorys, "gitearepos" => $gitearepos, "giteamilestones" => $giteamilestones, "giteacolumns" => $giteacolumns, "gitealabels" => $gitealabels, "giteaassignees" => $giteaassignees, "filtercategorys" => $filtercategorys, "filterrepos" => $filterrepos, "filtermilestones" => $filtermilestones, "filtercolumns" => $filtercolumns, "filterlabels" => $filterlabels, "filterassignees" => $filterassignees, ]); } }