ui: Add security check to ConfirmedEntry

Previously it was cumbersome to get the effects of incorrect/unsave
passwords on the UI straight. By pulling the password check code into
the ConfirmedEntry widget and adding a Notice field, the whole process
is simpliefied from a "user" perspektive (plugin writer).

Change-Id: I302ec06290d6c1dd26c7b4e8b3c13727ec8b1131
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
installer: Fix password page

Previously the installer accepted an empty password but failed to
complete the installation. This happened due to an incorrect password
check.
Now the password is checked correctly and the user get's feedback about
the different problems.
Additionally the installer only allows the user to carry on when a valid
password is given.

Change-Id: I2daeebd9ae5079d39af1b4f1b7be6eed9a9ce790
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=985275
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
ui: Rework validation and exception handling

Previously the actual widget of a toolkit was responsible to call and
handle the validation stuff. The pros of this approach were that e.g.
handling simple validation errors was easy and could be directly
implemented by the widget. Problems arose with the introduction with
e.g. the ConfirmedEntry (which is a complex ui.Element in the UI
abstraktion layer). With the introduction of these complex ui.Elements
we also wanted - and needed - to pull the validation and exception
handling into the UI abstraction layer. This is necessary because now it
can be controlle din the UI abstraction layer how invalid data shall be
handled.

Change-Id: I4542a2641c6ce6f9f9126db608abca57a4ca453b
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
ui: Adjust some logging messages and comments

Change-Id: Ic11a3888a720b9a0775ac73c18aea5bc4a9daf8b
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
installer: Use button for custom devices

Previously custom devices could be added by selecting a specific entry
in the table. But this became problematic with the parallel validation
changes.
The functionality is now pulled into a button to simplify the code.

Change-Id: I2a1fcf270ca2246d1c4d521f0d54b7e454276ff5
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
urwid: Only show Label if table label is given

This saves on row at runtime, when no label is given.

Change-Id: I25f978a42b78a1e82f46c3a1a8ca2964ab38e631
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
ui: No on_change on Table(multi) focus change

Previously an on_change event (which triggered an on_save() call) was
emitted when the focus in a Table with multiple-options changed from one
focus to the next. But this behaviour was incorrect.
NodePlugin.on_save() shall only be called when the data model change, so
when the user actualy changes data e.g. selects another entry or
deselects one.
The on_change is now only called - in a user with multi=True - when the
user selects or deselects an entry.
To capture focus shifts/changing entries the Table.on_change signals has
to be used directly.

Change-Id: Ic6d9fc2ca9dbcbb4ee009ebc3b7e342a9e44c66c
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
net: Configured if IPv6 or IPv4 cfg is present

Previously a NIC was only considerred to be configured when an IPv4
configuration was found. Now a NIC is considerred to be configured when
an IPv4 or IPv6 configuration is found.

Change-Id: If528b682e85a89d0340fd9fe63304fd168c2476b
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=991296
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>