2014-05-09

My project is “User Interface Enhancements”. It will make User Interface of phpMyAdmin more friendly and simple to use. This project will include implementation of new features in phpMyAdmin to enhance its User Interface.

Project Details

The features that will be implemented are:-

“Browse foreign values” should be a modal dialog

http://sourceforge.net/p/phpmyadmin/feature-requests/1487/

Current Behaviour: Opens a distinct window

Expected Behaviour: Browse values in JQuery UI modal dialog

How it will be done:

First change the “href” property of anchor tag of a foreign value to “data-href” property.

On Click event of the foreign value send an AJAX request to link stored in “data-href”.

Upon response received, create a JQuery UI dialog and add content of response to it (possibly only the required element of the response).

Support for editing binary fields in hexadecimal

https://sourceforge.net/p/phpmyadmin/feature-requests/982/

Current Behaviour: We can download but cannot edit.

Expected Behaviour: Editing in hexadecimals

How will it be done:

Change show blob contents to show it in hexadecimals

Add a new download icon next to it.

Double – click on shown blob content would convert it into textarea similar to editing other fields.

In Insert tab, add new link “Insert from textarea” along with browse button to insert into blob field directly from it in hexadecimals form.

All hexadecimals fields will be validated that it contains only (0-9A-F)

Use aliases in SQL export for tables and columns

https://sourceforge.net/p/phpmyadmin/feature-requests/759/

Current Behaviour: Aliases in SQL query are ignored.

Expected Behaviour: Aliases in SQL query should be used to construct export data.

How will it be done:

Pass SQL Query to tbl_export.php and then to export.php

Decompose the query and extract aliases for tables and columns.

Then appropriately generate export data.

Export with table/column name changes

https://sourceforge.net/p/phpmyadmin/feature-requests/755/

Current Behaviour: Cannot be done.

How will it be done:

Add a checkbox control “Change Table/Column Names”

When checked, would open a Dialog having list of original column/table names and a textbox next to it to enter new name for it.

There will be a checkbox also to which will control whether the column is to be included in export or not.

These user selections will be sent to export.php and it will generate data as per it.

Custom Field Handlers

https://sourceforge.net/p/phpmyadmin/feature-requests/637/

Current Behaviour: No input transformation available.

How will it be done:

I suggest adding two columns in “column_info” table namely “input_transformation” and “input_transformation_options”

input_transformation will specify the widget/plugin to be used for insert/edit operations. For e.g. a Regex Validation Plugin which will check whether the input given matches the regular expression given or not.

input_transformation_options will be used for specifying options for plugin. For e.g. in Regex Validation Plugin you specify your custom regular expression which the input should match with.

Dynamic process list

https://sourceforge.net/p/phpmyadmin/feature-requests/1490/

Current Behaviour: No dynamic refreshing

Expected Behaviour: Auto Refresh at each interval of time set by user.

How will it be done:

Add a drop down box for Refresh rate on server > status > process page with “No refresh” as default values and some other options having refresh rates such as “2 sec”, ”3 sec” like it is in server > status > monitor > settings.

As soon as refresh rate is changed to other than “No Refresh” then based on chosen interval time it will send a ajax request to update process list at each interval.

User privilege tab not shown in all relevant cases

https://sourceforge.net/p/phpmyadmin/feature-requests/1488/

I feel this is more a bug rather than feature.

I will solve this too and cannot explain this much. We just need check the privileges the user has and let him allow to access what he has right to.

As mentioned in the ticket, if the user does not have global privileges then he will not be able to see global privileges.

Possibility of disabling database expansion

https://sourceforge.net/p/phpmyadmin/feature-requests/1486/

Current Behaviour: Navigation Panel always behave like tree structure which expands when navigation item is clicked.

Expected Behaviour: Some way to disable expansion of navigation tree.

How will it be done (Method 1):

Currently whenever a database name is clicked it expands.

I suggest that it should expand only when clicked on “+” sign and should remain collapsed when only database name is clicked like it happens when table name is clicked.

Doing this will not require adding any configuration variable and will serve both the purpose of expanding if needed or let it stay collapsed.

How will it be done (Method 2):

Add a configuration variable like “AutoExpandNavigationTree” and to do the same using GUI add a option in Settings > Navigation Panel.

By default, AutoExpandNavigationTree should be set to true i.e. It will expand when database name is clicked. When set to false, it will expand only when “+” sign is clicked not when database name is clicked.

Please suggest which method you prefer or something else you would like other than these two methods.

Navigation state lost on reload

http://sourceforge.net/p/phpmyadmin/feature-requests/1426/

Current Behaviour: Navigation State gets lost on page reload.

Expected Behaviour: Navigation State must remain intact.

How will it be done:

Using sessionStorage object of HTML5 we can store the state of the navigation tree.

sessionStorage sets fields on the window. When the window is closed, the session fields are lost, even if the site remains open in another window.

Hence they can be effectively used even when there are multiple tabs with different navigation state.

We can have a expanded flag for each item in the tree which will be set to true when some item is expanded and to false when it is collapsed. It will be stored in sessionStorage and whole state can be reconstructed using it on page reloads.

Improved notification when attempting to insert invalid data.

Better Data Validation of most the form fields will be done.

Need discussion over this as what kind of validation is needed for various fields.

Project Schedule

Feature

Deadline

Browse Foreign Values

26 May 2014

Support for editing binary fields in hexadecimal

02 Jun 2014

Use aliases in SQL export for tables and columns

09 Jun 2014

Export with table/column name changes

16 Jun 2014

Dynamic process list

23 Jun 2014 (Mid Term Evaluation)

Custom Field Handlers (Partial)

30 Jun 2014

Custom Field Handlers

07 Jul 2014

User privilege tab not shown in all relevant cases

14 Jul 2014

Possibility of disabling database expansion

21 Jul 2014

Navigation state lost on reload

28 Jul 2014

Improved notification when attempting to insert invalid data.

04 Aug 2014

Bug Fixes, Minor Improvements if needed

11 Aug 2014

Final Documentation/Review/Tests

18 Aug 2014 (Final Evaluation)

Show more