diff --git a/config/routes.yaml b/config/routes.yaml index 6e0ffe1..68b3f31 100644 --- a/config/routes.yaml +++ b/config/routes.yaml @@ -353,6 +353,10 @@ app_scrumissue_color: path: /user/scrumissue/color defaults: { _controller: App\Controller\ScrumissueController:color } +app_scrumissue_assigne: + path: /user/scrumissue/assigne + defaults: { _controller: App\Controller\ScrumissueController:assigne } + app_scrumissue_ctrlchange: path: /user/scrumissue/ctrlchange defaults: { _controller: App\Controller\ScrumissueController:ctrlchange } diff --git a/src/Controller/ScrumController.php b/src/Controller/ScrumController.php index 80640ac..57af9bb 100755 --- a/src/Controller/ScrumController.php +++ b/src/Controller/ScrumController.php @@ -403,7 +403,7 @@ class ScrumController extends AbstractController $filterassignees = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filterassignees",$id); $filterexcludes = $em->getRepository("App:User")->getUserpreference($this->getUser(),"filterexcludes",$id); $showfilters = $em->getRepository("App:User")->getUserpreference($this->getUser(),"showfilters",$id); - + return $this->render($this->render.'view.html.twig', [ 'useheader' => true, 'usesidebar' => false, diff --git a/src/Controller/ScrumissueController.php b/src/Controller/ScrumissueController.php index c174ce3..8785793 100755 --- a/src/Controller/ScrumissueController.php +++ b/src/Controller/ScrumissueController.php @@ -138,6 +138,7 @@ class ScrumissueController extends AbstractController $output=[]; $output["weight"]=$scrumissue->getWeight(); + $output["giteajson"]=$scrumissue->getGiteajson(); return new JsonResponse($output); } @@ -275,6 +276,26 @@ class ScrumissueController extends AbstractController return new JsonResponse([]); } + + public function assigne(Request $request) + { + $em = $this->getDoctrine()->getManager(); + + $id=$request->get('id'); + $assignees=$request->get('assignees'); + + // Rechercher l'issue en cours + $scrumissue=$em->getRepository("App:Scrumissue")->find($id); + if(!$scrumissue) return new JsonResponse(['message' => 'No Issue'], 403); + + // Affecter l'issue + $response=$this->giteaservice->patchissue($scrumissue->getScrum()->getGiteajson()["owner"]["login"],$scrumissue->getScrum()->getGiteajson()["name"],$scrumissue->getGiteanumber(),["assignees"=>$assignees]); + if(!$response) return new JsonResponse(['message' => 'Error api'], 403); + + return new JsonResponse([]); + + } + public function color(Request $request) { $em = $this->getDoctrine()->getManager(); diff --git a/src/Repository/ScrumRepository.php b/src/Repository/ScrumRepository.php index a779146..73b22b7 100644 --- a/src/Repository/ScrumRepository.php +++ b/src/Repository/ScrumRepository.php @@ -168,10 +168,12 @@ class ScrumRepository extends ServiceEntityRepository $gitealabels=$this->giteaservice->getLabels($scrum->getGiteajson()["owner"]["login"],$scrum->getGiteajson()["name"]); // Formatter les labels non colomn/team/priority/type + /* foreach($gitealabels as $key => $gitealabel) { if(in_array($gitealabel->id,$giteacolumns)||in_array($gitealabel->id,$giteateams)||in_array($gitealabel->id,$giteaprioritys)||in_array($gitealabel->id,$giteatypes)) unset($gitealabels[$key]); - } + } + */ // Récupérer les issues de gitea $giteaissues=$this->giteaservice->getIssues($scrum->getGiteajson()["owner"]["login"],$scrum->getGiteajson()["name"],"?state=".($viewclosed=="true"?"all":"open")); diff --git a/templates/Scrum/view.html.twig b/templates/Scrum/view.html.twig index 5b5891d..c0a3937 100644 --- a/templates/Scrum/view.html.twig +++ b/templates/Scrum/view.html.twig @@ -210,9 +210,7 @@ {% set issuprioritycolor="#"~label.color %} {% endif %} - {% if label.id not in giteacolumns and label.id not in giteateams and label.id not in giteatypes and label.id not in giteaprioritys %} - {% set datalabels=datalabels~"datalabel"~label.id~" " %} - {% endif %} + {% set datalabels=datalabels~"datalabel"~label.id~" " %} {% endfor %} {% set dataassignees="" %} @@ -266,7 +264,7 @@ @@ -291,7 +289,7 @@
- + Modifier le Poids = {{ issue.weight }}
@@ -299,19 +297,26 @@ {% if issue.scrumissueblock is empty %}
- + Ajouter ce ticket comme bloquant à
{% else %}
- + N'est plus bloquant pour #{{ issue.scrumissueblock.giteanumber}}
{% endif %} +
+ + + Affecté à + +
+
@@ -372,15 +377,19 @@ = {{ issue.weight }} -
+
Crée le {{issue.giteajson.created_at|date("d/m/y")}}
Modifié le {{issue.giteajson.updated_at|date("d/m/y")}}
- {% if issue.giteastate=="closed" %} -
Clos le {{issue.giteajson.closed_at|date("d/m/y")}}
- {% endif %} - +
+
Par {{issue.giteajson.user.login}}
+ {% if issue.giteastate=="closed" %} +
+ Clos le {{issue.giteajson.closed_at|date("d/m/y")}} +
+ {% endif %} +
{% endif %} @@ -443,6 +452,36 @@ + + + {% endblock %} {% block localjavascript %} @@ -649,8 +688,6 @@ $("#modal-issueblocked").focus(); }); - - $("#issu_blockupdate").click(function(){ $.ajax({ method: "POST", @@ -740,6 +777,51 @@ }); }); + $(document).on('click','.assigneissu',function(){ + $(".modal-title").html("#"+$(this).data("giteaid")+" - "+$(this).data("giteatitle")); + $("#modal-issueid").val($(this).data("issue")); + + + $.ajax({ + method: "POST", + url: "{{path("app_scrumissue_info")}}", + data: { + id:$("#modal-issueid").val(), + }, + success: function(data) { + var tbassignees=[]; + for (let assignee of data.giteajson.assignees) { + tbassignees.push(assignee.login); + } + + $('#modal-assignees').select2(); + $('#modal-assignees').val(tbassignees); + $('#modal-assignees').trigger('change'); + + $("#mymodalassignees").modal('show'); + $(".submenu").hide(); + $("#modal-assignees").focus(); + }, + }); + }); + + $("#issu_assigne").click(function(){ + $.ajax({ + method: "POST", + url: "{{path("app_scrumissue_assigne")}}", + data: { + id:$("#modal-issueid").val(), + assignees:$("#modal-assignees").val(), + }, + success: function(data) { + location.reload(); + }, + error: function (request, status, error) { + alert("pb sur l'affectation au ticket"); + } + }); + }); + // Filter Milestones function filtermilestones() { $.ajax({