Planet phpMyAdmin

April 15, 2015

Michal Čihař

Packaging python-gammu

After Monday release of separate Gammu and python-gammu, the obvious task was to get the new package to distributions.

First I've started with Debian packages, what was quite easy as from quite complex CMake + Python package it is now purely CMake and it was mostly about removing stuff. Soon the updated Gammu package was uploaded to experimental. Once having that ready, I've also update the backports for Ubuntu and these are available in Gammu PPA. Creating new python-gammu package was a bit harder as this is the first Python 3 compatible package I've created, but it's now ready and sitting in the NEW queue.

While working on python-gammu package, I've realized that some of the data used in testsuite are missing in the tarball. While not being critical, this is definitely not nice, so I've decided to release python-gammu 2.1 today. It also includes fixes for some corner cases found by coverity.

For openSUSE the packaging was quite easy as well, stripping out unneeded parts of Gammu package went smoothly and it's now in hardware project, SR to Factory is pending. With python-gammu it turned out to be much harder as the testsuite had failed there with some strange error coming out of libdbi. After looking deeper into it, the problem is in new return type available in Git snapshot openSUSE is shipping. Fortunately producing fix was quite easy, so next Gammu upstream will handle that properly and package in hardware project is already patched. You can now use python-python-gammu from devel:languages:python and SR to Factory is pending as well.

Filed under: Debian English Gammu python-gammu SUSE Wammu | 0 comments

