MCPcopy Create free account
hub / github.com/devnullvoid/pvetui / NewBackupManager

Function NewBackupManager

internal/ui/components/vm_backups.go:34–81  ·  view source on GitHub ↗

NewBackupManager creates a new backup manager for the given VM.

(app *App, vm *api.VM)

Source from the content-addressed store, hash-verified

32
33// NewBackupManager creates a new backup manager for the given VM.
34func NewBackupManager(app *App, vm *api.VM) *BackupManager {
35 bm := &BackupManager{
36 vm: vm,
37 app: app,
38 }
39
40 // Register for backup updates from the App's global monitor
41 bm.unregisterCallback = app.RegisterBackupCallback(func() {
42 bm.loadBackups()
43 })
44
45 // Create components
46 bm.backupTable = NewBackupTable(app, vm)
47 bm.operations = NewBackupOperations(app, vm)
48 bm.form = NewBackupForm(app, vm)
49 // Hook up callback
50 bm.form.SetTaskStartedCallback(bm.trackBackupTask)
51
52 // Create info text
53 bm.infoText = tview.NewTextView().
54 SetDynamicColors(true).
55 SetTextAlign(tview.AlignLeft).
56 SetWrap(true)
57
58 // Create header
59 header := bm.createHeader()
60
61 // Create layout
62 bm.Flex = tview.NewFlex().
63 SetDirection(tview.FlexRow).
64 AddItem(header, 3, 0, false).
65 AddItem(bm.backupTable, 0, 1, true).
66 AddItem(bm.infoText, 1, 0, false)
67
68 // Add border
69 bm.SetBorder(true)
70 bm.SetBorderColor(theme.Colors.Border)
71 bm.SetTitle(" Backup Manager ")
72 bm.SetTitleColor(theme.Colors.Title)
73
74 // Load backups
75 bm.loadBackups()
76
77 // Set up keyboard navigation
78 bm.setupKeyboardNavigation()
79
80 return bm
81}
82
83// setupKeyboardNavigation sets up keyboard shortcuts.
84//

Callers 1

ShowVMContextMenuMethod · 0.85

Calls 9

loadBackupsMethod · 0.95
createHeaderMethod · 0.95
NewBackupTableFunction · 0.85
NewBackupOperationsFunction · 0.85
NewBackupFormFunction · 0.85
SetTitleMethod · 0.65

Tested by

no test coverage detected