[Phpmyadmin-devel] Create table dialog

Tyron Madlener tyronx at gmail.com
Sat Jun 25 14:07:56 CEST 2011


I apologize for my directness but the newly implemented 'Create table'
Dialog has an awful usability. Especially once you've added 2 more
columns.
The idea of AJAXifying pma is to increase the usability, but with a
small dialog where I have to scroll horizontally and vertically
several time to create the table, it will take me way way longer
compared to the old create-table interface.

I don't know if its just me, but I see so many things gone wrong with
this dialog.

Some things I would change globally (taking the create table dialog as
example) :
 - Decrease the massive amounts of padding/margin of the jquery ui dialogs.
   - I don't need a 40 pixel high title telling me that I'm currently
creating a table.
   - Did you notice that there's is a 900 x 60 pixel (!) area that
only performs a single function: Containing the cancel button. This
should be either drastically reduced in size or removed altogether
(and put the cancel button inside the content)
 - Decrease those massive margins and paddings around input fields.
Those should be made big only where it actually improves the
usability/readability. I would reduce the margin/padding from 6/4 to
2/2

And for the create table dialog:
 - Display always in horizontal mode! Hardly any tables contain just 2 columns.
 - Start always with 4 fields
 - Bug: You can actually open the dialog several times, cause the
enum/set editor to be in the background
 - Make all selects and text inputs way shorter. I'd reduce them by
~30% (selects as well!). The length/value field I would reduce by
50-70% or so.
 - The null and A_I checkbox waste big amounts of space. I would put
them together in the form of " [ ] Null   [ ] A_I " in a column called
"Options"
- Remove the "Table name:" title, instead put 'Table name' into the
input field that disappears once the user focuses it
- Instead of "Add x tables [Go]" which does it's own ajax request I
would place a link "Add column" that adds one single column, but
therefore adds it immediately (no ajax here!), allowing users to just
spam click the link if they need a lot. Or alternatively use a select
list that contains the numbers from 1 to 10 which adds columns
immediately on the onchange event.
- Display the input field for the default value only after "As
defined:" is selected, and also focus it automatically once its
selected so the user can type immediately
- Why do we have these footnotes at the bottom of the dialog when we
got PMA_showHint()? (Forgot to initialize them in js?)
- For all the form fields below the columns: Remove all the gradient
backgrounds on the titles. What are they there for?
- In whatever way, put the Save and Cancel button side by side

- The enum/set editor I find so bad, I don't even know how you could
improve that:
  - If my table would be having 3 enums, I get 3 times this sentenced
thrown onto my screen causing the columns table to get even bigger.
  - The dialog itself has a completely different style than everything
else in PMA and really badly implemented. Just some bugs:
    - Values for column "" -  wheres the column name?
    - Why is "Go" a button and "Cancel" a link?
    - Single quotes are not escaped (put a \' into the value field)
    - Breaks if a user accidently enters a space
    - The background is grayed out, yet you can still interact with it
(e.g. select text)
    - You can actually scroll away the content of the dialog by
selecting text downwards
    - Visual bug: One can see all input fields disappear if you press ok/cancel

 - Why not just a simple textfield where you let the user write one
value per line? I would build the enum/set like this:
    - if set/enum is selected and the user focuses on the input field,
pop out a bigger textarea (that is placed like a datepicker)
      - let the user write one element per line
      - extend the textarea row height with every line written so the
user doesn't have to scroll. (up to a certain limit of course, like
15-20 lines - also it should not force the to scroll the page)
      - with every line written or on lost focus, automatically parse
the text and update the value field correctly formatted

Now lets say my enum has 5 elements. With the current enum/set editor
that would require me to perform 13 mouse clicks and 5 interruptions
(where my hands need to switch between mouse and keyboard), whereas
with a textarea that pops up like a datepicker requires 2 mouse clicks
and 0 interruptions. Why build things so complicated? ;-)

Sorry again if I sounded too unpolite :<




More information about the Developers mailing list