Finally... (drum roll):
https://svn.plone.org/svn/plone/review/plip215-new-kss-version Changed packages: kss.core, now points to the 1.4 prerelease branch. kss.demo, Products.Zelenium: these are only needed for testing. Not needed for production. Products.CMFPlone: this only changed to contain the base2 javascript resource in the GS. I have not added a migration profile, so please create a new portal. (If you run it on an old portal, it will run the same with the original cssQuery, slower.) The changes are in kss.core changelog, but I try to summarize the most important ones: - Major code refactoring, for better readibility and speedups. - Lots and lots of ecma unittests and selenium tests that test kss.core and the core plugin, are added. All are checkable from a single click from any browser. - Base2 is used for css selection, instead of the original cssQuery (if present). Significantly faster page load. - multiple selectors in the same rule are allowed, ie.: selector1:click selector2:click { ... } , or even: selector1:keyup selector2:keydown { ... } - Value providers can be recursive, ie. nodeAttr(kssAttr(blah)) is allowed. - added url() special value provider, the first is alternate syntax for: action-server: blah; blah-kssUrl: "http://foo.bar/blahblah"; you can now say in one line: action-server: blah url(http://foo.bar/blahblah) This may be handy if you want to call @@ url-s. - added alias() special value provider, this enables using more client actions on the same node: action-client: setAttribute; setAttribute-key: foo; setAttribute-value: bar; action-client: setAttribute alias(other); other-key: foo2; other-value: bar2; - enable node selection in the same line as the action specification, ie. instead of action-client: foo; foo-kssSelector: css(div.klass); you can also say: action-client: foo css(div.klass); - enable full form submits in the same line as the action specification, ie. instead of action-server: foo; foo-kssSubmitForm: currentForm(); you can also say: action-server: foo currentForm(); - Value providers can be used also in the "event binder id", eg. instead of the static binder id: xxxxx:click(blah) { ... } a dynamic binder id can also be used: xxxxx:click(kssAttr(blah)) { ... } This feature is needed for upcoming use cases like drag and drop. We don't use this in Plone yet. - Remove previously deprecated form() and currentForm() value providers from normal action parameters (remark: they should now be used with xxx-kssSelector or directly on the action-client line as described above, and they properly support Zope multiform fields like :list, :record, :records.) - Demos and selenium tests are removed from kss.demo and are now placed together with the plugin in kss.core. This means, all 3rdparty plugins should now have a zope-only demo page with a selenium test, if the plugin is loaded the demo appears in the index and the test is run together with all tests. (Demos can be viewed and tested by kss.demo.) We also have kss.template that creates a skeleton kss plugin with all bells and whistles. - Implement loglevels based on cookies (also backported to 3.0.) - Other fixes (also backported to 3.0): - Fix error fallback handling - Fix multiple selection form fields marshalling on Safari and IE That's basically all. Everything in Plone should run the same. Some explanation on running demos and selenium tests: Demos serve to test certain features and can be used as a starting point. They also enable automated testing if these features work. To use them you must create in the Zope root: - a KssDemo SimpleContent object with the id "demo" - a Zuite object with the id "zuite". The first one is a bit funky, due to a CMF issue. The KssDemo SimpleContent object can only be created inside a Plone portal. Then you must cut-and-paste it out to the Zope root. If this is done, visit the "demo" object. The demo index page appears. Visit the demo you like, _OR_ go to Run all Selenium tests. The testrunner appears, press on the "play" button, this will run all tests and you should get GREEN in every line. This is currently Zope-level tests, but in a similar way, we will soon be able to test all the AJAX in Plone, kss and non kss alike. Good luck for testing. -- Balazs Ree _______________________________________________ Framework-Team mailing list [email protected] http://lists.plone.org/mailman/listinfo/framework-team
