I have submitted a proposal on this project and also have added some ideas besides
feature requests listed on the phpMyAdmin Ideas Page. The following is my suggestions for this project. Any comment and suggestion are welcome.
Synopsis:
This project is intended to improve the convenience of users when using phpMyAdmin, particularly when browsing tables. This can be achieved by adding the following features to phpMyAdmin:
• Browse recently used tables
• Remember the last way user sorted tables
• Flexible table’s column width
• Reorder table’s column using mouse during browsing
• Show only selected columns
• Integration of navigation
bar
• Edit only selected field
• Grid view in the table edit page
Project Details:
• Browse recently used tables
Interface
As discussed in the feature tracker , we can show recent tables that have been viewed by user as a drop-down list in the navigation frame. To keep things simple, the preferences will only show a checkbox “Display recent [#] tables” with the [#] default to 10 and can be set by user.
Storage
Recently
used tables can be stored in phpmyadmin database if it has been configured or in session variable if it is not.
• Remember the last way user sorted tables
Sorted column of each table can be stored (if the table is ever sorted) in phpmyadmin database or in session variable. When user browse a table, this value is read and added to sorting criteria of the SQL select query. This value must be synchronized with current database, i.e. when user drop a field, table, or database, the corresponding sorting
value must be deleted.
• Flexible table’s column width & reorder table’s column using mouse during browsing
We can add functionality to adjust width and reorder table’s column by using jQuery. Again, table’s column order can be saved in phpmyadmin database or in session variable. An option “Remember tables’ columns order” can be added to the preference page.
• Show only selected columns
Currently, users have to run a SQL SELECT query or create a VIEW to display only certain columns from a table. This is sometimes cumbersome.
We can improve this by adding a drop-down list in table’s header, giving checklist options to show only certain columns. This can be done by using jQuery.
• Integration of navigation bar
Current interface of navigation bar (prev, next) and “Show # row(s) starting …” can be integrated with the query-result table. So it will look like a part of the table and make user more convenient to use the navigation.
• Edit only selected field
One way to achieve this: modify current edit page to show only selected field.
When user runs a select query, select some rows, and then click edit, some variables will be passed to edit page, so it hides fields that are not shown in the query result. Alternatively,
an option to show/unhide all fields can be added.
• Grid view in the table edit page
Sometimes, users want to be able to edit only certain selected rows, but with a browse-like view. (Think of actions: browse -> select some rows -> With selected: edit)
I am thinking of improving the edit page, so user
can have an option to edit table in a grid view instead of current edit view. The grid view will be simple, 2D grid, like in browse table. Each cell will be resizable text field, where user can change the value directly by typing in it.
I think this will be a complement of inline edit, since we can edit TEXT type value (which cannot be edited in inline edit).