August 29, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W34

Last week was again mostly spent on fixing bugs and going through reports on our error reporting server. This is really valuable tool for finding problems which hit our users, on the other side there is simply too many things there and sometimes it's hard to pinpoint something really important.

Besides that I've also ensured that all our libraries work well with upcoming PHP 7.2 and all are now tested on Travis CI against this version as well.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at August 29, 2017 10:00 AM

August 28, 2017

Manish Bisht

Summary — Google Summer of Code’ 17 with phpmyadmin

Here is the list of issues on which I have worked this summer.

#1: Implement responsive/mobile interface

https://github.com/phpmyadmin/phpmyadmin/issues/13023

As the number of mobile users are increasing day by day so responsive design should be implemented into phpMyAdmin.

  • Proposed Design
  • Added Viewport
  • Used CSS Media Queries
  • 30+ Pages
  • Fixed Tests Cases

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13422

Status: Merged

#2: Nice view for JSON data

https://github.com/phpmyadmin/phpmyadmin/issues/12944

It will add the feature to have an easy view of the JSON data of a column of a table. Right now it shows in only one line, without any kind of format, so we can have an option to show when you are viewing a table with JSON data or when editing a nice JSON view.

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13317

Status: Merged

#3: Remove inline javascript

https://github.com/phpmyadmin/phpmyadmin/issues/12261

There are several places which uses inline javascript (like onclick, onsubmit and onchange). These should be removed and placed into javascript files. After removal we can get rid of ‘unsafe-inline’ for scripting in CSP.

  • Removed onmouseover
  • Removed onmouseout
  • Removed onmousedown
  • Removed onsubmit
  • Removed onchange
  • Removed onclick

Pull Requests

Status: Merged

#4: Disable charset conversion during import when SET NAMES is present

https://github.com/phpmyadmin/phpmyadmin/issues/9419

If the import file is not in supported formats and it’s not ‘utf-8’ then it runs the SET NAMES for the selected charset during the import option. So I will disable the second time encoding if the selected charset is same as that of the charset mentioned in the SET NAMES.

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13457

Status: Review

#5: Import/Export Progress bar

https://github.com/phpmyadmin/phpmyadmin/issues/6311

https://github.com/phpmyadmin/phpmyadmin/issues/12401

It would be really nice to have a progress bar showing import and export progress in real time in terms of percentage and having some more detailed information like which step/table it is processing.

For Export (export.php will be used)

Export Status in Percentage (including how many tables and rows have been already processed and which is in progress right now)

For Import (import.php will be used)

Upload a file and Unzip it. Import into a database (including how many tables and rows have been already processed and which is in progress right now)

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13502

Status: Review

#6: Password “No” shown for user not in user table

https://github.com/phpmyadmin/phpmyadmin/issues/12718

When a user has access to a db (or table), but is not in the user table he’s shown as not having a password. Even after successfully running the query delete from mysql.user where user = ‘test’ I was still able to login with the test account.

I will show the message “NO” without red mark and with showing an information icon with a tooltip saying that the user exists in some tables but not the user table.

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13305

Status: Merged

#7: Fallback to default table names

https://github.com/phpmyadmin/phpmyadmin/issues/12887

The PMA should fallback to default table names if controluser + pmadb options are set while other like ‘relation’, ‘column_info’ are NOT in config.inc.php.

So if the above conditions are matched I will make all features that are listed as Enabled instead of Disabled.

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13524

Status: Merged

Weekly Blog Posts

I have also posted the weekly update for my project. Following are the links of every week that includes the details and links to pull requests.

Week 1

https://medium.com/@manishbisht/week-1-google-summer-of-code-17-with-phpmyadmin-dfa88d8bfb4a

Week 2

https://medium.com/@manishbisht/week-2-google-summer-of-code-17-with-phpmyadmin-415fb3d64483

Week 3

https://medium.com/@manishbisht/week-3-google-summer-of-code-17-with-phpmyadmin-906017806ac2

Week 4

https://medium.com/@manishbisht/week-4-google-summer-of-code-17-with-phpmyadmin-265521adaf57

Week 5

https://medium.com/@manishbisht/week-5-google-summer-of-code-17-with-phpmyadmin-e988b69d6a80

Week 6

https://medium.com/@manishbisht/week-6-google-summer-of-code-17-with-phpmyadmin-7a2621f1456a

Week 7

https://medium.com/@manishbisht/week-7-google-summer-of-code-17-with-phpmyadmin-74f202a73499

Week 8

https://medium.com/@manishbisht/week-8-google-summer-of-code-17-with-phpmyadmin-f186d502522f

Week 9

https://medium.com/@manishbisht/week-9-google-summer-of-code-17-with-phpmyadmin-90f3699459e8

Week 10

https://medium.com/@manishbisht/week-10-google-summer-of-code-17-with-phpmyadmin-6bf6fb791b49

Week 11

https://medium.com/@manishbisht/week-11-google-summer-of-code-17-with-phpmyadmin-72b4a18597a2

Week 12

https://medium.com/@manishbisht/week-12-google-summer-of-code-17-with-phpmyadmin-2f0a77f48c93

Project Presentation Link

I have also presented this project in my college also. So here it the link of the presentation https://docs.google.com/presentation/d/1-rnFgE1AIx82hgj41DfbVqflmWyyo0MOFw9L2ylF5kE/

Result

I have learned a lot of new things. This organisation have the best community I have seen it till now. I will keep on contributing to this organisation to make phpmyadmin better.

Thanks phpyadmin for the awesome summer and special thanks to my project mentor Isaac Bennetch :)

by Manish Bisht at August 28, 2017 03:24 PM

August 26, 2017

Deven Bansod

Google Summer of Code’ 17 with phpMyAdmin – Summary

This post summarizes the work done and tasks accomplished during the last twelve weeks. It was carried out as a part of Google Summer of Code 2017 with phpMyAdmin.

The project involved two separate sub-lists of tasks, one related to phpMyAdmin’s Error Reporting Server and the other related to phpMyAdmin’s selenium test-suite.

Tasks related to Error Reporting Server:

  1. Use cleaner syntax for control structures in views:
  2. Allow reports search by filename:
  3. Sanitize versions in reports:
  4. Simplify issue state:
  5. Improve generated issues content:
  6. Provide email notification for new reports:
  7. Read-only public interface:
  8. Follow linked Github-issue state:

 

Tasks related to selenium testing:

  1. Fix database-related selenium tests
  2. Fix selenium tests related to Login, Normalization, ChangePassword, ServerSettings
  3. Fix selenium tests related to Table, Export, XSS, Tracking
  4. Fix import-related selenium tests
  5. Add tests for typing and executing SQL query on phpMyAdmin
  6. Add tests for Query-by-example UI in phpMyAdmin
  7. Fix random failures in selenium tests
  8. Minor refactoring in selenium tests

Weekly reports

The detailed weekly reports are available on this blog at the following links:

  1. Week 1:
  2. Week 2:
  3. Week 3:
  4. Week 4:
  5. Week 5:
  6. Week 6:
  7. Week 7:
  8. Week 8:
  9. Week 9:
  10. Week 10-11:
  11. Week 12:

Conclusion

The project led to a few good improvements to phpMyAdmin’s error reporting server, which I hope would make it more developer-friendly and the public interface would help more non-team contributors in fixing the errors reported on it.

phpMyAdmin’s selenium test-suite has finally stabilized in green (i.e. passing), albeit some errors popping up once in about ten runs. I do hope to fix these as they are encountered. Improvement in selenium test-suite and moving it out of allowed failures in Travis has already started to show its impact as we could track a few errors introduced while refactoring. These would otherwise be missed as the refactored code was not well-covered by the unit tests.

Finally, it has been another wonderful summer working with phpMyAdmin and its wonderful community. I would like to thank my mentor, Michal Čihař and the entire phpMyAdmin team, for their continued support throughout this project.


Filed under: Development, GSoC 2017, phpMyAdmin Tagged: Final Submission, GSoC 2017, phpMyAdmin, Summary

by Deven Bansod at August 26, 2017 07:17 AM

August 25, 2017

Michal Čihař

New projects on Hosted Weblate

Hosted Weblate provides also free hosting for free software projects. The hosting requests queue has grown too long, so it's time to process it and include new project.

This time, the newly hosted projects include:

If you want to support this effort, please donate to Weblate, especially recurring donations are welcome to make this service alive. You can do them on Liberapay or Bountysource.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at August 25, 2017 04:00 PM

Deven Bansod

GSoC 2017 : Weekly Report #12

Week #12

Key accomplishments last week:

  • Add selenium tests to cover Query-by-example UI on phpMyAdmin
  • Made selenium test-suite more robust

Key tasks stalled:

NA

Tasks in the upcoming week:

Details:

I completed one of the tasks left in the proposal that was about adding selenium tests for covering phpMyAdmin’s Query by example UI. Additionally, I continued to try and make phpMyAdmin’s selenium test-suite more robust.

