package components import ( "context" "fmt" "github.com/starfleetcptn/gomft/internal/db" ) // Dialog component for confirmation dialogs using Flowbite modal templ JobDialog(id string, title string, message string, confirmClass string, confirmText string, action string, jobID uint, jobName string) {
} script triggerJobDelete(dialogId string, jobID uint, jobName string) { // Hide the dialog document.getElementById(dialogId).classList.add("hidden"); document.getElementById(dialogId).classList.remove("flex"); // Add debugging info console.log(`Job deletion triggered for: ${jobName} (ID: ${jobID})`); // Store data in a way that's accessible to event handlers window.lastDeletedJob = { id: jobID, name: jobName }; // Add custom marker to track this deletion window.currentlyDeletingJob = true; } type JobsData struct { Jobs []db.Job ConfigCount map[uint]int // Maps job ID to number of configs } templ Jobs(ctx context.Context, data JobsData) { @LayoutWithContext("Scheduled Jobs", ctx) {if job.Name != "" { { job.Name } } else { { job.Config.Name } }
if job.GetEnabled() { Active } else { Inactive }Configs: if count, ok := data.ConfigCount[job.ID]; ok && count > 1 { { fmt.Sprintf("%d configurations", count) } } else if job.ConfigID > 0 { { job.Config.Name } } else { { "None" } }
Schedule: { job.Schedule }
if job.LastRun != nil {Last Run: { job.LastRun.Format("2006-01-02 15:04:05") }
}Next Run: { job.NextRun.Format("2006-01-02 15:04:05") }
Transfer jobs run according to their schedule and transfer files between configured sources and destinations