There might potentially be a very straight forward solution to this, but I'm can't see it, hence the question. I'm wondering what is the best way to structure a dialog where the user can select items from a list, create new items, as well as edit several detail fields associated with every item.
More specifically, here is my workflow: In our analytics app the user is able to change the way some dimensions are presented, let's call this a 'View'. User is able to edit existing Views, user should also be able to create a new view, tweak its options, and save this new View so that he/she can select it later. A few actions that should be available:
- Create new View
- Edit an existing View
- Delete a View
- Modify the View details (setting under either option 1 or 2)
Here is what I currently have:
- The dropdown is the View selector, in this case the 'View B' view is selected, with its specific setting shown below.
- The '+' icon creates a new View (with the user able to give it a name in-line)
- The 'trash' icon deletes the currently open View (the next one is shown)
- User is unable to delete the 'Default' view (so there is always something selected)
My concern is that this design mixes the View changing workflow and the View editing workflow, and the distinction might not be clear. The primary workflow would be for the user (after having previously created a few of these Views) to switch between them, with the View editing (and new View creation) happening infrequently. At the same time, I want to make sure the settings of each View (option 1 or 2 and associated values) are shown because the titles are likely not going to be very descriptive.
In the mockup above one problem I can see is that the 'Save changes' button is potentially misleading, because with the primary workflow the user will open the dialog, select a View, and close it in order to continue analysis (without changing anything). So perhaps the button should be 'Done' and the Saving should be immediate upon changing any of the fields?
Wondering if anyone has any suggestions on how to do this better.