Beispiel #1
0
 def displayTableContents(self, req):
   list = '<table class="%s" cellspacing="0" border="0" cellpadding="0">' % (self.klass)
   list += '<thead><tr>'
   columns = self.getColumns(req)
   sortCol = self.getSortColumn(req,columns)
   if sortCol:
     sortOrder = self.getSortOrder(req, sortCol)
   else:
     sortOrder = None
   for column in columns:
     th = '<th'
     if column.width:
       th += ' width="%s"' % (column.width)
     if sortCol and column.id == sortCol.id:
       th += ' class="selected"'
     if column.style:
       th += ' style="%s"' % (column.style)
     th += '>'
     if sortCol and column.id == sortCol.id:
       if sortOrder == "asc":
         dir = "desc"
         klass = "asc"
         msg = "(%s)" % req.bundle["pywebmvc.common.ascending"]
       else:
         dir = "asc"
         klass = "desc"
         msg = "(%s)" % req.bundle["pywebmvc.common.descending"]
       params = self.getPageParams(req, exclude=[self.getSortOrderParam(), self.getOrderByParam()])
       params += [(self.getSortOrderParam(), dir), (self.getOrderByParam(), column.id)]
       paramStr = htmlutil.getParameterString(params)
       th += '<div class="sorted">%s</div>' % (req.bundle[column.label])
       th += '<a href="?%s" class="%s"><span>%s</span>&nbsp;</a>' % (paramStr, klass, msg)
     else:
       params = self.getPageParams(req, exclude=[self.getSortOrderParam(), self.getOrderByParam()])
       params += [(self.getOrderByParam(), column.id)]
       paramStr = htmlutil.getParameterString(params)
       if column.sortable:
         th += '<a href="?%s" class="sortable">%s</a>' % (
           paramStr, req.bundle[column.label])
       else:
         th += req.bundle[column.label]
     th += '</th>'
     list += th
   list += '</tr></thead>'
   list += '<tbody>'
   index = 0
   items = self.getItems(req,sortCol,sortOrder,self.getStartIndex(req),self.getEndIndex(req))
   if items:
     for item in items:
       list += self._generateCellRow(req, index, item, columns)
       index += 1
   else:
     list += '<tr><td colspan="%i">%s</td></tr>' % (
       len(columns),
       req.bundle.getMessage("pywebmvc.tools.table.message.emptyList", self.getTypeString(req)))
   list += self.bottomOfTableHook(req)
   list += '</tbody></table>'
   return list
Beispiel #2
0
 def getPager(self,req):
   size = self.__getListSize(req) 
   pageSize = self.__getCurrentPageSize(req)
   curPage = self.getCurrentPage(req)
   numPages = int(math.ceil(float(size)/pageSize))
   html = ""
   paramString = ""
   parameters = self.getPageParams(req,exclude=[self.getPageParamName()])
   if parameters:
     paramString = "&"+htmlutil.getParameterString(parameters)
   if size > pageSize: 
     html += '<div class="pager">'
     if curPage > 1:
       html += '<a href="?%s=0%s">&lt;&lt;</a>&nbsp;' % (self.getPageParamName(), paramString)
     if curPage > 0:
       html += '<a href="?%s=%i%s">&lt;</a>&nbsp;' % (self.getPageParamName(), curPage - 1, paramString)
     startPage = max(0,curPage -5)
     stopPage = min(max(curPage + 5, 10), numPages)
     if startPage > 0:
       html += "...&nbsp;"
     for i in range(startPage,stopPage):
       if i == curPage:
         html += '<span class="curPage">%i</span>&nbsp;' % (i+1)
       else:
         html += '<a href="?%s=%i%s">%i</a>&nbsp;' % (self.getPageParamName(), i,paramString,i+1)
     if stopPage < numPages - 1:
       html += "...&nbsp;"
     if curPage < numPages - 1:
       html += '<a href="?%s=%i%s">&gt;</a>&nbsp;' % (self.getPageParamName(), curPage + 1, paramString)
     if curPage < numPages - 2:
       html += '<a href="?%s=%i%s">&gt;&gt;</a>&nbsp;' % (self.getPageParamName(), numPages - 1, paramString)
     html += '</div>'
   return html