I am having some trouble figuring out how to do an interface that has these characteristics:
- allows user to enter several sets ("cases") of data. Minimum one, and there is no limit but say 12 is probably about the max it will ever go.
- user usually knows ahead of time exactly how many cases they need
- nevertheless, it is good to allow the user to order and reorder cases until they are happy with the ordering. This should include deletion and insertion of cases
- user can
select
one and only one of the cases to be their "main" case. This is quite important.
I think that's about it.
Current Interface:
I have the following user interface just using HTML and JS.
To be honest it feels a little clunky and wonky and does not have a "good solid" feel to it. It is not quite satisfying to use, it feels like driving an old car that's about to fall apart and you need some knowledge and skill to operate it properly and know what to click for it to work the way you want. But it works, and it does the job.
To explain what's not intuitively clear ...
- user enters data under Conditions. There is always 5 data pieces, they are part of a set.
- User can click
Add Case
button to add a new case, which will be numbered as {number of previously last case + 1}, and those show up on the right of the Condition box with the info user already entered in the Condition box. Users cannot edit the entered cases, but can delete them by pressing X. - User can select a case to be
Main
by clicking the "select" checkbox above the X for that case. It probably should really be a radio button, but the way it is coded now, it is a checkbox, clicking which sends an AJAX request to the server, which sets the$_SESSION
var to indicate that this case is nowMain
.
Note: this particular form is part of a bigger form.
I think it is reasonable to say that while the current UI works... it is not exactly clear, friendly, or usable.
Question:
What I am looking for in this question is UI design and functionality that will help both the user and the developer.
Namely,
- make sense to the user -- make it reasonable and clear where and how to add, edit, delete, and possibly reorder cases.
- make it easy, and clear on how to indicate
Main
case - make it easy on developer as well, i.e. no checkboxes for something that can use a radio button, and no without AJAX or SESSION vars in play when there is no need for such complexity.
What I am thinking of doing right now is using the mimimal set required for HTML Forms to capture all the information I need, and then submit it in a single Submit
click, without resorting to storing things in the sesssion vars as it is doing now. Also, maybe make cases expand vertically instead of horizontally, and make them all editable instead of having a single editable window. Also, I don't know how I can make them reorderable, but that can be put into another question later. Reorder-ability is I think a more or less pain-free standard feature that can be used. Browser where this will be utilized is Mozilla Firefox (latest version).