Monday, June 30, 2014

GSoC 2014 week 6

First, I was really glad to received the email saying that I got through the mid-term evaluation. I need to thank my mentor Madhura Jayarathne for the guidance provided and all others, supported through the mailing list, to achieve this milestone.

During the mid evaluation period, I did some more improvements in the exporting functionality based on the review comments. Also in the show/hide tables in the designer view.

The major task for this few weeks is to enhance the usability of the designer. That is, to use the designer, users need to do some configurations explicitly, which, most of the time, will not be done by the users, hence these funcationalities will never be used.

So the main goal of this task is to provide a mechanism in such a way that, users will not need to configure anything, but still should be able to use the designer. For that "Client side databases" will be used.

After analyzing currently available technologies:
  • Web storage
  • Web Sql database
  • Indexed database
are the most commonly used. Web storage uses a "key-value" pair method to store objects in the browser. Although it's a simple mechanism, It's performance decreases as the data become large and complex. Web Sql database is a normal "SQL" - relational database, and has good performance even for the large data sets. But because of low agility and being deprecated, users are moving away from that.

On the other hand Indexed database is made up by combining all the strengths of both web-storage and Web Sql databases. So its more powerful than any of the above two. Also its browser compatibility is increasing.



Monday, June 23, 2014

GSoC 2014 week 5

As the project has now come to the mid-term evaluation, I've almost completed my first two tasks, as I planned initially. Still I'm getting some feed-backs for the changes I did, but in overall, I've successfully covered all tasks.

Now with the new designer page, a user can:

  • create new pages 
  • edit a page
  • delete a page
  • save changes to a new page or an existing page
  • export pages in various formats.
With these changes done, we can remove the existing "Edit or export relational schema" functionality from the phpmyadmin.


Monday, June 16, 2014

GSoC 2014 week 4

During the last week, I did more changes to my first task to make it more user-friendly and functionality-rich.

Following is how the new tool bar of the designer looks like:

"Edit pages" button was removed and added two new buttons, "Open Page" and "Delete Page", which will have the "Edit Page" and "Delete Page" functionalities respectively. Besides these two buttons, one more "New Page" button was introduced, So that the user will not get confused, while trying to create a new pdf page.

For the current task, which is to integrate the exporting functionality of the schema editor into the designer, a new "Export Page" button was introduced.



Similar to the exporting functionality of the schema editor, this new export pages functionality will use the same classes.


Monday, June 9, 2014

GSoC 2014 week 3

The last week was the final week for completing the first task of my project. As I've been describing in my previous posts, "save as" and "edit" options are introduced. Apart from that, functionality of the"save" button has been changed so that the changes will be saved into the "table_coords" table.

in coding perspective, the new functionalities are handled through the "pmd_general.php" file. Following is a screenshot of the code portion which handles all the new added features.


The functionality which handles the saving is changed to save data into the  "table_coords" table. Same functionality is used for the "save changes to existing page" option.


So now, in the designer, "designer_coords" table will not be used, in fact "pdf_pages" and "table_coords". So unlike the previous behavior, the designer will load page wise designs.

Possible TODOs: add option to delete tables from the pdf pages.
So the user has more flexibility over the pdf pages.

I'll put the details of the next task in a seperate blog post soon.


Monday, June 2, 2014

GSoC 2014 week 2

As shown in my last week flow diagram, I've almost completed the first task. The "save as" and "edit pages" functionalities are being introduced, by means of dialog boxes. Following are the screen shots of them:

Save as:

Edit pages:

Changes done in the code:

separate php files will handle the "save as" and "edit pages" functions (save_as_pages.php and edit_pages.php). According to the flow diagram, another file(pmd_page_loader.php) will handle the page loading function.

Now the designer will be loaded with data from "pma__table_coords" instead of "pma__designer_coords". So the system can load different pages upon user selection.

TODO:
do modifications to the "save" function when there are new/edit pages
modify the pmd_general.php file in such a way that, html will be moved to another files and retrieved by function calls.