This commit is contained in:
2025-07-06 21:36:09 +02:00
parent 77160b1905
commit b1df69696f
13 changed files with 955 additions and 51 deletions

View File

@ -2,27 +2,44 @@
{% block localstyle %}
<style>
.navbar {
width: 100%;
position: fixed;
z-index: 1000;
}
main {
padding-top:80px;
}
content {
padding:0px;
}
.containerScrum {
.scrumContainer {
display:none;
}
.containerFiltre{
.issueContainer {
position:fixed;
width:750px;
}
.filtreContainer{
display:flex;
width:250px;
width:300px;
flex-direction:column;
background-color: var(--bs-dark);
padding:5px;
}
.containerStatus{
display:flex;
width:10000px;
overflow-x:scrool;
//width:10000px;
overflow-x:scroll;
}
.colStatus {
.statusCard {
width:300px;
padding: 15px 10px 0px 10px;
}
@ -45,7 +62,7 @@
min-height:60px;
}
h5 {
.versionCard h5 {
color: var(--bs-primary-text-emphasis);
font-size:16px;
padding-left:10px;
@ -65,6 +82,15 @@
cursor: move;
}
.issueAction{
align-self: baseline;
padding: 0px 2px 0px 5px;
}
.fa-eye {
cursor: pointer;
}
.issueSubject{
zoom: 70%;
flex-grow: 1;
@ -74,13 +100,27 @@
{% block body %}
<div class='containerScrum'>
<div class='containerFiltre'>
<div class='issueContainer'>
</div>
<div class='scrumContainer'>
<div class='filtreContainer'>
<label>Statut</label>
<select id="statusFilter" class="select2 form-select" multiple="true" tabindex="-1" aria-hidden="true">
{% for statut in project.redmine.issue_statuses %}
{% if statut.id not in project.hiddenstatuses %}
<option value="{{statut.id}}">{{statut.name}}</option>
{% endif %}
{% endfor %}
</select>
<label>Sprints</label>
<select id="sprintFilter" class="select2 form-select" multiple="true" tabindex="-1" aria-hidden="true">
<option value="None">Aucun</option>
{% for sprint in project.redmine.sprints|reverse %}
<option value="{{sprint.id}}">{{sprint.name}}</option>
{% if sprint.id not in project.hiddensprints %}
<option value="{{sprint.id}}">{{sprint.name}}</option>
{% endif %}
{% endfor %}
</select>
@ -88,7 +128,9 @@
<select id="versionFilter" class="select2 form-select" multiple="true" tabindex="-1" aria-hidden="true">
<option value="None">Aucune</option>
{% for version in project.redmine.versions|reverse %}
<option value="{{version.id}}">{{version.name}}</option>
{% if version.id not in project.hiddenversions %}
<option value="{{version.id}}">{{version.name}}</option>
{% endif %}
{% endfor %}
</select>
@ -97,59 +139,67 @@
<div class='containerStatus'>
{% for status in project.redmine.issue_statuses %}
<div class='colStatus'>
<h2>{{ status.name }}</h2>
{% if status.id not in project.hiddenstatuses %}
<div class='statusCard statusCard{{status.id}}'>
<h2>{{ status.name }}</h2>
{% for sprint in project.redmine.sprints|reverse %}
<div class='sprintCard sprintCard{{sprint.id}} card' style='margin-bottom:20px'>
{% for sprint in project.redmine.sprints|reverse %}
{% if sprint.id not in project.hiddensprints %}
<div class='sprintCard sprintCard{{sprint.id}} card' style='margin-bottom:20px'>
<div class='card-header'>
Sprint = {{ sprint.name }}
</div>
{% for version in project.redmine.versions|reverse %}
{% if version.id not in project.hiddenversions %}
<div class='versionCard versionCard{{version.id}} card-body'>
<h5>Version = {{ version.name }}</h5>
<div class='versionBody' data-id='{{status.id}}-{{sprint.id}}-{{version.name}}'></div>
</div>
{% endif %}
{% endfor %}
<div class='versionCard versionCardNone card-body'>
<h5>Version = Aucune</h5>
<div class='versionBody' data-id='{{status.id}}-{{sprint.id}}-'></div>
</div>
</div>
{% endif %}
{% endfor %}
<div class='sprintCard sprintCardNone card'>
<div class='card-header'>
Sprint = {{ sprint.name }}
Sprint Aucun
</div>
{% for version in project.redmine.versions|reverse %}
{% for version in project.redmine.versions|reverse %}
{% if version.id not in project.hiddenversions %}
<div class='versionCard versionCard{{version.id}} card-body'>
<h5>Version = {{ version.name }}</h5>
<div class='versionBody' data-id='{{status.id}}-{{sprint.id}}-{{version.name}}'></div>
<div class='versionBody' data-id='{{status.id}}--{{version.name}}'></div>
</div>
{% endfor %}
{% endif %}
{% endfor %}
<div class='versionCard versionCardNone card-body'>
<h5>Version = Aucune</h5>
<div class='versionBody' data-id='{{status.id}}-{{sprint.id}}-'></div>
<div class='versionBody' data-id='{{status.id}}--'></div>
</div>
</div>
{% endfor %}
<div class='sprintCard sprintCardNone card'>
<div class='card-header'>
Sprint Aucun
</div>
{% for version in project.redmine.versions|reverse %}
<div class='versionCard versionCard{{version.id}} card-body'>
<h5>Version = {{ version.name }}</h5>
<div class='versionBody' data-id='{{status.id}}--{{version.name}}'></div>
</div>
{% endfor %}
<div class='versionCard versionCardNone card-body'>
<h5>Version = Aucune</h5>
<div class='versionBody' data-id='{{status.id}}--'></div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
</div>
<div class='viewIssue'>
</div>
{% for issue in project.issues %}
<div class="issueCard card" data-status='{{issue.redmine.status.id}}' data-sprint='{{issue.rowsprint}}' data-version='{{issue.rowversion}}'>
<div class='issueHeader'>
<div class='issueId'>#{{issue.id}}</div>
<div class='issueSubject'>{{issue.redmine.subject}}</div>
<div class='issueAction'>
<i class='fas fa-eye' onClick='fetchAndRenderIssue({{issue.id}})'></i>
</div>
</div>
<div class='issueBody'>
sprint = {{issue.rowsprint}}<br>
@ -167,6 +217,18 @@
let showIssuebody = false;
function showhide() {
// Statut
selected = $('#statusFilter').val();
if (!selected || selected.length === 0) {
$('.statusCard').show();
}
else {
$('.statusCard').hide();
selected.forEach(function (id) {
$('.statusCard' + id).show();
});
}
// Sprint
selected = $('#sprintFilter').val();
if (!selected || selected.length === 0) {
@ -210,11 +272,15 @@
if ($column.length) {
$column.append($(this));
}
else { console.log ('no ='+id);}
else {
console.log ('no ='+id);
$(this).hide();
}
});
$('.containerScrum').css('display', 'flex');
$('.scrumContainer').css('display', 'flex');
// Filtre
$('#statusFilter').on('change',showhide);
$('#sprintFilter').on('change',showhide);
$('#versionFilter').on('change',showhide);
showhide();
@ -224,6 +290,28 @@
toogleIssueBody();
});
function fetchAndRenderIssue(issueId) {
url='{{path('issue_view',{id:'xxx'})}}';
url=url.replace('xxx',issueId);
console.log(url);
$.ajax({
url: url,
method: 'GET',
dataType: 'html',
success: function (html) {
$('.issueContainer').html(html);
$('.issueContainer').show();
$('.scrumContainer').css('padding-left','750px');
},
error: function (xhr, status, error) {
console.error('Erreur lors du chargement de lissue :', error);
$('.issueContainer').html('<div class="alert alert-danger">Erreur lors du chargement de lissue.</div>');
}
});
}
$(function () {
let $sourceContainer = null;
let $movedItem = null;