Christoph Heiss
26cdaacff4
tui: introduce new FormView
compomenent to unify all form inputs
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
e95f4f1a2d
tui: error out in network dialog if option retrieval failed
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
ef4957e89a
tui: implement password dialog options retrieval and validation
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
ee1437bbfc
tui: refactor and unify btrfs and zfs bootdisk options view
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
56a304d59f
tui: implement btrfs bootdisk selection option
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
2a344f499d
tui: format disk size as GiB for now, instead of bytes
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
2a65d9f46e
tui: fix disksize-input unit
...
Previously, the size was displayed in MiB, although it should have been
GiB.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
7393ed8840
tui: implement zfs bootdisk selection option
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
2d6187f192
tui: implement FormInputViewGetValue
for custom NumericEditView
s
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
ed191e60dd
tui: refactor bootdisk dialog; advanced options into separate dialog
...
This also reworks the whole installer state. The main type is now
`InstallerData`, which holds info about the machine (such as info about
the disks), as well as all the user options.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
36c6b9bddd
tui: make FormInputViewGetValue<SelectView>
fully generic
...
`SelectView` can hold values of other types than string.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
13c919bb2a
tui: refactor some option bits
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
af0dfe0e72
tui: move bootdisk dialog into own module
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
de0e2eaa6a
tui: combine all use
directives into one block
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
6cff279466
tui: add rustdoc for CidrAddress
type
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
a04201354d
tui: add proper IPv6 support to CidrAddress
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
8807d54726
tui: add top content padding for all installer views
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
75c7c30362
tui: add README describing some debugging specifics
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
e7a529aecc
tui: implement scrolling for (summary) table view
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
a7965322ec
tui: unify option labels spelling/formatting in summary view
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
9d89d3ad49
tui: fix invalid starting value for integer input views
...
Fixes: b0a3beb ("tui: introduce separate views types for float & integer inputs")
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
fc18719600
tui: introduce CidrAddress
type for ip address + mask tuples
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
b7828c87ce
tui: move installer options defintions into separate module
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
e5dc9a491b
tui: simplify FormInputViewGetValue impl's
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
bb95150055
tui: fix warning about unused function
...
yes_no_dialog() is not used in debug builds; due to it's only usage in
trigger_abort_install_dialog() being only enabled in release builds for
brevity reasons.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
5e73fcfeaf
tui: simplify add_next_screen() by taking a siv
directly
...
Suggested-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
cd383717e8
tui: implement value retrieval for network options dialog
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
56c6bac76a
tui: introduce trait to retrieve input values wrapped by FormInputView
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
1065dad78c
tui: introduce separate views types for float & integer inputs
...
This having to conditionalize everything on the `.ints_only` member,
making things a lot cleaner and easier to expand as needed.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
947fe36045
tui: add preliminary summary dialog
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
29c4d84e77
tui: add TableView
component for displaying tabular data
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
17a3026765
tui: move utility views into own module directory
...
.. in preparation for adding additional modules.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
fbccf72c1a
tui: avoid open-coding add_next_screen()
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
1397feec4f
tui: fix typo in network dialog label
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
fb27f7ebb5
tui: separate CIDR input into own view
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
de97681bc6
tui: DiskSizeFormInputView: simplify using direct if let Some(..)
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
ccd34284b3
tui: add preliminary network dialog
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
93ebe7bd0d
tui: display error dialog on invalid values instead of panicking
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
ba8987656c
tui: fix panic in NumericEditView
if the cursor is at the last position
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
468030fc87
tui: implement DiskSizeFormInputView::content() callback-free
...
See also commit 1a26aef, which does the same for `NumericEditView`.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
938259acb1
tui: implement NumericEditView::content() callback-free
...
.set_content() returns a callback which must be called in a `Cursive`
context, which for the chainable variant is never really on option.
Avoid that and do it properly.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
c2eee46862
tui: add basic email/root password dialog
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
a142f45783
tui: add simple location/timezone dialog
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
f522afb14c
tui: move abort/previous/next buttons into InstallerView
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
48ce057c89
tui: add missing FS_TYPES
definition
...
Fixes: e09b55a ("tui: add bootdisk selection screen")
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
52e6b3373c
tui: introduce generic FormInputView
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
64220ff188
tui: add bootdisk selection screen
...
Only LVM boodisks (read: ext4 and xfs) are supported for now; zfs/btrfs
will come later.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
83071f3542
tui: add NumericEditView
and DiskSizeInputView
components
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
e9557e6210
tui: add LVM disk structures and some mocking data
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00
Christoph Heiss
e70f1b2fed
tui: pass Cursive
instance to installer view constructors
...
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-06-14 10:39:56 +02:00