Another GSoC student Raghuram has been working on developing the new UI for Query by example as a part of his project. His PR with those changes just got merged yesterday, but the selenium tests might have to be adjusted to suit this new UI. Apart from this, the selenium test-suite is on the verge of running successfully over a set of continuous commits.

With this week coming to an end, the offical coding period for GSoC ’17 has also ended. I would be discussing with my mentor Michal to decide on what to submit as the final submission. It would mostly be a summary post with relevant links and description on this blog.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #12, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at August 25, 2017 05:25 AM

August 24, 2017

Michal Čihař

Taking over siphashc for Python

Since some time we're using siphash algorithm to speed up looking up strings in Weblate. Even though it is used by Python internally, it's not exposed in the standard library so several third party modules appeared in the PyPI. Out of all these siphashc or rather it's Python 3 fork siphashc3 seemed to perform best, so I've started to use that.

However it turned out that none of them is in active maintenance anymore. The original version lacks Python 3 support, while the siphashc3 uses odd versioning which causes problems to some pip versions.

After trying to get fix into siphashc3 without much of success, I've spoken to original author of siphashc and he has agreed to hand over maintainership to me. So it's new home is at https://github.com/WeblateOrg/siphashc and new release is already available on PyPI.

Note: Originally we were using MD5 in Weblate, but siphash has shown to be faster and fits into 64-bits, what makes it easier to store and index in SQL databases as LONGINT.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at August 24, 2017 04:00 PM

Raghuram Vadapalli

Closing GSoC.. Final code submission

So, finally I made it to the end of my project. It was a great experience working with phpMyAdmin through the summer. Since final evaluations are drawing close, Isaac suggested me to make a blog post of links to all the pull requests I submitted. That makes this post an official artifact of my GSoC project. I am glad that I was able to stick to the proposed plan for the most part. Towards the end, we had to re-plan slightly. I am thankful to my mentor for being very supportive during this time.

The following is the list of Pull Requests I submitted in chronological order:

As I mentioned in an earlier post, I was not able to implement one of the features. But the work I did towards it can be found at –

https://github.com/phpmyadmin/phpmyadmin/compare/master…Achilles-96:Setup-Improvements

One of the issues was resolved without any code submission –

 https://github.com/phpmyadmin/phpmyadmin/issues/12845


by Raghuram Vadapalli at August 24, 2017 10:26 AM

August 22, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W33

Last week was a bit less intensive on bug fixes, but I've spent quite a lot of time on improving our localized documentation and fixing various errors there. This is really something what should be automatically checked in Weblate in the long term, but right now it results in build failures in Travis.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at August 22, 2017 10:00 AM

August 19, 2017

Manish Bisht

Week 12: Google Summer of Code’ 17 with phpmyadmin

Previous week the tasks mentioned in my proposal was completed so this week was mostly spent in debugging, checking and fixing other issues. I have fixed one more issue this week.

Nothing on Export page when database is empty

https://github.com/phpmyadmin/phpmyadmin/issues/13572

This is the method to create the error message

$error = PhpMyAdmin\Message::error(__('No tables found in database.'));

So the following was the final result.

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13585

Next Steps

This was my last week progress. I will post an update for wrap up of the entire GSoC tasks in the upcoming week.

by Manish Bisht at August 19, 2017 07:11 PM

August 15, 2017

Deven Bansod

GSoC 2017 : Weekly Report #10 – 11

Week #10 – 11

Key accomplishments last week:

  • Made selenium test-suite more robust
  • Fix possible errors in unreliable test cases
  • Add selenium tests to type SQL query and execute it on phpMyAdmin

Key tasks stalled:

NA

Tasks in the upcoming week:

Details:

I spent some time last week to make the test-suite more robust. Last I had written it was throwing a lot of unrelated errors, but that has been fixed now. It felt really good to see the ‘Daily update’ mails from Browerstack for last two days which said ‘No builds had issues’, which seems to be pointing to suite been stabilized for a few consecutive builds.

Last week was spent at DebConf’17 in Montreal, Canada. Madhura, Michal and I were attending the conference and we managed to meet up with Marc for lunch on one of the days. I did manage to find some time and added selenium tests for typing and executing SQL queries. This covers the Server, Database and Table SQL pages and in-line editing of SQL queries on results page.

For this current week, I plan to continue working to making the selenium test-suite consistent to pass on every commit and prevent any non-deterministic errors. This coming week would be the last week working before pencils-down date. I do expect to continuing some work towards the test-suite to surely go on.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #10, #11, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at August 15, 2017 10:59 AM

August 14, 2017

Michal Čihař

New projects on Hosted Weblate

Hosted Weblate provides also free hosting for free software projects. The hosting requests queue was over one month long, so it's time to process it and include new project.

This time, the newly hosted projects include:

If you want to support this effort, please donate to Weblate, especially recurring donations are welcome to make this service alive. You can do them on Liberapay or Bountysource.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at August 14, 2017 10:00 AM

August 13, 2017

Manish Bisht

Week 11: Google Summer of Code’ 17 with phpmyadmin

This week I have spent my time working on following issue:

Import/Export Progress bar

https://github.com/phpmyadmin/phpmyadmin/issues/6311

https://github.com/phpmyadmin/phpmyadmin/issues/12401

The export and import progress bar is now complete. Here are the screenshots of the final result.

Export
Import

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13502

Next Steps

This was my eleventh week progress. I will post an update for this week soon.

by Manish Bisht at August 13, 2017 02:18 AM

August 11, 2017

Raghuram Vadapalli

So, I had a setback!!

First of all, I successfully passed my second evaluations. Thanks to my mentor. 🙂

The reason I didn’t blog since then is that there was not much progress. Reopening of my college and registration took up more time than expected. Adding to the trouble, my next task Setup improvements turned out be more challenging than expected. It was not suggested in the initial project enhancements collection. But I added it as I felt it is important feature and a good replacement for the other task – Filling random test data in database. Why I had to replace? That’s another story.

Coming to the point, allowing access to file-system is a sensitive issue. After a lot of discussion with Michal, we finally agreed on following scheme for allowing access to setup:

  • If there is no config.inc.php and it can be written to, redirect user to setup and force him creating config at least with setup password. This will make the attack window minimal as most people will try to access the tool just after installing.
  • For existing installs user has to manually add the password to the configuration. This is needed to avoid somebody remotely creating that.

Access to setup:

  • If there is no config file, access to setup is allowed for initial setup.
  • If there is config without password, access is rejected with link to documentation how to enable it.
  • If there is config with password, user has to enter the password prior entering setup.

And this was finalized just last week. Also, I came across a few existing bugs after starting to work on setting up the credential-setup. These bugs further added to delay. I had to fix them and proceed. Current standpoint is that credential-setup is still not completely done. There is one more issue I ran into. The config options which I applied are not reflecting in the generated config file. I and Isaac are working to resolve this. You can check out work in progress by checking out my branch. Now it is clear that my idea for Setup Improvements was ambitious. I talked with Isaac about this. He understood the situation as the pencils down time is approaching. Now I plan to just implement editable configuration completely for this task.


by Raghuram Vadapalli at August 11, 2017 05:17 PM

Michal Čihař

Weblate 2.16

Weblate 2.16 has been released today while I'm at DebConf17. There are quite some performance improvements (and more of that is scheduled for 2.17), new file formats support and various other improvements.

Full list of changes:

  • Various performance improvements.
  • Added support for nested JSON format.
  • Added support for WebExtension JSON format.
  • Fixed git exporter authentication.
  • Improved CSV import in certain situations.
  • Improved look of Other translations widget.
  • The max-length checks is now enforcing length of text in form.
  • Make the commit_pending age configurable per component.
  • Various user interface cleanups.
  • Fixed component/project/sitewide search for translations.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, 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 on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Turris, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! 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: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at August 11, 2017 01:30 PM

August 08, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W31

This week was quite productive in terms of bug fixes and various code improvements. One of most visible things is probably PHP 7.2 compatibility, but there were other fixes as well.

I've somehow failed to post this report on time, so sorry for late publishing.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at August 08, 2017 10:00 AM

August 06, 2017

Manish Bisht

Week 10: Google Summer of Code’ 17 with phpmyadmin

This week I have spent my time working on following issue:

Import/Export Progress bar

https://github.com/phpmyadmin/phpmyadmin/issues/6311

https://github.com/phpmyadmin/phpmyadmin/issues/12401

The export progress is completed and updated in the PR and currently working on the import progress.

For Import the data is saving in the configuration database. I am now looking for the way to update the import progress on the page.

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13502

The following issue was due to the responsive design. So I have fixed this also.

Server variables out of table

https://github.com/phpmyadmin/phpmyadmin/issues/13546

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13549

Next Steps

This was my tenth week progress. I will post an update for this week soon.

