svg
This commit is contained in:
@ -17,7 +17,7 @@
|
||||
}
|
||||
|
||||
|
||||
main {
|
||||
simplemain {
|
||||
padding-top:80px;
|
||||
}
|
||||
|
||||
@ -122,7 +122,10 @@
|
||||
.issueParent{
|
||||
font-size:12px;
|
||||
line-height:12px;
|
||||
color:var(--bs-green);
|
||||
border-bottom: 1px solid;
|
||||
padding-bottom:5px;
|
||||
margin-bottom:5px;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
.issueBody {
|
||||
@ -187,7 +190,7 @@
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
{% block simplebody %}
|
||||
|
||||
<div class='issueContainer'>
|
||||
</div>
|
||||
@ -257,63 +260,61 @@
|
||||
</div>
|
||||
|
||||
<div class='scrumContainer'>
|
||||
<div class='containerStatus'>
|
||||
{% for status in project.redmine.issue_statuses %}
|
||||
{% if status.id not in project.hiddenstatuses %}
|
||||
<div class='statusCard statusCard{{status.id}}'>
|
||||
<h2>{{ status.name }}</h2>
|
||||
{% for status in project.redmine.issue_statuses %}
|
||||
{% if status.id not in project.hiddenstatuses %}
|
||||
<div class='statusCard statusCard{{status.id}}'>
|
||||
<h2>{{ status.name }}</h2>
|
||||
|
||||
{% 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='sprintCardHeader card-header'>
|
||||
<div style='flex-grow:1'>Sprint = {{ sprint.name }}</div>
|
||||
{% if sprint.story_points[status.id] is defined %}
|
||||
<div>{{ sprint.story_points[status.id] }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% 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='sprintCardHeader card-header'>
|
||||
<div style='flex-grow:1'>Sprint = {{ sprint.name }}</div>
|
||||
{% if sprint.story_points[status.id] is defined %}
|
||||
<div>{{ sprint.story_points[status.id] }}</div>
|
||||
{% endif %}
|
||||
</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.id}}'></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>
|
||||
{% 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.id}}'></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 Aucun
|
||||
</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}}||{{version.id}}'></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<div class='sprintCard sprintCardNone card'>
|
||||
<div class='card-header'>
|
||||
Sprint Aucun
|
||||
</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}}||{{version.id}}'></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<div class='versionCard versionCardNone card-body'>
|
||||
<h5>Version = Aucune</h5>
|
||||
<div class='versionBody' data-id='{{status.id}}||'></div>
|
||||
</div>
|
||||
|
||||
<div class='versionCard versionCardNone card-body'>
|
||||
<h5>Version = Aucune</h5>
|
||||
<div class='versionBody' data-id='{{status.id}}||'></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% for issue in project.issues %}
|
||||
<div class="issueCard {{issue.color}} card tracker{{issue.redmine.tracker.id}} category{{(issue.redmine.category is defined?issue.redmine.category.id:'0') }}" data-status='{{issue.redmine.status.id}}' data-sprint='{{issue.rowsprint}}' data-version='{{(issue.redmine.fixed_version is defined?issue.redmine.fixed_version.id:'')}}' data-id='{{issue.id}}'>
|
||||
@ -664,17 +665,16 @@
|
||||
placeholder: 'issue-placeholder',
|
||||
forcePlaceholderSize: true,
|
||||
|
||||
scroll: true, // 👈 Active le scroll auto
|
||||
scrollSensitivity: 50, // 👈 distance (px) à partir du bord pour déclencher le scroll
|
||||
scrollSpeed: 100, // 👈 vitesse de défilement
|
||||
|
||||
start: function (event, ui) {
|
||||
$sourceContainer = ui.item.parent();
|
||||
$movedItem = ui.item;
|
||||
originalIndex = ui.item.index();
|
||||
enableAutoScroll($(window)); // ou remplace par ton conteneur scrollable
|
||||
},
|
||||
|
||||
stop: function () {
|
||||
disableAutoScroll();
|
||||
},
|
||||
|
||||
update: function (event, ui) {
|
||||
console.log("UPDATE");
|
||||
if (!event.originalEvent) return;
|
||||
@ -732,40 +732,5 @@
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
let autoScrollInterval = null;
|
||||
|
||||
function enableAutoScroll($container) {
|
||||
$(document).on('mousemove.autoScroll', function (e) {
|
||||
const scrollMargin = 50; // px depuis le bord de la fenêtre
|
||||
const scrollSpeed = 20; // px à chaque tick
|
||||
|
||||
const mouseY = e.clientY;
|
||||
const windowHeight = window.innerHeight;
|
||||
|
||||
// Scroll vers le haut
|
||||
if (mouseY < scrollMargin) {
|
||||
clearInterval(autoScrollInterval);
|
||||
autoScrollInterval = setInterval(() => {
|
||||
$container.scrollTop($container.scrollTop() - scrollSpeed);
|
||||
}, 50);
|
||||
}
|
||||
// Scroll vers le bas
|
||||
else if (mouseY > windowHeight - scrollMargin) {
|
||||
clearInterval(autoScrollInterval);
|
||||
autoScrollInterval = setInterval(() => {
|
||||
$container.scrollTop($container.scrollTop() + scrollSpeed);
|
||||
}, 50);
|
||||
} else {
|
||||
clearInterval(autoScrollInterval);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function disableAutoScroll() {
|
||||
$(document).off('mousemove.autoScroll');
|
||||
clearInterval(autoScrollInterval);
|
||||
}
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
Reference in New Issue
Block a user