add branch validation to queue

This commit is contained in:
2025-12-22 14:26:59 +01:00
parent 873e43ed95
commit c581305dcd
8 changed files with 554 additions and 14 deletions

View File

@@ -13,7 +13,7 @@
<div class="job-list">
{% if jobs %}
{% for job in jobs %}
<div class="job-item" data-job-id="{{ job.id }}" onclick="loadJobDetails({{ job.id }})">
<div class="job-item" data-job-id="{{ job.id }}" onclick="loadJobDetails({{ job.id }})" oncontextmenu="showContextMenu(event, {{ job.id }}, '{{ job.status }}')">
<div class="job-status-icon">{{ job.get_status_icon() }}</div>
<div class="job-info">
<h4>Job #{{ job.id }} - {{ job.branch_name }}</h4>
@@ -44,7 +44,48 @@
</div>
</div>
<!-- Context Menu -->
<div id="contextMenu" class="context-menu">
<div class="context-menu-item" onclick="abortJobFromContext()">
<span class="context-menu-icon"></span>
Abort Job
</div>
</div>
<script>
let contextJobId = null;
function showContextMenu(event, jobId, status) {
event.preventDefault();
// Only show context menu for in_progress jobs
if (status !== 'in_progress') {
return;
}
contextJobId = jobId;
const contextMenu = document.getElementById('contextMenu');
contextMenu.style.display = 'block';
contextMenu.style.left = event.pageX + 'px';
contextMenu.style.top = event.pageY + 'px';
// Hide context menu when clicking elsewhere
document.addEventListener('click', hideContextMenu);
}
function hideContextMenu() {
document.getElementById('contextMenu').style.display = 'none';
document.removeEventListener('click', hideContextMenu);
contextJobId = null;
}
function abortJobFromContext() {
if (contextJobId) {
abortJob(contextJobId);
}
hideContextMenu();
}
function loadJobDetails(jobId) {
// Mark job as active
document.querySelectorAll('.job-item').forEach(item => {