Merge pull request #208 from CanonicalLtd/mwhudson/confirmation-dialog

confirm before writing data to disks
This commit is contained in:
Michael Hudson-Doyle 2017-03-24 12:38:09 +13:00 committed by GitHub
commit 724d65e1b7
1 changed files with 41 additions and 6 deletions

View File

@ -20,12 +20,21 @@ configuration.
"""
import logging
from urwid import connect_signal, Text
from urwid import (
connect_signal,
LineBox,
Padding as UrwidPadding,
Text,
WidgetWrap,
)
from subiquitycore.ui.buttons import (done_btn,
reset_btn,
cancel_btn,
menu_btn)
from subiquitycore.ui.buttons import (
cancel_btn,
continue_btn,
done_btn,
menu_btn,
reset_btn,
)
from subiquitycore.ui.container import Columns, ListBox, Pile
from subiquitycore.ui.utils import Padding, Color
from subiquitycore.view import BaseView
@ -36,6 +45,32 @@ from subiquity.models.filesystem import _humanize_size
log = logging.getLogger('subiquity.ui.filesystem.filesystem')
confirmation_text = """
Selecting Continue below will result of the loss of data on the disks selected to be formatted.
Are you sure you want to continue?
"""
class FilesystemConfirmationView(WidgetWrap):
def __init__(self, parent, controller):
self.parent = parent
self.controller = controller
pile = Pile([
UrwidPadding(Text(confirmation_text), left=2, right=2),
Padding.fixed_15(Color.button(cancel_btn(label="No", on_press=self.cancel))),
Padding.fixed_15(Color.button(continue_btn(on_press=self.ok))),
Text(""),
])
lb = LineBox(pile, title="Confirm destructive action")
super().__init__(Padding.center_75(lb))
def ok(self, sender):
self.controller.finish()
def cancel(self, sender):
self.parent.remove_overlay()
class FilesystemView(BaseView):
def __init__(self, model, controller):
log.debug('FileSystemView init start()')
@ -175,4 +210,4 @@ class FilesystemView(BaseView):
self.controller.reset()
def done(self, button):
self.controller.finish()
self.show_overlay(FilesystemConfirmationView(self, self.controller))