prepare use of grid field

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3009 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-11-25 12:58:31 +00:00
parent 3ac67abd37
commit 16a3212f7a
2 changed files with 38 additions and 18 deletions

View file

@ -23,9 +23,10 @@ $Id$
"""
from zope import component
from zope.interface import implements
from zope.cachedescriptors.property import Lazy
from zope.component import adapts
from zope.interface import implements
from zope.app.pagetemplate import ViewPageTemplateFile
from zope.cachedescriptors.property import Lazy
import zope.schema
from cybertools.composer.schema.factory import createField
@ -36,6 +37,9 @@ from cybertools.util.format import toStr, toUnicode
from cybertools.util import json
grid_macros = ViewPageTemplateFile('grid_macros.pt')
class GridFieldInstance(ListFieldInstance):
@Lazy

View file

@ -6,21 +6,37 @@
<metal:input define-macro="input_grid"
tal:define="fieldInstance python: field.getFieldInstance(view.instance);
columns fieldInstance/columnTypes">
<span dojoType="dojo.data.ItemFileWriteStore"
tal:attributes="jsId string:store_$name;
data data/?name"/>
<table dojoType="dojox.grid.DataGrid"
style="width: 35em; height: 15em"
tal:attributes="name name; id name;
<script type="text/javascript" language="JavaScript"
tal:content="string:
data_$name = dojo.fromJson('${data/?name}');
store_$name = new dojo.data.ItemFileWriteStore({data: data_$name});
store_$name._saveEverything = function(ccb, ecb, data) {
dojo.byId('$name').value = data;
};
dojo.connect(dojo.byId('editForm'), 'onsubmit', function(evt) {
dijit.byId('grid_$name').edit.apply();
store_$name.save();
});">
</script>
<textarea rows="3" style="display: none"
tal:attributes="name name; id name">
</textarea>
<table dojoType="dojox.grid.DataGrid" query="{name: '*'}"
style="width: 100%; height: 12em"
singleClickEdit="true"
tal:attributes="id string:grid_$name;
store string:store_$name">
<thead>
<tr>
<tal:header repeat="column columns">
<th tal:attributes="field column/name"
tal:content="column/title">Column Title</th>
</tal:header>
</tr></thead></table>
<thead>
<tr>
<tal:header repeat="column columns">
<th width="auto" editable="true"
tal:attributes="field column/name"
tal:content="column/title">Column Title</th>
</tal:header>
</tr></thead>
</table>
</metal:input>
</body>
</html>