My modifications and improvements to qcodo
Hi,
I've made a bunch of changes to qcodo 0.4.14, you might check them out and merge the ones you like.
A quick summary of changes:
- new look of drafts and core pages, external css is used not internal
- codegening with profiling turned on (0.2Mb difference in memory usage compared to profiling turned off)
- QEmailServer with real quoted printable support
- database profiling features query time (Mysql >= 5.0.37)
- fixed profiling of manual queries (it works now at all)
- cli command to minify js core files using closure compiler ( if you use cli at at all in qcubed)
- move to html5 with xml serialization
- QIntegerTextBox, QFloatTextBox, QEmailTextBox, QUrlTextBox use html5 input type for better iphone support
- Bunch of example pages fixes
- datagrids are better at displaying datetime fields (qcubed displays only date in this field)
I've also rewritten much of core js.
Most visible changes:
- QDialogBox works better in IE, Opera
- Drag and Drop works in Opera, Safari, Chrome
- Code is more browser independent (mode feature detection less browser sniffing).
- Animation framework - animations are time based not processing power based
- New browser detection (no need to update on each new browser version).
- Few helper functions (setOpacity, computedStyle, etc)
- Browser detection removed from php side
- logger.js now does something useful for a change
I've tested new js in these browsers:
- IE6, 8
- FF 3.6, FF 2.0
- Opera 10.50
- Safari 4.0
- Chrome 5.0
- Iphone 3.1.2
- and it seems to work well.
I know that you have a pending rewrite to jquery, but I think that qcodo core should be moved to jquery in less disruptive way, say rewrite parts that need fixing using jquery (drag and drop, resizing for example). Besides you could use this for 1.1 branch.
Code is at:
http://github.com/klucznik/qcodo
(I hate svn, luckily for you github offers svn support now)

If you take a look at 2.0, you'll see we're very near complete the jQuery switch, so I'm not sure how many of your js fixes will still apply, but the rest of this looks fantastic.
Is there any chance you could create a ticket for each of these features, and supply a patch specific to that change? Then we can easily pick and choose the ones we like (hopefully all of them. :)).
If not, I totally understand, and hopefully one of us will have time to do so soon. :)
As you probably noticed, I'm not going to be able to deliver ready to apply patches.
Sorry but I don't have that much time.
Over time, we'll try to incorporate various pieces of your work into the core distro. For example, I today needed an improved QEmailServer - so I factored it out of github and created a ticket with a patch: http://trac.qcu.be/projects/qcubed/ticket/558.
Thanks for your contribution, klucznik!
I've setup a preview page:
http://qcodo.produktiva.net
klucznik, thank you!
We can't quite see the preview site... Remote admin is off, so we don't have access to much stuff other than the homepage.
But http://qcodo.produktiva.net/examples/ works ?
I'm not sure it's going to be safe to let everybody use drafts and codegen, let me know if you think I should turn it on.
Some new stuff in action:
http://qcodo.produktiva.net/examples/qcodo_query/profiling.php
And some old but working better:
http://qcodo.produktiva.net/examples/advanced_ajax/dialog_box.php
http://qcodo.produktiva.net/examples/advanced_ajax/drop_zone.php
I just ported another piece of klucznik's work - around QDateTime. Patch is here: http://trac.qcu.be/projects/qcubed/ticket/574
And another is a work in progress (email address validation + unit tests for it): http://trac.qcu.be/projects/qcubed/ticket/576. Klucznik, are some of the tests failing in your environment as well?
Klucznik,
I have set up a qcubed git mirror on github as an "experiment". Right now the repository is static but I'm going to set up a cron job to make it update dinamically.
It would be great to have your contributions to qcubed!
Feel free to clone the repository: http://github.com/qcubed/qcubed
Cheers,
--
Marcos
http://thinkclear.com.ar
One more piece from klucznik's work is migrating over - database profiling (refactored to work with every DB adapter): http://trac.qcu.be/projects/qcubed/ticket/608