{"action":"created","issue":{"url":"https://api.github.com/repos/yast/yast-users/issues/84","labels_url":"https://api.github.com/repos/yast/yast-users/issues/84/labels{/name}","comments_url":"https://api.github.com/repos/yast/yast-users/issues/84/comments","events_url":"https://api.github.com/repos/yast/yast-users/issues/84/events","html_url":"https://github.com/yast/yast-users/pull/84","id":128523052,"number":84,"title":"Redesign and refactoring of installation dialogs","user":{"login":"ancorgs","id":3638289,"avatar_url":"https://avatars.githubusercontent.com/u/3638289?v=3","gravatar_id":"","url":"https://api.github.com/users/ancorgs","html_url":"https://github.com/ancorgs","followers_url":"https://api.github.com/users/ancorgs/followers","following_url":"https://api.github.com/users/ancorgs/following{/other_user}","gists_url":"https://api.github.com/users/ancorgs/gists{/gist_id}","starred_url":"https://api.github.com/users/ancorgs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ancorgs/subscriptions","organizations_url":"https://api.github.com/users/ancorgs/orgs","repos_url":"https://api.github.com/users/ancorgs/repos","events_url":"https://api.github.com/users/ancorgs/events{/privacy}","received_events_url":"https://api.github.com/users/ancorgs/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/yast/yast-users/labels/blog","name":"blog","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-25T12:07:48Z","updated_at":"2016-01-27T16:51:03Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/yast/yast-users/pulls/84","html_url":"https://github.com/yast/yast-users/pull/84","diff_url":"https://github.com/yast/yast-users/pull/84.diff","patch_url":"https://github.com/yast/yast-users/pull/84.patch"},"body":"This pull request tries to address the usability problems reported for the \"create user\" screen during installation.\r\n\r\n## Problems of the previous dialog for user creation\r\n\r\nHere you can see the previous screen.\r\n\r\n![createnewuser_-_old_state](https://cloud.githubusercontent.com/assets/3638289/12619554/d8497d50-c518-11e5-9381-dcc7cf4ef7f1.png)\r\n\r\nThere is quite some functionality hidden there:\r\n\r\n* You can select the password encryption method (clicking on \"Change...\")\r\n* You can select one and only one of these options:\r\n  * Create a user (Obvious)\r\n  * Skip user creation (Leaving the form blank and clicking \"Next\", see pop-up on screenshot)\r\n  * Import users from a previous installation. (Really well hidden, clicking on \"Change...\" and then checking the corresponding checkbox -only visible if users are detected- under the section \"authentication method\"). Rather buggy sub-dialog.\r\n* Last but not least, the dialog exposes a feature that is not there. The summary suggest that you can change the authentication method, but the only supported option is \"local /etc/password\".\r\n\r\nApart from the usability problems, the source code was in really bad shape. Poorly structured, with no unit tests, with a lot of duplication and dead code and with some bugs.\r\n\r\n## The new dialog\r\n\r\nThe normal installation workflow have now 2 steps:\r\n\r\n1) Creation of user. This is how it looks in a clean system and in a system with previous users\r\n![step1-clean](https://cloud.githubusercontent.com/assets/3638289/12620217/a2cb0ccc-c51b-11e5-8dc4-a44a1dde4974.png)\r\n![step1-import](https://cloud.githubusercontent.com/assets/3638289/12620225/b12a8f90-c51b-11e5-9ceb-659b6c77bac4.png)\r\n\r\n2) Root's password. As usual, this step is skipped if \"use this password for system administrator\" is checked. It looks like always (not worth an additional screenshot).\r\n\r\nThat's it. No more hidden functionality.\r\n\r\nBut you could be wondering where the encryption method selector ended up. That depends on the content of the proposal section of the control.xml of the distribution.\r\n\r\n**Option a)** Nothing (current) - The option is simply not there anymore\r\n\r\n**Option b)** users proposal - The installation summary looks like this (check \"users settings\" section)\r\n![user_proposal](https://cloud.githubusercontent.com/assets/3638289/12620339/32f72d9e-c51c-11e5-8052-f7e89ac37e10.png)\r\n\r\n**Option c)** users_encryption proposal - Summary looks like this (check the \"password encryption type\" section)\r\n![encryption_proposal](https://cloud.githubusercontent.com/assets/3638289/12620329/2b6cbba2-c51c-11e5-811a-ad304228c8f7.png)\r\n\r\nWith both options b and c, clicking on the name of the method will take the user to this screen\r\n![encryption](https://cloud.githubusercontent.com/assets/3638289/12620346/419d0454-c51c-11e5-9f26-9c7424430ab9.png)\r\n\r\n## Code refactoring\r\n\r\nAs important as the visual and workflow redesign it the code refactoring, which adds object orientation and some unit tests. As a side effect of that refactoring, the `InstallerDialog` class dialog was added to yast2.rpm for further reuse all along YaST in the future. See https://github.com/yast/yast-yast2/pull/427 for details\r\n"},"comment":{"url":"https://api.github.com/repos/yast/yast-users/issues/comments/175740307","html_url":"https://github.com/yast/yast-users/pull/84#issuecomment-175740307","issue_url":"https://api.github.com/repos/yast/yast-users/issues/84","id":175740307,"user":{"login":"jreidinger","id":478871,"avatar_url":"https://avatars.githubusercontent.com/u/478871?v=3","gravatar_id":"","url":"https://api.github.com/users/jreidinger","html_url":"https://github.com/jreidinger","followers_url":"https://api.github.com/users/jreidinger/followers","following_url":"https://api.github.com/users/jreidinger/following{/other_user}","gists_url":"https://api.github.com/users/jreidinger/gists{/gist_id}","starred_url":"https://api.github.com/users/jreidinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jreidinger/subscriptions","organizations_url":"https://api.github.com/users/jreidinger/orgs","repos_url":"https://api.github.com/users/jreidinger/repos","events_url":"https://api.github.com/users/jreidinger/events{/privacy}","received_events_url":"https://api.github.com/users/jreidinger/received_events","type":"User","site_admin":false},"created_at":"2016-01-27T16:51:03Z","updated_at":"2016-01-27T16:51:03Z","body":"hidden value in else is medium serious for me. another one is nitpick. so almost LGTM :wink: "}}