by Manish Bisht at August 06, 2017 02:59 AM

August 04, 2017

Michal Čihař

Changes to Docker container for Weblate

I've made several changes to the Weblate Docker container which are worth mentioning today.

First of all if you are still using nijel/weblate, you should switch to weblate/weblate. They both currently share same configuration, but it might happen that some future updates will go to the weblate owned container only.

Now back to the container changes. Since beginning we were using Django built in server. That's fine for development purposes, but it really doesn't work that well in production as it can handle only one request at time. Therefore we've switched to more robust approach using nginx + uwsgi + supervisor.

Thanks to this, the docker-compose no longer needs separate nginx server as everything is now sanely handled within the weblate container itself.

Filed under: Debian English Gammu phpMyAdmin SUSE Weblate

by Michal Čihař (michal@cihar.com) at August 04, 2017 10:00 AM

August 03, 2017

Michal Čihař

Going to DebConf17

After fours years, I will again make it to DebConf, I'm looking forward to meet many great people, so if you want to meet and happen to be in Montreal next week come and say hello to me :-).

It seems I've settled down on four year schedule - I've attended DebConf09 and DebConf13 so far. Let's see if next one will come in 2021 or earlier.

Filed under: Debian English Gammu phpMyAdmin Weblate

by Michal Čihař (michal@cihar.com) at August 03, 2017 04:00 AM

August 02, 2017

Deven Bansod

GSoC 2017 : Weekly Report #9

Week #9

Key accomplishments last week:

  • Made selenium test-suite more robust
  • Implemented marking of test failures on Browerstack
  • Researched over how to use php-webdriver

Key tasks stalled:

NA

Tasks in the upcoming week:

Details:

I spent some time last week to make the test-suite more robust and it actually did stabilize for a few consecutive builds. I also spent some time to add code in our test-suite so that the failed tests on Travis are actually marked with a failed status on Browerstack.

For this current week, I plan to continue working to making the selenium test-suite consistent to pass on every commit and prevent any non-deterministic errors. For the last two days, it has started to throw a lot of errors suddenly (which I am really not sure why it is happening). I might also start to implementing the new selenium tests to be added for typing and executing a sql query on table, database and server SQL pages.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #9, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at August 02, 2017 04:03 PM

July 29, 2017

Manish Bisht

Week 9: Google Summer of Code’ 17 with phpmyadmin

This week I have spent my time working on following issue:

Configuration storage — fallback to default values

https://github.com/phpmyadmin/phpmyadmin/issues/12887

I check the control user and control values and if both values are set the n I set the default values for table and database.

if ($GLOBALS['cfg']['Server']['controluser'] &&
$GLOBALS['cfg']['Server']['controlpass']) {
// Set the default table name and database
}

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13524

Import/Export Progress bar

https://github.com/phpmyadmin/phpmyadmin/issues/6311

https://github.com/phpmyadmin/phpmyadmin/issues/12401

The export progress bar is almost done. I am now waiting for the feedback on the PR and in parallel started working on the import progress bar.

Pull Request: https://github.com/phpmyadmin/phpmyadmin/pull/13502

Next Steps

This was my ninth week progress. I will post an update for this week soon.

by Manish Bisht at July 29, 2017 04:08 PM

July 27, 2017

Michal Čihař

Weblate 2.16: Call for translations

Weblate 2.16 is almost ready (I expect no further code changes), so it's really great time to contribute to it's translations! Weblate 2.16 will be probably released during my presence at DebConf 17.

As you might expect, Weblate is translated using Weblate, so the contributions should be really easy. In case there is something unclear, you can look into Weblate documentation.

I'd especially like to see improvements in the Italian translation which was one of the first in Weblate beginnings, but hasn't received much love in past years.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at July 27, 2017 10:00 AM

July 26, 2017

Deven Bansod

GSoC 2017 : Weekly Report #8

Week #8

Key accomplishments last week:

  • Fixed selenium tests related to Export, Table, Tracking, XSS

Key tasks stalled:

NA

Tasks in the upcoming week:

  • Make selenium test-suite run consistently (i.e. prevent timing issues non-deterministic errors)
  • Explore the possibility of migrating to use php-webdriver by Facebook

Details:

Last week was cut short since I was travelling to attend my convocation ceremony at the BITS Pilani, Pilani campus. I graduated in the first division with a dual degree in M. Sc. (Hons.) Economics and B. E. (Hons.) Computer Science.

I spent the last week fixing the selenium tests related to Export, Table, Tracking, XSS. The related PR was made and merged at #13520. The test-suite is able to run successfully and finally I got a few successful selenium travis jobs after a long time, though I am still fixing some or the other error that keeps popping up on some jobs.

For this current week, I plan to continue working to making the selenium test-suite consistent to pass on every commit and prevent any non-deterministic errors. I would also want to explore a possibility to migrate the selenium tests to use Facebook’s php-webdriver.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #8, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at July 26, 2017 07:40 AM

July 25, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W29

Last week was really focused on fixing issues on phpMyAdmin itself. Some of them also lead to me to bigger cleanups, for example in theme management code, which is now not relying on session cache.

Another important improvements were focused on improving SSL support in phpMyAdmin. It is now able to automatically detect if server enforces SSL and enable it in such case. There is also improved documentation about configuring SSL.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at July 25, 2017 10:00 AM

July 24, 2017

Raghuram Vadapalli

Single command set up for IIIT VPN

All are probably familiar with vpn.iiit.ac.in. It clearly details steps to follow for setting up IIIT VPN which includes going through a series of steps every time you want to connect. So, I made this small procedure to automate it.

  1. Follow first two steps on vpn.iiit.ac.in for Linux. Here are the two steps:
    1. Install openvpn package using yum, apt-get, synaptic, yast etc. based on which Linux distribution you are using. All standard Linux distributions support openVPN installation using standard repositories.
    2. After installation, copy following files to /etc/openvpn/ directory. ca.crtall.iiit.ac.in.crtall.iiit.ac.in and linux_client.conf. (You need to be root to be able to write in this directory).
  2. cd into etc/openvpn/. Create a file called login.conf and add your IIIT email ID in first line and password in second line. For security, make it accessible only to root:
    sudo chown root login.conf
    sudo chgrp root login.conf #Not really needed
    sudo chmod 400 login.conf
    
  3. Open linux_client.conf. Find line which says auth-user-pass(should be around line 126). Replace the line with auth-user-pass login.conf.
  4. Go to home directory and open .bashrc. Copy the following lines at the end of it.
    #This function is helpful if you want to run any function as root.
    function execsudo ()
    {
        ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
        #
        # LOCAL VARIABLES:
        #
        ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
    
        #
        # I use underscores to remember it's been passed
        local _funcname_="$1"
    
        local params=( "$@" )               ## array containing all params passed here
        local tmpfile="/dev/shm/$RANDOM"    ## temporary file
        local filecontent                   ## content of the temporary file
        local regex                         ## regular expression
        local func                          ## function source
    
        ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
        #
        # MAIN CODE:
        #
        ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
    
        #
        # WORKING ON PARAMS:
        # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
        #
        # Shift the first param (which is the name of the function)
        unset params[0]              ## remove first element
        # params=( "${params[@]}" )     ## repack array
    
        #
        # WORKING ON THE TEMPORARY FILE:
        # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
        content="#!/bin/bash\n\n"
    
        #
        # Write the params array
        content="${content}params=(\n"
    
        regex="\s+"
        for param in "${params[@]}"
        do
            if [[ "$param" =~ $regex ]]
                then
                    content="${content}\t\"${param}\"\n"
                else
                    content="${content}\t${param}\n"
            fi
        done
    
        content="$content)\n"
        echo -e "$content" > "$tmpfile"
    
        #
        # Append the function source
        echo "#$( type "$_funcname_" )" >> "$tmpfile"
    
        #
        # Append the call to the function
        echo -e "\n$_funcname_ \"\${params[@]}\"\n" >> "$tmpfile"
    
        #
        # DONE: EXECUTE THE TEMPORARY FILE WITH SUDO
        # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        sudo bash "$tmpfile"
        disown 2> /dev/null
        rm "$tmpfile"
    }
    
    function vpnfunc {
    	echo "Starting VPN!!"
    	cd /etc/openvpn
    	openvpn --config linux_client.conf | while read line
    	do
    		[[ "${line}" == *"Initialization Sequence Completed"* ]] && echo 'nameserver 10.4.20.204' | cat - /etc/resolv.conf > temp && mv temp /etc/resolv.conf && echo 'Started VPN successfully!!' && kill -STOP $$
    	done
    }
    
    function startvpn {
    	exec 3>&2          # 3 is now a copy of 2
    	exec 2> /dev/null  # 2 now points to /dev/null
    	execsudo vpnfunc   # run script with redirected stderr
    	exec 2>&3          # restore stderr to saved
    	exec 3>&-          # close saved version
    }
    
    function stopvpn {
    	sudo killall openvpn
    	sudo sed -i '/nameserver 10.4.20.204$/d' /etc/resolv.conf
    }
    
    
  5. Open a new terminal or execute source .bashrc.
  6. From now, startvpn command should start your VPN. (It may ask for sudo password).
  7. stopvpn will terminate VPN.

