weight in scrum view

This commit is contained in:
2024-02-23 12:35:29 +01:00
parent c61312bc3d
commit 072afb2a1c
5 changed files with 189 additions and 113 deletions

View File

@ -37,6 +37,7 @@
<div id='issuediv{{issue.number}}' class='d-flex'>
<div class='issuecontent' class='d-flex flex-column'>
<div class="card mb-3">
<div class="card-header d-flex">
<div class="flex-grow-1">{{issue.user.login}}</div>
@ -65,6 +66,14 @@
<div class='pl-3 issuedetail'>
<a target="_blank" class="btn btn-success w-100 mb-3" href="{{issue.html_url}}" style="zoom:120%">Modifier dans Gitea</a>
<div class="card mb-3">
<div class="modissu card-header d-flex" style="cursor:pointer">
<div class="flex-grow-1"><i class="fas fa-weight-hanging"></i></div>
<div>{{ issue.weight }}</div>
</div>
</div>
<div class='card mb-3'>
<div class="card-header">Statut</div>
<div class="card-body">
@ -192,5 +201,64 @@
</div>
</div>
<div id="mymodalissue" class="modal" role="dialog">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Estimation</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group ">
<label class="control-label required" for="issu_weight">
Poid
</label>
<input type="hidden" id="modal-issueid" name="modal-issueid" required="required" class=" form-control" value="">
<input type="number" placeholder="0.0" step="0.1" id="modal-issueweight" name="modal-issueweight" required="required" class=" form-control" value="">
</div>
<button id="issu_update" class="btn btn-success">Enregistrer</button>
</div>
</div>
</div>
</div>
{% endblock %}
{% block localjavascript %}
$(document).on('click','.modissu',function(){
$.ajax({
method: "POST",
url: "{{path("app_scrumissue_info")}}",
data: {
id:{{issue.nineid}},
},
success: function(data) {
$("#modal-issueweight").val(data.weight);
$("#mymodalissue").modal('show');
$("#modal-issueweight").focus();
},
});
});
$("#issu_update").click(function(){
$.ajax({
method: "POST",
url: "{{path("app_scrumissue_update")}}",
data: {
id:{{issue.nineid}},
weight:$("#modal-issueweight").val(),
},
success: function(data) {
parent.$(".issue{{issue.nineid}}-weight").html($("#modal-issueweight").val());
window.parent.refreshinfo();
location.reload();
},
error: function (request, status, error) {
$("#mymodalissue").modal('hide');
}
});
});
{% endblock %}

View File

@ -68,7 +68,7 @@
<h1>{{ scrum.name }}</h1>
<div class="d-flex flex-column mt-4">
<div id="tbestim" class="d-flex flex-column mt-4">
{% for jalon in tbestim %}
{% if jalon.nbjrs>0 %}

View File

@ -139,23 +139,7 @@
</div>
</div>
<div style="" class="mt-5">
{% for jalon in tbestim %}
<table style="color:var(--colorftbodydark);zoom:75%; width:100%; border:1px solid var(--colorbgbodylight)">
<tr>
<td class="pl-1">{{jalon.nmjal}}</td>
<td class="pr-1" style="width:30px;text-align:right;"><span id="totaljal{{jalon.gijal}}" class="totalweight">{{jalon.nbjrs}}</span></td>
</tr>
{% for sprint in jalon.sprints %}
{% if not loop.first or sprint.idspr!=-100 %}
<tr>
<td class="pl-1">{{sprint.nmspr}}</td>
<td class="pr-1" style="width:30px;text-align:right;"><span id="totalspr{{jalon.gijal}}-{{sprint.idspr}}" class="totalweight">{{sprint.nbjrs}}</span></td>
</tr>
{% endif %}
{% endfor %}
</table>
{% endfor %}
<div id="tbestim" class="mt-5">
</div>
</div>
@ -180,12 +164,18 @@
{% for jalon in column.jalons %}
{% for sprint in jalon.sprints %}
<div class="card mb-3" data-column="{{column.gicol}}" data-milestone="{{jalon.gijal}}" data-sprint="{{sprint.idspr}}" data-millestonesprint="{{jalon.gijal~"-"~sprint.idspr}}">
<div class="card-header p-1" style="font-size:16px">
JALON = {{jalon.nmjal}}
{% if sprint.idspr!=-100 %}
<br>
SPRINT = {{sprint.nmspr}}
{% endif %}
<div class="card-header p-1 d-flex" style="font-size:16px">
<div>
JALON = {{jalon.nmjal}}
{% if sprint.idspr!=-100 %}
<br>
SPRINT = {{sprint.nmspr}}
{% endif %}
</div>
<div class="ml-auto" data-weight="{{column.gicol~"-"~jalon.gijal~"-"~sprint.idspr}}">
</div>
</div>
<div class="card-body p-1">
@ -562,25 +552,6 @@
$("#textfilters").html(textfilters);
}
function refreshinfo() {
$.ajax({
method: "POST",
url: "{{path("app_scrum_info",{id:scrum.id})}}",
success: function(data) {
$(".totalweight").html("0");
Object.entries(data.weights).forEach(entry => {
const [keyj, jalon] = entry;
$("#totaljal"+jalon.id).html(jalon.weight.toFixed(1).replace(/\.0$/, ''));
Object.entries(jalon.sprints).forEach(entry => {
const [keys, sprint] = entry;
$("#totalspr"+sprint.id).html(sprint.weight.toFixed(1).replace(/\.0$/, ''));
});
});
}
});
}
$(document).on('click','.modissu',function(){
$(".modal-title").html("#"+$(this).data("giteaid")+" - "+$(this).data("giteatitle"));
$("#modal-issueid").val($(this).data("issue"));
@ -897,8 +868,7 @@
start: function( event, ui ) {
$(".submenu").hide();
},
update: function( event, ui ) {
stop: function( event, ui ) {
id=$(ui.item).data("issue");
oldcolumn=$(ui.item).data("column");
oldmilestone=$(ui.item).data("milestone");
@ -974,6 +944,49 @@
});
function refreshinfo() {
$.ajax({
method: "POST",
url: "{{path("app_scrum_info",{id:scrum.id})}}",
success: function(data) {
html="";
$("[data-weight]").html("");
Object.entries(data.tbestim).forEach(entry => {
const [keyj, jalon] = entry;
html+='<table style="color:var(--colorftbodydark);zoom:75%; width:100%; border:1px solid var(--colorbgbodylight)">';
html+='<tr>';
html+='<td class="pl-1">'+jalon.nmjal+'</td>';
html+='<td class="pr-1" style="width:30px;text-align:right;">'+jalon.nbjrs+'</span></td>';
html+='</tr>';
nofirst=false;
Object.entries(jalon.sprints).forEach(entry => {
const [keys, sprint] = entry;
if(nofirst || sprint.idspr!=-100) {
html+='<tr>';
html+='<td class="pl-1">'+sprint.nmspr+'</td>';
html+='<td class="pr-1" style="width:30px;text-align:right;">'+sprint.nbjrs+'</span></td>';
html+='</tr>';
}
Object.entries(sprint.columns).forEach(entry => {
const [keys, column] = entry;
$("[data-weight="+column.gicol+"-"+jalon.gijal+"-"+sprint.idspr+"]").html(column.nbjrs);
});
nofirst=true;
});
html+='</table>';
});
$("#tbestim").html(html);
}
});
}
function issuhover(btn,idissu) {
$(".submenu").hide();
$("#submenu"+idissu).css("display","flex");