<tal:comment replace="nothing">Single row.</tal:comment> <tr metal:define-macro="row" valign="top" tal:attributes="style python: (rowIndex==-1) and 'display: none' or ''"> <td align="center" tal:repeat="fieldInfo widget/fieldsd"> <tal:show define="widget python: fieldInfo[1]; tagCss python: 'noStyle'; widgetName python: '%s*%d' % (widget['name'], rowIndex)"> <metal:call use-macro="app/ui/widgets/show/macros/field"/> </tal:show> </td> <tal:comment replace="nothing">Icon for removing the row</tal:comment> <td tal:condition="python: layoutType=='edit'" tal:attributes="align dright"> <img style="cursor:pointer" tal:attributes="src string:$appUrl/ui/delete.png; title python: 'Delete'; onClick python: 'deleteRow(\'list_%s\',this)' % name"/> </td> </tr> <tal:comment replace="nothing">The whole table, edit or view.</tal:comment> <table metal:define-macro="table" tal:define="isEdit python: layoutType == 'edit'" tal:condition="python: isEdit or value" tal:attributes="id python: 'list_%s' % name; class python: isEdit and 'grid' or 'list'"> <tal:comment replace="nothing">Header</tal:comment> <tr valign="bottom"> <th tal:repeat="fieldInfo widget/fieldsd" tal:content="structure python: _(fieldInfo[1]['labelId'])"> </th> <tal:comment replace="nothing">Icon for adding a new row.</tal:comment> <th tal:condition="isEdit"> <img style="cursor:pointer" tal:attributes="src string:$appUrl/ui/plus.png; title python: _('add_ref'); onClick python: 'insertRow(\'list_%s\')' % name"/> </th> </tr> <tal:comment replace="nothing">Template row (edit only)</tal:comment> <tal:templateRow define="rowIndex python:-1" condition="isEdit"> <metal:call use-macro="app/ui/widgets/list/macros/row"/> </tal:templateRow> <tr height="7px" tal:condition="isEdit"><td></td></tr> <tal:comment replace="nothing">Rows of data</tal:comment> <tal:rows define="rows python: inRequest and requestValue or value" repeat="row rows"> <tal:row define="rowIndex repeat/row/index"> <metal:call use-macro="app/ui/widgets/list/macros/row"/> </tal:row> </tal:rows> </table> <tal:comment replace="nothing">View</tal:comment> <metal:view define-macro="view"> <metal:call use-macro="app/ui/widgets/list/macros/table"/> </metal:view> <tal:comment replace="nothing">Edit</tal:comment> <metal:edit define-macro="edit"> <tal:comment replace="nothing"> The following input makes Appy aware that this field is in the request. </tal:comment> <input type="hidden" tal:attributes="name name" value=""> <metal:call use-macro="app/ui/widgets/list/macros/table"/> </metal:edit> <tal:comment replace="nothing">Cell</tal:comment> <metal:cell define-macro="cell"> <metal:call use-macro="app/ui/widgets/list/macros/table"/> </metal:cell> <tal:comment replace="nothing">Search</tal:comment> <metal:search define-macro="search"></metal:search>