I am not a bash God, so please spare me if I made any blunders. But, do leave a comment if it can be done better.

 

Credits for execsudo function: stackoverflow answer


by Raghuram Vadapalli at July 24, 2017 09:45 PM

July 23, 2017

Manish Bisht

Week 8: Google Summer of Code’ 17 with phpmyadmin

This week I have spent my time working on following issue:

Import/Export Progress bar

https://github.com/phpmyadmin/phpmyadmin/issues/6311

https://github.com/phpmyadmin/phpmyadmin/issues/12401

First I made changes in the phpmyadmin configuration sql table and added one extra table to track the progress status.

CREATE TABLE IF NOT EXISTS `pma__progress` (
`uuid` varchar(36) NOT NULL,
`type` varchar(64) NOT NULL,
`data` text NOT NULL,
`value` int(50) unsigned NOT NULL,
`total` int(50) unsigned NOT NULL,
UNIQUE KEY `uuid` (`uuid`)
)
COMMENT='Saved import/export progress data'
DEFAULT CHARACTER SET
utf8 COLLATE utf8_bin;

Then I learnt how to insert data in phpmyadmin configuration database. Then from the mailing list I got this link to get started
https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/tracking.lib.php#L246 So finally I was able to update data in the progress table as the new table is exported.

$cfgRelation = PMA_getRelationsParam();
$sql_query = " SELECT * FROM " .
PhpMyAdmin\Util::backquote($cfgRelation['db']) . "." .
PhpMyAdmin\Util::backquote($cfgRelation['tracking']) .
" WHERE db_name = '" .
$GLOBALS['dbi']->escapeString($_REQUEST['db']) . "' " .
" AND table_name = '" .
$GLOBALS['dbi']->escapeString($_REQUEST['table']) . "' " .
" ORDER BY version DESC ";
PMA_queryAsControlUser($sql_query);

Then I used the setInterval() to update the progress on the page.

var progressInterval = setInterval(function () {
$.post('progress.php', params, function (response) {
if (response.success === true) {
// do something
}
});
}, 500);

And the final result was something like this.

One more thing I missed mentioning below issue in my previous blog post. This was completed last week.

Double Character Encoding Issue:

https://github.com/phpmyadmin/phpmyadmin/issues/9419

removed double charset encoding

https://github.com/phpmyadmin/phpmyadmin/pull/13457

I have used phpmyadmin sql parser to do this.

use PhpMyAdmin\SqlParser\Parser;
use PhpMyAdmin\SqlParser\Utils\Query;

$query = 'SET NAMES latin1';
$parser = new Parser($query);
$flags = Query::getFlags($parser->statements[0]);

echo $flags['querytype'];

Next Steps

This was my eighth week progress. I will post an update for this week soon.

by Manish Bisht at July 23, 2017 03:26 PM

July 22, 2017

Raghuram Vadapalli

Weekly update

This week, there is nothing much to update. It turned out that my previous task i.e., to consolidate table sorter libraries used by phpMyAdmin is not needed. The reason being the two libraries mentioned in the task are independent of each other and do not do the same task. I am getting code reviews on my previously submitted patches. I will be working on them those patches this week and hopefully get some of them merged.

The following are the patches I submitted so far:

 


by Raghuram Vadapalli at July 22, 2017 09:01 AM

July 21, 2017

Michal Čihař

Making Weblate more secure and robust

Having publicly running web application always brings challenges in terms of security and in generally in handling untrusted data. Security wise Weblate has been always quite good (mostly thanks to using Django which comes with built in protection against many vulnerabilities), but there were always things to improve in input validation or possible information leaks.

When Weblate has joined HackerOne (see our first month experience with it), I was hoping to get some security driven core review, but apparently most people there are focused on black box testing. I can certainly understand that - it's easier to conduct and you need much less knowledge of the tested website to perform this.

One big area where reports against Weblate came in was authentication. Originally we were mostly fully relying on default authentication pipeline coming with Python Social Auth, but that showed some possible security implications and we ended up with having heavily customized authentication pipeline to avoid several risks. Some patches were submitted back, some issues reported, but still we've diverged quite a lot in this area.

Second area where scanning was apparently performed, but almost none reports came, was input validation. Thanks to excellent XSS protection in Django nothing was really found. On the other side this has triggered several internal server errors on our side. At this point I was really happy to have Rollbar configured to track all errors happening in the production. Thanks to having all such errors properly recorded and grouped it was really easy to go through them and fix them in our codebase.

Most of the related fixes have landed in Weblate 2.14 and 2.15, but obviously this is ongoing effort to make Weblate better with every release.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at July 21, 2017 10:00 AM

July 18, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W28

Last week was quite busy and that can be seen from number of issues. Some of them are coming from our error reporting server, where I've focused on the most frequently happening ones for last releases. Still there is about 30000 reports to handle there.

There were several fixes to our SQL parser as well, apparently it's already being used by some other tools, for example by php-sqllint, so we're getting more bug reports :-).

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at July 18, 2017 10:00 AM

July 17, 2017

Deven Bansod

GSoC 2017 : Weekly Report #7

Week #7

Key accomplishments last week:

  • Fixed selenium tests related to Login, Normalization, ChangePassword, ServerSettings

Key tasks worked on:

  • Fixed table-related, tracking-related and export-related tests (partially)

Key tasks stalled:

NA

Tasks in the upcoming week:

  • Work on and fix remaining set of broken selenium tests

Details:

 

I spent the last week fixing the selenium tests related to Login, Normalization, ChangePassword, ServerSettings. The related PR was made and merged at #13476.

In the later part of the week, I spent some time fixing the table-related tests, tracking-related tests and export-related tests. Though, they are not in a consistently fixed state (i.e. they sometimes do misbehave, leading to a failure), I expect them to be ready for a PR soon.

For the next week, I plan to continue working to fixing the next set of broken selenium tests.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #6, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at July 17, 2017 07:40 AM

July 16, 2017

Manish Bisht

Week 7: Google Summer of Code’ 17 with phpmyadmin

This week I have spent my time working on following issue:

Nice view for JSON data

https://github.com/phpmyadmin/phpmyadmin/issues/12944

Show data in json format for datatype other than json

https://github.com/phpmyadmin/phpmyadmin/pull/13435

This is how to check the string is in JSON format of not.

function isJsonString(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}

Removed inline Javascript

https://github.com/phpmyadmin/phpmyadmin/issues/12261

removed inline onclick javascript

https://github.com/phpmyadmin/phpmyadmin/pull/13446

I uses the following code to remove remove javascript.

$(selector).click(function() {
//do something
});

Import/Export Progress bar

https://github.com/phpmyadmin/phpmyadmin/issues/6311

https://github.com/phpmyadmin/phpmyadmin/issues/12401

I tried solving this issue by setting the cookie and the retriving the cookie to show the progress but the setcookie() in php failed when used after setting the header.

So as this doesn’t worked I have now created a new table in phpMyAdmin Configuration Storage database. I am running behind my timeline as this seems to be difficult compared to my expectations.

This next week issue https://github.com/phpmyadmin/phpmyadmin/issues/12718 has already been resolved my me during the community bonding period so I expect this to complete it by this week.

Next Steps

This was my seventh week progress. I will post an update for this week soon.

by Manish Bisht at July 16, 2017 09:31 AM

July 14, 2017

Raghuram Vadapalli

2-factor authentication for phpMyAdmin

This week, I worked on adding two-factor authentication support for phpMyAdmin. This is by far the most interesting feature I worked on. I never really worked keenly on the security aspect of any software. This indeed has been a very good learning experience.           DuoScreen_740.png

Here is the process:

  1. Log in to your account normally.
  2. Access setup2FA.php. I have not figured out where to place the link which directly takes you to the page. That is more of a user-experience issue and I leave it for the team to advise me on that.                                                                                                                                      Screenshot_20170714_121959.png
  3. Open Google Authenticator (or Authy or whatever you prefer). Scan the barcode with your app. It now starts generating TOTP on your app.                                                               Screenshot_20170714-124414.png
  4. Enter the TOTP in the text field and click submit. Done!!. You now have successfully added 2-factor authentication to you PMA account.                                                Screenshot_20170714_122950.png
  5. When you log in next time, after you enter your credentials, you will be asked for TOTP.Screenshot_20170714_123431.png
  6. Enter the TOTP generated. You will not be logged in unless you clear this step. That’s it!! :D.

I am yet to add a way to delete 2-factor authentication. You can check-out the code from my branch. I will make a pull request after I add the deletion part also.

