appy.gen: minor improvements and IE fixes in the GUI.

This commit is contained in:
Gaetan Delannay 2011-03-24 16:21:57 +01:00
parent e87547b789
commit a608a9b43f
12 changed files with 23 additions and 41 deletions

View file

@ -1 +1 @@
0.6.4 0.6.5

View file

@ -95,7 +95,7 @@ class Group:
hasLabel=True, hasDescr=False, hasHelp=False, hasLabel=True, hasDescr=False, hasHelp=False,
hasHeaders=False, group=None, colspan=1, align='center', hasHeaders=False, group=None, colspan=1, align='center',
valign='top', css_class='', master=None, masterValue=None, valign='top', css_class='', master=None, masterValue=None,
cellpadding=1, cellspacing=1): cellpadding=1, cellspacing=1, cellgap='0.6em'):
self.name = name self.name = name
# In its simpler form, field "columns" below can hold a list or tuple # In its simpler form, field "columns" below can hold a list or tuple
# of column widths expressed as strings, that will be given as is in # of column widths expressed as strings, that will be given as is in
@ -134,6 +134,10 @@ class Group:
self.valign = valign self.valign = valign
self.cellpadding = cellpadding self.cellpadding = cellpadding
self.cellspacing = cellspacing self.cellspacing = cellspacing
# Beyond standard cellpadding and cellspacing, cellgap can define an
# additional horizontal gap between cells in a row. So this value does
# not add space before the first cell or after the last one.
self.cellgap = cellgap
if style == 'tabs': if style == 'tabs':
# Group content will be rendered as tabs. In this case, some # Group content will be rendered as tabs. In this case, some
# param combinations have no sense. # param combinations have no sense.

View file

@ -93,7 +93,7 @@ class User(ModelClass):
'password2', 'roles'] 'password2', 'roles']
# All methods defined below are fake. Real versions are in the wrapper. # All methods defined below are fake. Real versions are in the wrapper.
title = String(show=False, indexed=True) title = String(show=False, indexed=True)
gm = {'group': 'main', 'multiplicity': (1,1)} gm = {'group': 'main', 'multiplicity': (1,1), 'width': 25}
name = String(**gm) name = String(**gm)
firstName = String(**gm) firstName = String(**gm)
def showLogin(self): pass def showLogin(self): pass

View file

@ -518,12 +518,12 @@
<input type="hidden" name="action" value="TriggerTransition"/> <input type="hidden" name="action" value="TriggerTransition"/>
<input type="hidden" name="workflow_action"/> <input type="hidden" name="workflow_action"/>
<table> <table>
<tr> <tr valign="middle">
<tal:comment replace="nothing">Input field allowing to enter a comment before triggering a transition</tal:comment> <tal:comment replace="nothing">Input field allowing to enter a comment before triggering a transition</tal:comment>
<td tal:define="showCommentsField python:tool.getAttr('showWorkflowCommentFieldFor'+contextObj.meta_type)" <td tal:define="showCommentsField python:tool.getAttr('showWorkflowCommentFieldFor'+contextObj.meta_type)"
align="right" tal:condition="showCommentsField"> align="right" tal:condition="showCommentsField">
<span tal:content="python: tool.translate('workflow_comment')" class="discreet"></span> <span tal:content="python: tool.translate('workflow_comment')" class="discreet"></span>
<input type="text" id="comment" name="comment" size="35"/> <input type="text" id="comment" name="comment" size="30"/>
</td> </td>
<tal:comment replace="nothing">Buttons for triggering transitions</tal:comment> <tal:comment replace="nothing">Buttons for triggering transitions</tal:comment>
@ -558,7 +558,7 @@
<tal:comment replace="nothing">Information that is common to all tabs (object title, state, etc)</tal:comment> <tal:comment replace="nothing">Information that is common to all tabs (object title, state, etc)</tal:comment>
<table width="100%" tal:condition="showCommonInfo" class="appyCommonInfo"> <table width="100%" tal:condition="showCommonInfo" class="appyCommonInfo">
<tr valign="bottom"> <tr valign="bottom" align="left">
<tal:comment replace="nothing">Title and state</tal:comment> <tal:comment replace="nothing">Title and state</tal:comment>
<td width="80%"> <td width="80%">
<b class="appyTitle" tal:content="contextObj/title_or_id"></b> <b class="appyTitle" tal:content="contextObj/title_or_id"></b>
@ -567,11 +567,11 @@
</td> </td>
</tr> </tr>
<tr tal:define="descrLabel python: contextObj.translate('%s_edit_descr' % contextObj.portal_type)" <tr tal:define="descrLabel python: contextObj.translate('%s_edit_descr' % contextObj.portal_type)"
tal:condition="descrLabel/strip" > tal:condition="descrLabel/strip" align="left">
<tal:comment replace="nothing">Content type description</tal:comment> <tal:comment replace="nothing">Content type description</tal:comment>
<td colspan="2" class="discreet" tal:content="descrLabel"/> <td colspan="2" class="discreet" tal:content="descrLabel"/>
</tr> </tr>
<tr> <tr align="left">
<td class="documentByLine" colspan="2"> <td class="documentByLine" colspan="2">
<tal:comment replace="nothing">Creator and last modification date</tal:comment> <tal:comment replace="nothing">Creator and last modification date</tal:comment>
<tal:comment replace="nothing">Plus/minus icon for accessing history</tal:comment> <tal:comment replace="nothing">Plus/minus icon for accessing history</tal:comment>
@ -598,7 +598,7 @@
</td> </td>
</tr> </tr>
<tal:comment replace="nothing">Object history</tal:comment> <tal:comment replace="nothing">Object history</tal:comment>
<tr tal:condition="hasHistory"> <tr tal:condition="hasHistory" align="left">
<td colspan="2"> <td colspan="2">
<span id="appyHistory" <span id="appyHistory"
tal:attributes="style python:test(historyExpanded, 'display:block', 'display:none')"> tal:attributes="style python:test(historyExpanded, 'display:block', 'display:none')">
@ -611,7 +611,7 @@
</td> </td>
</tr> </tr>
<tal:comment replace="nothing">Workflow-related information and actions</tal:comment> <tal:comment replace="nothing">Workflow-related information and actions</tal:comment>
<tr tal:condition="python: showWorkflow and contextObj.getWorkflowLabel()"> <tr tal:condition="python: showWorkflow and contextObj.getWorkflowLabel()" align="left">
<td colspan="2" class="appyWorkflow"> <td colspan="2" class="appyWorkflow">
<table width="100%"> <table width="100%">
<tr> <tr>

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

