feat: update Docker build workflow to include additional paths for triggering builds
All checks were successful
Build and Push Docker Image / build (push) Successful in 35s

This commit is contained in:
Felix Schlusche
2025-10-24 16:56:30 +02:00
parent f84867fe1b
commit a02f97cc7f
2 changed files with 86 additions and 12 deletions

View File

@@ -5,10 +5,34 @@ on:
branches: branches:
- main - main
- master - master
paths:
- 'server.js'
- 'package.json'
- 'package-lock.json'
- 'Dockerfile'
- 'docker-compose.yml'
- 'db/**'
- 'public/**'
- '!public/**/*.md'
- '!**/*.md'
- '!.gitea/workflows/**'
- '!.gitignore'
pull_request: pull_request:
branches: branches:
- main - main
- master - master
paths:
- 'server.js'
- 'package.json'
- 'package-lock.json'
- 'Dockerfile'
- 'docker-compose.yml'
- 'db/**'
- 'public/**'
- '!public/**/*.md'
- '!**/*.md'
- '!.gitea/workflows/**'
- '!.gitignore'
env: env:
REGISTRY: ${{ secrets.REGISTRY || 'gitea.fx-se.de' }} REGISTRY: ${{ secrets.REGISTRY || 'gitea.fx-se.de' }}

View File

@@ -2764,6 +2764,8 @@ function handleCellClick(e) {
const originalContent = cell.innerHTML; const originalContent = cell.innerHTML;
let input; let input;
let picker;
if (field === 'pauseMinutes') { if (field === 'pauseMinutes') {
input = document.createElement('input'); input = document.createElement('input');
input.type = 'number'; input.type = 'number';
@@ -2772,7 +2774,7 @@ function handleCellClick(e) {
input.className = 'cell-input'; input.className = 'cell-input';
input.value = currentValue; input.value = currentValue;
} else { } else {
// Time fields // Time fields - use Flatpickr
input = document.createElement('input'); input = document.createElement('input');
input.type = 'text'; input.type = 'text';
input.className = 'cell-input'; input.className = 'cell-input';
@@ -2783,10 +2785,46 @@ function handleCellClick(e) {
cell.innerHTML = ''; cell.innerHTML = '';
cell.appendChild(input); cell.appendChild(input);
input.focus(); input.focus();
input.select();
// Initialize Flatpickr for time fields
if (field === 'startTime' || field === 'endTime') {
picker = flatpickr(input, {
enableTime: true,
noCalendar: true,
dateFormat: 'H:i',
time_24hr: true,
minuteIncrement: 15,
allowInput: true,
locale: 'de',
defaultHour: parseInt(currentValue.split(':')[0]) || 9,
defaultMinute: parseInt(currentValue.split(':')[1]) || 0,
onOpen: function(selectedDates, dateStr, instance) {
if (currentValue && currentValue.match(/^\d{1,2}:\d{2}$/)) {
instance.setDate(currentValue, false);
}
},
onClose: function(selectedDates, dateStr, instance) {
if (dateStr) {
input.value = dateStr;
}
// Trigger save after picker closes
setTimeout(() => saveEdit(), 100);
}
});
// Open picker immediately
setTimeout(() => picker.open(), 50);
} else {
input.select();
}
// Save on blur or Enter // Save on blur or Enter
const saveEdit = async () => { const saveEdit = async () => {
// Destroy picker if exists
if (picker) {
picker.destroy();
}
const newValue = input.value.trim(); const newValue = input.value.trim();
if (newValue === currentValue) { if (newValue === currentValue) {
@@ -2858,16 +2896,28 @@ function handleCellClick(e) {
} }
}; };
input.addEventListener('blur', saveEdit); // Event listeners - only if not a time picker
input.addEventListener('keydown', (e) => { if (field === 'pauseMinutes') {
if (e.key === 'Enter') { input.addEventListener('blur', saveEdit);
e.preventDefault(); input.addEventListener('keydown', (e) => {
saveEdit(); if (e.key === 'Enter') {
} else if (e.key === 'Escape') { e.preventDefault();
cell.classList.remove('editing'); saveEdit();
cell.innerHTML = originalContent; } else if (e.key === 'Escape') {
} cell.classList.remove('editing');
}); cell.innerHTML = originalContent;
}
});
} else {
// For time fields, save is handled by Flatpickr onClose
input.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
if (picker) picker.destroy();
cell.classList.remove('editing');
cell.innerHTML = originalContent;
}
});
}
} }
/** /**