by Michal Čihař ( at April 15, 2015 10:00 AM

April 14, 2015

Michal Čihař

Hacking Gammu

I've spent first day of SUSE Hackweek on Gammu. There are quite many tasks to be done and I wanted to complete at least some of them.

First I started with the website. I did not really like the old layout and aggressive colors and while touching it's code it's good idea to make the website work well in mobile devices. I've started with conversion to Bootstrap and It turned out to be quite easy task. The next step was making the pages simpler as in many places there was too much information hidden in sidebar. While doing content cleanup, I've removed some features which really don't make much sense these days (such as mirror selection). Anyway read more in the news entry on the site itself.

Second big task was to add support for Python 3 in python-gammu. It seems that world is finally slowly moving towards Python 3 and people started to request python-gammu to be available there as well. The porting itself took quite some time, but I've mostly completed it before Hackweek. Yesterday, there was just some time spent on polishing and releasing standalone python-gammu and Gammu without python bindings. Now you can build python-gammu using distutils or install it using pip install python-gammu.

Filed under: English Gammu python-gammu SUSE Wammu | 0 comments

by Michal Čihař ( at April 14, 2015 06:30 AM

April 10, 2015

Madhura Jayaratne

phpMyAdmin work during twenty seventh week

During the week I attended both bug fixes as well as feature requests. To the latter part of the week I also attended some coding style improvements.

Among the bugs that were fixed, fixing output buffering was interesting. Since, I wasn't very familiar with the output buffering used in phpMyAdmin this was a good learning experience for me as well. Here, the issues was to use output buffering for CSS and JS. I modified the PMA_OutputBuffering class to accommodate output buffering for CSS, static and dynamic JS.

Here are the list of bugs fixed and investigated during the week.

Bugs fixed
#4829 Create procedure via SQL Editor not more possible
#4833 CSS and Javascript are not compressed
#4841 Status page: Mislukte pogingen per uur value is incorrect
#4848 Trigger sql with delimiters maxes out cpu resources
MIME Transformation link fixed

Bugs investigated
#4757 Error: Token mismatch
#4787 If mysql server default timezone is not set(by default), Phpmyadmin export wrong timestamp and timezone combination
#4847 Some query take very long time

The ability to export metadata was implemented as requested in  RFE #1632. These metadata are the data in configuration storage related to databases or tables being exported. With this one would be able to do a complete export and see the full state reinstated. Additionally the ability to copy multiple rows were implemented. 

The feature requests for the week were

Feature requests implemented
#1632 Importing and exporting pMA meta-data
#1643 No SQL query for loading data
#1646 Metro theme design update
#1650 Support a default page in designer
#1651 Allow copying mutiple rows
#1653 New data validation feature and datetime type

Feature requests investigated
#1645 MIME Transformation Imagelink and link - repairs and idea
#1648 Metro theme - table background style
#1654 After login session expires, restore navigation pane

Previously the designer loaded the first designer page for the database. Now it looks for page by the name of the database to load as default and falls back to old behavior in the absence of such a page.

Coding style improvements
No longer use global variables in schema export plugins

by Madhura ( at April 10, 2015 04:39 PM

April 05, 2015

Madhura Jayaratne

phpMyAdmin work during twenty sixth week

During this week I was back to bug fixing. This is mainly because the GSoC application deadline has passed and the pull request rush from potential GSoC students have declined. So I had a look at the bug tracker and did some cleaning up and fixing. Here are the bugs fixed during the week.

Bugs fixed
#3292 Incoherent backup generated
#4067 Import Resume at breakpoint failure
#4754 pMA DB not detected properly
#4821 Timed-out import fails to restart when file represented
#4825 Datepicker missing when changing number of rows on Insert page
#4828 JavaScript is loaded in wrong order
#4831 Recaptcha API v2
#4832 Sorting distinct values result loses links
#4834 Do not attach token to css requests to improve caching
#4835 PMA_hideShowConnection not called after submit_num_fields
#4836 server warning after moving from console to Direct clicks

Apparently, allowing users to resubmit import files when import fails due to timeout has been broken for some time. Now that it is fixed user is presented a link to click when the import hits timeout and this link takes the user to import interface to resubmit the file with parameters carrying the details of where to restart the import from.

Additionally following bugs were investigated.

Bugs investigated
#3689 Variable 'character_set_client' can't be set
#4827 TEXT formatting doesn't work after editing
#4826 Two inline edit windows
#4829 Create procedure via SQL Editor not more possible 

Feature requests received relatively less attention during this week. I started working on supporting .xz compression. I did most of the work and a pull request for the same is was submitted. However, I had a hard time installing and configuring xz compression im my environment and wasted almost half a day trying. So I have to get someone else's help to test my PR.

Feature requests implemented
#1621 Add support for xz compression
#1635 Have ZeroConf create phpmyadmin DB if possible

Feature requests investigated
#862  Group dbs/tables by regexp
#1633 User Preferences reset should clear the value in pma__userconfig

by Madhura ( at April 05, 2015 04:53 PM

April 02, 2015

Michal Čihař

GSoC 2015 applications for phpMyAdmin

As usual, I look at the application stats for phpMyAdmin just after student application period of Google Summer of Code is over.

First of all we got way more proposals than in last years, but also number of bogus proposals went up (you can see them as ignored in the chart).

Same as in past years, people leave the submission to the last moment, even though we encourage them to submit early so that they can adjust the application based on our feedback. But still we got more than half of the proposals in last three days.

Number of applications over time

Anyway we're just working on evaluation and will finalize it in upcoming days. Of course you will know the results from Google on April 27th.

PS: You can compare to our 2014, 2013 and 2012 numbers.

Filed under: English phpMyAdmin SUSE | 0 comments

by Michal Čihař ( at April 02, 2015 04:00 AM

April 01, 2015

Madhura Jayaratne

phpMyAdmin work during twenty fifth week

During the week I attended to a mix of feature requests and bug fixes. Following are the feature requests implemented and investigated.

Feature requests implemented
#354  PDF schema sort options
#933  Manage multiple variable in bookmarked query
#947  Show edit/delete also when there is calculated column
#1619 Show databases as list instead of as dropdown when no database is selected

Feature requests investigated
#942 Table flush for NDB

With rfe #933, phpMyAdmin now support multiple variables in bookmarked queries. The placeholders should be in the format [VARIABLEN] where N is the index of the variable. For backward compatibility [VARIABLE] is considered  equal to [VARIABLE1] for backward compatibility.

Another long awaited feature was the ability to edit/delete columns when there is a calculated column. Earlier even though a primary or a unique key was present in the results set, the presence of a column with a function applied removed the ability to delete, edit and inline edit the row. Now this is supported and inline editing is not allowed for the function column.

Additionally following bugs were fixed during the week.

Bugs fixed
#4781 "Requery" bookmark from console does not work
#4805 Inline edit broken when using functions in query
#4814 MySQL 5.7.6 and Databases
#4815 Infinite calls to index.php
#4819 Request URI too large
Use 'server' parameter in console to work in multi server environments
Missing tooltip in monitor
Missing sort icons in monitor

Additionally, I took a couple of hours to fix some of the Scrutinizer error reported.

Code improvements
Fix code style errors reported by Scrutinizer

by Madhura ( at April 01, 2015 07:48 AM

March 27, 2015

Michal Čihař

Porting python-gammu to Python 3

Over the time I started to get more and more requests to have python-gammu working with Python 3. Of course this request makes sense, but I somehow failed to find time for that.

Also for quite some time python-gammu has been distributed together with Gammu sources. This was another struggle to overcome when supporting Python 3 as in many cases users will want to build the module for both Python 2 and 3 (at least most distributions will want to do so) and with current CMake based build system this did not seem to be easy to achieve.

So I've decided it's time to split python module out of the library. The reasons for having that together are no longer valid (libGammu has quite stable API these days) and having standard module which can be installed by pip is a nice thing.

Once the code has been put into separate git module, I've slowly progressed on porting to Python 3. Most of the problems were on the C side of the code, where Python really does not make it easy to support both Python 2 and 3. So the code ended up with many #ifdefs, but I see no other way. While doing these changes, many points in the API were fixed to accept unicode stings in Python 2 as well.

Anyway, today we have first successful build of python-gammu working on both Python 2 and 3. I'm afraid there is still some bug leading to occasional segfaults on Travis, but not reproducible locally. But hopefully this will be fixed in upcoming weeks and we can release separate python-gammu module again.

Filed under: English Gammu python-gammu Wammu | 0 comments

by Michal Čihař ( at March 27, 2015 05:00 PM

Spring is here

Finally winter seems to be over and it's time to take out camera and make some pictures. Out of many areas where you can see spring snowflakes, we've chosen area Čtvrtě near Mcely, village which is less famous, but still very nice.

Filed under: English Photography Travelling | 0 comments

by Michal Čihař ( at March 27, 2015 05:00 AM

March 25, 2015

Madhura Jayaratne

phpMyAdmin work during twenty fourth week

The highlight of the week was updating metro theme to be compatible with upcoming phpMyAdmin version 4.4. The decision to have an alternative theme was made at this months online team meeting and metro theme was selected for this upgrade since most people preferred it and it happened to be color blind friendly.

My approach to update the theme was to basically go through all the commits related to styling changes since 2013 (when metro theme was up to date). This was to make sure that no layout styling goes unnoticed. However, this was quite time consuming. I also went on to style some of the jQuery dialogs, so they are in harmony with the rest of the application. All the commits related to the theme upgrade can be found at

Even though metro theme had its sprite generated most of its original icons were missing. So I decomposed the sprite image to get the individual icons. However, when regenerating sprites with all the images a part of sprites looked washed out. I am attending to this issue right now.

During the latter part of the week I also attended to some bugs. Here are the bugs that were fixed.

Bugs fixed
#4802 Changelog page is not working
#4804 Undefined Index after export schema
#4806 Unable to work with two different databases in two tabs
#4810 Broken find and replace
#4812 Issues with index dialog while creating a table
Fix missing title for MySQL documentation

Moreover, following feature request related to specifying indexes while creating table was implemented. Meantime I went on to clean up the code related to this feature.

Feature requests implemented
#1626 Display/edit index name

by Madhura ( at March 25, 2015 03:13 PM

March 18, 2015

Madhura Jayaratne

phpMyAdmin work during the twenty second and twenty third weeks

I was on leave on the first three days of the twenty second week. So here I am combining the work done on the rest of the twenty second week and twenty third week into a single blog post. 

During the two week I attended to bugs, new features, unit testing as well as to general coding improvements. Following are the bugs fixed during the period.

Bugs fixed
#4758 Firefox with auth_type to http with multiple server doesn't work anymore
#4779 PMA_Util::parseEnumSetValues fails on enums with UTF-8 values
#4789 Views aren't dropped when copying a database
#4790 DROP TABLE/VIEW IF EXISTS are not tracked
#4791 Zoom search: js error
Compatibility with central columns of version 4.4

Bug #4789  was figured out while attending to a feature request related to tracking and bug #4758 arose from another fix from infamous 'Token mismatch' problem.

Following are the feature requests I worked on during the period. Pagination for GIS visualization was necessary as visualizing all the data from the table made the browser unresponsive when there were lot of data.

Feature requests investigated
#900 Add one option to disable SQL_CALC_FOUND_ROWS
#1300 tracking changes of store proc, triggers, events

Feature requests implemented
#1306 add lock tables, disable keys options
Pagination for GIS visualization

During the period I attended to a number of improvements in the central columns page. I changed how the 'extra' column is handled and now it stores value as a comma separated value which is readily compatible with data from older version. I also rewrote most of the unit test related to central columns and attended to fix UI inconsistencies I detected on the page.

Unit testing
Rewrite unit tests related to central columns

Code improvements
Improve `extra` value handling in central columns
UI improvements to central columns page
Being able to use multiple servers at the same time when using cookie auth
Metro theme upgrade to be compatible with 4.4 

While looking into a feature request regarding the ability to use multiple servers simultaneously I figure out we need to have initialization vectors per server and added it. This was later ported to QA_4_4 branch. At the online team meeting it was decided to update metro theme to be compatible with the upcoming version 4.4 and I started working on that. I am continuing this work to the next week.

by Madhura ( at March 18, 2015 02:38 AM

March 02, 2015

Michal Čihař

Gammu 1.35.0

Gammu 1.35.0 has been just released. This is just bugfix release to fix some major issues introduced in 1.34.0.

Full list of changes:

  • Fixed encoding of UTF-8 for higher code points.
  • Improved provided udev rules.
  • Fixed possible lock while getting network status in SMSD.
  • Various localization updates.

You can download it from

I will not make any promises for future releases (if there will be any) as the tool is not really in active development.

Filed under: English Gammu Wammu | 0 comments

by Michal Čihař ( at March 02, 2015 05:00 PM

February 27, 2015

Madhura Jayaratne

phpMyAdmin work during the twenty first week

Continuing from the previous week I focused more on feature requests. However this did not prevent me from fixing couple of bugs. Most of these bugs were noticed while I was doing something in phpMyAdmin and fixed them immediately. So following are the bugs fixed during the week.

Bugs fixed
#4760 Cannot re-import settings from local storage
#4767 Drizzle: undefined index in
#4777 Some images are missing in Designer for original theme
#4778 SQL error when database list is sorted by additional columns
#4780 Notice when timestamp column does not have default value

From the feature requests implemented rfe #501 regarding the SSL grant option when creating users was due for a long time. Now you can require that the user connect with SSL or specifically X509 or even more specifically with other options. 

Feature requests implemented
#501  Support for SSL GRANT option
#1207 Export users associated with a specific schema/database
#1327 Hide 'Add user' link if user does not have privileges
#1441 Add regexp match when using AllowArbitraryServer
Change tracking activation status from db level tracking page
More default transformations for pmadb

Feature requests investigated
#1182 Use Hex/WKT for Geometry Export columns

Meanwhile, I also worked on some JS coding style improvements.

Code improvements
JS code style improvements

by Madhura ( at February 27, 2015 05:20 PM

February 22, 2015

Madhura Jayaratne

phpMyAdmin work during twentieth week

Unfortunately the twentieth week was started with ill health. I was not feeling during the weekend, but started work on Monday since I felt little better. However, I was down with flu again and did not work on Tuesday and Wednesday. So, twentieth was a 3 working day week.

During the week I attempted a mix of bug fixes and feature requests. One of the reported bugs was about exporting being limited by the number of tables and this was due to the new feature to allow aliases for db/table/columns. This feature was using empty parameters even when no aliases were used. I reported and fixed bug #4769 which was related to the same functionality. 

Bugs fixed
#4763 Database export with more than 512 tables fails
#4769 Previously set column aliases are destroyed if returned to the same table
Properly align export alias jQuery dialog
Fix persisting column visibility to permanent storage

Bugs investigated
#3481 Designer relations in IE 8

I noticed that there were two feature requests about editors for JSON and HTML and realized that these could be implemented as input transformations. I used CodeMirror editor by adding required JSON and XML modes to implement the features. Since SQL mode was already available I implemented SQL editor as a input transformation as well.

Feature requests implemented
#685  Editor for HTML content
#1275 Comfortable editing of serialize()'d data (Implemented for JSON)
#1481 Need Support Time/DateTime/TimeStamp dynamic columns
CodeMirror based SQL editor as an input transformation

I also made a couple of UI improvements to the view level pages making them more constistent with table level pages.

Code improvements
Make UI more consistent for views

by Madhura ( at February 22, 2015 02:05 PM

February 20, 2015

Madhura Jayaratne

phpMyAdmin work during the nineteenth week

During the week I continued to focus on feature requests. I went onto clean up the feature request tracker by implementing, marking implemented and duplicate ones and even rejecting the ones that did not make much sense. Further, as per Marc's suggestion, a set of feature requests chosen by me was discussed at the monthly IRC to decide on their faith. Following are the list of feature requests implemented and investigated during the week.

Feature requests implemented:
#937  Relations with views like with tables
#1208 Linking from information_schema
#1235 Relation view: move to main "Structure" page
#1241 Browse Field -> Search
#1549 Reset auto-increment when exporting structure
Ability to disable foreign key check when emptying tables

Feature requests investigated:
#448  FK relation popup DHTML window based on multiple fields
#620  (Relations) Display multiple fields for relations
#947  Show edit/delete also when there is calculated column
#1509 Metro theme update to work with 4.1.8
#1526 Make export sql more friendly to side-by-side comparison
#1599 UNIQUE/PRIMARY key index for a partitioned table

Bug fixing did not receive priority this week since a set of keen potential GSoC students were looking into bugs. However, whenever I came across a bug I fixed them. That is why the following fixed bugs do not have bug numbers :)

Bugs fixed:
Remove extra column heading in view structure page
Add missing confirmation when deleting tracking report entries
Add missing confirmation when deleting central columns

Bugs investigated:
#4758 Firefox with auth_type to http with multiple server doesn't work anymore

A couple of weeks back I worked on improving both db and table level tracking pages. However, I still felt that those pages were not in par with other pages and went onto do a number of UI improvements to them. These included sortable tables, adding missing icons, adhering to various UI configuration etc. More UI improvements were done to the central columns page as well.

Code improvements:
UI improvements to the db, table tracking pages and central columns page
Fixing bugs reported by Scrutinizer

by Madhura ( at February 20, 2015 02:44 PM

February 19, 2015

Michal Čihař

Weblate 2.2

Weblate 2.2 has been released today. It comes with improved search, user interface cleanup and various other fixes.

Full list of changes for 2.2:

  • Performance improvements.
  • Fulltext search on location and comments fields.
  • New SVG/javascript based activity charts.
  • Support for Django 1.8.
  • Support for deleting comments.
  • Added own SVG badge.
  • Added support for Google Analytics.
  • Improved handling of translation file names.
  • Added support for monolingual JSON translations.
  • Record component locking in a history.
  • Support for editing source (template) language for monolingual translations.
  • Added basic support for Gerrit.

You can find more information about Weblate on, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user.

Weblate is also being used as official translating service for phpMyAdmin, Gammu, Weblate itself and other projects.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far!

PS: The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: English phpMyAdmin SUSE Weblate | 0 comments

by Michal Čihař ( at February 19, 2015 05:00 PM

February 11, 2015

Michal Čihař

Hosted Weblate welcomes new projects

In past days, several new free software projects have been added to Hosted Weblate. If you are interested in translating your project there, just follow instruction at our website.

The new projects include:

PS: Added later during the week:

  • Boilr, a cryptocurrency and bullion price alarms for Android
  • SwitchyOmega, a proxy manager and switcher for Chromium

Filed under: English phpMyAdmin SUSE Weblate | 0 comments

by Michal Čihař ( at February 11, 2015 05:00 PM

February 10, 2015

Madhura Jayaratne

phpMyAdmin work during the eighteenth week

Eighteenth week saw most of my time spent on implementing feature requests. Marc also suggested I do the same as potential GSoC students were looking into bugs. Similar to the last week I started going through the feature request tracker giving priority to older ones. Some of the requests were out of date either because they had been implemented already or did not make sense for the current version. Following are the lists of feature requests implemented and investigated.

Feature requests implemented
#954  Allow SALT in ENCRYPT function
#1074 Renaming of colums referenced as foreign keys in InnoDBs
#1174 Comment removed from query -> no comment in db function/proc
#1179 Speed up slow triggers by using EVENT_OBJECT_SCHEMA
#1260 Setting LoginCookieValidity > session.gc_maxlifetime

Feature requests investigated
#1070 db_structure.php : column for table creation and update date
#1126 Allow SQL query textarea growable / resizable
#1129 Allow designer to show other Databases
#1253 Show per table privileges

Meanwhile, I also attended to a set of bugs.

Bugs fixed
#4592 Editing columns (tbl_structure.php) is incredibly slow
#4706 Schema export doesn't handle dots in db/table name
#4745 Tracking does not handle views properly
#4748 Column name center-aligned instead of left-aligned in Relations
#4750 Disable renaming referenced columns

Bugs investigated
#4742 CSV export of query result fails with name problem

Since most of the application use JSON heavily, I wanted to add a transformation to display JSON content for some time and during the week I had time to implement it.

Code improvements or refactoring
New transformation for JSON content stored in databases

Note: I was on leave on Tuesday, 3rd February.

by Madhura ( at February 10, 2015 12:44 PM

February 05, 2015

Madhura Jayaratne

phpMyAdmin work during the seventeenth week

During this week I spent more time on feature requests compared to other weeks. Since there are a large number of feature requests most of which are relatively old, I started by going though the older ones. Some of them were quite old that they did not make sense in the current context. However, I found a couple of quite interesting ones which were missing in phpMyAdmin and went on to implement them. Following are the feature requests implemented.

Feature requests implemented:
#719  More details in PDF relation view
#767  USING BTREE support for HEAP/MEMORY tables
#801  Built-in transformations and relations
#1096 Cannot enter connection for federated engine table

While attempting #767 I improved the current interface for editing indexes by adding more options which are supported by newer version of MySQL.

I also engaged in usual bug fixing and following are the bugs fixed and bugs investigated.

Bugs fixed
#4729 Display original field when using "Relational display column" option and "Choose column to display" is empty
#4730 Notice while browsing tables when phpmyadmin pma database exists, but not all the tables
#4734 Default values for binary fields do not support binary values
#4735 Floating menu bar appears on top of jQuery dialogs
#4736 Changing display options breaks query highlighting
#4738 Header lose align when scrolling in Firefox v35
#4739 Make index editor work without the Ajax dialog
#4741 In ./libraries/Advisor.class.php#184 vsprintf(): Too few arguments

Bugs investigated
#4732 Some databases not showing
#4733 config parameter 'only_db' ignored

by Madhura ( at February 05, 2015 01:30 PM

January 24, 2015

Madhura Jayaratne

phpMyAdmin work during the fifteenth and sixteenth weeks

Since I had to spend some time on a couple of submissions for part-time M.Sc. that I am following, I took leave on 15th, 16th and 19th, 20th Jan 2015. So I am combining the work done on 6 days over fifteenth and sixteenth weeks here. 

Results display direction was deprecated for a long time due to the additional complexity it brought to the code and we hoped to remove the feature a couple of years back. However, its removal never took place and during the first half I focused on doing that. The related code was quite mingled with the rest and had to take a lot of caution not to break the normal query results displaying.

Code improvements and cleanup
Remove display direction which was deprecated for some time

Usual bug fixing was continued during the two weeks and following are the bugs fixed during the period.

Bugs fixed
#4699 Navigation panel should not hide icons based on 'TableNavigationLinksMode'
           Properly implement 'TableNavigationLinksMode' configuration
#4703 Unsaved schema page exported as pdf.pdf
#4705 Table structure: adding primary key doesn't refresh page
           Reload navigation after adding indexes
#4707 Call to undefined method PMA_Schema_PDF::dieSchema()
#4702 URL is non RFC-2396 compatible in get_scripts.js.php
#4721 Undefined property: stdClass::$version
#4719 'only_db' not working
#4716 Collapse all in navigation panel is sometimes broken
#4700 Error text: Internal Server Error
#4724 Cannot navigate in filtered table list
#4717 Database navigation menu broken when resolution/screen is changing
#4727 Collation column missing in database list when DisableIS is true

Moreover, following bug were investigated during the six days.

Bugs investigated
#4704 DisableIS enabled, only shows information_schema db
#4693 phpMyAdmin sometimes hangs after login
#4701 session_expired URL loop on session expiry via ajax
#4709 Cannot browse table if sorting column is renamed
#1437 Configure Text/Icons/Both separately for tabs and in-table edits

by Madhura ( at January 24, 2015 02:58 AM

January 15, 2015

Michal Čihař

Weblate UI polishing

After releasing Weblate 2.0 with Bootstrap based UI, there was still lot of things to improve. Weblate 2.1 brought more consistency in using buttons with colors and icons. Weblate 2.2 will bring some improvements in other graphics elements.

One of thing which was for quite long in our issue tracker is to provide own renderer for SVG status badge. So far Weblate has offered either PNG badge or external SVG rendered by Relying on external service was not good in a long term and also caused requests to third party server on many pages, what could be considered bad privacy wise.

Since this week, Weblate can render SVG badge on it's own and they are also matching current style used by other services (eg. Travis CI):

Translation status

One last thing which really did not fit into new UI were activity charts. In past they were rendered as PNG on server side, but for upcoming releases we have switched to use Chartist javascript library and render them as SVG on client side. This way we can nicely style them to fit into page, they scale properly and also reduce server load. You can see them in action on Hosted Weblate server:

Weblate activity chart

Filed under: English phpMyAdmin SUSE Weblate | 0 comments

by Michal Čihař ( at January 15, 2015 05:00 PM

January 12, 2015

Madhura Jayaratne

phpMyAdmin work during the fourteenth week

Fourteenth week of phpMyAdmin work drew my attention to both bug fixing as well as feature request implementations. 

Since the bug rush had slowed down a bit I had the chance to look into feature requests. At the beginning of the week I went though the feature requests tracker and identified a set of rfe s the made sense and implemented some of the during the week. So following are the new features that were added during this week.

Feature requests implemented
#347   Allow table with transformed column anywhere in FROM clause
#1450 Improve handling of missing function in ImportXml
#1525 Generate keys one per line, like foreign key constraints
#1590 Recaptcha API v2
#1580 Individual Zeroconf PMA tables support

I enjoyed fixing a very old rfe, #347, which I wanted to see in phpMyAdmin for some time. Implementing rfe #1580 Individual Zeroconf PMA tables support was motivated by the recent work I did in the same area. I also enjoyed upgrading the reCaptcha feature to its new API.

Routine bug fixing was also carried out during the week and following are the list of bugs that were implemented and investigated.

Bugs fixed
#4685 Call to a member function isUserType() on a non-object
#4686 Select elements flicker and selects something else
#4687 Designer breaks without configuration storage
#4688 File permissions in archive
#4691 Do not include console when no server is selected

Bugs investigated
#4510 QBE generates wrong query
#4646 Version Check Broken

by Madhura ( at January 12, 2015 05:38 PM

January 07, 2015

Madhura Jayaratne

phpMyAdmin work during the thirteenth week

During this week I attended to a mix of feature requests as well as usual bug fixes. First few days of the week was mostly spent on implementing new feature requests. One of them were regarding the facility to format SQL and I tried implementing it with CodeMirror. CodeMirro did not have formatting rules for SQL and I added a set of simple rules for SQL. However, CodeMirror developers have discontinued developing/supporting the formatting module.

Feature requests
#1582 SQL formatter (proposed)
#1567 Sever Variables Table UI Improvements
#1572 User prefs: Diff-friendly JSON for config

Second half of the week was dedicated to fixing bugs related to phpMyAdmin configuration storage. It started with a fix for ZeroConf functionality, however the fix went on to be quite big (more of an implementation than a fix), taking pretty much two days. I noticed a number of shortcomings in the configuration storage while fixing this bug and I attended to those bugs as well.

Bug fixes
#4675 phpMyAdmin should be able to work without 'examples' DIR
#4676 Auto-configuration issues
#4677 Advanced feature checker does not check for favorite tables feature
#4678 Some of the data stored in configuration storage are not deleted upon db or table delete
#4679 Setup does not allow providing a name for favorites table
#4680 Number of favorite table are not configurable in setup
#4681 'Central columns table' field in setup does not have a description
#4683 Relational data is not properly updated on table rename

by Madhura ( at January 07, 2015 08:20 AM

December 31, 2014

Madhura Jayaratne

phpMyAdmin work during the twelfth week

A merry Christmas to everyone!!!

Christmas happened to fall on my Twelfth week of work. The work week was a short one since I took leave on Thursday and Friday (25th and 26th) around Christmas. Just like the last week, I focused on bug fixing during this week as bugs were reported frequently. Following are the bugs that were fixed during the week

Bugs fixed
#4651 don't open console with esc
#4653 Always connection error was shown, on /setup at tab "configuration storage"
#4661 Drag and drop file import always fails
#4663 Export missing back ticks for order table name
#4664 select min() displays 1 row, but reports the table amount of rows returned
#4666 Undefined indexes in table print view of a view
#4668 Remove from central columns error
#4670 CSV import reads both commas and values into first column after first row
#4671 Unable to move all columns

Additionally following feature request was addressed.

Feature requests implemented
#1563 Change keyboard shortcut for console display to other then 'escape'

The last time I updated the TCPDF library we got an error and I reported it to upstream. Since the developer has fixed it, TCPDF library used in phpMyAdmin was updated to its latest version.

Updated TCPDF to its latest version 6.2.3

by Madhura ( at December 31, 2014 01:30 PM

Michal Čihař

No Windows builds for Gammu and Wammu

For quite some time I used to produce Windows builds for both Wammu and Gammu using cross compiling on Linux. But this has proven to produce some errors and needed my time to maintain the cross compilation environment. I've decided to stop producing Windows binaries and I don't expect to get back to that anytime soon.

This is actually no news for Wammu, where I've removed Windows builds some about two years ago as they proven to be too broken for normal usage, but for Gammu it's new as previous release had Windows builds. I've lost the cross compilation environment due to hard drive failure and restoring it is simply too much of work and still will not allow me to build complete release (I've not managed to build Python modules properly).

So if anybody is interested in Windows binaries, he needs to produce them on Windows. I can help with fixing code or existing setup scripts (they probably need adjustments as they were tweaked for cross compiling), but somebody has to setup the environment with all dependencies and test the build on Windows.

Filed under: English Gammu Wammu | 0 comments

by Michal Čihař ( at December 31, 2014 11:00 AM

December 30, 2014

Michal Čihař

Gammu 1.34.0

Gammu 1.34.0 has been just released. It has been more than year from last Gammu release and it's time to release all new features and bugfixes.

Full list of changes:

  • Add phone power ON/OFF function.
  • Removed deprecated Python modules gammu.Data and gammu.Worker.
  • Store network name and code in SMSD tables.
  • Fixed build with recent clang compiler.
  • Fixed several possible issues found by Coverity scan.
  • Fixed possible crash on SMSD startup.
  • Fixed decoding unicode SMS messages.
  • Added identification for several Nokia phones.
  • Fixed compilation issues on various platforms.
  • SMSD now honors loglevel for all logging targets.
  • SMSD can automatically hangup incoming calls.
  • Correctly detect Network errors.

You can download it from

I will not make any promises for future releases (if there will be any) as the tool is not really in active development.

Filed under: English Gammu Wammu | 0 comments

by Michal Čihař ( at December 30, 2014 09:00 AM

December 29, 2014

Michal Čihař

Wammu 0.38

It seems that the 0.37 release was not that good as I hoped for, so here comes another bugfix release. So here comes Wammu 0.38.

The list of changes is not really huge:

  • Compatibility with latest wxPython releases.
  • Fixed corrupted appdata metadata.
  • Fixed broken desktop file due to Chinese translation.
  • Translation updates.

I will not make any promises for future releases (if there will be any) as the tool is not really in active development.

Filed under: English Gammu Wammu | 0 comments

by Michal Čihař ( at December 29, 2014 01:50 PM

December 21, 2014

Madhura Jayaratne

phpMyAdmin work during tenth and eleventh weeks

Here I am combining work done on two weeks since I was on leave for four days during the latter week and there is no point of writing a separate blog post for just one day of work.

During the tenth week I concentrated solely on the bug fixes as a load of bugs were reported during the week. Most of them were on the 4.3 series and this indicated that more and more people are starting to use the new version, which is great.

So here is the list of bugs I fixed during the six days

Bugs fixed
#3794 failure to handle repeating empty columns when importing ODS
#4617 UI issues with sortable tables
#4625 "Insufficient space to save the file" on export SQL to file on server
#4626 Ctrl + click on a column not is sort triggers a server call to erroneous url
#4627 "file_get_contents(examples/create_tables.sql): failed to open stream" after update
#4628 PHP error while exporting schema as PDF
#4629 Problem with custom SQL queries using cookie authentication
#4630 AJAX request infinite loop
#4631 Server selector submits two server parameters
#4632 Notice in ./libraries/Util.class.php#1916 Undefined index: query
#4633 Wrong parameter in fetchValue
#4634 Error reporting creates an infinite loop
#4638 Default Export Method setting broken
#4639 Export SQL missing indentation first field
#4644 Error when browsing tables
#4646 Version Check Broken
#4649 Attributes field size smaller than others

In addition to that I attended to the following list of bugs

Bugs attended
#4438 “Token Mismatch” Error In Safari via MAMP
#4589 Can not add new procedures
#4641 Zeroconf PMA tables support
#4642 phpmyadmin often fails to load due to specific load order

by Madhura ( at December 21, 2014 12:23 PM

Public Transportation Usage Analysis for City of Chicago

As part of my BI course I'm taking for my part time MSc, I started working on an analysis on the public transit data of the city of Chicago.


Public transportation system can benefit greatly from insights into the traffic volumes. These insights can be helpful in identifying the peak times and peak routes and will be instrumental in effective allocation of buses and other transportation modes to cater those transportation needs. This can further help the authorities in making other corporate decisions such as purchase decisions and decisions to issue route permits (in SL context) etc.

Further, such insights would be used to do demand management. In demand management the user is offered incentives to direct users to use the transportation system when the congestion is less. Airline industry benefits greatly from demand management and this can be applied to other transportation to various extends. To do demand management, insights into the traffic details would be crucial and it can in turn help the authorities of companies identify the effectiveness of such demand management strategies.

Data Set

The data was available from the Open Data Portal of City of Chicago and it included data for both bus and metro lines. The data was in the granularity of days and for buses it had data for each of the bus routes. In the case of metro, the data was in the form of metro station entries. More data was available on bus stops and metro stop. However, these data could not be used for the analysis since the fact tables were in the granularity of bus route and station entries.

The data was in CSV format and my first task was to get them into a relational databases. I did a quick analysis on data in the relational database. Bus rides data had about 700,000 tuples while the station entry data had about 600,000 tuples. I had to derive separate tables for metro stations and bus routes and define required primary keys as well as foreign keys among tables. Since the data was in granularity of days I created a new table for days and added extra columns such as year, month, day of month, day of week which is helpful in further analysis. So my final schema looked like this.


For the analysis the preferred BI suite chosen was Pentaho. However, I soon realized the the Community Edition of it lacks much of the ease of use and many things has to be done manually.

BI schema

Since time is the major dimension of the analysis I required time to form a hierarchy and designing time in a hierarchical manner was not possible with the schema generation in Pentaho BI server. For that I used the Pentaho Schema Workbench which allowed me to properly mark the dimension and time for the required hierarchy.

OLAP cube

OLAP cubes were generated using the jPivot plugin for Pentaho. Since time was defined in a hierarchy, now I can drilldown the cube in a more meaningful manner (in a year, month, day hierarchy). 


The dashboard available in the community edition lacks ease of use and dashboard needs to be defined and the tweaks needs to be done with CSS and JavaScript. So this dashboard creation is not for non-geeks. I included the following charts in the dashboard.
  • Bus rides by bus routes
  • Station entries by station
  • Bus rides and station entries by year (to identify overall trend in public transportation usage) 
  • Bus rides and station entries by month (to identify seasonal variations)
  • Bus rides and station entries by day of month
  • Bus rides and station entries by day of week (to identify weekly patterns)
  • Bus rides and station entries over time


Pentaho comes with a report design tool which allows creating report templates and binding data with them easily . I created reports which included total bus rides and station entries by month, year and by station and routes. Report Designer allows publishing those reports to the BI server. However, I got an error while doing so. Though I did not find any documentation to suggest that, I suspect this is not allowed in the community edition. Report designer allows publishing reports in multiple formats and the following is a sample report in HTML format.

Observations and Interesting Findings

A number of interesting observations were made using the Pentaho dashboard. 

There is an year by year increase of metro usage while the usage of buses remained constant over the course of 13 years. 

As expected, Sunday recorded the least usage of public transport followed by Saturday. However, interestingly Monday had a noticeable drop compared to other week days. May be people feel lazy to wake up on Monday mornings and rush to work with their own vehicles :)

Moreover, interesting seasonal variations were observed which is suspected to be related to four seasons. There was a noticeable drop in the public transit usage in the months of December, January, and February and this is possibly due to the winter conditions.

Further I noticed that some days in the month has considerable less usage. In the below graph 31st day of the month record lowest since not every month has a 31st. The drop in 29th and 30 the can probably be asserted to the month of February. Drops on 1st, 4th and 25th can possible be due to US holidays that falls on fixed days (1st Jan - New year's day, 4th Jul - Independence day, 25th Dec - Christmas day). However, I did not find such a drop for 11th Nov which is the Veteran's day.

by Madhura ( at December 21, 2014 11:02 AM

December 09, 2014

Madhura Jayaratne

phpMyAdmin work during the ninth week

This was a four day week since I was on leave on 3rd Wednesday.

During the week I was more engaged in code improvement work opposed to putting effort on bug fixing compared to previous weeks. The jQuery and jQuery-ui versions phpMyAdmin was using were too outdated and it needed an upgrade for sometime. jQuery was stuck at version 1.8 since there were major changes in upgrading from 1.8 to 1.9. This included a set of methods removed such as .live() and .die() methods which were deprecated for sometime. However, these methods were heavily used in phpMyAdmin making phpMyAdmin stuck at version 1.8.

I started with going through the upgrade guide for jQuery 1.9 [1] and inspecting the phpMyAdmin for possible breakages in case of an jQuery upgrade. There were heaps of .live() and .die() methods to be replaced and more instances of other methods removed. 

Then I went on to check each of jQuery plugins for their updates as most of them were pre 1.9. Some of them had updates - the ones that are actively being developed -, while for the others, I had to patch them to be compatible with jQuery 1.9+. Now after much effort phpMyAdmin uses jQuery version 1.11.1 and jQuery-ui version 1.11.2.

Code improvements
Making code compatible with jQuery 1.9+ and upgrading phpMyAdmin to use latest versions of jQuery and jQuery-ui
Upgrading phpMyAdmin to use latest versions of jQuery plugins where newer versions are available and upgrading other jQuery plugins to be compatible with jQuery 1.9+

Bug Fixes
#4615 SQL highlighting in process list breaks on auto refresh
#4616 Warning on db structure print view page
#4618 Page scrolls while GIS visualization is zoomed in/out with mousewheel

Security fixese
#4611 DOS attack with long passwords (coordination)
#4612 XSS vulnerability in redirection mechanism (coordination)


by Madhura ( at December 09, 2014 12:07 PM

December 05, 2014

Michal Čihař

Weblate 2.1

Weblate 2.1 has been released today. It comes with native Mercurial support, user interface cleanup and various other fixes.

Full list of changes for 2.1:

  • Added support for Mercurial repositories.
  • Replaced Glyphicon font by Awesome.
  • Added icons for social authentication services.
  • Better consistency of button colors and icons.
  • Documentation improvements.
  • Various bugfixes.
  • Automatic hiding of columns in translation listing for small screens.
  • Changed configuration of filesystem paths.
  • Improved SSH keys handling and storage.
  • Improved repository locking.
  • Customizable quality checks per source string.

You can find more information about Weblate on, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Ready to run appliances will be soon available in SUSE Studio Gallery.

Weblate is also being used as official translating service for phpMyAdmin, Gammu, Weblate itself and others.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far!

Filed under: English phpMyAdmin SUSE Weblate | 0 comments | Flattr this!

by Michal Čihař ( at December 05, 2014 02:25 PM

December 03, 2014

Madhura Jayaratne

phpMyAdmin work during the eighth week

As mentioned in my last blog post I started working on the token mismatch issue that we received a lot of complaints about for so long. The main issue was that both http and config authentications were not able to refresh the page when when PHP session expires. I implemented a solution similar to what we used for cookie authentication on session timeout which would refresh the page with new token. 

I also attended to regular bug fixes reported within the week. Altogether here is the list of bugs fixed and attended.

Bugs fixed
#4605 Unseen messages in tracking
#4606 Tracking report export as SQL dump does not work
#4607 Syntax Error during db_copy operation
#4608 SELECT permission issues with relations and restricted access
#4227 Token mismatch when using HTTP AUTH and the SESSION expires
#4280 Error: Token mismatch
#4387 Token mismatch (one server http auth, one cookie)
#3893 Token mismatch error on every action

Bugs attended
#4569 Issues with Relation View dropdowns
#4409 Not displaying results of archive table

During the latter part of the week I concentrated on refactoring and code improvements. I improved the database and table level tracking pages with facility to enable/disable tracking for multiple tables, ability to delete multiple versions of tracking etc. I also worked on displaying results of multiple queries. This involved quite a lot of changes since most of the work had been done assuming that only one result set would be displayed. This work continued to the next week. So here is the list of feature requests and refactoring done during the week.

Feature requests
#1562 Allow tracking multiple table at once from database level tracking page
#1564 Improve action message on Tracking page

Refactoring and code improvements
Refactoring database level and table level tracking pages
Refactoring query results display page to facilitate display results of multiple queries at once

PS: I took the day off on Monday, the 24th.

by Madhura ( at December 03, 2014 01:19 AM

November 27, 2014

Madhura Jayaratne

phpMyAdmin work during the seventh week

This week was quite busy with a lot security fixes. At the beginning of the week 5 security vulnerabilities were reported and I spent most of Monday and Tuesday doing fixes, porting them to other branches, preparing security advisories and communicating with reporter, security team and CVE team.

Following are the list of security vulnerabilities fixed.

Security fixes
#4594 Path Traversal in File Inclusion of GIS Factory
#4595 Path Traversal can lead to leakage of line count
#4596 XSS through exception stack
#4597 XSS through pma_fontsize cookie
#4598 XSS in multi submit

During the week I was also engaged in usual bug fixing and following bug fixes are now ready to be released with the next release.

Bug fixes
#4057 db/table query string parameters no longer work
#4444 No insert statement produced in SQL export for queries with alias
#4591 Spinner in navigation running forever
#4599 Input field is erased after keyboard language switch
#4602 Exporting selected rows export all rows of the query
#4603 Field disabled when internal relations used

Additionally, I also attended to the following bugs.

Bugs attended
#4254 Unable to log in after timeout had been exceeded (cookie)
#4008 Unable to log back in after session expired
#3773 No tables shown because of privileges of views
#4367 Import status infinite loop
#4295 Problem when session expires while importing file

Towards the end of the week, I had a look at the token mismatch issue that were reported to us several time. I will update you on the progress of this in the next post.

by Madhura ( at November 27, 2014 04:36 PM

November 18, 2014

Michal Čihař

Mercurial support in Weblate

Weblate has started as a translation system tightly bound to Git version control system. This was in no means design decision, but rather it was the version control I've used. But this has shown not to be sufficient and other systems were requested as well. And Mercurial is first of them to be supported.

Weblate 2.0 already had separated VCS layer and adding another system to that is quite easy if you know the VCS you're adding. Unfortunately this wasn't the case for me with Mercurial as I've never used it for anything more serious than cloning a repository, committing fixes and pushing it back. Weblate needs a bit more than that, especially in regard to remote branches. But nevertheless I've figured out all operations and the implementation is ready in our Git.

In case somebody is interested in adding support for another version control, patches are always welcome!

Filed under: English phpMyAdmin SUSE Weblate | 0 comments | Flattr this!

by Michal Čihař ( at November 18, 2014 05:00 PM

Madhura Jayaratne

phpMyAdmin work during the third week

This blog post was due for sometime. However, I couldn't write it since I was busy attending the GSoC Reunion and doing some sight seeing in the USA afterwards.

During the third week of work I continued to focus on stabilizing the code for upcoming version 4.3 release. I was mainly attending to performance improvements related to the usage of information_schema. Following are the bugs addressed by the performance improvements

#3869 Count(*) on information_scheme.INNODB_BUFFER_PAGE with a huge bufferpool
#4243 Super slow page rendering with tens of thousands of DBs
#4513 phpmyadmin run very slow (information_schema)

Additionally hide_db, only_db directives were fixed as part of performance improvements fixing the following bug

#3820 hide_db, only_db not working in left panel

Further following bugs were also fixed

#4259 reCaptcha sound session expired problem
#4560 PHP error on master branch
#4564 Designer: spaces in table name with edit table link generates bad links
#4557 PHP fatal error
#4568 Date displayed incorrectly when charting a timeline
#4561 PHP error in transformations
#4431 Wiki page on charts is out of date

Two security issues were also identified and fixed during the third week.

#4562 XSS in debug SQL output
#4563 XSS in monitor query analyzer

by Madhura ( at November 18, 2014 02:33 PM

phpMyAdmin work during the fifth week

I am back from the holiday going to GSoC Reunion and doing some wonderful sightseeing in the USA. During the fifth week of work (first week of November) I attended to  a mix of performance improvements as well as a couple of bug fixes.

I got access to the test server prepared by Ann + J.M. and could test the performance improvements done for the environments with thousands of databases. Even though I could achieve reasonable performance for privileged user, unprivileged users were still seeing long delays. Even 'SHOW DATABASES' queries were as slow as queries on information_schema. The only fast query to access database list was 'SHOW DATABASES LIKE '<db_name>' queries. So the navigation was updated to parse the GRANTS for the user to identify the database he/she has access to and those were used with 'SHOW DATABASES LIKE' queries to get the list of databases.

In addition to the above I attended to the following fixes during the week.

Bug fixes
#4577 Multi row actions causes full page reloads
#3481 Designer relations in IE 8 - partial fix
#4582 Debug SQL works only for the first page

Bugs attended
#3046 Tracking + MySQL interactive_timeout yields error
#3554 copy paste with middle mouseclick in colored sqlbox
#3073 auth_type signon - odd behaviour at ex- and importing

Security fixes
#4578 Undisclosed vulnerability
#4579 Undisclosed vulnerability

Refactoring Node class of the navigation

P.S: I was on leave on Friday due to personal reasons

by Madhura ( at November 18, 2014 02:33 PM

phpMyAdmin work during the sixth week

During the week I mostly attended to bugs. Please find below the list of bugs fixed and attended during the week.

Bug fixes
#4582 Debug SQL works only for the first page
#4581 Some links in query_result doesn't work
#4404 Recordset return from procedure display nothing
#4584 Edit dialog for routines is too long for smaller displays
#4585 Multi query results not shown
#4588 Moving, renaming, dropping actions in table operations page results in token mismatch
#4589 Can not add new procedures

Bugs attended
#3588 X-WebKit-CSP Header breaks Safari
#3940 Content Security Policy errors with Safari 5.1
#4061 No error message when calling an insert stored procedure with too few parameters
#4590 "Browse Foreign Values" not working

In addition to the above I was occupied with upgrading the result showing for multiple queries. Earlier it is at a very primitive level where all the rows are shown without limiting and no additional browsing features present. I refactored the result showing mechanism to reuse it for the multiple queries. However, it was decided that the changes might make the upcoming release 4.3 unstable and now it is targeted for version 4.4. Here is the pull request

Following feature requests were also implemented during the week

Feature requests
#1556 Disabling Show all
#1553 InnoDB presently supports one FULLTEXT index creation at a time

by Madhura ( at November 18, 2014 02:33 PM

November 06, 2014

Michal Čihař

Weblate 2.0

Weblate 2.0 has been released today. It comes with lot of improvements in backend and completely new user interface.

Full list of changes for 2.0:

  • New responsive UI using Bootstrap.
  • Rewritten VCS backend.
  • Documentation improvements.
  • Added whiteboard for site wide messages.
  • Configurable strings priority.
  • Added support for JSON file format.
  • Fixed generating mo files in certain cases.
  • Added support for GitLab notifications.
  • Added support for disabling translation suggestions.
  • Django 1.7 support.
  • ACL projects now have user management.
  • Extended search possibilites.
  • Give more hints to translators about plurals.
  • Fixed Git repository locking.
  • Compatibility with older Git versions.
  • Improved ACL support.
  • Added buttons for per language quotes and other special chars.
  • Support for exporting stats as JSONP.

You can find more information about Weblate on, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Ready to run appliances will be soon available in SUSE Studio Gallery.

Weblate is also being used as official translating service for phpMyAdmin, Gammu, Weblate itself and others.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far!

Filed under: English phpMyAdmin SUSE Weblate | 0 comments | Flattr this!

by Michal Čihař ( at November 06, 2014 01:00 PM

October 20, 2014

Michal Čihař

Hosted Weblate has new UI

The biggest part of this HackWeek will be spent on Weblate. The major task is to complete new UI for it. There have been already some blog posts about that here, so regular readers of my blog already know it is using Twitter Bootstrap.

Today it has reached point where I think it's good enough for wider testing and I've deployed it at Hosted Weblate (see Weblate website for conditions for getting hosting there).

I expect there will be some rough edges, so don't hesitate to report any issues, so that I can quickly fix them.

Filed under: English phpMyAdmin SUSE Weblate | 0 comments | Flattr this!

by Michal Čihař ( at October 20, 2014 01:00 PM

Enca 1.16

As a first tiny project in this HackWeek, Enca 1.16 has been just released. It mostly brings small code cleanups and missing aliases for languages, but fixes also some minor bugs found by Coverity Scan.

If you don't know Enca, it is an Extremely Naive Charset Analyser. It detects character set and encoding of text files and can also convert them to other encodings using either a built-in converter or external libraries and tools like libiconv, librecode, or cstocs.

Full list of changes for 1.16 release:

  • Fixed typo in Belarusian language name
  • Added aliases for Chinese and Yugoslavian languages

Still enca is in maintenance mode only and I have no intentions to write new features. However there is no limitation to other contributors :-).

You can download from

Filed under: Enca English SUSE | 0 comments | Flattr this!

by Michal Čihař ( at October 20, 2014 08:00 AM

October 15, 2014

Madhura Jayaratne

Working for phpMyAdmin and my work during the first week

I started working for phpMyAdmin on 1st October after my work proposal got selected for the phpMyAdmin Developer Position (one year contract). Here I am blogging about what I did during the first week. However, going forward I will probably write my blog posts during weekends rather than mid week.

Anyways, here is what I did during the last week.

Bug fixes
#4259 reCaptcha sound session expired problem
#4547 Micro history does not work in Users page
#4548 Inline editing a field converts tab to spaces
#4551 Wrong test in source code
#4552 Incorrect routines display for database due to case insensitive checks
#4553 Add index dialog does not open on choosing index from create table
#4537 BLOB inline-view JPG column transformation does not work for anything except simple queries
#4252 Database-level permission bug for db names containing underscores
#3120 events are not exported when using xml

Bug investigations
#4303 "New" link in navi panel is shown even if no privileges (out of date)
#4309 Cannot create/edit events and procedures (out of date)
#4495 Comment lines in multiquery
#4255 Can't enter when session die
#3154 No db table entry for users with table_priv only and no host

Feature requests
#1542 Better error reporting in Designer; can get stuck Processing

Security issues
#4544 XSS vulnerabilities in table search and table structure pages

Users page refactoring

Proper privilege checks in procudures, events and triggers to enable editing, adding new ones
Various coding style and doc improvements

by Madhura ( at October 15, 2014 06:00 AM

phpMyAdmin work during the second week

The second week of my work was relatively a short one since I had to take 2 days (8th Oct Wednesday and 13th Oct Monday) off. So effectively I only worked for 3 days (9th, 10th and 14th) during the second week.

As suggested in the monthly IRC meeting I focused more on stabilizing the code for the upcoming alpha release of version 4.3. I stated with performance improvements related to the usage of information_schema which was a problem since version 4.1. The work carried out can be found at pull request 1375 [1]

In addition to that the following bug was fixed.
#4556 Fast filters for tables, views etc. should be governed by NavigationTreeDisplayItemFilterMinimum

I also did some bug tracker clean up which which resulted in me attending to the following bugs
#3154 No db table entry for users with table_priv only and no host
#4277 Export problems - low execution time
#3165 Redundant Foreign Keys not supported


by Madhura ( at October 15, 2014 06:00 AM

October 08, 2014

Chirayu Chiripal

A new beginning with phpMyAdmin

After successfully completing my Google Summer of Code 2014 (GSoC) project, today, I officially became committee member of the phpMyAdmin project unanimously. Thanks to all team members for invitation. I must say that GSoC’14 was a great experience. I learned a lot in those 12 weeks. Special thanks to my mentor Isaac Bennetch for the guidance throughout the project. I would also like to thank other team members & developers: Marc Delisle (lem9), Michal Čihař (nijel), Hugues Peccatte (Tithugues), Madhura Jayaratne (madhuracj), Atul Pratap Singh (zixtor) for the support.

Filed under: Uncategorized

by chirayu45 at October 08, 2014 05:33 PM

Michal Čihař

Wammu 0.37

It has been more than three years since last release of Wammu and I've decided it's time to push changes made in the Git repos to the users. So here comes Wammu 0.37.

The list of changes is not really huge, but in total that means 1470 commits in git (most of that are translations):

  • Translation updates (Indonesian, Spanish, ...).
  • Add export of contact to XML.
  • Add Get all menu option.
  • Added appdata metadata.

I will not make any promises for future releases (if there will be any) as the tool is not really in active development.

Filed under: English Gammu Wammu | 0 comments | Flattr this!

by Michal Čihař ( at October 08, 2014 10:00 AM

October 02, 2014

Michal Čihař

Merging Weblate instances

For quite some time, I've been running translation server for projects where I am involved at Historically this used Pootle, but when we had more and more problems with that, I've written Weblate and started to use it there.

As Weblate become more popular and I got requests to help people with running it, I've realized that it might be good idea to run server where I could host translations for other projects. This is when Hosted Weblate was born.

After some time, I've realized that it really makes little sense to run and maintain separate servers for these sets of projects, so I've decided to move all translations from to Today this move was completed by moving translations for phpMyAdmin.

Filed under: English phpMyAdmin Weblate | 3 comments | Flattr this!

by Michal Čihař ( at October 02, 2014 10:00 AM

August 22, 2014

Dhananjay Nakrani

Final evaluation of Google Summer of Code-2014 Project

Here it comes, the final evaluation results for my Google Summer of Code Project.

Again, I’m proud to announce that I have successfully passed it!! 8-) Time for one more and final paycheck. Also going to get some goodies from Google very soon.

On a side note, I am planning to work with phpMyAdmin as a volunteer-developer. My next task is to solve Issue#43 of error-reporting-server. I have already found one other cause (than indexing) for that problem. Will soon start working on it.

I will be posting a full article about my GSoC experience shortly.
Keep following!

by dhananjay92 at August 22, 2014 08:33 PM

August 18, 2014

Bimal Yashodha

GSoC 2014 week 13

As the GSoC 2014 has officially comes to it's end, I'm really happy that I could finish all my planned tasks successfully.

As a final change, I did some modifications in the exporting functionality, including few UI changes as follows:

Initially all the exporting types had same set of exporting options, although for some types, those options are not relevant. Now as shown above, upon selecting the export type, only the relevant exporting options will be shown. 

Apart from this modification, as I described in my last week's post, the whole schema exporting was re-factored in such a way that, it's now a plugin. So that in future, users can easily add new exporting types.  

by Bimal Yashodha ( at August 18, 2014 06:12 PM

Ashutosh Dhundhara

GSoC 2014: Final report

13th week and final week of my project is over. Most of my work was over last to last week. I devoted my last week in improving the existing code and features and fixing some bugs.

Following are some keys accomplishments of last week:

  • RFE #1492 (Remove the distinct query window).
  • RFE #919 improvement.
  • Fixing of some issues reported by Scrutinizer and coding style (link).

This marks the end of my GSoC 2014 project.

Hoping for best in the final evaluation!

by ashutoshdhundhara at August 18, 2014 03:56 PM

August 11, 2014

Bimal Yashodha

GSoC 2014 week 12

After spending almost 12 weeks, I've not come to the final stage of the GSoC 2014. As a quick re-cap, my project was about merging "relational schema editor" funcationalities into the "designer", and make it functionally rich while introducing the OOP concepts into the code base and improve.

In this project I had 5 main tasks:

  • Provide single GUI editor for "relational schema editor" and  "designer".
  • Direct export of schema from "designer"
  • Introducing a client side storage for the designer, to make users enable to use the designer, even without doing the necessary configurations. And also export those designs in currently available formats.
  • Reduce code duplication in schema handling.
  • OOPing the designer code.  
As at now, I've successfully covered all these tasks and also did the following modifications:
  • Moved HTML codes of the pmd_designer to another file and only kept logic handling.
  • Designer exporting was re-factored as plugins.
The last two modifications will help further enhancement of the code and also the modularity and scalability.

To provide more information about making exporting functions as plugins, I've used the same approach which had used in "exporting data". "schema" folder was moved into the plugins folder and "SchemaPlugin.php" class controls the exporting through provided all four types. Export_Relation_Schema.class.php acts as the parent class of the export and all other schema classes are inherited from his class, by which OOP concepts are preserved, while removing code duplications.

by Bimal Yashodha ( at August 11, 2014 07:14 PM

Ashutosh Dhundhara

GSoC 2014: Week 12

12th week of my GSoC 2014 project is over.

Key Accomplishments last week : RFE #1123 (under review)
Key tasks that stalled        : NONE
Code                          : rfe_1123
Tasks in upcoming week        : RFE #1492

By the end of this week I should have completed my project. But I will need 2-3 days more to finish it. Now I am left with only one task.

Last week I successfully implemented RFE #1123. It was quite confusing feature to implement. There were so many constraints and points to consider. But with the help of my mentor I was able to finish it. Although, it was my task to implement, but if we evaluate it on the basis of efforts made, all credit goes to my mentor Marc Delisle.

With this ‘Zero configuration’ feature, the user will be offered to create the configuration storage in the current database from the ‘Operations’ tab. If the PMA tables already exist in the current database, they will be used.


This week I am going to work on RFE #1492, not all of it but only a part. This task was overlapping with one of my fellow GSoCer, Edward Cheng. So it was decided that I will look after the “Removal of separate Query window” part of this feature request.

I think I will be able to finish it by tomorrow thus getting some time for reviewing the whole project once again.

by ashutoshdhundhara at August 11, 2014 11:25 AM

Smita Kumari

GSoC'14 Project - wrapping up

My Google Summer of Code 2014 project has almost come to an end as today is soft "pencil down" date. It has been a great summer for me, I learnt a lot during the time. Worked on two amazing features Central list of columns and automated normalization upto Third Normal Form (3NF) for a widely used software phpMyAdmin . I hope to see these in later releases of phpMyAdmin.

First one month of the project, I worked on Central list of columns. As the name suggest, Central columns feature enables to maintain a central list of columns per database to avoid similar name for the same data element and consistency of data type for the same data element. You can use the central list of columns to add an element to any table structure in that database which will save from writing similar column name and column definition.

Remaining next two months I gave to automated normalization which is named as "Improve table structure" within phpMyAdmin and can be found on table structure page.  A wizard is presented to user which asks question about the elements during the various steps for normalization and new structure is proposed accordingly to make table into the First/Second/Third Normal form. On startup of the wizard, user gets to select upto what normal form they want to normalize the table structure.
As I see one added advantage of the automated normalization feature within phpMyAdmin can be even used to teach Database Normalization concept to students as it takes user to each and every step with a small explanation about the steps involved. As we know, we learn more by doing something with our hands than read about that same thing in a book. 

Both of these features are ready to use and can be forked on git from phpMyAdmin master branch. Here you can have a list of unnormalized tables on which you can test the normalizations. I would to love to have your valuable feedback on both the features. It may have few unexpected bugs that I didn't come across, feel free to report on phpMyAdmin bug list, I will be happy to resolve.

The last week, My task was to complete writing the Unit tests for Third normal form(3NF) which has already been reviewed and merged by my mentor. I have also completed the required documentation part that has also been merged. So I believe I have nothing left to do as part of my this year GSoC project with the help of one great mentor :-) but of course I will continue to improve my work and will keep maintaining these in my free time even after the summer. It was fun working during the summer. First time I experienced working on Open source project and it has been a good time and rewarding. I'll try my best to keep contributing for the open source community in future specially for phpMyAdmin.

I would like to say thank you to all the amazing people who made it possible specially Marc Delisle, My mentor who spent countless hours with reviewing my code, understanding to my problems and giving me some good suggestions.

by Smita Kumari ( at August 11, 2014 06:28 AM

August 07, 2014

Madhura Jayaratne

Retrospect - continued...

If you missed the first part of this post you can find it here.<o:p></o:p>

Last week I concluded the blog post telling you how my FOSS life began with phpMyAdmin. It was just after the GSoC and the team was preparing to release the version 3.4 of phpMyAdmin. There was a lot of testing going on, bringing a continuous stream of bugs. This was a good opportunity for me to get a good hang of the code. I fixed quite a number of bugs. None of the alpha, beta or a release candidate version went without a fix from me. Version 3.4 was released soon and it was quite fascinating to see people using what you have contributed.<o:p></o:p>

I was still an undergrad and wanted to take part in the 2011 version of GSoC. Initially I wasn’t sure whether I could apply under phpMyAdmin since I was already a team member. However Marc Delisle, one of the project admins helped me clear my doubts and I chose to apply for project idea that was due for some time. The project was about supporting geographical data types in phpMyAdmin. My knowledge on the area was very limited, so I started doing my own little research. I tried out other database engines that had GIS support such as PostgreSQL and SQLServer and their clients. This helped me write a better proposal.<o:p></o:p>

To my delight, the project got accepted. I was going to spend my entire summer with phpMyAdmin!!! Michal Čihař, the other project admin was my mentor. My project covered quite a lot of areas related to geographical data types in phpMyAdmin. It included providing an interface to enter geographic data, visualizing them, exporting them, importing from ESRI format for GIS data as well as searching with geographical data specific functions. This covered most of the areas of the phpMyAdmin code and by the end of the summer I was more confident with the code. GSoC was a great experience for me, getting to know my mentor, the team and community well. <o:p></o:p>

2011 was quite an eventful year in my life. I graduated in December and started working. Of course this limited the hours I could put for phpMyAdmin, but I managed to contribute much during the weekends. Another very much looked forward to event was closing by. The team decided to meet in real life at FOSDEM 2012 in Brussels. All expenses covered visit to the best FOSS conference in Europe plus meeting the phpMyAdmin team!!! How cool is that!!! This was the first time I visited the Europe and this was an amazing experience to me. Subzero temperatures and snow was all new to me who is coming from a tropical country where the sun shines the whole year along. The conference was very rich with what it had to offer and it was a great opportunity for developing a closer friendship with my fellow team members. I did not forget to spend some time doing sightseeing in this beautiful country.<o:p></o:p>

GSoC 2013 edition was another milestone in my Open Source life. I was asked by the phpMyAdmin team whether I would like to mentor a GSoC project. The proposal submission period was a one big rush with a lot of discussions going on in the developer’s mailing list and receiving a large number of patches. Students were digging into the code as phpMyAdmin required the potential candidates to display their familiarity with code by submitting patches for bugs or new features. Reviewing proposals was very interesting with proposals varying from students who did not even know what phpMyAdmin is written in to student who knew very well the product as well the their proposed projects.<o:p></o:p>

I chose to co-mentor a project that was aimed at improving the testing mechanism and testing coverage of phpMyAdmin with Michal Čihař. It was indeed a very interesting project. It’s only when you are trying to write unit tests, you find the problems in the architecture. The student was willing to even improve the code by refactoring. He was enthusiastic about the project and quickly grabbed techniques like mocking for testing. It was a pleasure to co-mentor a student who’s enthusiastic and willing to learn. Even I learnt a lot on the technology front and from my co-mentor about mentoring a student.<o:p></o:p>

So this is how my FOSS life started and evolved, thanks to GSoC. I’m contributing to the project to date and I never seem to get bored doing that. Since FOSDEM 2012 I have met the team members twice, once in picture perfect Switzerland and more recently in Germany. I have developed stronger friendships with my fellow team members and even visited them in their home countries and looking forward to receive them back in Sri Lanka. I am mentoring a GSoC project this year as well. All in all I find it very satisfying to being able to contribute to this great work.<o:p></o:p>

by Madhura ( at August 07, 2014 09:47 AM

August 04, 2014

Bimal Yashodha

GSoC 2014 week 11

As the program coming to its final stages, as planned before, I'm gradually reaching to the completion of my project.

During the past weeks, I've been working on the combined tasks: 

  • Reducing huge duplication of code in schema handling
  • OOPing the designer code
While doing these two aspects, as part of re-factoring, I separated out all the HTML codes from the pmd_general.php to a new library file pmd_general.lib.php. So all the logics which were handled by the pmd_general.php will remain there and the HTML codes will be retrieved from the pmd_general.lib.php file through function calls.

Also as a part of removing the code duplications in schema exporting, I'm trying to re-factor the existing 4 schema exporting types into 4 different plugins, as done in data export funcationalities in "export.php" file. So that when ever a new schema exporting method is needed, it can be easily plugged into the existing system.  

by Bimal Yashodha ( at August 04, 2014 06:38 PM

Ashutosh Dhundhara

GSoC 2014: Week 11

11th week of my GSoC 2014 project is over.

Key Accomplishments last week : RFE #919,RFE #1491
Key tasks that stalled        : NONE
Code                          : rfe_919, about to create a PR for RFE #1491
Tasks in upcoming week        : RFE #1123

Last week I successfully completed RFE #919. It was quite a big feature to implement. Last week I also improved the ‘LEFT JOIN’ generation in QBE interface in case of Internal relations (commit). Now left join appears in a way that all rows of parent table appears whether they have any matching rows in the child table or not. This is the general requirement of any user.

Last week I also aimed for RFE #1491 which I have completed. I wanted to confirm the output of the feature with my mentor before creating a PR. I just got the reply of my mentor that results are fine. I am going to create a PR right after this post.

This week I am going to work on RFE #1123 (Zeroconf PMA tables support) which I feel is somewhat big feature to implement. Soon I will engage myself in a discussion regarding this feature on the mailing list. Hope to finish this feature before the end of this week.

by ashutoshdhundhara at August 04, 2014 12:06 PM

Chirayu Chiripal

GSoC 2014 Week #12: Improved notification when attempting to insert invalid data

Week #12 Task:  Improved notification when attempting to insert invalid data
Scheduled Deadline: August 04, 2014
Completed On: August 04, 2014

How it was done: In this week, I improved the validation of various fields:

  • Integer type column fields: Considered range of all integer types (TINYINT, INT, BIGINT, etc.) including SIGNED or UNSIGNED attribute by adding data-min & data-max attributes to the field which specifies the minimum and maximum value of the field respectively which is checked when field value is changed using JavaScript. But as JavaScript supports upto 53 bit numbers (after that approximation comes into play) which was not enough for MySQL point of view which has support for 64 bit Integer also. We needed precision upto 64 bits so the best option was to compare numbers as strings and not as number actually. So, I created a big_ints.js file which is BigInts library of phpMyAdmin. Currently, it has and BigInts.lpad function only as those were required for this task. The function compares the two number in string of any size (practically limited to the maximum size of string in JS) which also supports negative numbers as well as numbers with leading zeros for e.g. 0001 when compared with 1 will be considered as equal.
  • AES_ENCRYPT, AES_DECRYPT validation: The output of AES_ENCRYPT and AES_DECRYPT is in binary, so applying these functions to varchar or char types doesn’t makes sense. So, whenever AES_ENCRYPT or AES_DECRYPT is chosen in function column then it checks whether the column is of BINARY or BLOB types. Otherwise it will turn the function column field red denoting that this function is not applicable to current field.
  • Character columns length validation: Earlier HTML maxlength property was used to allow user only to enter that many characters into the field but from the discussion on mailing lists it seemed that it was better to allow user to continue even if we feel that it is not correct and let MySQL truncate the data accordingly. So, I changed maxlength to data-maxlength and used it to check whether length has exceeded the maximum length supported by column and indicate it by turning the field red. I also tested this with multibyte character sets in which one character may take more than one byte for storage and it was found that JS length property handles it efficiently and we can rely on it.
  • MD5 validation: The output of MD5() is a string of 32 hexadecimal digits irrespective of data length. So, using this function on varchar(5) like columns where column size is 5 (less than 32) will cause the result to be truncated and to indicate that we turn the function column field red.

Key accomplishments last week: Improved notification when attempting to insert invalid data.
Key tasks that stalled: None.

Filed under: GSoC 2014

by chirayu45 at August 04, 2014 11:25 AM

Smita Kumari

GSoC'14 week 12: List of tasks to accomlish

The last week of project is starting today. For the last 11 weeks, I worked on adding two new features Central list of columns to the phpMyAdmin and automated normalization upto 3NF.
During last week, 11th week of the project I was working on coding for normalization to 3NF. That work is still under review, yet to be merged. So this week some time may go in fixing the bugs/suggestions if any from my project mentor Marc Delisle or other phpMyAdmin members.
Also after the 3NF gets merged, this week I have to write unit tests for the codes written for Third normal form.
In summary, List of tasks to accomplish includes:
  • Fix bugs, implement suggestions if any to 3NF.
  • Write unit test for the codes written for Third normal form (3NF).
I would also like to request other phpMyAdmin members to checkout the automated normalization and give me your valuable feedbacks if any. Here you can have a list of unnormalized tables on which you can perform the normalizations.

by Smita Kumari ( at August 04, 2014 10:50 AM

GSoC'14 coding week 11: Automated normalization to 3NF

This week started with me coming back to my college on Monday after my summer vacations. So the actual coding work I started on Tuesday. As I had mentioned in my last blog, this week I was supposed to complete the normalization to Third normal form. From the definition of Third normal form, to convert a table which is in 2NF into 3NF we check for transitive dependencies. Since after 2NF, all the columns are completely dependent on complete primary key so to find the transitive dependency we need to just check if there any non primary columns which determines other non primary column. for example, let say a table has columns pk1, pk2, col1, col2, col3 which is in 2NF implies (pk1, pk2) - > col1, col2, col3. Now if let say col1->col2 then we can say col2 transitively depends on (pk1, pk2) as (pk1, pk2)-> col1 and col1->col2 .
So to find out the transitive dependencies, for each of the non primary columns, I'm asking if it depends on any other non primary columns.
After second normal form, original table may split into more than one tables so I needed to process all those tables for Third normal form simultaneously.
These pictures shows the flow of 3NF starting from the new tables created during 2NF.

That's all for the 11th week. Feel free to give your feedback on my work for automated normalization and central list of columns in phpMyAdmin. Checkout my next blog for the tasks I need to accomplish during the 12th and last week of my GSoC'14 project.

by Smita Kumari ( at August 04, 2014 10:23 AM

July 29, 2014

Dhananjay Nakrani

Week-12: php Error Reporting (GSoC’14 project)

12th week of my GSoC project is over now. The objective of this week’s work was to finish remaining tasks from previous weeks.

Tasks Completed this Week:

The project was estimated to finish in 12 weeks in the proposed schedule for this project. Since couple of the things are still remaining from the proposed tasks, I am extending the project to one more week. This week, that is Week#13, will be the last week for this project. The remaining task, task#4.3, will be completed this week only.

One more task, namely issue#43, was assigned to me by my mentor, Michal. Since it is not part of GSoC it is excluded from the current schedule. I will work on it as a volunteer after completion of this project.

Week#13 Tasks:

⇒ Give Final Touch to the developed Code.
⇒ Complete Stalled Tasks.
    ⇒ Correct redirection after user logs in.

by dhananjay92 at July 29, 2014 05:45 AM

July 28, 2014

Bimal Yashodha

GSoC 2014 week 10

Under re-formatting and OOPing the code, I did some changes to the pmd_general.php file. Now the functions and HTML codes are separated. HTML codes have moved to another file, and all the logic are in the pmd_general.php file.

Also I'm currently developing designer as a separate component, and will post more details about it in another blog post.

by Bimal Yashodha ( at July 28, 2014 07:27 PM

Chirayu Chiripal

GSoC 2014 Week #11: Navigation state lost on reload

Week #11 Task:  RFE #1426 Navigation state lost on reload
Scheduled Deadline: July 28, 2014
Completed On: July 26, 2014 (to be reviewed)

How it was done: The idea to implement this was to save the current navigation tree state in sessionStorage and then restore the navigation tree from that on page load. Also, as most of the operations in phpMyAdmin are now AJAXified, many operations changed the state of navigation tree, so there was need to update the navigation tree state in sessionStorage in such situations. To achieve this following ideas came to my mind:

  1. Listen to DOM (HTML structure) changes in the navigation tree div and update the state in sessionStorage. After googling a bit to find out if such event exists or not, I found something called Mutation Observers. This seemed to be perfect solution at first sight but after probing it little further, I found that this was not supported by some of the old versions of the browsers (not that old) [MutationObserver compatibility table from]. So this idea was dropped.
  2. Listen for event which gets fired before page reload and update state in sessionStorage before actual reloads happen. That event was onbeforeunload/onunload but the behavior of this event was not consistent across different browsers (browsers impose some restrictions on the code which can be used inside event handler for this event and this restrictions varied from browser to browser). The reason for such restriction was the misuse of this feature to stop a user from navigating away and throwing annoying popups. So, I kept this idea aside for a while.
  3. Call update function to save state in sessionStorage at those places where we update the navigation tree and restore from it whenever page loads. I prefered this method to implement this feature.
  • The browser compatibilty table for web storage (sessionStorage & localStorage) from Caniuse.
  • To check whether your browser supports web storage and to know its storage limit visit here.

Key accomplishments last week: RFE #1426 Navigation state lost on reload
Key tasks that stalled: None.
Tasks in the upcoming week: Improved notification when attempting to insert invalid data.

Filed under: GSoC 2014

by chirayu45 at July 28, 2014 12:51 PM

Ashutosh Dhundhara

GSoC 2014: Week 10

10th week of my GSoC 2014 project is over.

Key Accomplishments last week : Finalized UI for RFE #919
Key tasks that stalled        : RFE #919
Code                          : NONE
Tasks in upcoming week        : RFE #919,RFE #1491

Last week I went on a discussion with my mentor and finalized UI for RFE #919. Below is the screenshot for the same.


I have almost finished the front-end part of this feature. I will try to finish this feature as soon as possible and start working on the next task (RFE #1491) before the starting of next week.

by ashutoshdhundhara at July 28, 2014 09:17 AM