2010-04-30 05:06:49 -05:00
|
|
|
<div metal:define-macro="appyNavigate" tal:condition="python: totalNumber > batchSize" align="right">
|
|
|
|
<tal:comment replace="nothing">
|
|
|
|
Buttons for navigating among a list of elements (next, back, first, last, etc).
|
|
|
|
</tal:comment>
|
|
|
|
<table cellpadding="0" cellspacing="0" class="appyNav"
|
|
|
|
tal:define="mustSortAndFilter python: ajaxHookId == 'queryResult';
|
|
|
|
sortKey sortKey|python:'';
|
|
|
|
sortOrder sortOrder|python:'';
|
|
|
|
filterKey filterKey|python:'';
|
|
|
|
sortAndFilter python: test(mustSortAndFilter, ',\'%s\',\'%s\',\'%s\'' % (sortKey, sortOrder, filterKey), '')">
|
|
|
|
<tr>
|
|
|
|
<tal:comment replace="nothing">Go to the first page</tal:comment>
|
|
|
|
<td><img style="cursor:pointer" tal:condition="python: (startNumber != 0) and (startNumber != batchSize)"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowLeftDouble.png;
|
|
|
|
title python: tool.translate('goto_first');
|
|
|
|
onClick python: navBaseCall.replace('**v**', '0'+sortAndFilter)"/></td>
|
|
|
|
<tal:comment replace="nothing">Go to the previous page</tal:comment>
|
|
|
|
<td><img style="cursor:pointer" tal:condition="python: startNumber != 0"
|
|
|
|
tal:define="sNumber python: startNumber - batchSize"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowLeftSimple.png;
|
|
|
|
title python: tool.translate('goto_previous');
|
|
|
|
onClick python: navBaseCall.replace('**v**', str(sNumber)+sortAndFilter)"/></td>
|
|
|
|
<tal:comment replace="nothing">Explain which elements are currently shown</tal:comment>
|
|
|
|
<td class="discreet" valign="middle">
|
|
|
|
<span tal:replace="python: startNumber+1"/>
|
|
|
|
<img tal:attributes="src string: $portal_url/skyn/to.png"/>
|
|
|
|
<span tal:replace="python: startNumber+len(objs)"/> <b>//</b>
|
|
|
|
<span tal:replace="python: totalNumber"/>
|
|
|
|
</td>
|
|
|
|
<tal:comment replace="nothing">Go to the next page</tal:comment>
|
|
|
|
<td><img style="cursor:pointer" tal:condition="python: sNumber < totalNumber"
|
|
|
|
tal:define="sNumber python: startNumber + batchSize"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowRightSimple.png;
|
|
|
|
title python: tool.translate('goto_next');
|
|
|
|
onClick python: navBaseCall.replace('**v**', str(sNumber)+sortAndFilter)"/></td>
|
|
|
|
<tal:comment replace="nothing">Go to the last page</tal:comment>
|
|
|
|
<td><img style="cursor:pointer" tal:condition="python: (startNumber != sNumber) and (startNumber != sNumber-batchSize)"
|
|
|
|
tal:define="lastPageIsIncomplete python: totalNumber % batchSize;
|
|
|
|
nbOfCompletePages python: totalNumber/batchSize;
|
|
|
|
nbOfCountedPages python: test(lastPageIsIncomplete, nbOfCompletePages, nbOfCompletePages-1);
|
|
|
|
sNumber python: (nbOfCountedPages*batchSize)"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowRightDouble.png;
|
|
|
|
title python: tool.translate('goto_last');
|
|
|
|
onClick python: navBaseCall.replace('**v**', str(sNumber)+sortAndFilter)"/></td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
|
2010-09-17 08:32:48 -05:00
|
|
|
<div metal:define-macro="objectNavigate" tal:condition="request/nav|nothing">
|
2010-04-30 05:06:49 -05:00
|
|
|
<tal:comment replace="nothing">
|
|
|
|
Buttons for going to next/previous elements if this one is among bunch of referenced or searched objects.
|
|
|
|
currentNumber starts with 1.
|
|
|
|
</tal:comment>
|
|
|
|
<table cellpadding="0" cellspacing="0"
|
|
|
|
tal:define="navInfo tool/getNavigationInfo;
|
|
|
|
currentNumber navInfo/currentNumber;
|
|
|
|
totalNumber navInfo/totalNumber;
|
|
|
|
firstUrl navInfo/firstUrl;
|
|
|
|
previousUrl navInfo/previousUrl;
|
|
|
|
nextUrl navInfo/nextUrl;
|
|
|
|
lastUrl navInfo/lastUrl;
|
|
|
|
sourceUrl navInfo/sourceUrl;
|
|
|
|
backText navInfo/backText">
|
|
|
|
<tr>
|
|
|
|
<tal:comment replace="nothing">Go to the source URL (search or referred object)</tal:comment>
|
|
|
|
<td><a tal:condition="sourceUrl" tal:attributes="href sourceUrl"><img style="cursor:pointer"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/gotoSource.png;
|
|
|
|
title python: backText + ' : ' + tool.translate('goto_source')"/></a></td>
|
|
|
|
<tal:comment replace="nothing">Go to the first page</tal:comment>
|
|
|
|
<td><a tal:condition="firstUrl" tal:attributes="href firstUrl"><img style="cursor:pointer"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowLeftDouble.png;
|
|
|
|
title python: tool.translate('goto_first')"/></a></td>
|
|
|
|
<tal:comment replace="nothing">Go to the previous page</tal:comment>
|
|
|
|
<td><a tal:condition="previousUrl" tal:attributes="href previousUrl"><img style="cursor:pointer"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowLeftSimple.png;
|
|
|
|
title python: tool.translate('goto_previous')"/></a></td>
|
|
|
|
<tal:comment replace="nothing">Explain which element is currently shown</tal:comment>
|
|
|
|
<td class="discreet" valign="middle">
|
|
|
|
<span tal:replace="python: currentNumber"/> <b>//</b>
|
|
|
|
<span tal:replace="python: totalNumber"/>
|
|
|
|
</td>
|
|
|
|
<tal:comment replace="nothing">Go to the next page</tal:comment>
|
|
|
|
<td><a tal:condition="python: nextUrl" tal:attributes="href nextUrl"><img style="cursor:pointer"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowRightSimple.png;
|
|
|
|
title python: tool.translate('goto_next')"/></a></td>
|
|
|
|
<tal:comment replace="nothing">Go to the last page</tal:comment>
|
|
|
|
<td><a tal:condition="lastUrl" tal:attributes="href lastUrl"><img style="cursor:pointer"
|
|
|
|
tal:attributes="src string: $portal_url/skyn/arrowRightDouble.png;
|
|
|
|
title python: tool.translate('goto_last')"/></a></td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<tal:comment replace="nothing">
|
|
|
|
This macro displays up/down arrows in a table header column for sorting a given column.
|
|
|
|
It requires variables "sortable", 'filterable' and 'fieldName'.
|
|
|
|
</tal:comment>
|
2010-12-06 04:11:40 -06:00
|
|
|
<metal:sortAndFilter define-macro="sortAndFilter" tal:define="fieldName widget/name">
|
2010-04-30 05:06:49 -05:00
|
|
|
<tal:sort condition="sortable">
|
|
|
|
<img tal:attributes="src string: $portal_url/skyn/sortDown.gif;
|
|
|
|
onClick python: navBaseCall.replace('**v**', '0,\'%s\',\'asc\',\'%s\'' % (fieldName, filterKey))"
|
|
|
|
tal:condition="python: (sortKey != fieldName) or (sortOrder == 'desc')"
|
|
|
|
style="cursor:pointer"/>
|
|
|
|
<img tal:attributes="src string: $portal_url/skyn/sortUp.gif;
|
|
|
|
onClick python: navBaseCall.replace('**v**', '0,\'%s\',\'desc\',\'%s\'' % (fieldName, filterKey))"
|
|
|
|
tal:condition="python: (sortKey != fieldName) or (sortOrder == 'asc')"
|
|
|
|
style="cursor:pointer"/>
|
|
|
|
</tal:sort>
|
|
|
|
<tal:filter condition="filterable">
|
|
|
|
<input type="text" size="7"
|
|
|
|
tal:attributes="id python: '%s_%s' % (ajaxHookId, fieldName);
|
|
|
|
value python: test(filterKey == fieldName, filterValue, '')"/>
|
|
|
|
<img tal:attributes="src string: $portal_url/skyn/funnel.png;
|
|
|
|
onClick python: navBaseCall.replace('**v**', '0,\'%s\',\'%s\',\'%s\'' % (sortKey, sortOrder, fieldName))"
|
|
|
|
style="cursor:pointer"/>
|
|
|
|
</tal:filter>
|
|
|
|
</metal:sortAndFilter>
|