change "Done" button to "Continue without network" if there is no default route
This commit is contained in:
parent
680da7d299
commit
ff59de4a9c
|
@ -51,6 +51,7 @@ from subiquitycore.ui.utils import (
|
||||||
make_action_menu_row,
|
make_action_menu_row,
|
||||||
screen,
|
screen,
|
||||||
)
|
)
|
||||||
|
from subiquitycore.ui.width import widget_width
|
||||||
from .network_configure_manual_interface import (
|
from .network_configure_manual_interface import (
|
||||||
AddVlanStretchy,
|
AddVlanStretchy,
|
||||||
BondStretchy,
|
BondStretchy,
|
||||||
|
@ -125,14 +126,17 @@ class NetworkView(BaseView):
|
||||||
bp,
|
bp,
|
||||||
]
|
]
|
||||||
|
|
||||||
buttons = button_pile([
|
self.buttons = button_pile([
|
||||||
done_btn(_("Done"), on_press=self.done),
|
done_btn("TBD", on_press=self.done), # See _route_watcher
|
||||||
back_btn(_("Back"), on_press=self.cancel),
|
back_btn(_("Back"), on_press=self.cancel),
|
||||||
])
|
])
|
||||||
self.bottom = Pile([
|
self.bottom = Pile([
|
||||||
('pack', buttons),
|
('pack', self.buttons),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
self.controller.network_event_receiver.add_default_route_watcher(
|
||||||
|
self._route_watcher)
|
||||||
|
|
||||||
self.error_showing = False
|
self.error_showing = False
|
||||||
|
|
||||||
super().__init__(screen(
|
super().__init__(screen(
|
||||||
|
@ -163,6 +167,19 @@ class NetworkView(BaseView):
|
||||||
log.debug("_action %s %s", action.name, device.name)
|
log.debug("_action %s %s", action.name, device.name)
|
||||||
meth(device)
|
meth(device)
|
||||||
|
|
||||||
|
def _route_watcher(self, routes):
|
||||||
|
log.debug('view route_watcher %s', routes)
|
||||||
|
if routes:
|
||||||
|
label = _("Done")
|
||||||
|
else:
|
||||||
|
label = _("Continue without network")
|
||||||
|
self.buttons.base_widget[0].set_label(label)
|
||||||
|
self.buttons.width = max(
|
||||||
|
14,
|
||||||
|
widget_width(self.buttons.base_widget[0]),
|
||||||
|
widget_width(self.buttons.base_widget[1]),
|
||||||
|
)
|
||||||
|
|
||||||
def _notes_for_device(self, dev):
|
def _notes_for_device(self, dev):
|
||||||
notes = []
|
notes = []
|
||||||
if dev.type == "eth" and not dev.info.is_connected:
|
if dev.type == "eth" and not dev.info.is_connected:
|
||||||
|
@ -378,7 +395,11 @@ class NetworkView(BaseView):
|
||||||
def done(self, result=None):
|
def done(self, result=None):
|
||||||
if self.error_showing:
|
if self.error_showing:
|
||||||
self.bottom.contents[0:2] = []
|
self.bottom.contents[0:2] = []
|
||||||
|
self.controller.network_event_receiver.remove_default_route_watcher(
|
||||||
|
self._route_watcher)
|
||||||
self.controller.network_finish(self.model.render())
|
self.controller.network_finish(self.model.render())
|
||||||
|
|
||||||
def cancel(self, button=None):
|
def cancel(self, button=None):
|
||||||
|
self.controller.network_event_receiver.remove_default_route_watcher(
|
||||||
|
self._route_watcher)
|
||||||
self.controller.cancel()
|
self.controller.cancel()
|
||||||
|
|
Loading…
Reference in New Issue