Instantly share code, notes, and snippets.

Embed
What would you like to do?
Wild idea 1 (second iteration) for Partitioner UI

About this gist

This is a refined version of the idea presented at https://gist.github.com/ancorgs/5e5fd016eb7db7413a1972d52f9ae913 after improving the wording and getting some useful and positive feedback in the yast-devel mailing list.

Thus, this a proposal for the UI of the partitioner offering all the new features (partitionable RAIDs, formattable disks and so on). The proposal is based on three general ideas:

  • Offer a different set of buttons depending on the item selected on the table.
  • Group related actions in menu-buttons, with "Modify" being always the first one.
  • General actions that don't correspond to a concrete entry of the table are represented by buttons in a second line.

The Hard Disks table

See animated image for ncurses 80x24.

Hard Disks table (ncurses)

Some notes about the buttons for a disk.

  • "Edit Hard Disk" opens the wizard to directly format/mount/encrypt the disk.
  • "Edit Partitions" takes the user to the "Partitions" tab for the disk, just as the old "Edit" button used to do.
  • Having "Modify -> Edit Hard Disk" and "Partitions -> Edit Partitions" side by side should be a good sign for the user about the fact that "Edit" doesn't necessarily mean jumping to the list of partitions anymore.

Obviously, when a partition is selected, "Modify -> Edit Partition" is the equivalent to the old "Edit", i.e. the wizard to format/mount/encrypt the partition.

See the image for the equivalent table in graphical mode.

Hard Disks table (Qt)

The RAIDs table

See animated image for ncurses 80x24.

RAIDs table (ncurses)

The buttons for a RAID are basically equivalent to the buttons for a hard disk, but with two additions.

  • A "Delete" button.
  • A "Modify -> Change Used Devices" option equivalent to the old "Resize".

The buttons for a partition are equivalent to the Hard Disks table.

See the image for the equivalent table in graphical mode.

RAIDs table (Qt)

The table of partitions for a given disk/RAID/bcache

See animated images below. Not much to add, the buttons affecting the current selected partition are explained above and the two general buttons should be self-descriptive.

In ncurses 80x24.

Partitions of a RAID (ncurses)

In graphical mode.

Partitions of a RAID (ncurses)

The Volume Management table

See animated image below (again, ncurses 80x24). The buttons for VGs and LVs are their respective meanings are pretty much analogous to the ones in the table of RAIDs and their partitions. So not much explanation should be needed at this point.

LVM table (ncurses)

The only strange thing is that, for symmetry with the other tables, the "Modify" option for an VG is a menu-button, despite the fact that it only contains one action (so far).

See the equivalent image in graphical mode.

LVM table (qt)

The system view

As pointed in the mail thread, the current approach of adapting the set of buttons for the selected device would enable us to offer actions directly on the initial view that list all the devices of all kinds in a single table.

That view currently includes buttons for generic actions such as "Rescan Devices", "Import Mount Points" and "Configure", which makes difficult to add a generic "Add" button allowing the creation of RAIDs, VGs and bcache devices (as suggested in the thread).

System table (ncurses)

On the other hand, the "Import Mount Points" and "Configure" buttons are probably there just for historical reasons, so maybe we could find a better place for them in the mid term.

For completeness, see the corresponding animation in graphical mode.

System table (Qt)

@Fraser-Bell

This comment has been minimized.

Fraser-Bell commented Oct 8, 2018

Looking good, so far. Comes a long way.

@joseivanlopez

This comment has been minimized.

joseivanlopez commented Oct 25, 2018

In my opinion, this distribution of the buttons goes in the correct direction, although I see some things that I don't like so much.

Some problems I see:

  • Having two rows of buttons, one for the selected item actions and another one for general actions. I don't see it so easy to understand, mainly when there are several buttons in each row.
  • In fact, it is quite important to understand the two levels of buttons, otherwise the user could doubt about the real button effect. For example, inside of "Modify" menu button we have options like "Edit RAID" which is pretty clear that we are working over a RAID, but then we have a separate "Delete" button. At first glace it could not be clear what I am going to delete, the partition? the RAID?
  • Splitting the selected item actions out into several buttons. This also could confuse the user. On one hand we have a quite general "Modify" menu button, but then, other actions has its own button, like "Partitions" or "Delete".

My proposal:

  • To have only one menu button with all actions for the selected device, and the rest of general actions that are not related to the selected device will go just next to that button, for example: [Device actions ->] [Add RAID]
  • "Device actions" will contain all possible actions over the device: "Edit", "Delete", "Add Partition", "Delete Partitions", "Clone Partitions".
@dgdavid

This comment has been minimized.

dgdavid commented Oct 26, 2018

@joseivanlopez

I am almost totally in agreement with you :)

However, there is a possible drawback in your proposal: the loss of instant feedback to the user about which "doable groups of modifying actions" are available for the selected device.

Not a big deal, probably, but it could worth keep it in mind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment