"modernize" console-conf views

This commit is contained in:
Michael Hudson-Doyle 2018-03-08 18:51:39 +13:00
parent d15565bdf1
commit 0273a3d110
3 changed files with 45 additions and 38 deletions

View File

@ -19,7 +19,7 @@ from urwid import Text
from subiquitycore.ui.buttons import done_btn, cancel_btn
from subiquitycore.ui.container import Columns, ListBox, Pile
from subiquitycore.ui.interactive import EmailEditor
from subiquitycore.ui.utils import Padding, Color
from subiquitycore.ui.utils import Padding, Color, button_pile
from subiquitycore.view import BaseView
log = logging.getLogger("console_conf.views.identity")
@ -59,16 +59,22 @@ class IdentityView(BaseView):
self.progress = Text("", align="center")
body = [
Padding.center_90(self._build_model_inputs()),
Padding.line_break(""),
Padding.center_79(Color.info_minor(Text("If you do not have an account, visit https://login.ubuntu.com to create one."))),
Padding.line_break(""),
Padding.center_90(Color.info_error(self.error)),
Padding.center_90(self.progress),
Padding.line_break(""),
Padding.fixed_10(self._build_buttons()),
]
super().__init__(ListBox(body))
('pack', Text("")),
ListBox([
self._build_model_inputs(),
Padding.line_break(""),
Padding.center_79(Color.info_minor(Text("If you do not have an account, visit https://login.ubuntu.com to create one."))),
Padding.line_break(""),
Padding.center_90(Color.info_error(self.error)),
Padding.center_90(self.progress),
]),
('pack', Pile([
('pack', Text("")),
button_pile(self._build_buttons()),
('pack', Text("")),
])),
]
super().__init__(Pile(body))
def keypress(self, size, key):
key = super().keypress(size, key)
@ -79,23 +85,21 @@ class IdentityView(BaseView):
return key
def _build_model_inputs(self):
sl = [
Columns(
sl = Padding.center_79(Columns(
[
("weight", 0.2, Text("Email address:", align="right")),
("weight", 0.3, Color.string_input(self.email)),
],
dividechars=4
),
]
return Pile(sl)
))
return sl
def _build_buttons(self):
buttons = [
done_btn("Done", on_press=self.done),
cancel_btn("Cancel", on_press=self.cancel),
]
return Pile(buttons)
return buttons
def cancel(self, button=None):
self.controller.cancel()

View File

@ -24,7 +24,7 @@ from urwid import Text
from subiquitycore.ui.buttons import done_btn
from subiquitycore.ui.container import ListBox, Pile
from subiquitycore.ui.utils import Padding
from subiquitycore.ui.utils import button_pile, Padding
from subiquitycore.view import BaseView
log = logging.getLogger("subiquitycore.views.login")
@ -37,18 +37,23 @@ class LoginView(BaseView):
self.controller = controller
self.netdevs = netdevs
self.items = []
self.body = [
Padding.center_79(self._build_model_inputs()),
Padding.line_break(""),
Padding.fixed_10(self._build_buttons())
]
super().__init__(ListBox(self.body))
super().__init__(
Pile([
('pack', Text("")),
Padding.center_79(ListBox(self._build_model_inputs())),
('pack', Pile([
('pack', Text("")),
button_pile(self._build_buttons()),
('pack', Text("")),
])),
]))
def _build_buttons(self):
self.buttons = [
return [
done_btn("Done", on_press=self.done),
]
return Pile(self.buttons)
def _build_model_inputs(self):
local_tpl = (
@ -78,7 +83,7 @@ class LoginView(BaseView):
ssh_iface = " ssh %s@%s" % (user.username, ip)
sl.append(Text(ssh_iface))
return Pile(sl)
return sl
def confirm(self, result):
self.done()

View File

@ -19,9 +19,12 @@ Welcome provides user with language selection
"""
import logging
from urwid import Text
from subiquitycore.ui.buttons import ok_btn
from subiquitycore.ui.container import ListBox, Pile
from subiquitycore.ui.utils import Padding
from subiquitycore.ui.utils import button_pile
from subiquitycore.view import BaseView
log = logging.getLogger("console_conf.views.welcome")
@ -30,16 +33,11 @@ log = logging.getLogger("console_conf.views.welcome")
class WelcomeView(BaseView):
def __init__(self, controller):
self.controller = controller
self.body = [
Padding.fixed_10(self._build_buttons())
]
super().__init__(ListBox(self.body))
def _build_buttons(self):
self.buttons = [
ok_btn("OK", on_press=self.confirm),
]
return Pile(self.buttons)
super().__init__(Pile([
ListBox([Text('')]), # need to have a listbox or something else "stretchy" here or urwid complains.
('pack', button_pile([ok_btn("OK", on_press=self.confirm)])),
('pack', Text("")),
], focus_item=1))
def confirm(self, result):
self.controller.done()