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)