I'm looking at doing some full scale integration of Ubercart with Workflow-ng. My problem right now is that the user interface is still a little clunky and non-intuitive. I'd love to lend a hand fixing this up if you're interested.

For example, look at the configuration lists at admin/build/workflow-ng. It is not instantly recognizable what all the columns are for, and the fact that there are two "edit" type links per row is confusing. My proposal for this list would include the following things:

  • Change Active and Inactive to Active configurations and Inactive configurations.
  • Change Configuration in the table header to Label, since that is the name of the form field I entered that data in on anyways.
  • Combine the Module and Status columns into one Defined by column. I say combine them, because it seems like configurations defined by modules will always have a status of default while custom configurations shouldn't be shown as defined by the workflow module. I would propose either showing the module name in this column or the word "user" for custom configurations.
  • Change your operations to be all lower case (like other Drupal forms) and single words. In other words, use "edit" instead of "Edit." Also, change "Revert to defaults" to "reset."
  • Get rid of the two different edit links... The label title should not be a link. Instead, the current "Edit" form should be combined with the configuration list. This would give you just one edit page and reduce complexity. At the top of the page you can have your form elements for renaming the label or changing whether it is active or inactive. Furthermore, you can also put the weight of conditions and actions on this one overview form instead of just on their individual forms. This makes moving things around much easier. The one submit button at the bottom of the form will save the label/active settings as well as the weights. This will be key for complex configurations... the menu page suffers from this right now.
  • I'd recommend changing the active textbox... it's odd to have the title be one word and the description so long... in this case, the title of the checkbox element should be combined with your description to read something like, "This configuration is active and should be evaluated when the associated event occurs."

Let me know if I should just start working through this list and submitting patches. I'm really interested in using Workflow and will be happy to contribute our work back.

Comments

amitaibu’s picture

+1 for all comments (and of course +1 for integrating Ubercart with workflwo-ng...)

fago’s picture

Awesome!

Your help is really appreciated :) I agree in all points except one.

It's important to me to avoid complicated code - so let's try to keep things clean. The UI code is already more complicated than it should be.. Of course any improvements to it would be great!

So before you start hacking on it, this is how a configuration is shown:
* the configuration is a structured arrary like forms are
* so it's just passed as form to drupal_get_form
* the configuration has a #process function, which includes the headlines(,..) and separates conditions and actions
* then there are multiple functions that render the items (by drupal_render), e.g. theme_condition renders a condition

Then also important to know:
* when the configuration is processed by the formAPI it gets a lot of new properties, which we don't need to store
* so *never* store a configuration which has been processed, only store *clean* configurations with the necessary changes applied
* for getting elements which are part of the configuration the function workflow_ng_element_id() is used, again this function adds a #id property, so don't save configurations that include that ids

So I'm not sure if it's a good idea to combine the two edit forms to one, because
* it's getting complicated
* weighting conditions, actions isn't used often, but clutters the overview page

However I agree that the current situation of two editing pages is confusing, so we have to find a good solution. But let's also keep the UI simple - that's also important for good usability :)

Perhaps it would be a good idea, to make the configuration overview page, a page where you can see "the current state" of the configuration, so we list on top the label and whether it's active - and add an edit link to these data their. This would be a small change, but would solve the issue with two edit pages. Furthermore the configuration overview page (alias the new edit page) is consistent: It gives you an overview of the current state and the possibility to edit it (view <-> edit).

So probably you 'd better start with the other points while we agree on a solution for the "edit point" :)

rszrama’s picture

I'll be opening separate issues so patches may be tested/added individually.

First issue w/ screenshot and patches here: http://drupal.org/node/190218.

I'll continue the discussion on the two different edit links in a bit.