From gotcha at codespeak.net Thu Mar 1 11:27:06 2007
From: gotcha at codespeak.net (gotcha at codespeak.net)
Date: Thu, 1 Mar 2007 11:27:06 +0100 (CET)
Subject: [KSS-checkins] r39621 - kukit/kss.core/trunk/kss/core
Message-ID: <20070301102706.DB60310125@code0.codespeak.net>
Author: gotcha
Date: Thu Mar 1 11:27:04 2007
New Revision: 39621
Modified:
kukit/kss.core/trunk/kss/core/concatresource.zcml
Log:
correct comments about memory caching
Modified: kukit/kss.core/trunk/kss/core/concatresource.zcml
==============================================================================
--- kukit/kss.core/trunk/kss/core/concatresource.zcml (original)
+++ kukit/kss.core/trunk/kss/core/concatresource.zcml Thu Mar 1 11:27:04 2007
@@ -2,6 +2,12 @@
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:five="http://namespaces.zope.org/five">
+
+
-
From jvloothuis at codespeak.net Thu Mar 1 23:25:03 2007
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Thu, 1 Mar 2007 23:25:03 +0100 (CET)
Subject: [KSS-checkins] r39646 - kukit/kss.core/trunk/kss/core
Message-ID: <20070301222503.41A2C10131@code0.codespeak.net>
Author: jvloothuis
Date: Thu Mar 1 23:25:01 2007
New Revision: 39646
Modified:
kukit/kss.core/trunk/kss/core/azaxview.py
Log:
Fixed a problem with KSS in Plone that caused all KSS calls to break. This was
due to an improper response header.
Modified: kukit/kss.core/trunk/kss/core/azaxview.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/azaxview.py (original)
+++ kukit/kss.core/trunk/kss/core/azaxview.py Thu Mar 1 23:25:01 2007
@@ -134,6 +134,10 @@
def render(self):
"""Views can use this to return their command set."""
+ # Always output text/xml to make sure browsers but the data in the
+ # responseXML instead of responseText attribute of the
+ # XMLHttpRequestobject.
+ self.request.RESPONSE.setHeader('Content-type', 'text/xml')
return self.commands.render(self.request)
def cancelRedirect(self):
From reebalazs at codespeak.net Fri Mar 2 09:11:04 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Fri, 2 Mar 2007 09:11:04 +0100 (CET)
Subject: [KSS-checkins] r39648 - kukit/kss.core/trunk/kss/core
Message-ID: <20070302081104.D8C7810036@code0.codespeak.net>
Author: reebalazs
Date: Fri Mar 2 09:11:01 2007
New Revision: 39648
Modified:
kukit/kss.core/trunk/kss/core/azaxview.py
kukit/kss.core/trunk/kss/core/concatresource.zcml
Log:
To make sure, extend Jeroen's patch to include the charset information
Modified: kukit/kss.core/trunk/kss/core/azaxview.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/azaxview.py (original)
+++ kukit/kss.core/trunk/kss/core/azaxview.py Fri Mar 2 09:11:01 2007
@@ -137,7 +137,7 @@
# Always output text/xml to make sure browsers but the data in the
# responseXML instead of responseText attribute of the
# XMLHttpRequestobject.
- self.request.RESPONSE.setHeader('Content-type', 'text/xml')
+ self.request.RESPONSE.setHeader('Content-type', 'text/xml;charset=utf-8')
return self.commands.render(self.request)
def cancelRedirect(self):
Modified: kukit/kss.core/trunk/kss/core/concatresource.zcml
==============================================================================
--- kukit/kss.core/trunk/kss/core/concatresource.zcml (original)
+++ kukit/kss.core/trunk/kss/core/concatresource.zcml Fri Mar 2 09:11:01 2007
@@ -28,7 +28,7 @@
kukit/kukit/forms.js
kukit/kukit/plugin.js"
name="kukit.js"
- compress_level="safe"
+ compress_level="none"
/>
Author: reebalazs
Date: Fri Mar 2 09:12:31 2007
New Revision: 39649
Modified:
kukit/kss.core/trunk/kss/core/concatresource.zcml
Log:
Oops, this was unintentional
Modified: kukit/kss.core/trunk/kss/core/concatresource.zcml
==============================================================================
--- kukit/kss.core/trunk/kss/core/concatresource.zcml (original)
+++ kukit/kss.core/trunk/kss/core/concatresource.zcml Fri Mar 2 09:12:31 2007
@@ -28,7 +28,7 @@
kukit/kukit/forms.js
kukit/kukit/plugin.js"
name="kukit.js"
- compress_level="none"
+ compress_level="safe"
/>
Author: jvloothuis
Date: Fri Mar 2 10:09:04 2007
New Revision: 39650
Modified:
kukit/kss.core/trunk/kss/core/azaxview.txt
Log:
Added a response to the request so the test works with the explicit setting of headers
Modified: kukit/kss.core/trunk/kss/core/azaxview.txt
==============================================================================
--- kukit/kss.core/trunk/kss/core/azaxview.txt (original)
+++ kukit/kss.core/trunk/kss/core/azaxview.txt Fri Mar 2 10:09:04 2007
@@ -19,11 +19,13 @@
>>> from zope.lifecycleevent import ObjectModifiedEvent
>>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
>>> from zope.publisher.browser import TestRequest
+ >>> from zope.publisher.http import HTTPResponse
>>> from zope import event
>>> from zope.app.folder import folder
>>> myfolder = folder.rootFolder()
>>> request = TestRequest()
+ >>> request.RESPONSE = HTTPResponse()
Now we will write our custom.
From jvloothuis at codespeak.net Fri Mar 2 10:15:05 2007
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Fri, 2 Mar 2007 10:15:05 +0100 (CET)
Subject: [KSS-checkins] r39651 - kukit/kss.core/trunk/kss/core
Message-ID: <20070302091505.35E3010121@code0.codespeak.net>
Author: jvloothuis
Date: Fri Mar 2 10:15:03 2007
New Revision: 39651
Modified:
kukit/kss.core/trunk/kss/core/actionwrapper.py
Log:
Fixed final test which broke due to the new explicit header setting
Modified: kukit/kss.core/trunk/kss/core/actionwrapper.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/actionwrapper.py (original)
+++ kukit/kss.core/trunk/kss/core/actionwrapper.py Fri Mar 2 10:15:03 2007
@@ -98,6 +98,7 @@
tests.
>>> from zope.publisher.browser import TestRequest
+ >>> from zope.publisher.http import HTTPResponse
>>> class MyView(AzaxBaseView):
... @kssaction
@@ -109,6 +110,7 @@
... raise KssExplicitError, 'The error'
>>> request = TestRequest()
+ >>> request.RESPONSE = HTTPResponse()
>>> view = MyView(None, request)
Set debug-mode command rendering so we can see the results in a
From reebalazs at codespeak.net Sat Mar 3 17:56:09 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sat, 3 Mar 2007 17:56:09 +0100 (CET)
Subject: [KSS-checkins] r39829 - kukit/kss.core/trunk/kss/core
Message-ID: <20070303165609.E3AF01006E@code0.codespeak.net>
Author: reebalazs
Date: Sat Mar 3 17:56:07 2007
New Revision: 39829
Modified:
kukit/kss.core/trunk/kss/core/azaxview.py
kukit/kss.core/trunk/kss/core/commands.py
Log:
Move the setting of the content-type request header where it belongs to.
I believe it is safer to leave this explicit setting, independently what the final
outcome of Hanno's patch will be.
Modified: kukit/kss.core/trunk/kss/core/azaxview.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/azaxview.py (original)
+++ kukit/kss.core/trunk/kss/core/azaxview.py Sat Mar 3 17:56:07 2007
@@ -134,10 +134,6 @@
def render(self):
"""Views can use this to return their command set."""
- # Always output text/xml to make sure browsers but the data in the
- # responseXML instead of responseText attribute of the
- # XMLHttpRequestobject.
- self.request.RESPONSE.setHeader('Content-type', 'text/xml;charset=utf-8')
return self.commands.render(self.request)
def cancelRedirect(self):
Modified: kukit/kss.core/trunk/kss/core/commands.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/commands.py (original)
+++ kukit/kss.core/trunk/kss/core/commands.py Sat Mar 3 17:56:07 2007
@@ -191,8 +191,13 @@
# XML output gets rendered via a page template
# XXX note: barefoot rendering, use python: only after zope2.9
- render = ViewPageTemplateFile('browser/kukitresponse.pt', content_type='text/xml;charset=utf-8')
+ # XXX we must have the content type set both here and below
+ _render = ViewPageTemplateFile('browser/kukitresponse.pt', content_type='text/xml;charset=utf-8')
-# def render(self):
-# result = self._render()
-# return result
+ def render(self):
+ result = self._render()
+ # Always output text/xml to make sure browsers but the data in the
+ # responseXML instead of responseText attribute of the
+ # XMLHttpRequestobject.
+ self.request.RESPONSE.setHeader('Content-type', 'text/xml;charset=utf-8')
+ return result
From reebalazs at codespeak.net Sat Mar 3 18:14:20 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sat, 3 Mar 2007 18:14:20 +0100 (CET)
Subject: [KSS-checkins] r39832 - kukit/kss.core/trunk/kss/core/plugins/core
Message-ID: <20070303171420.6B85D10060@code0.codespeak.net>
Author: reebalazs
Date: Sat Mar 3 18:14:19 2007
New Revision: 39832
Modified:
kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml
Log:
Add window unload event (document:unload)
Modified: kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml
==============================================================================
--- kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml (original)
+++ kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml Sat Mar 3 18:14:19 2007
@@ -107,6 +107,10 @@
name="spinneroff"
/>
+
+
Author: reebalazs
Date: Sat Mar 3 18:15:05 2007
New Revision: 39833
Modified:
kukit/kukit.js/trunk/kukit/plugin.js
Log:
Add window unload event (document:unload)
Modified: kukit/kukit.js/trunk/kukit/plugin.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/plugin.js (original)
+++ kukit/kukit.js/trunk/kukit/plugin.js Sat Mar 3 18:15:05 2007
@@ -66,7 +66,7 @@
kukit.pl.NativeEventBinder.prototype.__bind__node = function(name, func_to_bind, oper) {
if (oper.node == null) {
- throw 'Native event must be bound to a node.';
+ throw 'Native event "' + name + '"must be bound to a node.';
}
this.__bind__(name, func_to_bind, oper);
};
@@ -78,6 +78,14 @@
this.__bind__(name, func_to_bind, oper);
};
+kukit.pl.NativeEventBinder.prototype.__bind__window = function(name, func_to_bind, oper) {
+ if (oper.node != null) {
+ throw 'Native event "' + name + '"must not be bound to a node.';
+ }
+ oper.node = window;
+ this.__bind__(name, func_to_bind, oper);
+};
+
kukit.pl.NativeEventBinder.prototype.__bind__nodeordocument = function(name, func_to_bind, oper) {
if (oper.node == null) {
oper.node = document;
@@ -201,6 +209,7 @@
kukit.eventsGlobalRegistry.register(null, 'keydown', kukit.pl.NativeEventBinder, '__bind_key__', null);
kukit.eventsGlobalRegistry.register(null, 'keypress', kukit.pl.NativeEventBinder, '__bind_key__', null);
kukit.eventsGlobalRegistry.register(null, 'keyup', kukit.pl.NativeEventBinder, '__bind_key__', null);
+kukit.eventsGlobalRegistry.register(null, 'unload', kukit.pl.NativeEventBinder, '__bind__window', null);
/*
* class TimeoutEventBinder
From reebalazs at codespeak.net Sun Mar 4 16:23:08 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 4 Mar 2007 16:23:08 +0100 (CET)
Subject: [KSS-checkins] r39897 - kukit/kukit.js/trunk/kukit
Message-ID: <20070304152308.31DDE10061@code0.codespeak.net>
Author: reebalazs
Date: Sun Mar 4 16:23:06 2007
New Revision: 39897
Modified:
kukit/kukit.js/trunk/kukit/oper.js
kukit/kukit.js/trunk/kukit/serveraction.js
Log:
Implemented the kssUrl parameter for action-server.
Also change the call signature of kukit.sa.serverAction.
Modified: kukit/kukit.js/trunk/kukit/oper.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/oper.js (original)
+++ kukit/kukit.js/trunk/kukit/oper.js Sun Mar 4 16:23:06 2007
@@ -164,10 +164,18 @@
kukit.op.Oper.prototype.executeServerAction = function(name) {
for (key in this.aparms) {
- throw 'No kss parameter "' + key + '" allowed in action-server. (Normal parameters cannot start with kss.)';
+ switch (key) {
+ case 'kssUrl': {
+ // Value will be evaluated.
+ } break;
+ default: {
+ throw 'No kss parameter "' + key + '" allowed in action-server. (Normal parameters cannot start with kss.)';
+ } break;
+ }
}
+
// oper will be accessible to some commands that execute in return
- var sa = new kukit.sa.ServerAction(name, this.parms, this);
+ var sa = new kukit.sa.ServerAction(name, this);
};
/* Helpers the serve binding */
Modified: kukit/kukit.js/trunk/kukit/serveraction.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/serveraction.js (original)
+++ kukit/kukit.js/trunk/kukit/serveraction.js Sun Mar 4 16:23:06 2007
@@ -22,15 +22,29 @@
kukit.sa = {};
-kukit.sa.ServerAction = function(name, params, oper) {
- this.url = this.calculateAbsoluteURL(name);
- this.params = params;
+kukit.sa.ServerAction = function(name, oper) {
+ this.url = oper.aparms.kssUrl;
+ if (typeof(this.url) == 'undefined') {
+ this.url = name;
+ }
+ this.url = this.calculateAbsoluteURL(this.url);
this.oper = oper;
this.notifyServer();
};
kukit.sa.ServerAction.prototype.calculateAbsoluteURL = function(url) {
- if (url.search("http://") == 0) {
+ //
+ // If the url is an absolute path, it is used
+ //
+ // If the url is not an absolute path, it is put at the end of the context
+ // url.
+ //
+ // example: url='@theview/getName',
+ // context='http://your.site.com/portal/folder/object'
+ //
+ // result='http://your.site.com/portal/folder/object/@@theview/getName'
+ //
+ if (url.match(RegExp('/^https?:\/\//'))) {
return url;
} else {
var result = kukit.engine.baseUrl + '/' + url;
@@ -63,8 +77,8 @@
};
// convert params
var query = new kukit.fo.FormQuery();
- for (var key in this.params) {
- query.appendElem(key, this.params[key]);
+ for (var key in this.oper.parms) {
+ query.appendElem(key, this.oper.parms[key]);
}
var encoded = query.encode();
// sending form
From reebalazs at codespeak.net Sun Mar 4 16:24:30 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 4 Mar 2007 16:24:30 +0100 (CET)
Subject: [KSS-checkins] r39898 - in kukit/kss.demo/trunk/kss/demo: browser
browser/coresyntax tests/selenium_tests
Message-ID: <20070304152430.1A08610061@code0.codespeak.net>
Author: reebalazs
Date: Sun Mar 4 16:24:28 2007
New Revision: 39898
Added:
kukit/kss.demo/trunk/kss/demo/browser/coresyntax/azaxview.py
kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.kss
kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.pt
kukit/kss.demo/trunk/kss/demo/tests/selenium_tests/urlparam.html
Modified:
kukit/kss.demo/trunk/kss/demo/browser/azax_demo_index.pt
kukit/kss.demo/trunk/kss/demo/browser/coresyntax/configure.zcml
Log:
Added demo and test for the kssUrl parameter.
Modified: kukit/kss.demo/trunk/kss/demo/browser/azax_demo_index.pt
==============================================================================
--- kukit/kss.demo/trunk/kss/demo/browser/azax_demo_index.pt (original)
+++ kukit/kss.demo/trunk/kss/demo/browser/azax_demo_index.pt Sun Mar 4 16:24:28 2007
@@ -37,6 +37,7 @@
Added: kukit/kss.demo/trunk/kss/demo/browser/coresyntax/azaxview.py
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/browser/coresyntax/azaxview.py Sun Mar 4 16:24:28 2007
@@ -0,0 +1,34 @@
+# -*- coding: ISO-8859-15 -*-
+# Copyright (c) 2005-2007
+# Authors: KSS Project Contributors (see docs/CREDITS.txt)
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+
+from kss.core import AzaxBaseView, force_unicode, KssExplicitError, kssaction
+
+class AzaxView(AzaxBaseView):
+
+ @kssaction
+ def urlMethod1(self):
+ self.getCommandSet('core').replaceInnerHTML('div#target', 'Method 1 called')
+
+ @kssaction
+ def urlMethod2(self):
+ self.getCommandSet('core').replaceInnerHTML('div#target', 'Method 2 called')
+
+ @kssaction
+ def urlMethod3(self):
+ self.getCommandSet('core').replaceInnerHTML('div#target', 'Method 3 called')
Modified: kukit/kss.demo/trunk/kss/demo/browser/coresyntax/configure.zcml
==============================================================================
--- kukit/kss.demo/trunk/kss/demo/browser/coresyntax/configure.zcml (original)
+++ kukit/kss.demo/trunk/kss/demo/browser/coresyntax/configure.zcml Sun Mar 4 16:24:28 2007
@@ -3,7 +3,8 @@
i18n_domain="kss"
>
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Added: kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.kss
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.kss Sun Mar 4 16:24:28 2007
@@ -0,0 +1,21 @@
+
+
+.clickable:click {
+ evt-click-preventdefault: true;
+}
+
+
+#button_1:click {
+ action-server: urlMethod1;
+}
+
+#button_2:click {
+ action-server: urlMethodAlias;
+ urlMethodAlias-kssUrl: "urlMethod2";
+}
+
+#button_3:click {
+ action-server: urlMethodAnotherAlias;
+ urlMethodAnotherAlias-kssUrl: "@@urlMethod3/urlMethod3";
+}
+
Added: kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.pt
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.pt Sun Mar 4 16:24:28 2007
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
From reebalazs at codespeak.net Sun Mar 4 16:27:46 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 4 Mar 2007 16:27:46 +0100 (CET)
Subject: [KSS-checkins] r39901 - kukit/kukit.js/trunk/kukit
Message-ID: <20070304152746.B77A410061@code0.codespeak.net>
Author: reebalazs
Date: Sun Mar 4 16:27:42 2007
New Revision: 39901
Modified:
kukit/kukit.js/trunk/kukit/plugin.js
Log:
Disable the unload event as it does not work yet.
Modified: kukit/kukit.js/trunk/kukit/plugin.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/plugin.js (original)
+++ kukit/kukit.js/trunk/kukit/plugin.js Sun Mar 4 16:27:42 2007
@@ -209,7 +209,7 @@
kukit.eventsGlobalRegistry.register(null, 'keydown', kukit.pl.NativeEventBinder, '__bind_key__', null);
kukit.eventsGlobalRegistry.register(null, 'keypress', kukit.pl.NativeEventBinder, '__bind_key__', null);
kukit.eventsGlobalRegistry.register(null, 'keyup', kukit.pl.NativeEventBinder, '__bind_key__', null);
-kukit.eventsGlobalRegistry.register(null, 'unload', kukit.pl.NativeEventBinder, '__bind__window', null);
+//kukit.eventsGlobalRegistry.register(null, 'unload', kukit.pl.NativeEventBinder, '__bind__window', null);
/*
* class TimeoutEventBinder
From reebalazs at codespeak.net Sun Mar 4 16:28:05 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 4 Mar 2007 16:28:05 +0100 (CET)
Subject: [KSS-checkins] r39902 - kukit/kss.core/trunk/kss/core/plugins/core
Message-ID: <20070304152805.4E46B10061@code0.codespeak.net>
Author: reebalazs
Date: Sun Mar 4 16:28:03 2007
New Revision: 39902
Modified:
kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml
Log:
Disable the unload event as it does not work yet.
Modified: kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml
==============================================================================
--- kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml (original)
+++ kukit/kss.core/trunk/kss/core/plugins/core/configure.zcml Sun Mar 4 16:28:03 2007
@@ -107,9 +107,11 @@
name="spinneroff"
/>
-
+
+
From reebalazs at codespeak.net Sun Mar 4 16:47:00 2007
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 4 Mar 2007 16:47:00 +0100 (CET)
Subject: [KSS-checkins] r39903 -
kukit/kss.demo/trunk/kss/demo/browser/coresyntax
Message-ID: <20070304154700.71E3D10060@code0.codespeak.net>
Author: reebalazs
Date: Sun Mar 4 16:46:58 2007
New Revision: 39903
Modified:
kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.pt
Log:
Make the url param demo look nicer
Modified: kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.pt
==============================================================================
--- kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.pt (original)
+++ kukit/kss.demo/trunk/kss/demo/browser/coresyntax/kss_url_param.pt Sun Mar 4 16:46:58 2007
@@ -24,17 +24,48 @@
Added: kukit/kss.demo/trunk/kss/demo/browser/commandaction/__init__.py
==============================================================================
Copied: kukit/kss.demo/trunk/kss/demo/browser/commandaction/actions.pt (from r40167, kukit/kss.demo/trunk/kss/demo/browser/coreplugin/coreplugin.pt)
==============================================================================
--- kukit/kss.demo/trunk/kss/demo/browser/coreplugin/coreplugin.pt (original)
+++ kukit/kss.demo/trunk/kss/demo/browser/commandaction/actions.pt Mon Mar 12 13:09:49 2007
@@ -2,7 +2,7 @@
+ string:${context/@@absolute_url}/++resource++actions.kss"/>
@@ -27,7 +26,8 @@
Toggling the class means adding or removing it. Click the button to toggle class on (it will highlight the button). Click it again to toggle class off (it will remove highlighting).