kss.core

HomePage: http://kssproject.org

Author: KSS Project

Download: https://pypi.python.org/packages/source/k/kss.core/kss.core-1.6.5.zip

        Kinetic Style Sheets (KSS) kss.core
===================================

KSS is an Ajax framework that allows UI development without writing any
Javascript. It uses style sheets with CSS-compliant syntax to declare and bind
dynamic behaviors in the browser. The engine supports a set of generic DOM-like
commands; they are computed on the server and sent back to manipulate the HTML
page.  

What is KSS?
------------

KSS is an AJAX framework. KSS has both a client-side Javascript library and
server-side support.

The client-side Javascript library needs to be included in your page. It
fetches Kinetic style sheets from the server, parses them and binds a set of
action to browser events and/or page elements. It is clean Javascript code that
can peacefully coexist with other clean Javascript librarys like JQuery or
ExtJS. It is about 100k in production mode. You can integrate your own
Javascript code by using its extension mechanism through plugins.

Server-side code is currently available for Zope (2 and 3, which includes
Plone). The kss.base egg (which is currently in alpha) brings server-side
support to other pythonic platforms, such as:

* pylons
* django
* grok

The Javascript client-side code can be used independently of existing
server-side support. In other words, it is usable on platforms where we have
not built server-side support like PHP, Ruby or Java. (If you have interest in
porting KSS to the server environment you use and need help, please contact us
!)

Homepage
--------

More information and documentation can be found on the
`KSS project homepage <http://kssproject.org>`_.


Recently changed
================

New in kss 1.4.8
----------------

- new client action ``setActionServerTimeout``
  
  It allows to setup timeout separately for each server action.
  You call it in the stylesheet just before the server action.
  It has a ``value`` parameter where you specify the timeout in
  milliseconds::

      div.timeout:click {
          action-client: setActionServerTimeout;
          setActionServerTimeout-value: 10000;
          action-server: bla;
      }

  You can also use it to change the global default timeout value at body 
  load time::

      body:load {
          action-client: setActionServerTimeout;
          setActionServerTimeout-value: 5000;
      }
   
New in kss 1.4
--------------

- 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.

- New and improved demos

- 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.
  inste