Since this is a security feature, I feel this requires thorough testing.

Special thanks to TwoFactorAuth library.

Edit: Submitted pull request – https://github.com/phpmyadmin/phpmyadmin/pull/13495


by Raghuram Vadapalli at July 14, 2017 07:11 AM

July 10, 2017

Deven Bansod

GSoC 2017 : Weekly Report #6

Week #6

Key accomplishments last week:

  • Improved the test coverage for the Error Reporting server from 47% to 83%
  • Fixed selenium tests related to CreateDropDatabase, CreateRemoveUser, Database-related operations

Key tasks stalled:

NA

Tasks in the upcoming week:

  • Work on and fix next set of broken selenium tests

Details:

Based on Michal’s review in the first GSoC evaluations, I worked on improving the test coverage of the Error Reporting Server codebase. The code coverage has improved significantly from 47% to 83% during this week. It now covers most of the important functionalities and we should be able to catch any breakages due to code changes in future.

Apart from that, I started on the second part of my proposal which deals with fixing the broken selenium testing suite in phpMyAdmin. I have fixed around fifteen tests of around fifty five tests which we have. I have made a PR at #13462. Once all the selenium tests are fixed, I plan on adding a few more to cover some other important actions that have not been covered till now.

For the next week, I plan to continue working to fixing the next set of broken selenium tests.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #6, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at July 10, 2017 05:34 AM

July 09, 2017

Manish Bisht

Week 6: Google Summer of Code’ 17 with phpmyadmin

This week also I have submitted the PR and worked on fixing few small issues for the following responsive task:

Improve responsive/mobile interface

https://github.com/phpmyadmin/phpmyadmin/issues/6241

Regenerate sprites to include left and right icons

https://github.com/manishbisht/phpmyadmin/commit/b4a0c8a2b74b827a8e4cab7e8d7af30d874023a8 https://github.com/phpmyadmin/phpmyadmin/wiki/Icons_Sprites_Usage

cd /path/to/phpmyadmin ./scripts/generate-sprites .

Removed unwanted comments and console.log() used for debugging

https://github.com/manishbisht/phpmyadmin/commit/a06521247519bc079cbb3b7df47a9e606ac5b108

Menu Re-sizer Callback removed for mobile devices

https://github.com/manishbisht/phpmyadmin/commit/375530e799c378c7fbc225c2ad2aa04b22a4e3f2

Fixes Tests

https://github.com/manishbisht/phpmyadmin/commit/7195846c83c971adca68913388594457259bcac5

https://github.com/phpmyadmin/phpmyadmin/wiki/Unit_Testing

./vendor/bin/phpunit -c phpunit.xml.nocoverage --exclude-group selenium

Navigation bar fix on widow resize

https://github.com/manishbisht/phpmyadmin/commit/bdee1b401d67562f3e75eee118f89d6646032e51

Navigation bar fix if vertical scrollbar present

https://github.com/manishbisht/phpmyadmin/commit/3bd50986b4463f7b055c2d4e37ea4a0b29dea422

Left navigation fix and more button fix

https://github.com/manishbisht/phpmyadmin/commit/11c95a1292753ba7a8e8e514de7030fb870e0613

Table structure page navigation fix

https://github.com/manishbisht/phpmyadmin/commit/26c37531edcc00c2db66876b7cd35ee1933a5b95

I have submitted the PR so that the code can be reviewed and merged into master. https://github.com/phpmyadmin/phpmyadmin/pull/13422

Next Steps

From now onward I will be working on fixing the other bugs while in parallel fixing any bugs that will come in responsive task during review.

This was my sixth week progress. I will post an update for this week soon.

by Manish Bisht at July 09, 2017 03:16 PM

July 05, 2017

Raghuram Vadapalli

Cross-DB relations in designer and other updates

I am late to update the blog this week. Sorry for that.

First, I want to talk about first evaluations whose results came out on 30th. I have successfully passed the evaluations. My mentor gave me a very postive feedback which is really motivating.

Few updates about past work: 

  • Multi-table query UI: When I submitted this patch, it had a few problems about which I notified my mentor. He helped me fix them and I believe the patch is almost ready for merge. We also decided to remove old code in a different pull request.
  • Default options for transformations: Under review. Code-review of this will probably be addressed after dealing Multi-table query UI.

Allow designer to show other Databases: This is the issue I am working on currently. I must say this is what also caused my delayed posting. Earlier this week, while meddling with some server-related stuff, I accidentally lost my repository. I was able to retain all the branches I pushed online. Since I didn’t push this one, I was unable to recover my work. Anyway, I am able to catch up after that.  Learnt a lesson to push the code as soon as I am done for the day.

meme.jpg

Cutting to the chase, here is the screenshot:Screenshot_20170705_110220.png

So, as discussed, I added an option in designer side menu (I copied some other icon since we didn’t decide on one) which on clicking opens a dialog. You can select the db and the table you want to add. When you submit it, your new table is added. You can create relationships like any other table and the created relationships get stored. This is the basic functionality and it is done. The problem is that once the page is saved or reloaded, only the tables in current db appear back. According to the solution we decided, we need to show the tables in other db to which there are relations by default from the beginning. That should solve everything. This is not a big problem and I will fix it by the weekend.


by Raghuram Vadapalli at July 05, 2017 06:01 AM

July 04, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W26

Last week was really about solving bug and pull request. I've managed to go through many of long pending pull requests and most of them were merged either directly or with additional fixes.

I always feel bad when it takes too long to merge pull request, but most of them were actually waiting for some fixes which didn't arrive and I had to fix them on my own. This is often what happens to GSoC students pull requests once they realize they were not accepted in the end...

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at July 04, 2017 10:00 AM

July 03, 2017

Manish Bisht

Week 5: Google Summer of Code’ 17 with phpmyadmin

This week also I have spent my time working on following issue:

Improve responsive/mobile interface

https://github.com/phpmyadmin/phpmyadmin/issues/6241

I have made the following pages responsive.

Table relation page:

https://github.com/manishbisht/phpmyadmin/commit/65edfc8f5b5f278205ddcdf450dd8a3a862fc7b6

While working with this page I found one issue that if there are multiple div which I have to make responsive on the same page then working with div id will failed so I replaced all the div with id=”responsivetable” with class=”jsresponsive”

https://github.com/manishbisht/phpmyadmin/commit/b39dcf2ffc34c55acbbc7c66ffe74a0806ee6735

Create Table page:

https://github.com/manishbisht/phpmyadmin/commit/0f7cbab62e9a756214bc2c60966eedead026dd24

db central page responsive:

https://github.com/manishbisht/phpmyadmin/commit/94a13cae88a2318ce915716b227d52fa0ef05485

Database Events page:

https://github.com/manishbisht/phpmyadmin/commit/7fe13bc8e05852176b14a9589e655d4d0842ff50

Server status page(charts):

https://github.com/manishbisht/phpmyadmin/commit/85003f61a167d72130fe1123d3f7228d1f279dc4

Server status queries chart:

https://github.com/manishbisht/phpmyadmin/commit/0435674c2d33e98c67a923f0940a3e0fa71ceb41

Dialog box responsive

https://github.com/manishbisht/phpmyadmin/commit/66db4a1f29c9ac69052d5e7ab53a8219218076ef

Table select page:

https://github.com/manishbisht/phpmyadmin/commit/a154015623f6e41c8f9664c4008a886caf44f96a

Insert Table Page:

https://github.com/manishbisht/phpmyadmin/commit/1a6479b311b88264889854cbaa1b35035758ae4a

Table Privileges Page:

https://github.com/manishbisht/phpmyadmin/commit/74119c5cd55a75515edd6bb430c29067f0bbb042

Server Replication Page:

https://github.com/manishbisht/phpmyadmin/commit/bd887d8464db824e273d2900e1781dee7564eeb7

Next Steps

I will submit the PR soon after doing little bit fixing on navigation bar.

This was my fifth week progress. I will post an update for this week soon.

by Manish Bisht at July 03, 2017 03:06 PM

Deven Bansod

GSoC 2017 : Weekly Report #5

Week #5

Key accomplishments last week:

Key tasks stalled:

NA

Tasks in the upcoming week:

  • Increasing test coverage for Error Reporting server
  • Start research and ground-work on selenium testing improvements in phpMyAdmin

Note: All these tasks were related to phpMyAdmin’s Error Reporting System (Github).

Details:

#159 brings the functionality of updating report status according to the Github issue’s state to which it is being linked to. Thus, if we link the report to a Github issue which is closed, we should automatically update the Report status to ‘Resolved’.

#160 implements a controller action (which should be run as cron job from command line) to synchronise the statues of existing linked reports to statues of the linked Github issues. This action can be (and should be) only run from shell.

