I have been reviewing and discussing his code all through the process, and in the last few days I have given it a final and extra-thorough review.
My opinion? this is _very_ ready for a merge into CVS HEAD. Of course there will be things to tweak, and the exposure to more webbrowsers will surely be interesting to see.
Also -- I think Mihai would be very deserving of CVS access. All through the reviews he has shown very good taste in his style and technical decisions, and can discuss tradeoffs in different approaches.
He can argue very clearly (and strongly
He is still new to the PHP side of Moodle; much of the gsoc project was spent in JS-land. On the other hand, this brings a top-notch JS expert to the group -- with good understanding of what happens inside TinyMCE for example.
Enough preambles!
What does it do? On modern webbrowsers that support the HTML5 Canvas API, it provides a JS-based UI to "paint/edit/retouch" over an existing image, or on a new image. So TinyMCE has a new button.
"Upstream" project homepage
http://code.google.com/p/paintweb/
Docs on how it integrates with TinyMCE (and Moodle):
http://code.google.com/p/paintweb/wiki/UsageInTinyMCE
Git repository showing the well formatted (and commented!) commits for your reviewing pleasure:
http://repo.or.cz/w/moodle/mihaisucan.git?a=shortlog;h=refs/heads/mdl20-paintweb
Pretty diff -- click on the 'raw' link at the top to see a "real" patch.
http://repo.or.cz/w/moodle/mihaisucan.git?a=treediff;h=b99427ae693fff343067de2e82fdc72966e6b83e;hp=92eaeca5c9415eafadaa316fba948f5786f6cf03;hb=b99427ae693fff343067de2e82fdc72966e6b83e;hpb=92eaeca5c9415eafadaa316fba948f5786f6cf03
There is only one thing that I am aware we might want to change during the merge. Paintweb has a makefile that controls the minifying of the JS (so editing/debugging happens of readable JS!). We may want to merge an already 'made' PW. Or change the scripts that build the release and nightly zipfiles to run 'make'.
(PW does run even if it's not yet "made". It loads the un-minified files, which is good for a hacking session, but very slow for production sites.)