View file

@ -28,16 +28,7 @@
<tr tal:repeat="row layout/rows" tal:attributes="valign row/valign"> <tr tal:repeat="row layout/rows" tal:attributes="valign row/valign">
<td tal:repeat="cell row/cells" <td tal:repeat="cell row/cells"
tal:attributes="align cell/align; colspan cell/colspan; tal:attributes="align cell/align; colspan cell/colspan;
style python: test(repeat['cell'].end, '', 'padding-right: 0.4em')"> style python: test(repeat['cell'].end, '', 'padding-right: 0.4em')"><tal:content repeat="elem cell/content"><tal:field condition="python: elem == '?'"><metal:call use-macro="python: contextMacro.get(widget['type'].lower()).macros.get(layoutType)"/></tal:field><tal:other condition="python: elem != '?'"><metal:call use-macro="python: contextMacro.get(elem[0]).macros.get(elem[1])"/></tal:other><img tal:condition="not: repeat/elem/end" tal:attributes="src string: $portal_url/skyn/space.gif"/></tal:content>
<tal:content repeat="elem cell/content">
<tal:field condition="python: elem == '?'">
<metal:call use-macro="python: contextMacro.get(widget['type'].lower()).macros.get(layoutType)"/>
</tal:field>
<tal:other condition="python: elem != '?'">
<metal:call use-macro="python: contextMacro.get(elem[0]).macros.get(elem[1])"/>
</tal:other>
<img tal:condition="not: repeat/elem/end" tal:attributes="src string: $portal_url/skyn/space.gif"/>
</tal:content>
</td> </td>
</tr> </tr>
</table> </table>
@ -138,6 +129,7 @@
It is exclusively called by macro "group" above. It is exclusively called by macro "group" above.
</tal:comment> </tal:comment>
<table metal:define-macro="groupContent" <table metal:define-macro="groupContent"
tal:define="cellgap widget/cellgap"
tal:attributes="width python: test(widget['wide'], '100%', ''); tal:attributes="width python: test(widget['wide'], '100%', '');
align widget/align; align widget/align;
class widget/css_class; class widget/css_class;
@ -169,7 +161,7 @@
<tr tal:attributes="valign widget/valign" tal:repeat="widgetRow widget/widgets"> <tr tal:attributes="valign widget/valign" tal:repeat="widgetRow widget/widgets">
<td tal:repeat="widget widgetRow" <td tal:repeat="widget widgetRow"
tal:attributes="colspan widget/colspan|python:1; tal:attributes="colspan widget/colspan|python:1;
style python: test(repeat['widget'].number() != len(widgetRow), 'padding-right: 0.6em', '')"> style python: test(repeat['widget'].number() != len(widgetRow), 'padding-right: %s'%cellgap, '')">
<tal:showWidget condition="widget"> <tal:showWidget condition="widget">
<tal:group condition="python: widget['type'] == 'group'"> <tal:group condition="python: widget['type'] == 'group'">
<metal:call use-macro="portal/skyn/widgets/show/macros/group"/> <metal:call use-macro="portal/skyn/widgets/show/macros/group"/>
@ -183,31 +175,17 @@
</table> </table>
<tal:comment replace="nothing">Displays a field label.</tal:comment> <tal:comment replace="nothing">Displays a field label.</tal:comment>
<tal:label metal:define-macro="label" condition="widget/hasLabel"> <tal:label metal:define-macro="label" condition="widget/hasLabel"><label tal:attributes="for widget/name" tal:condition="python: not ((widget['type'] == 'Action') or ((widget['type'] == 'Ref') and (widget['add'])))" tal:content="structure python: contextObj.translate('label', field=widget['name'])"></label></tal:label>
<label tal:attributes="for widget/name"
tal:condition="python: not ((widget['type'] == 'Action') or ((widget['type'] == 'Ref') and (widget['add'])))"
tal:content="structure python: contextObj.translate('label', field=widget['name'])"></label>
</tal:label>
<tal:comment replace="nothing">Displays a field description.</tal:comment> <tal:comment replace="nothing">Displays a field description.</tal:comment>
<tal:description metal:define-macro="description" condition="widget/hasDescr"> <tal:description metal:define-macro="description" condition="widget/hasDescr"><span class="discreet" tal:content="structure python: contextObj.translate('descr', field=widget['name'])"></span>
<span class="discreet" tal:content="structure python: contextObj.translate('descr', field=widget['name'])"></span>
</tal:description> </tal:description>
<tal:comment replace="nothing">Displays a field help.</tal:comment> <tal:comment replace="nothing">Displays a field help.</tal:comment>
<tal:help metal:define-macro="help"> <tal:help metal:define-macro="help"><acronym tal:attributes="title python: contextObj.translate('help', field=widget['name'])"><img tal:attributes="src string: $portal_url/skyn/help.png"/></acronym></tal:help>
<acronym tal:attributes="title python: contextObj.translate('help', field=widget['name'])">
<img tal:attributes="src string: $portal_url/skyn/help.png"/>
</acronym>
</tal:help>
<tal:comment replace="nothing">Displays validation-error-related info about a field.</tal:comment> <tal:comment replace="nothing">Displays validation-error-related info about a field.</tal:comment>
<tal:validation metal:define-macro="validation"> <tal:validation metal:define-macro="validation"><acronym tal:condition="inError" tal:attributes="title python: errors[name]"><img tal:attributes="src string: $portal_url/skyn/warning.png"/></acronym><img tal:condition="not: inError" tal:attributes="src string: $portal_url/skyn/warning_no.gif"/></tal:validation>
<acronym tal:condition="inError" tal:attributes="title python: errors[name]">
<img tal:attributes="src string: $portal_url/skyn/warning.png"/>
</acronym>
<img tal:condition="not: inError" tal:attributes="src string: $portal_url/skyn/warning_no.png"/>
</tal:validation>
<tal:comment replace="nothing">Displays the fact that a field is required.</tal:comment> <tal:comment replace="nothing">Displays the fact that a field is required.</tal:comment>
<tal:required metal:define-macro="required"><img tal:attributes="src string: $portal_url/skyn/required.png"/></tal:required> <tal:required metal:define-macro="required"><img tal:attributes="src string: $portal_url/skyn/required.gif"/></tal:required>

View file

@ -6,7 +6,7 @@ textarea { width: 99%; }
#portal-breadcrumbs { display: none; } #portal-breadcrumbs { display: none; }
#importedElem { color: grey; font-style: italic; } #importedElem { color: grey; font-style: italic; }
label { font-weight: bold; font-style: italic; line-height: 1.4em;} label { font-weight: bold; font-style: italic; line-height: 1.4em; font-size: 92%;}
.discreet { font-size: 94%; } .discreet { font-size: 94%; }
.appyList { line-height: 1.1em; margin: 0 0 0.5em 1.2em; padding: 0; } .appyList { line-height: 1.1em; margin: 0 0 0.5em 1.2em; padding: 0; }
.appyBullet { margin: 0; } .appyBullet { margin: 0; }