#74 implements a read-only public interface which allows non-team developers and contributors to look at the submitted error incidents and reports, though they would not be able to make any changes to the reports such as changing its status, linking/unlinking from a Github issue etc.

For the next week, based on Michal’s review, I would be adding some tests to the Error reporting server so that we add a few more controller/models/shells to the test coverage. I have already made two PRs at #168 and #170 in those directions. Once these (and a few more to come) are merged, I would be moving to starting to fix broken selenium testing in phpMyAdmin.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #5, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at July 03, 2017 06:51 AM

June 30, 2017

Michal Čihař

Weblate 2.15

Weblate 2.15 has been released today. It is slightly behind schedule what was mostly caused by my vacation. As with 2.14, there are quite a lot of security improvements based on reports we got from HackerOne program and various new features.

Full list of changes:

  • Show more related translations in other translations.
  • Add option to see translations of current unit to other languages.
  • Use 4 plural forms for Lithuanian by default.
  • Fixed upload for monolingual files of different format.
  • Improved error messages on failed authentication.
  • Keep page state when removing word from glossary.
  • Added direct link to edit secondary language translation.
  • Added Perl format quality check.
  • Added support for rejecting reused passwords.
  • Extended toolbar for editing RTL languages.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, 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 on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Turris, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! 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: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at June 30, 2017 09:00 AM

June 27, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W25

Last week was a bit less intensive for me, still there were some bugs fixed.

Most of the time was spent on investigating one report from error reporting server. These errors do not come from our code, but we see them in thousands, so apparently something widely spread. The feature seems to come from DirectAdmin, but I've found occurrences elsewhere as well.

I think this exactly shows why you should upstream your patches - it would get proper upstream review and you would not have to maintain it over years (apparently they have five versions of the patch in their patches directory).

Anyway pretty much same will be possible to achieve with single line of configuration in the 4.8.0 release.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at June 27, 2017 10:00 AM

June 26, 2017

Deven Bansod

GSoC 2017 : Weekly Report #4

Week #4

Key accomplishments last week:

NA

Key tasks worked on:

Key tasks that stalled:

NA

Tasks in the upcoming week:

Note: All these tasks were related to phpMyAdmin’s Error Reporting System (Github).

Details:

#159 aims to bring the functionality of updating report status according to the Github issue’s state to which it is being linked to. Thus, if we link the report to a Github issue which is closed, we should automatically update the Report status to ‘Resolved’. I have made a PR at #163 which is open for review.

#160 aims to implement a controller action (which should be run as cron job from command line) to synchronise the statues of existing linked reports to statues of the linked Github issues. We could have also implemented a shell to do this task but I could not easily figure out how to use GithubApiComponent (without requiring to do the additional refactoring of moving it to a Utility class). So I added a cron-dispatcher which can be run from command line and takes command line argument to run the specified controller action.

For the next week, I would be making changes based on Michal’s review for on my PRs for the above mentioned tasks. I have already started initial discussion and ground work towards the last task on Error Reporting Server (after which I would be moving to fixing selenium testing in phpMyAdmin) of #74.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #4, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at June 26, 2017 07:05 AM

June 25, 2017

Manish Bisht

Week 4: Google Summer of Code’ 17 with phpmyadmin

This week also I have spent my time working on following issue:

Improve responsive/mobile interface

https://github.com/phpmyadmin/phpmyadmin/issues/6241

I have made the following pages responsive.

Plugins and server variables page:

https://github.com/manishbisht/phpmyadmin/commit/6ddc30d0c95e8a65d0fafc1d1450339b970f605a

https://github.com/manishbisht/phpmyadmin/commit/00326d7f256cc191a80f2294a0c40c146c871f25

Database search, database privileges and table structure page:

https://github.com/manishbisht/phpmyadmin/commit/3cea93bbae74cdfa350fcd69ab898f8557d2f897

https://github.com/manishbisht/phpmyadmin/commit/31d7f7efb1f72f25165fa1c364126374eaf11804

https://github.com/manishbisht/phpmyadmin/commit/4c4904d6638e1f04ce61f4d58e6c2ae7d1d7e5e8

Next Steps

I will spend my next week also on improve responsive/mobile interface task.

This was my fourth week progress. I will post an update for this week soon.

by Manish Bisht at June 25, 2017 05:44 PM

June 23, 2017

Manish Bisht

Week 3: Google Summer of Code’ 17 with phpmyadmin

This week also I have spent my time working on following issue:

Improve responsive/mobile interface

https://github.com/phpmyadmin/phpmyadmin/issues/6241

I have added vertical scrolling in tables for the small screens.

For database, structure and browse pages:

https://github.com/manishbisht/phpmyadmin/commit/c34a44a37bb9b08bba7ae0ab173fe8559e6fe590

For table structure page:

https://github.com/manishbisht/phpmyadmin/commit/3e1d1bf3dbe739607a8de34995d2d356894b2622

For Server Status Page:

https://github.com/manishbisht/phpmyadmin/commit/f44a6138510806354a47f0b2ef4ab2c4252219a6

https://github.com/manishbisht/phpmyadmin/commit/90615dcfcc9dc5042fc8b268d1e09983435fbe5d

https://github.com/manishbisht/phpmyadmin/commit/f7a8ff8a4b56ef93b673874dad10680abeda15f1

Next Steps

I will spend my next week also on improve responsive/mobile interface task

This was my third week progress. I will post an update for this week soon.

by Manish Bisht at June 23, 2017 03:40 PM

Week 2: Google Summer of Code’ 17 with phpmyadmin

I have explored the codebase and now I have started working on the major issue of the project.

1. Improve responsive/mobile interface

https://github.com/phpmyadmin/phpmyadmin/issues/6241

This is main work for the first 3 weeks. This is my progress till now

a) Added viewport meta tag: https://github.com/manishbisht/phpmyadmin/commit/7e557cd444f59a614e95cf1d99c5607b9f008bce

b) Basic responsive navigation implemented: Code cleanup and more improvements is required as suggested on mailing list https://github.com/manishbisht/phpmyadmin/commit/eedfbe0703fca2add226c7eddca3454470f85506

c) Made main_pane_left and main_pane_right responsive: https://github.com/manishbisht/phpmyadmin/commit/84f4fd8bb9b4f90185a4ebfbe0c840de0cd8fc94

d) Made pma_navigation / left sidebar responsive: https://github.com/manishbisht/phpmyadmin/commit/cc7f65549ea06645186ef432d2d76f3e41a221b4

Next Steps

I will spend my next week on Improve responsive/mobile interface task

This was my second week progress. I will post an update for this week soon.

by Manish Bisht at June 23, 2017 03:40 PM

Week 1: Google Summer of Code’ 17 with phpmyadmin

I have started working on the phpmyadmin codebase from 22 May, 2017. I have spend 5 days in familiarize myself with the phpmyadmin core functionality and architecture. Below are the details of the issues that I have fixed in first week or in community bonding period.

1. Remove inline javascript

https://github.com/phpmyadmin/phpmyadmin/issues/12261

I have started working on the code and submitted first pull request on 22 May, 2017 that removes inline onsubmit functions from the codebase https://github.com/phpmyadmin/phpmyadmin/pull/13291

  • onmouseover (completed and merged on 14 March, 2017)
  • onmouseout (completed and merged on 14 March, 2017)
  • onmousedown (completed and merged on 16 March, 2017)
  • onsubmit (completed and merged on 22 May, 2017)
  • onchange (completed and under review on 23 May, 2017)
  • onclick (incomplete)

2. Password “No” shown for user not in user table

https://github.com/phpmyadmin/phpmyadmin/issues/12718

My PR submitted for this improvement was https://github.com/phpmyadmin/phpmyadmin/issues/13305. But the commit was merged with the main code by making a small change by the project owner (Michal Čihař) https://github.com/phpmyadmin/phpmyadmin/commit/253c9bed0ed210d4569d7909291ed2e588a97cfb

3. Nice view for JSON data

https://github.com/phpmyadmin/phpmyadmin/issues/12944

I have split this into 2 parts:

a) The data type is already json : The PR is under review https://github.com/phpmyadmin/phpmyadmin/pull/13317

b) Data is in JSON format but the data type is different (incomplete)

Next Steps

I will start working on Improve responsive/mobile interface task

This was my first week progress. I will post an update for this week soon.

by Manish Bisht at June 23, 2017 03:39 PM

Google Summer of Code’ 17 with phpmyadmin

This summer, I was selected for the prestigious Google Summer of Code ’17 program with the phpmyadmin organization. phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. Frequently used operations (managing databases, tables, columns, relations, indexes, users, permissions, etc) can be performed via the user interface, while you still have the ability to directly execute any SQL statement.

Introduction

phpmyadmin currently has a large number of open issues (~210 at time of writing this). To maintain and improve phpmyadmin core project the numbers of issues should be lower down. This project aims to resolving the major issues and improvements to be done in phpmyadmin. I have selected a list of issues on which I will be working this summer.

Community Bonding

Before the beginning of the official program period, Google allows students one month to get familiar with the organization they will contribute to, to get familiar with the programming practices, source code, get doubts cleared etc. phpMyAdmin is a PHP project that provides wide range of operations that can be performed via the user interface. The project code is available on GitHub at this link https://github.com/phpmyadmin/phpmyadmin

phpmyadmin/phpmyadmin

Week 1–4

Improve responsive/mobile interface

As the world is going more mobile everyday, so It would be a good idea to make phpMyAdmin responsive, so it works on smartphones and tablets too instead of desktop only.

Consolidate tablesorter libraries

Currently phpmyadmin have two javascript plugins for table sorting so it’s better to replace it with simply one. I will be replacing jquery.sortableTable.js with jquery.tablesorter.js

Nice view for JSON data

It will add the feature to have an easy view of the JSON data of a column of a table. Right now it shows in only one line, without any kind of format, so we can have an option to show when you are viewing a table with JSON data or when editing a nice JSON view.

Also, If the team decides they still don’t want to pursue the responsive interface enhancement, I’m prepared to replace that part of my summer with the solving these issues.

Support for large monitors

For this one I will set the right padding to the div that contains [Edit inline], [Edit], etc options for the very large screens.

Inconsistency with submit buttons

I will show all the buttons on the right side. And its implementation part is also similar to the above task

Error popup

The problem with this is we are unable to copy/paste stuff because as soon as we click on the popup it is closed.

Add export option to drop user security definers from views

For the last one during export option I have to make a change so that the security definition should not be included in the export file.

Week 5–8

Remove inline javascript

There are several places which uses inline javascript (onclick, onsubmit and onchange). These should be removed and placed into javascript files. After removal we can get rid of ‘unsafe-inline’ for scripting in CSP.

Disable charset conversion when importing with SET NAMES

According to the communication on issue link the charset handling seems to be broken on the import

Import/Export Progress bar-1 and Import/Export Progress bar-2

It would be really nice to have a progress bar showing import and export progress in real time in terms of percentage and having some more detailed information like which step/table it is processing.

Password “No” shown for user not in user table

When a user has access to a db (or table), but is not in the user table he’s shown as not having a password. Even after successfully running the query delete from mysql.user where user = ‘test’ I was still able to login with the test account.

Week 9–12

Configuration storage — fallback to default table names when pmadb config is set

The PMA should fallback to default table names if controluser + pmadb options are set while other like ‘relation’, ‘column_info’ are NOT in config.inc.php.

Facilitate drag and drop of columns between tables

I will implement this feature by allowing user to drag and drop the existing column from the “structure page” as well as from the navigation tree table column entry, to the “New” column entry in the navigation tree columns section of the target table.

Update 1

I will work on the forked repository and submit the Pull Request as soon it is completed. I will also post the weekly update about the project on medium. This is my GSoC’17 proposal.

by Manish Bisht at June 23, 2017 03:38 PM

Google Firebase Appfest 2017 Delhi, India — Summary

Mobile platforms are centered around speed and agility. And yet, building for mobile can sometimes feel clunky and slow. It doesn’t have to be that way.

Google Firebase Team came at New Delhi to show how you to build an app in a day. We can do this by having the application code talk directly to Firebase’s managed back-end services. This means we spend less time on infrastructure and more time on building the features that the users care about. And in the cases where we need server-side logic, use Cloud Functions — Firebase’s scaleable serverless solution.

Welcome Note

The event started with the welcome note by Jadeja Dushyantsinh (Program Manager, Google). He started with giving introduction to various programs like Google Developer Group, Google Startup Launchpad and Google Developer Training. Then he moved to give the small intro on firebase.

What is Firebase ?

Firebase is a mobile and web application development platform acquired by Google on October 13, 2015.

Talk: What’s new in Firebase ?

This talk was given by James Daniels (Developer Programs Engineer, Google). Recently Google acquired fabric.

https://firebase.googleblog.com/2017/01/FabricJoinsGoogle17.html

Then he talked about the various features offered by firebase like

  1. Realtime database — To save the data
  2. Authentication — To add authenticate users using Google, Facebook, Github, etc.
  3. Cloud functions — To add custom backend code without needing to manage and scale your own servers.
  4. Hosting — To serve static assets
  5. Cloud storage — To Store and share images, audio, video, or other user-generated content easily with powerful, simple, and cost-effective object storage built for Google scale

Firebase now supports multiple bucket support plus region selection so you deploy your app where your customers are.

  1. Firebase Test Lab — To run automatic and customized tests for your app on virtual and physical devices hosted by Google.
  2. Crash Reporting — To diagnose problems in your mobile app with detailed reports of bugs and crashes.
  3. Performance Monitoring — To diagnose app performance issues occurring on your users’ devices.
  4. Google Analytics — Its free + unlimited and can be used to analyze user attributions and behavior in a single dashboard to make informed decisions on your product roadmap.
  5. Cloud Messaging — To send messages and notifications to users across platforms like Android, iOS, and the web for free.
  6. Remote Config — To customize how your app renders for each user.
  7. Invites — To enable your users to share all aspects of your app, from referral codes to favorite content, via email or SMS.
  8. App Indexing — To re-engage users with their installed apps with this Google Search integration.
  9. Admob — To earn money by displaying engaging ads to a global audience.

Fastlane joined firebase — https://krausefx.com/blog/fastlane-is-joining-google

How to learn ?

  1. Firebase in a weekend by Udacity.
  2. Alpha Program —To access the firebase pre-release products and features.
  3. Code Samples on Github.

Talk: Google Cloud Functions for Firebase

This talk was given by Doug Stevenson (Developer Advocate, Google). He gives the information on What we can do with Cloud Functions in firebase.

  1. Notify users when something interesting happens — To use cloud Functions to keep users engaged and up to date with relevant information about an app.

2. Resize image — To take advantage of Cloud Functions to offload to the Google cloud resource-intensive work (heavy CPU or networking) that wouldn’t be practical to run on a user’s device.

3. Perform Realtime Database sanitization and maintenance to block offensive language — With Cloud Functions database event handling, you can modify the Realtime Database in response to user behavior, keeping the system up to date and clean.

He showcased a small demo on how to replace text with emoji using cloud function.

After this talk the Hackathon was open for hacking using firebase.

Test your app using Firebase

This talk was again given by Doug Stevenson (Developer Advocate, Google). In this talk he has given the overview on some more fetaures.

  1. Firebase Test Lab for Android — It provides cloud-based infrastructure for testing Android apps. With one operation, you can initiate testing of your app across a wide variety of devices and device configurations. Test results — including logs, videos, and screenshots — are made available in your project in the Firebase console. Even if you haven’t written any test code for your app, Test Lab can exercise your app automatically, looking for crashes.
  2. Performance Monitoring — To diagnose app performance issues occurring on your users’ devices. Use traces to monitor the performance of specific parts of your app and see a summarized view in the Firebase console. Stay on top of your app’s startup time and monitor HTTP requests without writing any code.

Talk by Kushagra Gour

Kushagra Gour is currently working as a front-end developer at an awesome startup called Wingify building VWO.

Side Projects = More Self Improvement

He has developed a lot of side projects that are available on Github. He has given an overview on some of his side projects.

  1. hint.css — A CSS only tooltip library for your lovely websites.

2. screenlog.js — Bring console.log on the screen.

3. superplaceholder.js — Super charge your input placeholders.

4. Tolks — Put your stories up on the Internet.

5. Web Maker — Chrome extension for a fast & offline web playground.

Hackathon

After that 7 teams were shortlisted for presenting their idea on stage for 3 minutes.

After that the judges selected team Decoder as the Hackathon winner. They have made a smart travel application that helps to plan your travel and share it with your friends/family.

What Next

They are coming to Pune (24 June 2017 — Novotel Pune Nagar Road), Bangalore (28 June 2017 — Vivanta by Taj, MG Road) and Hyderabad (1 July 2017 — Hyderabad International Convention Center). So you can register for them here: https://events.withgoogle.com/in-firebase-appfest/

by Manish Bisht at June 23, 2017 02:26 PM

June 22, 2017

Manish Bisht

Download videos using ngDownloader.tk without ads

ngDownloader is a web application that gives the download links of the videos from various websites like youtube, facebook, udemy etc with no ads. I have made this application for AngularAttack 2017 Hackathon and selected as winner in Fun/Utility Category.

Here is my full interview after hackathon http://developer.telerik.com/announcements/manish-bisht-wins-angular-attack-kendo-ui/

How to use ?

  1. Open https://ngdownloader.tk/
  2. Enter the URL-address of videos of the supported websites in the input field at the top of the page.
  3. Press Enter or click on the “Download” button to the right of the input field.

Technology Stack

Frontend

The frontend was built using AngularJS 1 and Kendo UI.

Backend

