Code

batch the (list) listings at 500 entries per page (sf bug 759906)
authorrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Tue, 12 Aug 2003 02:10:12 +0000 (02:10 +0000)
committerrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Tue, 12 Aug 2003 02:10:12 +0000 (02:10 +0000)
Unfortunately, the doovy javascript falls over when the next/prev links are
used, so I've added some simple checking to remove that stuff when we're paging
through the results (the simple test fails if you page back to the first
page, but it'll do for now)

git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1807 57a73879-2fb5-44c3-a270-3262357dd7e2

CHANGES.txt
roundup/cgi/templating.py
templates/classic/html/_generic.help.html
templates/minimal/html/_generic.help.html

index cca42fcf3ba9afaccb307c39d289ab7b72eae0dc..b644e913e6348d908e0be788129cc2e3780915f9 100644 (file)
@@ -8,6 +8,7 @@ are given with the most recent entry first.
 - logfile must be specified if pidfile is (sf bug 772820)
 - timelog editing via csv interface crashes (sf bug 699837)
 - sort multilinks a little better for grouping (sf bug 772935)
+- batch the (list) listings at 500 entries per page (sf bug 759906)
 
 
 2003-07-29 0.6.0b4
index 832ac68400715b6dd292595f0cc51a158136215e..dc8482639db6cb89ae14e0bc38438776989c6691 100644 (file)
@@ -466,9 +466,10 @@ class HTMLClass(HTMLPermissions):
             properties = ','.join(properties)
         if property:
             property = '&property=%s'%property
-        return '<a class="classhelp" href="javascript:help_window(\'%s?:'\
-            'template=help&properties=%s%s\', \'%s\', \'%s\')">%s</a>'%(
-            self.classname, properties, property, width, height, label)
+        return '<a class="classhelp" href="javascript:help_window(\'%s?'\
+            ':startwith=0&:template=help&properties=%s%s\', \'%s\', \
+            \'%s\')">%s</a>'%(self.classname, properties, property, width,
+            height, label)
 
     def submit(self, label="Submit New Entry"):
         ''' Generate a submit button (and action hidden element)
index 94a01b67a2710696a5355d40ba869dc640e8afa7..98fd6d03856ccbf90e95d4895c7c38e50a8152f6 100644 (file)
       </tal:block>
   </head>
  <body class="body" marginwidth="0" marginheight="0" onload="resetList();">
- <form name="frm_help" action="">
+ <form name="frm_help" action=""
+       tal:define="start python:int(request.form[':startwith'].value);
+                   batch python:utils.Batch(context.list(), 500, start);
+                   props python:request.form['properties'].value.split(',')">
      
-     <div id="classhelp-controls">
+     <div id="classhelp-controls" tal:condition="python:start==0">
        <!--input type="button" name="btn_clear" 
               value="Clear" onClick="clearList()"/ -->
        <input type="text" name="text_preview" size="24" class="preview"
               value=" Apply " onclick="updateList(); window.close();"/>     
      </div>
 
-     <table class="classhelp" 
-     tal:define="props python:request.form['properties'].value.split(',')">
+     <table class="classhelp">
        <tr>
            <th>&nbsp;<b>x</b></th>
            <th tal:repeat="prop props" tal:content="prop"></th>
        </tr>
-       <tr tal:repeat="item context/list">
+       <tr tal:repeat="item batch">
            <td>
                <input type="checkbox" name="check" 
                onclick="updatePreview();"
+               tal:condition="python:start==0"
                tal:define="attr python:item[props[0]]"
                tal:attributes="value attr; id attr" />
            </td>
            <th tal:repeat="prop props" tal:content="prop"></th>
        </tr>
      </table>
+     <table width="100%">
+      <tr class="navigation">
+       <th>
+        <a tal:define="prev batch/previous" tal:condition="prev"
+           tal:attributes="href string:${request/classname}?:template=help&:startwith=${prev/first}&properties=${request/form/properties/value}">&lt;&lt; previous</a>
+        &nbsp;
+       </th>
+       <th tal:content="python: '%d...%d out of %d'%(batch.start,
+               batch.start+batch.length-1, batch.sequence_length)">current</th>
+       <th>
+        <a tal:define="next batch/next" tal:condition="next"
+           tal:attributes="href string:${request/classname}?:template=help&:startwith=${next/first}&properties=${request/form/properties/value}">next &gt;&gt;</a>
+        &nbsp;
+       </th>
+      </tr>
+     </table>
 
  </form>
  </body>
 </html>
+<!-- SHA: 97d46e2f10096a13afc6e5c48a3e6175ada9738f -->
index ff4c7a3c0f97fea0e42d15b96fb6d743e2444b97..98fd6d03856ccbf90e95d4895c7c38e50a8152f6 100644 (file)
@@ -1,16 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8;">
-<link rel="stylesheet" type="text/css" href="_file/style.css">
-</head>
-<body class="body" marginwidth="0" marginheight="0">
+  <head>
+      <link rel="stylesheet" type="text/css" href="_file/style.css" />
+      <meta http-equiv="Content-Type" content="text/html; charset=utf-8;" />
+      <tal:block tal:condition="python:request.form.has_key('property')">
+      <title tal:content="string:${request/form/property/value} help">Property</title>
+      <script language="Javascript" type="text/javascript" 
+          tal:content="structure string:
+          // this is the name of the field in the original form that we're working on
+          field = '${request/form/property/value}';" >
+      </script>
+      <script src="_file/help_controls.js" type="text/javascript"><!-- 
+      //--></script>
+      </tal:block>
+  </head>
+ <body class="body" marginwidth="0" marginheight="0" onload="resetList();">
+ <form name="frm_help" action=""
+       tal:define="start python:int(request.form[':startwith'].value);
+                   batch python:utils.Batch(context.list(), 500, start);
+                   props python:request.form['properties'].value.split(',')">
+     
+     <div id="classhelp-controls" tal:condition="python:start==0">
+       <!--input type="button" name="btn_clear" 
+              value="Clear" onClick="clearList()"/ -->
+       <input type="text" name="text_preview" size="24" class="preview"
+              onchange="reviseList(this.value);"/>
+       <input type="button" name="btn_reset" 
+              value=" Cancel " onclick="resetList(); window.close();"/>
+       <input type="button" name="btn_apply" class="apply"
+              value=" Apply " onclick="updateList(); window.close();"/>     
+     </div>
 
-<table class="classhelp"
-       tal:define="props python:request.form['properties'].value.split(',')">
-<tr><th tal:repeat="prop props" tal:content="prop"></th></tr>
-<tr tal:repeat="item context/list">
- <td tal:repeat="prop props" tal:content="python:item[prop]"></td>
-</tr>
-</table>
+     <table class="classhelp">
+       <tr>
+           <th>&nbsp;<b>x</b></th>
+           <th tal:repeat="prop props" tal:content="prop"></th>
+       </tr>
+       <tr tal:repeat="item batch">
+           <td>
+               <input type="checkbox" name="check" 
+               onclick="updatePreview();"
+               tal:condition="python:start==0"
+               tal:define="attr python:item[props[0]]"
+               tal:attributes="value attr; id attr" />
+           </td>
+           <td tal:repeat="prop props">
+               <label class="classhelp-label"
+                      tal:attributes="for python:item[props[0]]" 
+                      tal:content="structure python:item[prop]"></label>
+           </td>
+       </tr>
+       <tr>
+           <th>&nbsp;<b>x</b></th>
+           <th tal:repeat="prop props" tal:content="prop"></th>
+       </tr>
+     </table>
+     <table width="100%">
+      <tr class="navigation">
+       <th>
+        <a tal:define="prev batch/previous" tal:condition="prev"
+           tal:attributes="href string:${request/classname}?:template=help&:startwith=${prev/first}&properties=${request/form/properties/value}">&lt;&lt; previous</a>
+        &nbsp;
+       </th>
+       <th tal:content="python: '%d...%d out of %d'%(batch.start,
+               batch.start+batch.length-1, batch.sequence_length)">current</th>
+       <th>
+        <a tal:define="next batch/next" tal:condition="next"
+           tal:attributes="href string:${request/classname}?:template=help&:startwith=${next/first}&properties=${request/form/properties/value}">next &gt;&gt;</a>
+        &nbsp;
+       </th>
+      </tr>
+     </table>
 
-</body>
+ </form>
+ </body>
+</html>
+<!-- SHA: 97d46e2f10096a13afc6e5c48a3e6175ada9738f -->