2021-07-20 13:04:47 +02:00
{% extends "base.html.twig" %}
{% block localstyle %}
html { height:100%}
body { height:100%; background-color:#efefef;}
2022-02-03 17:26:35 +01:00
2022-01-28 16:54:46 +01:00
#main {
padding-left:0px;
margin-bottom:0px;
}
2021-07-20 13:04:47 +02:00
h3 { font-size:14px; margin-top:15px;}
2022-01-28 16:54:46 +01:00
#mycontent { width: 5000px; display:none; }
2022-01-11 13:39:51 +01:00
.btn-link {
cursor:pointer;
}
.control-label {
margin-bottom:0px;
}
.tag {
border-radius: 5px;
padding: 8px 8px;
margin-bottom: 5px;
display: inline-block;
min-width: 35px;
text-align: center;
color: #ffffff !important;
zoom: 80%;
}
.tag i {
margin-right:5px;
}
.assignee {
width:30px;
margin: 5px 5px 0px 0px;
}
2023-08-25 14:44:12 +02:00
.state-closed {
background-color: #cdcdcd !important;
}
2021-07-20 13:04:47 +02:00
{% endblock %}
{% block body %}
2022-01-28 16:54:46 +01:00
<div class="d-flex">
2022-02-03 17:26:35 +01:00
<div id="filters" class="d-flex flex-column pl-2 pr-2 " style="width:350px; background-color:var(--colorbgbodydark);min-height:1500px;">
2022-01-28 16:54:46 +01:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre JALONS</label>
<select id="filtermilestones" multiple="multiple" class="form-control">
{% for giteamilestone in giteamilestones %}
<option value=" {{ giteamilestone .id }} "> {{ giteamilestone .title }} </option>
{% endfor %}
<option value="-100">Aucun</option>
</select>
</div>
2022-01-22 11:18:42 +01:00
2024-02-15 18:59:09 +01:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre SPRINT</label>
<select id="filtersprints" multiple="multiple" class="form-control">
{% for sprint in sprints %}
<option value=" {{ sprint .giteamilestone ~ "-" ~ sprint .id }} "> {{ sprint .giteamilestonename }} - {{ sprint .name }} </option>
{% endfor %}
{% for giteamilestone in giteamilestones %}
<option value=" {{ giteamilestone .id ~ "--100" }} "> {{ giteamilestone .title }} -Aucun</option>
{% endfor %}
</select>
</div>
2023-08-30 11:15:33 +02:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre TYPES</label>
<select id="filtertypes" multiple="multiple" class="form-control">
{% for type in scrum .scrumtypes %}
<option value=" {{ type .giteaid }} "> {{ type .name }} </option>
{% endfor %}
</select>
</div>
2022-01-28 16:54:46 +01:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre EQUIPES</label>
<select id="filterteams" multiple="multiple" class="form-control">
{% for team in scrum .scrumteams %}
<option value=" {{ team .giteaid }} "> {{ team .name }} </option>
{% endfor %}
</select>
</div>
2022-01-11 13:39:51 +01:00
2022-02-03 17:26:35 +01:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre PRIORITES</label>
<select id="filterprioritys" multiple="multiple" class="form-control">
{% for priority in scrum .scrumprioritys %}
<option value=" {{ priority .giteaid }} "> {{ priority .name }} </option>
{% endfor %}
</select>
</div>
2022-01-28 16:54:46 +01:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre ETIQUETTES</label>
<select id="filterlabels" multiple="multiple" class="form-control">
{% for gitealabel in gitealabels %}
<option value=" {{ gitealabel .id }} "> {{ gitealabel .name }} </option>
{% endfor %}
</select>
</div>
2022-01-11 13:39:51 +01:00
2022-01-28 16:54:46 +01:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre AFFECTATIONS</label>
<select id="filterassignees" multiple="multiple" class="form-control">
{% for giteaassignee in giteaassignees %}
<option value=" {{ giteaassignee .id }} "> {{ giteaassignee .login }} </option>
{% endfor %}
</select>
</div>
2022-06-29 11:50:27 +02:00
<div style="width:100%" class="mt-3">
<label class="control-label" style="color:var(--colorftbodydark)">Filtre EXCLUSIONS</label>
<select id="filterexcludes" multiple="multiple" class="form-control">
{% for gitealabel in gitealabels %}
<option value=" {{ gitealabel .id }} "> {{ gitealabel .name }} </option>
{% endfor %}
</select>
2022-09-21 11:05:17 +02:00
</div>
2023-08-25 14:44:12 +02:00
<div style="color:var(--colorftbodydark);zoom:75%;" class="mt-5">
2024-02-15 18:59:09 +01:00
<table>
{% for jalon in tbestim %}
<tr>
<td> {{ jalon .nmjal }} </td>
<td><span id="total {{ jalon .gijal }} " class="totalweight"> {{ jalon .nbjrs }} </span></td>
{% endfor %}
</table>
2022-09-21 11:05:17 +02:00
</div>
2022-01-11 13:39:51 +01:00
</div>
2022-01-22 11:18:42 +01:00
2022-01-28 16:54:46 +01:00
<div class="pl-3" style="width:100%;">
<div id="haveupdate" style="display:none" class="alert alert-danger pr-2 mt-3">
Votre projet a été mise à jour par un tier. Souhaitez-vous raffraichir votre projet ?<br>
<a href=" {{ path ( 'app_scrum_view' , { id : scrum .id } ) }} " class="btn btn-success mt-3">Rafraichir</a>
</div>
2022-01-11 13:39:51 +01:00
2022-01-28 16:54:46 +01:00
<div class="mt-4" style="zoom:80%">
<button class="btn btn-success" onClick="showFilters()"><i class="fas fa-filter"></i></button>
2024-02-15 18:59:09 +01:00
<a class="btn btn-success" href=" {{ path ( 'app_scrum_table' , { id : scrum .id } ) }} "><i class="fas fa-ticket-alt"></i></a>
2022-02-03 17:26:35 +01:00
<a class="btn btn-success" href=" {{ path ( 'app_scrum_stat' , { id : scrum .id } ) }} "><i class="fas fa-chart-area"></i></a>
<a href=" {{ giteaUrl }} / {{ scrum .giteajson .owner .login }} / {{ scrum .giteajson .name }} /issues/new" class="btn btn-success" target="_blank">Nouveau Ticket</a>
2022-01-28 16:54:46 +01:00
<span id="textfilters"></span>
</div>
2022-01-11 13:39:51 +01:00
2024-02-15 18:59:09 +01:00
{% for column in tbissues %}
<div class="d-inline-block mt-3 align-top mb-5 p-2" data-column=" {{ column .gicol }} " style="width: 18rem;">
<h2 style="text-transform: uppercase; text-align:center; font-size:28px"> {{ column .nmcol }} </h2>
2022-01-28 16:54:46 +01:00
<div class="card-body p-1">
2024-02-15 18:59:09 +01:00
{% 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 }} <br>
SPRINT = {{ sprint .nmspr }}
</div>
<div class="card-body p-1">
<ul class="scrumcolumn list-group" style="min-height:50px" data-column=" {{ column .gicol }} " data-milestone=" {{ jalon .gijal }} " data-sprint=" {{ sprint .idspr }} " data-millestonesprint=" {{ jalon .gijal ~ "-" ~ sprint .idspr }} ">
{% for issue in sprint .issues %}
{% set tosee = false %}
{% if app .session .get ( 'viewclosed' ) == "true" and issue .giteastate == "closed" %}
{% set tosee = true %}
2022-01-28 16:54:46 +01:00
{% endif %}
2024-02-15 18:59:09 +01:00
{% if issue .giteastate != "closed" %}
{% set tosee = true %}
{% endif %}
{% if tosee %}
{% set datalabels = "" %}
{% set datateams = "" %}
{% set datatypes = "" %}
{% set dataprioritys = "datapriority" ~ giteaprioritys | last %}
{% for label in issue .giteajson .labels %}
{% if label .id not in giteacolumns and label .id in giteateams %}
{% set datateams = datateams ~ "datateam" ~ label .id ~ " " %}
{% endif %}
{% if label .id not in giteacolumns and label .id in giteatypes %}
{% set datatypes = datatypes ~ "datatype" ~ label .id ~ " " %}
{% endif %}
{% if label .id not in giteacolumns and label .id in giteaprioritys %}
{% set dataprioritys = "datapriority" ~ label .id ~ " " %}
{% 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 %}
{% endfor %}
{% set dataassignees = "" %}
{% for assignee in issue .giteajson .assignees %}
{% set dataassignees = dataassignees ~ "dataassignee" ~ assignee .id ~ " " %}
{% endfor %}
<div id="issu {{ issue .id }} " data-id=" {{ issue .id }} " data-issue=" {{ issue .id }} " data-column=" {{ column .gicol }} " data-milestone=" {{ jalon .gijal }} " data-sprint=" {{ sprint .idspr }} " class="card mb-1 issue issue- {{ issue .id }} {{ datateams }} {{ datatypes }} {{ dataprioritys }} {{ datalabels }} {{ dataassignees }} state- {{ issue .giteastate }} ">
<div class="card-footer p-1" style="line-height:10px; border-top:none;">
<div class="float-left btn btn-link p-0 m-0 fas fa-arrows-alt" style="cursor:move"></div>
<a target="_blank" class="modcolumn btn btn-link float-right fa fa-file p-0 m-0" href=" {{ issue .giteajson .html_url }} "></a>
</div>
<div class="card-body p-1" style="line-height:10px;">
<div>
<small>
{{ issue .giteanumber }} - {{ issue .giteatitle }} <br><br>
<small>Crée le {{ issue .giteajson .created_at | date ( "d/m/y" ) }} </small><small style ="float:right">Modifié le {{ issue .giteajson .updated_at | date ( "d/m/y" ) }} </small>
{% if issue .giteastate == "closed" %}
<br><small>Clos le {{ issue .giteajson .closed_at | date ( "d/m/y" ) }} </small>
{% endif %}
<br><br>
{% for label in issue .giteajson .labels %}
{% if label .id not in giteacolumns and label .id in giteaprioritys %}
<span class="btn-link tag" style="background-color:# {{ label .color }} ">
<i class="fas fa-tag"></i>
{{ label .name }}
</span>
{% endif %}
{% endfor %}
<br>
{% for label in issue .giteajson .labels %}
{% if label .id not in giteacolumns and label .id in giteatypes %}
<span class="btn-link tag" style="background-color:# {{ label .color }} ">
<i class="fas fa-tag"></i>
{{ label .name }}
</span>
{% endif %}
{% endfor %}
<br>
{% for label in issue .giteajson .labels %}
{% if label .id not in giteacolumns and label .id in giteateams %}
<span class="btn-link tag" style="background-color:# {{ label .color }} ">
<i class="fas fa-tag"></i>
{{ label .name }}
</span>
{% endif %}
{% endfor %}
<br>
{% for label in issue .giteajson .labels %}
{% if label .id not in giteacolumns and label .id not in giteateams and label .id not in giteaprioritys and label .id not in giteatypes %}
<span class="btn-link tag" style="background-color:# {{ label .color }} ">
<i class="fas fa-tag"></i>
{{ label .name }}
</span>
{% endif %}
{% endfor %}
<div>
{% for assignee in issue .giteajson .assignees %}
<img src=" {{ assignee .avatar_url }} " class="assignee" title=" {{ assignee .username }} ">
{% endfor %}
</div>
<div id="modissu {{ issue .id }} " data-issue=" {{ issue .id }} " data-giteaid=" {{ issue .giteanumber }} " data-giteatitle=" {{ issue .giteatitle }} " type="button" class="modissu btn btn-link float-right">
<i class="fas fa-weight-hanging"></i> = <span id="issue {{ issue .id }} -weight"> {{ issue .weight }} </span>
</div>
</small>
</div>
</div>
</div>
{% endif %}
{% endfor %}
</ul>
2022-01-28 16:54:46 +01:00
</div>
</div>
2024-02-15 18:59:09 +01:00
{% endfor %}
2022-01-28 16:54:46 +01:00
{% endfor %}
2021-07-20 13:04:47 +02:00
</div>
2022-01-28 16:54:46 +01:00
</div>
{% endfor %}
2021-07-20 13:04:47 +02:00
</div>
2022-01-28 16:54:46 +01:00
</div>
2022-09-21 11:05:17 +02:00
<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"></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</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="integer" 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>
2021-07-20 13:04:47 +02:00
{% endblock %}
{% block localjavascript %}
2022-01-28 16:54:46 +01:00
function showFilters() {
if($("#filters").hasClass("d-flex")) {
toshow=0;
$("#filters").addClass("d-none");
$("#filters").removeClass("d-flex");
}
else {
toshow=1;
$("#filters").addClass("d-flex");
$("#filters").removeClass("d-none");
}
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'showfilters',
id: {{ scrum .id }} ,
value: toshow
}
});
}
2022-01-11 13:39:51 +01:00
2021-07-20 13:04:47 +02:00
$(document).ready(function() {
2022-01-11 13:39:51 +01:00
// Apply Filter
function showhide() {
2024-02-15 18:59:09 +01:00
// Afficher masquer les jalons
if($("#filtermilestones").val().length !== 0 && $("#filtersprints").val().length === 0) {
2022-01-11 13:39:51 +01:00
$("[data-milestone]").hide();
$.each($("#filtermilestones").val(), function( index, value ) {
$("[data-milestone="+value+"]").show();
});
}
else $("[data-milestone]").show();
2024-02-15 18:59:09 +01:00
// Afficher masquer les sprints
if($("#filtersprints").val().length !== 0) {
$("[data-millestonesprint]").hide();
$.each($("#filtersprints").val(), function( index, value ) {
$("[data-millestonesprint="+value+"]").show();
});
}
else if($("#filtermilestones").val().length === 0)$("[data-millestonesprint]").show();
2022-01-28 16:54:46 +01:00
$(".issue").show();
$( ".issue" ).each(function( index ) {
domissue=$(this);
toshow=true;
if(toshow&&$("#filterteams").val().length !== 0) {
toshow=false;
$.each($("#filterteams").val(), function( index, value ) {
if (domissue.hasClass("datateam"+value))
toshow=true;
});
}
2022-01-11 13:39:51 +01:00
2022-02-03 17:26:35 +01:00
if(toshow&&$("#filterprioritys").val().length !== 0) {
toshow=false;
$.each($("#filterprioritys").val(), function( index, value ) {
if (domissue.hasClass("datapriority"+value))
toshow=true;
});
}
2023-08-30 11:15:33 +02:00
if(toshow&&$("#filtertypes").val().length !== 0) {
toshow=false;
$.each($("#filtertypes").val(), function( index, value ) {
if (domissue.hasClass("datatype"+value))
toshow=true;
});
}
2022-01-28 16:54:46 +01:00
if(toshow&&$("#filterlabels").val().length !== 0) {
toshow=false;
2022-01-11 13:39:51 +01:00
$.each($("#filterlabels").val(), function( index, value ) {
2022-01-28 16:54:46 +01:00
if(domissue.hasClass("datalabel"+value))
toshow=true;
2022-01-11 13:39:51 +01:00
});
2022-01-28 16:54:46 +01:00
}
if(toshow&&$("#filterassignees").val().length !== 0) {
toshow=false;
2022-01-11 13:39:51 +01:00
$.each($("#filterassignees").val(), function( index, value ) {
if (domissue.hasClass("dataassignee"+value))
2022-01-28 16:54:46 +01:00
toshow=true;
2022-01-11 13:39:51 +01:00
});
2022-01-28 16:54:46 +01:00
}
2022-06-29 11:50:27 +02:00
if(toshow&&$("#filterexcludes").val().length !== 0) {
$.each($("#filterexcludes").val(), function( index, value ) {
if(domissue.hasClass("datalabel"+value))
toshow=false;
});
}
2022-01-28 16:54:46 +01:00
if(!toshow) domissue.hide();
});
textfilters="";
if($("#filtermilestones").val().length!==0) {
data = $("#filtermilestones").select2('data');
textfilters=textfilters+" <b>JALONS</b> =";
$.each($("#filtermilestones").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
2022-01-11 13:39:51 +01:00
});
}
2024-02-15 18:59:09 +01:00
if($("#filtersprints").val().length!==0) {
data = $("#filtersprints").select2('data');
textfilters=textfilters+" <b>SPRINT</b> =";
$.each($("#filtersprints").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
});
}
2022-01-28 16:54:46 +01:00
if($("#filterteams").val().length!==0) {
data = $("#filterteams").select2('data');
textfilters=textfilters+" <b>EQUIPES</b> =";
$.each($("#filterteams").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
});
}
2022-02-03 17:26:35 +01:00
if($("#filterprioritys").val().length!==0) {
data = $("#filterprioritys").select2('data');
textfilters=textfilters+" <b>EQUIPES</b> =";
$.each($("#filterprioritys").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
});
}
2023-08-30 11:15:33 +02:00
if($("#filtertypes").val().length!==0) {
data = $("#filtertypes").select2('data');
textfilters=textfilters+" <b>EQUIPES</b> =";
$.each($("#filtertypes").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
});
}
2022-01-28 16:54:46 +01:00
if($("#filterlabels").val().length!==0) {
data = $("#filterlabels").select2('data');
textfilters=textfilters+" <b>ETIQUETTES</b> =";
$.each($("#filterlabels").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
});
}
if($("#filterassignees").val().length!==0) {
data = $("#filterassignees").select2('data');
textfilters=textfilters+" <b>AFFECTATIONS</b> =";
$.each($("#filterassignees").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
});
}
2022-06-29 11:50:27 +02:00
if($("#filterexcludes").val().length!==0) {
data = $("#filterexcludes").select2('data');
textfilters=textfilters+" <b>EXCLURE ETIQUETTES</b> =";
$.each($("#filterexcludes").val(), function( index, value ) {
if(index>0)textfilters=textfilters+" &";
textfilters=textfilters+" "+data[index].text;
});
}
2022-09-21 11:05:17 +02:00
$("#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 [key, value] = entry;
$("#total"+key).html(value);
});
}
});
2022-01-11 13:39:51 +01:00
}
2022-09-21 11:05:17 +02:00
$(document).on('click','.modissu',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) {
$("#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:$("#modal-issueid").val(),
weight:$("#modal-issueweight").val(),
},
success: function(data) {
$("#issue"+$("#modal-issueid").val()+"-weight").html($("#modal-issueweight").val());
refreshinfo();
$("#mymodalissue").modal('hide');
},
error: function (request, status, error) {
$("#mymodalissue").modal('hide');
}
});
});
2022-01-11 13:39:51 +01:00
// Filter Milestones
function filtermilestones() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filtermilestones',
id: {{ scrum .id }} ,
value: $("#filtermilestones").val()
}
});
showhide();
}
$('#filtermilestones').select2();
{% if filtermilestones %}
{% for milestone in filtermilestones %}
$("#filtermilestones").val($("#filtermilestones").val().concat(" {{ milestone }} "));
{% endfor %}
$('#filtermilestones').trigger('change');
{% endif %}
$('#filtermilestones').on("select2:select", function(e) {
filtermilestones();
});
$('#filtermilestones').on("select2:unselect", function(e) {
filtermilestones();
});
2024-02-15 18:59:09 +01:00
// Filter Sprint
function filtersprints() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filtersprints',
id: {{ scrum .id }} ,
value: $("#filtersprints").val()
}
});
showhide();
}
$('#filtersprints').select2( { sorter: data => data.sort((a, b) => a.text.localeCompare(b.text)),});
{% if filtersprints %}
{% for sprint in filtersprints %}
$("#filtersprints").val($("#filtersprints").val().concat(" {{ sprint }} "));
{% endfor %}
$('#filtersprints').trigger('change');
{% endif %}
$('#filtersprints').on("select2:select", function(e) {
filtersprints();
});
$('#filtersprints').on("select2:unselect", function(e) {
filtersprints();
});
2022-01-28 16:54:46 +01:00
// Filter Teams
function filterteams() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filterteams',
id: {{ scrum .id }} ,
value: $("#filterteams").val()
}
});
showhide();
}
$('#filterteams').select2();
{% if filterteams %}
{% for team in filterteams %}
$("#filterteams").val($("#filterteams").val().concat(" {{ team }} "));
{% endfor %}
$('#filterteams').trigger('change');
{% endif %}
$('#filterteams').on("select2:select", function(e) {
filterteams();
});
$('#filterteams').on("select2:unselect", function(e) {
filterteams();
});
2022-02-03 17:26:35 +01:00
// Filter Proritys
function filterprioritys() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filterprioritys',
id: {{ scrum .id }} ,
value: $("#filterprioritys").val()
}
});
showhide();
}
$('#filterprioritys').select2();
{% if filterprioritys %}
{% for priority in filterprioritys %}
$("#filterprioritys").val($("#filterprioritys").val().concat(" {{ priority }} "));
{% endfor %}
$('#filterprioritys').trigger('change');
{% endif %}
$('#filterprioritys').on("select2:select", function(e) {
filterprioritys();
});
$('#filterprioritys').on("select2:unselect", function(e) {
filterprioritys();
});
2023-08-30 11:15:33 +02:00
// Filter Types
function filtertypes() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filtertypes',
id: {{ scrum .id }} ,
value: $("#filtertypes").val()
}
});
showhide();
}
$('#filtertypes').select2();
{% if filtertypes %}
{% for type in filtertypes %}
$("#filtertypes").val($("#filtertypes").val().concat(" {{ type }} "));
{% endfor %}
$('#filtertypes').trigger('change');
{% endif %}
$('#filtertypes').on("select2:select", function(e) {
filtertypes();
});
$('#filtertypes').on("select2:unselect", function(e) {
filtertypes();
});
2022-01-11 13:39:51 +01:00
// Filter Labels
function filterlabels() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filterlabels',
id: {{ scrum .id }} ,
value: $("#filterlabels").val()
}
});
showhide();
}
$('#filterlabels').select2();
{% if filterlabels %}
{% for label in filterlabels %}
$("#filterlabels").val($("#filterlabels").val().concat(" {{ label }} "));
{% endfor %}
$('#filterlabels').trigger('change');
{% endif %}
$('#filterlabels').on("select2:select", function(e) {
filterlabels();
});
$('#filterlabels').on("select2:unselect", function(e) {
filterlabels();
});
// Filtre Assignees
function filterassignees() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filterassignees',
id: {{ scrum .id }} ,
value: $("#filterassignees").val()
}
});
showhide();
}
$('#filterassignees').select2();
{% if filterassignees %}
{% for assignee in filterassignees %}
$("#filterassignees").val($("#filterassignees").val().concat(" {{ assignee }} "));
{% endfor %}
$('#filterassignees').trigger('change');
{% endif %}
$('#filterassignees').on("select2:select", function(e) {
filterassignees();
});
$('#filterassignees').on("select2:unselect", function(e) {
filterassignees();
});
2022-06-29 11:50:27 +02:00
// Filter Labels
function filterexcludes() {
$.ajax( {
method: "POST",
url: " {{ path ( 'app_user_preference' ) }} ",
data: {
key:'filterexcludes',
id: {{ scrum .id }} ,
value: $("#filterexcludes").val()
}
});
showhide();
}
$('#filterexcludes').select2();
{% if filterexcludes %}
{% for label in filterexcludes %}
$("#filterexcludes").val($("#filterexcludes").val().concat(" {{ label }} "));
{% endfor %}
$('#filterexcludes').trigger('change');
{% endif %}
$('#filterexcludes').on("select2:select", function(e) {
filterexcludes();
});
$('#filterexcludes').on("select2:unselect", function(e) {
filterexcludes();
});
// Resume filtre
2022-01-28 16:54:46 +01:00
{% if not showfilters %}
$("#filters").addClass("d-none");
$("#filters").removeClass("d-flex");
{% endif %}
2022-01-11 13:39:51 +01:00
// Appliy filters
showhide();
2022-09-21 11:05:17 +02:00
refreshinfo();
2022-01-28 16:54:46 +01:00
$("#mycontent").show();
2022-01-11 13:39:51 +01:00
2022-01-22 11:18:42 +01:00
lastupdate=" {{ scrum .updatedate | date ( "Ymd H:i:s" ) }} ";
2022-01-11 13:39:51 +01:00
// Sort columns
2021-07-20 13:04:47 +02:00
$( ".scrumcolumn" ).sortable( {
handle: ".fa-arrows-alt",
connectWith: ".scrumcolumn",
cursor: "move",
2021-12-06 15:39:12 +01:00
update: function( event, ui ) {
2021-07-20 13:04:47 +02:00
id=$(ui.item).data("issue");
2022-01-11 13:39:51 +01:00
oldcolumn=$(ui.item).data("column");
2021-07-20 13:04:47 +02:00
oldmilestone=$(ui.item).data("milestone");
2024-02-15 18:59:09 +01:00
oldsprint=$(ui.item).data("sprint");
2022-01-11 13:39:51 +01:00
newcolumn=$(ui.item).parent().data("column");
2021-07-20 13:04:47 +02:00
newmilestone=$(ui.item).parent().data("milestone");
2024-02-15 18:59:09 +01:00
newsprint=$(ui.item).parent().data("sprint");
console.log("ID = "+id+" = Column : "+oldcolumn+">>"+newcolumn+" = Milestone : "+oldmilestone+">>"+newmilestone+" = Sprint : "+oldsprint+">>"+newsprint );
2022-01-22 11:18:42 +01:00
2024-02-15 18:59:09 +01:00
if(oldcolumn!=newcolumn||oldmilestone!=newmilestone||oldsprint!=newsprint) {
2021-07-20 13:04:47 +02:00
$.ajax( {
method: "POST",
url: " {{ path ( "app_scrumissue_change" ) }} ",
data: {
id:id,
2022-01-11 13:39:51 +01:00
oldcolumn:oldcolumn,
2021-07-20 13:04:47 +02:00
oldmilestone:oldmilestone,
2024-02-15 18:59:09 +01:00
oldsprint:oldsprint,
2022-01-11 13:39:51 +01:00
newcolumn:newcolumn,
2021-07-20 13:04:47 +02:00
newmilestone:newmilestone,
2024-02-15 18:59:09 +01:00
newsprint:newsprint
2021-07-20 13:04:47 +02:00
},
2022-01-22 11:18:42 +01:00
success: function(data) {
2022-01-11 13:39:51 +01:00
$(ui.item).data("column",newcolumn);
2021-07-20 13:04:47 +02:00
$(ui.item).data("milestone",newmilestone);
2024-02-15 18:59:09 +01:00
$(ui.item).data("sprint",newsprint);
2022-01-22 11:18:42 +01:00
if(data) lastupdate=data;
2022-09-21 11:05:17 +02:00
refreshinfo();
2021-07-20 13:04:47 +02:00
},
error: function (request, status, error) {
$( ".scrumcolumn" ).sortable('cancel');
}
});
}
2021-12-06 15:39:12 +01:00
lstordered="";
$(".scrumcolumn div" ).each(function( index ) {
if($(this).data("id")) {
if(index==0) lstordered=$(this).data("id");
else lstordered=lstordered+","+$(this).data("id");
2022-01-11 13:39:51 +01:00
}
2021-12-06 15:39:12 +01:00
});
2022-01-11 13:39:51 +01:00
$.ajax( {
method: "POST",
url: " {{ path ( "app_scrumissue_order" ) }} ",
data: {
id: {{ scrum .id }} ,
lstordered:lstordered,
}
2022-09-21 11:05:17 +02:00
});
},
2022-01-22 11:18:42 +01:00
});
var intervalId = window.setInterval(function() {
console.log(lastupdate);
$.ajax( {
method: "POST",
url: " {{ path ( "app_scrumissue_ctrlchange" ) }} ",
data: {
id: {{ scrum .id }} ,
lastupdate:lastupdate
},
success: function(fgupdated) {
if(fgupdated) {
$("#haveupdate").show();
}
}
});
2024-02-15 18:59:09 +01:00
}, 6000);
2022-01-22 11:18:42 +01:00
2021-07-20 13:04:47 +02:00
});
{% endblock %}