added enable/disable for Routines for current Bkup run. show/hide sources/destinations by enabled status

This commit is contained in:
itwrx
2023-06-29 07:09:23 -05:00
parent 22abe65ab0
commit e7e156868e
5 changed files with 42 additions and 25 deletions

View File

@@ -41,11 +41,8 @@ method view(editor: RoutineEditorState): Widget {.locks: "unknown".} =
orient = OrientX
spacing = 6
Label {.expand: false.}:
#later, this may be "selected by default?", instead.
#"selected" checkboxes wiould be added to the list view.
#to allow the user to select which routines are used for a given run.
text = "<span weight=\"bold\" color=\"#FFF469\">Enabled?</span>"
tooltip = "Should this Routine be enabled for inclusion in the Bkup run?"
text = "<span weight=\"bold\" color=\"#FFF469\">Enabled by default?</span>"
tooltip = "Should this Routine be enabled for inclusion in any Bkup run by default?"
xAlign = 0
useMarkup = true
Switch {.expand: false.}:

View File

@@ -11,6 +11,14 @@ import "../models/routine", "../shared"
viewable RoutineList:
routineModel: RoutineModel
runStatus: string
selected: seq[RoutineId]
# hey, hook.
hooks:
# yes, you, the build hook.
build:
# i love you. :)
state.selected = selectedPreload()
proc changed(state: bool)
@@ -33,8 +41,7 @@ proc rsyncThread(list: RoutineListState) {.thread.} =
var routineRunCount: int
routineRunCount = 0
for routine in list.routineModel.routineSeq():
#using this as "selected" for now.
if routine.selByDef == true:
if routine.id in list.selected:
#skip routines that don't have at least one source and one destination.
if routine.sources.len != 0 and routine.destinations.len != 0:
list.runStatus = "<span color=\"#FFE97B\" size=\"large\">Horses, please to be holding...</span>"
@@ -77,7 +84,7 @@ method view(list: RoutineListState): Widget {.locks: "unknown".} =
orient = OrientY
if list.routineModel.routineSeq().len() > 0:
ListBox:
for it, routine in list.routineModel.routineSeq():
for it, routine in list.routineModel.routineSeq():
Box:
orient = OrientY
margin = 6
@@ -85,7 +92,20 @@ method view(list: RoutineListState): Widget {.locks: "unknown".} =
Box:
orient = OrientX
margin = 6
spacing = 6
spacing = 6
Switch {.expand: false, vAlign: AlignCenter.}:
state = routine.selByDef
tooltip = "Enable/Disable this Routine for the current Bkup run."
proc changed(state: bool) =
if state == true:
list.selected.add(routine.id)
else:
let index = list.selected.find(routine.id)
if index != -1:
list.selected.delete(index)
if not list.changed.isNil:
list.changed.callback(true)
Label:
text = "<span size=\"large\">" & routine.name & "</span>"
xAlign = 0
@@ -110,7 +130,7 @@ method view(list: RoutineListState): Widget {.locks: "unknown".} =
tooltip = "Delete this Routine. Warning: will not ask you to confirm."
proc clicked() =
list.routineModel.delete(routine.id)
if routine.selByDef:
if routine.id in list.selected:
Box:
orient = OrientY
margin = 6
@@ -192,7 +212,6 @@ method view(list: RoutineListState): Widget {.locks: "unknown".} =
xAlign = 0
useMarkup = true
proc clicked() =
#list.runStatus = "<span color=\"#FFE97B\" size=\"large\">Running Bkup...</span>"
createThread(thread, rsyncThread, list)
else:
Box {.expand: false.}: