[KSS-checkins] r50854 - in kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo: . selenium_tests
jone at codespeak.net
jone at codespeak.net
Mon Jan 21 21:12:18 CET 2008
Author: jone
Date: Mon Jan 21 21:12:15 2008
New Revision: 50854
Added:
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.css
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.kss
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.pt
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.py
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.zcml
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/selenium_tests/addressbook.html
Removed:
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.css
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.kss
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.pt
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.py
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.zcml
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/selenium_tests/dynamic_table.html
Modified:
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/config.py
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/configure.zcml
kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/zopeconfig.py
Log:
renamed "dynamic_tables" application to "addressbook"
Added: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.css
==============================================================================
--- (empty file)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.css Mon Jan 21 21:12:15 2008
@@ -0,0 +1,20 @@
+table#personTable {
+ margin-left: auto;
+ margin-right: auto;
+ border: 1px solid #f2ae8c;
+}
+
+table#personTable th {
+ background-color: #f2ae8c;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+div.centered {
+ text-align: center;
+}
+
+hr {
+ border: none;
+ border-top: 1px solid #FF4916;
+}
Added: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.kss
==============================================================================
--- (empty file)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.kss Mon Jan 21 21:12:15 2008
@@ -0,0 +1,40 @@
+input#submit:click {
+ evt-click-preventdefault: true;
+ action-server: addPerson;
+ addPerson-kssSubmitForm: currentForm();
+}
+
+input#clean:click {
+ evt-click-preventdefault: true;
+ action-server: cleanPersons;
+}
+
+input.moveUp:click {
+ evt-click-preventdefault: true;
+ action-server: moveUp;
+ moveUp-pid: kssAttr(pid);
+}
+
+input.toBottom:click {
+ evt-click-preventdefault: true;
+ action-server: toBottom;
+ toBottom-pid: kssAttr(pid);
+}
+
+input.toTop:click {
+ evt-click-preventdefault: true;
+ action-server: toTop;
+ toTop-pid: kssAttr(pid);
+}
+
+input.moveDown:click {
+ evt-click-preventdefault: true;
+ action-server: moveDown;
+ moveDown-pid: kssAttr(pid);
+}
+
+input.remove:click {
+ evt-click-preventdefault: true;
+ action-server: removePerson;
+ removePerson-pid: kssAttr(pid);
+}
Added: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.pt
==============================================================================
--- (empty file)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.pt Mon Jan 21 21:12:15 2008
@@ -0,0 +1,81 @@
+<html tal:define="viewname string:addressbook">
+
+ <head>
+
+ <metal:header use-macro="context/@@header_macros/header_resources" />
+ <link rel="stylesheet" type="text/css"
+ tal:attributes="href
+ string:${context/@@absolute_url}/++resource++${viewname}.css"/>
+
+ </head>
+
+ <body>
+
+ <p metal:use-macro="context/@@body_macros/header">header</p>
+
+ <h2>Addressbook</h2>
+
+ <form id="addPerson">
+
+ <div>
+ <label for="name">Name</label><br />
+ <input type="text" name="name" id="name" />
+ </div>
+
+ <div>
+ <label for="address">Address</label><br />
+ <textarea name="address"></textarea>
+ </div>
+ <div>
+ <label for="city">City</label><br />
+ <input type="text" name="city" />
+ </div>
+ <div>
+ <label for="country">Country</label><br />
+ <select name="country">
+ <option></option>
+ <option>Norway</option>
+ <option>USA</option>
+ <option>Other</option>
+ </select>
+ </div>
+ <div>
+ <label for="telephone">Telephone</label><br />
+ <input type="text" name="telephone" />
+ </div>
+ <div>
+ <input type="submit" id="submit" value="Save" class="button" />
+ <input type="reset" class="button" value="Reset Form" />
+ </div>
+
+ </form>
+
+
+ <div class="centered">
+
+ <input type="button" class="button" id="clean" value="Clear Addressbook" />
+
+ <table id="personTable">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Address</th>
+ <th>City</th>
+ <th>Country</th>
+ <th>Telephone</th>
+ <th> </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tal:repeat repeat="person context/getPersons">
+ <tal:replace replace="structure python:view.renderPersonAsTr(person)" />
+ </tal:repeat>
+ </tbody>
+ </table>
+
+ </div>
+
+ <hr />
+
+ </body>
+</html>
Added: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.py
==============================================================================
--- (empty file)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.py Mon Jan 21 21:12:15 2008
@@ -0,0 +1,147 @@
+# 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 KSSView, force_unicode, KSSExplicitError, kssaction
+from time import time
+from persistent.list import PersistentList
+
+class KSSDynamicTableDemo(KSSView):
+
+ def getPersons(self):
+ return self.context.getValue('persons', PersistentList())
+
+ def cleanPersons(self):
+ self.context.setValue('persons', PersistentList())
+ self.getCommandSet('core').replaceHTML('table#personTable tbody', '<tbody></tbody>')
+ return self.render()
+
+ def addPerson(self, name, address, city, country, telephone):
+ """ adds a person"""
+ persons = self.getPersons()
+ person = {
+ 'pid' : str(time()).replace('.',''),
+ 'name' : name,
+ 'address' : address,
+ 'city' : city,
+ 'country' : country,
+ 'telephone' : telephone
+ }
+ persons.append(person)
+ html = self.renderPersonAsTr(person)
+ self.getCommandSet('core').insertHTMLAsLastChild('table#personTable tbody', html)
+ return self.render()
+
+
+ def removePerson(self, pid):
+ persons = self.getPersons()
+ for p in persons:
+ if p['pid'] == pid:
+ persons.remove(p)
+ self.getCommandSet('core').deleteNode('tr#pid%s' % pid)
+ return self.render()
+
+
+ def moveUp(self, pid):
+ persons = self.getPersons()
+ for i in range(1, len(persons)):
+ pid1 = persons[i]['pid']
+ pid2 = persons[i-1]['pid']
+ if pid==pid1:
+ self.switchPersons(pid1, pid2)
+ break
+ return self.render()
+
+ def moveDown(self, pid):
+ persons = self.getPersons()
+ for i in range(0, len(persons)-1):
+ pid1 = persons[i]['pid']
+ pid2 = persons[i+1]['pid']
+ if pid==pid1:
+ self.switchPersons(pid1, pid2)
+ break
+ return self.render()
+
+ def toTop(self, pid):
+ persons = self.getPersons()
+ firstPid = persons[0]['pid']
+ if firstPid == pid:
+ return self.render()
+ self.getCommandSet('core').moveNodeBefore('tr#pid%s' % pid, 'pid%s' % firstPid)
+ for p in persons:
+ if p['pid'] == pid:
+ persons.remove(p)
+ persons.insert(0, p)
+ break
+ return self.render()
+
+ def toBottom(self, pid):
+ persons = self.getPersons()
+ lastPid = persons[-1]['pid']
+ if lastPid == pid:
+ return self.render()
+ self.getCommandSet('core').moveNodeAfter('tr#pid%s' % pid, 'pid%s' % lastPid)
+ for p in persons:
+ if p['pid'] == pid:
+ persons.remove(p)
+ persons.append(p)
+ break
+ return self.render()
+
+
+ def switchPersons(self, pid1, pid2):
+ persons = self.getPersons()
+ p1 = None
+ i1 = None
+ p2 = None
+ i2 = None
+ for i in range(0, len(persons)):
+ if persons[i]['pid'] == pid1:
+ p1 = persons[i]
+ i1 = i
+ if persons[i]['pid'] == pid2:
+ p2 = persons[i]
+ i2 = i
+ if p1 and p2:
+ self.getCommandSet('core').replaceHTML('tr#pid%s' % p2['pid'], '<tr class="placeholder"></tr>')
+ self.getCommandSet('core').replaceHTML('tr#pid%s' % p1['pid'], self.renderPersonAsTr(p2))
+ self.getCommandSet('core').replaceHTML('tr.placeholder', self.renderPersonAsTr(p1))
+ persons[i1] = p2
+ persons[i2] = p1
+
+
+
+ def renderPersonAsTr(self, person):
+ pid = person['pid']
+ buttons = '''
+ <input type="button" class="button remove kssattr-pid-%(pid)s" value="Remove">
+ <input type="button" class="button moveUp kssattr-pid-%(pid)s" value="Up">
+ <input type="button" class="button moveDown kssattr-pid-%(pid)s" value="Down">
+ <input type="button" class="button toTop kssattr-pid-%(pid)s" value="Top">
+ <input type="button" class="button toBottom kssattr-pid-%(pid)s" value="Bottom">
+ ''' % {'pid' : pid}
+ html = """<tr id="pid%(pid)s"><td>%(name)s</td><td>%(address)s</td><td>%(city)s</td><td>%(country)s</td><td>%(telephone)s</td><td>%(buttons)s</td></tr>""" % {
+ 'pid' : person['pid'],
+ 'name' : person['name'],
+ 'address' : person['address'],
+ 'city' : person['city'],
+ 'country' : person['country'],
+ 'telephone' : person['telephone'],
+ 'buttons' : buttons
+ }
+ return html
+
+
Added: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/addressbook.zcml Mon Jan 21 21:12:15 2008
@@ -0,0 +1,101 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ xmlns:kss="http://namespaces.zope.org/kss"
+ xmlns:zcml="http://namespaces.zope.org/zcml"
+ i18n_domain="kss"
+ >
+
+ <!-- Dynamic table -->
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ template="addressbook.pt"
+ name="addressbook.html"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="cleanPersons"
+ name="cleanPersons"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="getPersons"
+ name="getPersons"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="moveDown"
+ name="moveDown"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="toTop"
+ name="toTop"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="toBottom"
+ name="toBottom"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="moveUp"
+ name="moveUp"
+ permission="zope.View"
+ />
+
+ <browser:page
+
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="removePerson"
+ name="removePerson"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="addPerson"
+ name="addPerson"
+ permission="zope.View"
+ />
+
+ <browser:page
+ for="kss.demo.interfaces.ISimpleContent"
+ class=".addressbook.KSSDynamicTableDemo"
+ attribute="renderPersonAsTr"
+ name="renderPersonAsTr"
+ permission="zope.View"
+ />
+
+ <browser:resource
+ file="addressbook.kss"
+ name="addressbook.kss"
+ />
+
+ <browser:resource
+ file="addressbook.css"
+ name="addressbook.css"
+ />
+
+</configure>
+
Modified: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/config.py
==============================================================================
--- kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/config.py (original)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/config.py Mon Jan 21 21:12:15 2008
@@ -16,7 +16,7 @@
class CoreDemos(Plugin):
zope_demos = (
- KSSDemo('', 'Applications', "dynamic_table.html", "Addressbook"),
+ KSSDemo('', 'Applications', "addressbook.html", "Addressbook"),
KSSDemo('', 'Applications', "typewriter.html", "Typewriter"),
## KSSDemo('', '', "draganddrop.html", "Scriptaculous drag and drop"),
KSSDemo('', 'Parameter functions', 'pf_forms.html', 'Forms'),
Modified: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/configure.zcml
==============================================================================
--- kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/configure.zcml (original)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/configure.zcml Mon Jan 21 21:12:15 2008
@@ -546,7 +546,7 @@
/>
<!-- Dynamic table -->
- <include file="dynamic_table.zcml" />
+ <include file="addressbook.zcml" />
<!-- Typewriter -->
<include file="typewriter.zcml" />
Deleted: /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.css
==============================================================================
--- /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.css Mon Jan 21 21:12:15 2008
+++ (empty file)
@@ -1,20 +0,0 @@
-table#personTable {
- margin-left: auto;
- margin-right: auto;
- border: 1px solid #f2ae8c;
-}
-
-table#personTable th {
- background-color: #f2ae8c;
- padding-left: 5px;
- padding-right: 5px;
-}
-
-div.centered {
- text-align: center;
-}
-
-hr {
- border: none;
- border-top: 1px solid #FF4916;
-}
Deleted: /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.kss
==============================================================================
--- /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.kss Mon Jan 21 21:12:15 2008
+++ (empty file)
@@ -1,40 +0,0 @@
-input#submit:click {
- evt-click-preventdefault: true;
- action-server: addPerson;
- addPerson-kssSubmitForm: currentForm();
-}
-
-input#clean:click {
- evt-click-preventdefault: true;
- action-server: cleanPersons;
-}
-
-input.moveUp:click {
- evt-click-preventdefault: true;
- action-server: moveUp;
- moveUp-pid: kssAttr(pid);
-}
-
-input.toBottom:click {
- evt-click-preventdefault: true;
- action-server: toBottom;
- toBottom-pid: kssAttr(pid);
-}
-
-input.toTop:click {
- evt-click-preventdefault: true;
- action-server: toTop;
- toTop-pid: kssAttr(pid);
-}
-
-input.moveDown:click {
- evt-click-preventdefault: true;
- action-server: moveDown;
- moveDown-pid: kssAttr(pid);
-}
-
-input.remove:click {
- evt-click-preventdefault: true;
- action-server: removePerson;
- removePerson-pid: kssAttr(pid);
-}
Deleted: /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.pt
==============================================================================
--- /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.pt Mon Jan 21 21:12:15 2008
+++ (empty file)
@@ -1,81 +0,0 @@
-<html tal:define="viewname string:dynamic_table">
-
- <head>
-
- <metal:header use-macro="context/@@header_macros/header_resources" />
- <link rel="stylesheet" type="text/css"
- tal:attributes="href
- string:${context/@@absolute_url}/++resource++${viewname}.css"/>
-
- </head>
-
- <body>
-
- <p metal:use-macro="context/@@body_macros/header">header</p>
-
- <h2>Addressbook</h2>
-
- <form id="addPerson">
-
- <div>
- <label for="name">Name</label><br />
- <input type="text" name="name" id="name" />
- </div>
-
- <div>
- <label for="address">Address</label><br />
- <textarea name="address"></textarea>
- </div>
- <div>
- <label for="city">City</label><br />
- <input type="text" name="city" />
- </div>
- <div>
- <label for="country">Country</label><br />
- <select name="country">
- <option></option>
- <option>Norway</option>
- <option>USA</option>
- <option>Other</option>
- </select>
- </div>
- <div>
- <label for="telephone">Telephone</label><br />
- <input type="text" name="telephone" />
- </div>
- <div>
- <input type="submit" id="submit" value="Save" class="button" />
- <input type="reset" class="button" value="Reset Form" />
- </div>
-
- </form>
-
-
- <div class="centered">
-
- <input type="button" class="button" id="clean" value="Clear Addressbook" />
-
- <table id="personTable">
- <thead>
- <tr>
- <th>Name</th>
- <th>Address</th>
- <th>City</th>
- <th>Country</th>
- <th>Telephone</th>
- <th> </th>
- </tr>
- </thead>
- <tbody>
- <tal:repeat repeat="person context/getPersons">
- <tal:replace replace="structure python:view.renderPersonAsTr(person)" />
- </tal:repeat>
- </tbody>
- </table>
-
- </div>
-
- <hr />
-
- </body>
-</html>
Deleted: /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.py
==============================================================================
--- /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.py Mon Jan 21 21:12:15 2008
+++ (empty file)
@@ -1,147 +0,0 @@
-# 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 KSSView, force_unicode, KSSExplicitError, kssaction
-from time import time
-from persistent.list import PersistentList
-
-class KSSDynamicTableDemo(KSSView):
-
- def getPersons(self):
- return self.context.getValue('persons', PersistentList())
-
- def cleanPersons(self):
- self.context.setValue('persons', PersistentList())
- self.getCommandSet('core').replaceHTML('table#personTable tbody', '<tbody></tbody>')
- return self.render()
-
- def addPerson(self, name, address, city, country, telephone):
- """ adds a person"""
- persons = self.getPersons()
- person = {
- 'pid' : str(time()).replace('.',''),
- 'name' : name,
- 'address' : address,
- 'city' : city,
- 'country' : country,
- 'telephone' : telephone
- }
- persons.append(person)
- html = self.renderPersonAsTr(person)
- self.getCommandSet('core').insertHTMLAsLastChild('table#personTable tbody', html)
- return self.render()
-
-
- def removePerson(self, pid):
- persons = self.getPersons()
- for p in persons:
- if p['pid'] == pid:
- persons.remove(p)
- self.getCommandSet('core').deleteNode('tr#pid%s' % pid)
- return self.render()
-
-
- def moveUp(self, pid):
- persons = self.getPersons()
- for i in range(1, len(persons)):
- pid1 = persons[i]['pid']
- pid2 = persons[i-1]['pid']
- if pid==pid1:
- self.switchPersons(pid1, pid2)
- break
- return self.render()
-
- def moveDown(self, pid):
- persons = self.getPersons()
- for i in range(0, len(persons)-1):
- pid1 = persons[i]['pid']
- pid2 = persons[i+1]['pid']
- if pid==pid1:
- self.switchPersons(pid1, pid2)
- break
- return self.render()
-
- def toTop(self, pid):
- persons = self.getPersons()
- firstPid = persons[0]['pid']
- if firstPid == pid:
- return self.render()
- self.getCommandSet('core').moveNodeBefore('tr#pid%s' % pid, 'pid%s' % firstPid)
- for p in persons:
- if p['pid'] == pid:
- persons.remove(p)
- persons.insert(0, p)
- break
- return self.render()
-
- def toBottom(self, pid):
- persons = self.getPersons()
- lastPid = persons[-1]['pid']
- if lastPid == pid:
- return self.render()
- self.getCommandSet('core').moveNodeAfter('tr#pid%s' % pid, 'pid%s' % lastPid)
- for p in persons:
- if p['pid'] == pid:
- persons.remove(p)
- persons.append(p)
- break
- return self.render()
-
-
- def switchPersons(self, pid1, pid2):
- persons = self.getPersons()
- p1 = None
- i1 = None
- p2 = None
- i2 = None
- for i in range(0, len(persons)):
- if persons[i]['pid'] == pid1:
- p1 = persons[i]
- i1 = i
- if persons[i]['pid'] == pid2:
- p2 = persons[i]
- i2 = i
- if p1 and p2:
- self.getCommandSet('core').replaceHTML('tr#pid%s' % p2['pid'], '<tr class="placeholder"></tr>')
- self.getCommandSet('core').replaceHTML('tr#pid%s' % p1['pid'], self.renderPersonAsTr(p2))
- self.getCommandSet('core').replaceHTML('tr.placeholder', self.renderPersonAsTr(p1))
- persons[i1] = p2
- persons[i2] = p1
-
-
-
- def renderPersonAsTr(self, person):
- pid = person['pid']
- buttons = '''
- <input type="button" class="button remove kssattr-pid-%(pid)s" value="Remove">
- <input type="button" class="button moveUp kssattr-pid-%(pid)s" value="Up">
- <input type="button" class="button moveDown kssattr-pid-%(pid)s" value="Down">
- <input type="button" class="button toTop kssattr-pid-%(pid)s" value="Top">
- <input type="button" class="button toBottom kssattr-pid-%(pid)s" value="Bottom">
- ''' % {'pid' : pid}
- html = """<tr id="pid%(pid)s"><td>%(name)s</td><td>%(address)s</td><td>%(city)s</td><td>%(country)s</td><td>%(telephone)s</td><td>%(buttons)s</td></tr>""" % {
- 'pid' : person['pid'],
- 'name' : person['name'],
- 'address' : person['address'],
- 'city' : person['city'],
- 'country' : person['country'],
- 'telephone' : person['telephone'],
- 'buttons' : buttons
- }
- return html
-
-
Deleted: /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.zcml
==============================================================================
--- /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/dynamic_table.zcml Mon Jan 21 21:12:15 2008
+++ (empty file)
@@ -1,101 +0,0 @@
-<configure xmlns="http://namespaces.zope.org/zope"
- xmlns:browser="http://namespaces.zope.org/browser"
- xmlns:kss="http://namespaces.zope.org/kss"
- xmlns:zcml="http://namespaces.zope.org/zcml"
- i18n_domain="kss"
- >
-
- <!-- Dynamic table -->
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- template="dynamic_table.pt"
- name="dynamic_table.html"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="cleanPersons"
- name="cleanPersons"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="getPersons"
- name="getPersons"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="moveDown"
- name="moveDown"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="toTop"
- name="toTop"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="toBottom"
- name="toBottom"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="moveUp"
- name="moveUp"
- permission="zope.View"
- />
-
- <browser:page
-
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="removePerson"
- name="removePerson"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="addPerson"
- name="addPerson"
- permission="zope.View"
- />
-
- <browser:page
- for="kss.demo.interfaces.ISimpleContent"
- class=".dynamic_table.KSSDynamicTableDemo"
- attribute="renderPersonAsTr"
- name="renderPersonAsTr"
- permission="zope.View"
- />
-
- <browser:resource
- file="dynamic_table.kss"
- name="dynamic_table.kss"
- />
-
- <browser:resource
- file="dynamic_table.css"
- name="dynamic_table.css"
- />
-
-</configure>
-
Added: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/selenium_tests/addressbook.html
==============================================================================
--- (empty file)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/selenium_tests/addressbook.html Mon Jan 21 21:12:15 2008
@@ -0,0 +1,294 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>addressbook</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">addressbook</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/demo/addressbook.html</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertTextPresent</td>
+ <td>Addressbook</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>clean</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>//tr[2]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>//tr[2]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>name</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>city</td>
+ <td>Aachen</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>submit</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//td[1]</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//td[1]</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//td[3]</td>
+ <td>Aachen</td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>name</td>
+ <td>Jonas</td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>city</td>
+ <td>Bern</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>submit</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//tr[2]/td[1]</td>
+ <td>Jonas</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[1]</td>
+ <td>Jonas</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[3]</td>
+ <td>Bern</td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>name</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>city</td>
+ <td>Louvain-la-neuve</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>submit</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//tr[3]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[3]</td>
+ <td>Louvain-la-neuve</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//tr[3]/td[6]/input[@value='Up']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//tr[2]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[3]</td>
+ <td>Louvain-la-neuve</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[1]</td>
+ <td>Jonas</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[3]</td>
+ <td>Bern</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//input[@value='Down']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//tr[1]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[1]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[1]/td[3]</td>
+ <td>Louvain-la-neuve</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[1]</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[3]</td>
+ <td>Aachen</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//tr[2]/td[6]/input[@value='Top']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//tr[1]/td[1]</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[1]/td[1]</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[1]/td[3]</td>
+ <td>Aachen</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//tr[2]/td[6]/input[@value='Bottom']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//tr[3]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[3]</td>
+ <td>Louvain-la-neuve</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[1]</td>
+ <td>Jonas</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[3]</td>
+ <td>Bern</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[3]/td[3]</td>
+ <td>Louvain-la-neuve</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//tr[2]/td[6]/input[@value='Remove']</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForText</td>
+ <td>//tr[1]/td[1]</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[1]/td[1]</td>
+ <td>Carsten</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[1]/td[3]</td>
+ <td>Aachen</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[1]</td>
+ <td>Godefroid</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//tr[2]/td[3]</td>
+ <td>Louvain-la-neuve</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>clean</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>//tr[2]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>//tr[2]</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
Deleted: /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/selenium_tests/dynamic_table.html
==============================================================================
--- /kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/selenium_tests/dynamic_table.html Mon Jan 21 21:12:15 2008
+++ (empty file)
@@ -1,294 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>dynamic_table</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">dynamic_table</td></tr>
-</thead><tbody>
-<tr>
- <td>open</td>
- <td>/demo/dynamic_table.html</td>
- <td></td>
-</tr>
-<tr>
- <td>assertTextPresent</td>
- <td>Addressbook</td>
- <td></td>
-</tr>
-<tr>
- <td>click</td>
- <td>clean</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForElementNotPresent</td>
- <td>//tr[2]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertElementNotPresent</td>
- <td>//tr[2]</td>
- <td></td>
-</tr>
-<tr>
- <td>type</td>
- <td>name</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>type</td>
- <td>city</td>
- <td>Aachen</td>
-</tr>
-<tr>
- <td>click</td>
- <td>submit</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//td[1]</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//td[1]</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//td[3]</td>
- <td>Aachen</td>
-</tr>
-<tr>
- <td>type</td>
- <td>name</td>
- <td>Jonas</td>
-</tr>
-<tr>
- <td>type</td>
- <td>city</td>
- <td>Bern</td>
-</tr>
-<tr>
- <td>click</td>
- <td>submit</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//tr[2]/td[1]</td>
- <td>Jonas</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[1]</td>
- <td>Jonas</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[3]</td>
- <td>Bern</td>
-</tr>
-<tr>
- <td>type</td>
- <td>name</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>type</td>
- <td>city</td>
- <td>Louvain-la-neuve</td>
-</tr>
-<tr>
- <td>click</td>
- <td>submit</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//tr[3]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[3]</td>
- <td>Louvain-la-neuve</td>
-</tr>
-<tr>
- <td>click</td>
- <td>//tr[3]/td[6]/input[@value='up']</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//tr[2]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[3]</td>
- <td>Louvain-la-neuve</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[1]</td>
- <td>Jonas</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[3]</td>
- <td>Bern</td>
-</tr>
-<tr>
- <td>click</td>
- <td>//input[@value='down']</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//tr[1]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[1]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[1]/td[3]</td>
- <td>Louvain-la-neuve</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[1]</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[3]</td>
- <td>Aachen</td>
-</tr>
-<tr>
- <td>click</td>
- <td>//tr[2]/td[6]/input[@value='top']</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//tr[1]/td[1]</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[1]/td[1]</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[1]/td[3]</td>
- <td>Aachen</td>
-</tr>
-<tr>
- <td>click</td>
- <td>//tr[2]/td[6]/input[@value='bottom']</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//tr[3]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[3]</td>
- <td>Louvain-la-neuve</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[1]</td>
- <td>Jonas</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[3]</td>
- <td>Bern</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[3]/td[3]</td>
- <td>Louvain-la-neuve</td>
-</tr>
-<tr>
- <td>click</td>
- <td>//tr[2]/td[6]/input[@value='remove']</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForText</td>
- <td>//tr[1]/td[1]</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[1]/td[1]</td>
- <td>Carsten</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[1]/td[3]</td>
- <td>Aachen</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[1]</td>
- <td>Godefroid</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>//tr[2]/td[3]</td>
- <td>Louvain-la-neuve</td>
-</tr>
-<tr>
- <td>click</td>
- <td>clean</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForElementNotPresent</td>
- <td>//tr[2]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertElementNotPresent</td>
- <td>//tr[2]</td>
- <td></td>
-</tr>
-
-</tbody></table>
-</body>
-</html>
Modified: kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/zopeconfig.py
==============================================================================
--- kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/zopeconfig.py (original)
+++ kukit/kss.core/branch/improve-demos/kss/core/plugins/core/demo/zopeconfig.py Mon Jan 21 21:12:15 2008
@@ -18,7 +18,7 @@
implements(IResource)
demos = (
- KSSDemo('', 'Applications', "dynamic_table.html", "Addressbook"),
+ KSSDemo('', 'Applications', "addressbook.html", "Addressbook"),
KSSDemo('', 'Applications', "typewriter.html", "Typewriter"),
## KSSDemo('', '', "draganddrop.html", "Scriptaculous drag and drop"),
KSSDemo('', 'Parameter functions', 'pf_forms.html', 'Forms'),
More information about the Kukit-checkins
mailing list