I have used Amazon AWS Lamda function and API gateway to host and run the backend. Here is the link of the backend code. Also it uses youtube-dl library to fetch download links.

Support

If you find any issue report it on https://github.com/manishbisht/ngDownloader or submit the PR fixing that bug; I would be happy to merge it.

Bugs or feature request ? Drop email at hi@manishbisht.me I would be happy to make it available for you.

I will keep making more improvements and adding features in the future. I am using my Kendo UI Professional license so that I can improve the UI and use more components.

There is the yearly renewal is charge for the domain per year and pay per use charge for Amazon AWS for backend. If you want to contribute a year or pay for hosting, send me an email and I’ll add the years on. Of course I’ll do my best to continue running the domain and hosting, but this is your chance to contribute to the community project.

Talk to me

If anyone would like to get in touch with me I am not too hard to reach. Just drop an email at hi@manishbisht.me I would be happy to have a chat with you.

by Manish Bisht at June 22, 2017 02:06 PM

June 21, 2017

Raghuram Vadapalli

Configuration options for default transformations

I submitted pull request for my second task i.e., adding configuration options for default transformations. As I explained in the proposal. I thought I will have to add configuration for every transformation. But I realised not all of the transformations make use of options. So, I added configuration only for those that looked like they make use of paramaeters. I have a feeling that a better option would be to add empty arrays for those transformations that don’t make use of options because in future, the transformations may be modified to make use of parameters and they can modify these empty arrays. Anyway, I raised this question in comments on my pull request. I will act according to response.

I also thought I will have to add configuration options in page-wise settings and setup script separately. But, I realised any change in configuration directives reflects in both setup script and page-wise settings. Awesome!!

Screenshots of new configuration directives:

Screenshot_20170621_152030.png

Screenshot_20170621_152202.png

I will be moving on to my 3rd task this week – Allow designer to show other Databases. According to my plan, I will be submitting code for my 3rd task after first evaluation, but I have to start discussing design with my mentor now. I guess this puts me in a good position for my first evaluation as I submitted all required code. From now on, I will be addressing reviews on the submitted code and plan for my 3rd task.


by Raghuram Vadapalli at June 21, 2017 10:02 AM

June 20, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W24

Besides usual bug screening and pull requests merging, I've spent quite some amount in digging reports in our error reporting server and fixed the most visible ones.

The error reporting server collects errors happening in phpMyAdmin installations worldwide (this is opt-in reporting) and gives us insights where our users suffer most. Some of the errors are really weird and probably indicate PHP bug, but as we don't collect more information than is necessary, we really can not say for sure and we can not find person to reproduce the bug. Anyway if something has happened hundredth times on several installations, it's probably worth fixing in our code base.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at June 20, 2017 10:00 AM

June 19, 2017

Deven Bansod

GSoC 2017 : Weekly Report #3

Week #3

Key accomplishments last week:

Key tasks that stalled:

NA

Tasks in the upcoming week:

Note: All these tasks were related to phpMyAdmin’s Error Reporting System (Github).

Details:

#98 aimed to bring back the ability of the Error Reporting Server to follow the status of report-linked Github issues and update the same for the reports that it is linked with. Github provides a interface to listen to events through webhooks. Webhooks allow developers to listen to a variety of events like push, issues etc. I added a controller in the Error Reporting Server which listens to all the issues events and if it receives an event for an issue which is linked to by any of the reports, it updates the status of the linked reports accordingly.

For the next week, I would be taking on two tasks #159 and #160, which were not originally part of the proposal, but seem to be natural extensions to the task in #98.


Filed under: GSoC 2017, phpMyAdmin, Weekly Reports Tagged: #3, GSoC 2017, phpMyAdmin, Weekly Report

by Deven Bansod at June 19, 2017 03:44 PM

Manish Bisht

Thanks :) I have faced some issues while adding left and right scrolling icon and its functionality…

Thanks :) I have faced some issues while adding left and right scrolling icon and its functionality but with little more debugging I have made it possible.

Next while working on table structure page when I have written this in js/menu-resizer.js the icons are loading n number of times where n is number of columns in the table. It was working fine on all pages except table structure page.

$(PMA_getImage('b_right.png').toString()).prependTo($('.scrollindicator--right'));
$(PMA_getImage('b_left.png').toString()).prependTo($('.scrollindicator--left'));

I think this might be an bug or it is there to make some functionality working. I am not sure about this.

So to keep it working I replaced it with below lines.

$('.scrollindicator--right').html($(PMA_getImage('b_right.png').toString()));
$('.scrollindicator--left').html($(PMA_getImage('b_left.png').toString()));

Last issue that I faced was while adding scrolling inside the fieldset tag seems like the width in percentage was not working so I used javascript here to implement this.

var windowwidth = $(window).width();
$('#responsivetable').css('max-width', (windowwidth - 35 ) + 'px');

Rest all implementation were straight forward. Just needed some debugging on browser developer tools.

Also I have made some standards for how I am naming the new classes the details of which I will add after completing it because I think more will come as I keep working on it.

by Manish Bisht at June 19, 2017 02:57 PM

Michal Čihař

Call for Weblate translations

Weblate 2.15 is almost ready (I expect no further code changes), so it's really great time to contribute to it's translations! Weblate 2.15 should be released early next week.

As you might expect, Weblate is translated using Weblate, so the contributions should be really easy. In case there is something unclear, you can look into Weblate documentation.

I'd especially like to see improvements in the Italian translation which was one of the first in Weblate beginnings, but hasn't received much love in past years.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at June 19, 2017 04:00 AM

June 18, 2017

Michal Čihař

python-gammu for Windows

It has been few months since I'm providing Windows binaries for Gammu, but other parts of the family were still missing. Today, I'm adding python-gammu.

Unlike previous attempts which used crosscompilation on Linux using Wine, this is also based on AppVeyor. Still I don't have to touch Windows to do that, what is nice :-). This has been introducted in python-gammu 2.9 and depend on Gammu 1.38.4.

What is good on this is that pip install python-gammu should now work with binary packages if you're using Python 3.5 or 3.6.

Maybe I'll find time to look at option providing Wammu as well, but it's more tricky there as it doesn't support Python 3, while the python-gammu for Windows can currently only be built for Python 3.5 and 3.6 (due to MSVC dependencies of older Python versions).

Filed under: Debian English Gammu python-gammu Wammu

by Michal Čihař (michal@cihar.com) at June 18, 2017 04:00 PM

June 16, 2017

Michal Čihař

New projects on Hosted Weblate

Hosted Weblate provides also free hosting for free software projects. The hosting requests queue was over one month long, so it's time to process it and include new project.

This time, the newly hosted projects include:

We now also host few new Minetest mods:

If you want to support this effort, please donate to Weblate, especially recurring donations are welcome to make this service alive. You can do them on Liberapay or Bountysource.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at June 16, 2017 04:00 PM

June 14, 2017

Raghuram Vadapalli

UI for Multi-Table query complete (almost!!)

As mentioned in my previous post, I am working on making new UI for multi-table query for phpMyAdmin. I believe I can safely say it is in good shape as of now, although code review is still pending. I have added most of the features from earlier interfaces. Some of the examples of queries which you can construct are:

  • Basic queries.
    • select `wp_posts`.`*` from `wp_posts`;

    • select `wp_posts`.`ID` from `wp_posts`;

  • Aliases.
    • select `a`.`ID` from `wp_posts` as `a`;

    • select `a`.`ID` as `id_col` from `wp_posts` as `a`;

  • WHERE clause
    • select `wp_posts`.`ID`, `wp_posts`.`post_title` from `wp_posts` WHERE `wp_posts`.`ID` > 49 AND `wp_posts`.`ID` < 74;

  • ORDER BY clause
    • select `wp_posts`.`ID`, `wp_posts`.`post_title` from `wp_posts` WHERE `wp_posts`.`ID` > 49 AND `wp_posts`.`ID` < 7 ORDER BY `wp_posts`.`post_date`;

Following is a screenshot of the UI:

Screenshot_20170614_105916.png

I had a plan to add filtering and pagination of queries, but luckily they are built-in for query response HTML. You can checkout code from the PR and try it yourself. As always, any feedback and suggestions are more than welcome.

According to my timeline, I am supposed to complete this with code-review by 15th June. But I understand that other developers may be busy right now. So, I will be moving on to my next task this week i.e. Default options for transformations.

I will update the code for Multi-Table querying once I get code reviews.


by Raghuram Vadapalli at June 14, 2017 05:40 AM

Subscriptions

Planet phpMyAdmin aggregates blogs of following phpMyAdmin contributors.

Last updated

September 25, 2017 11:30 PM
All times are UTC.

Feeds

[RSS 1.0 Feed] [RSS 2.0 Feed] [Atom Feed] [FOAF Subscriptions] [OPML Subscriptions] [Venus]

Planetarium