Diff for /documentViewer/documentViewer.py between versions 1.175.2.26 and 1.175.2.33

version 1.175.2.26, 2011/08/15 19:09:08 version 1.175.2.33, 2011/08/29 14:39:50
Line 1 Line 1
 from OFS.Folder import Folder  from OFS.Folder import Folder
 from OFS.Image import File  
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile   from Products.PageTemplates.PageTemplateFile import PageTemplateFile 
   from App.ImageFile import ImageFile
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
 from AccessControl import getSecurityManager  from AccessControl import getSecurityManager
 from Globals import package_home  from Globals import package_home
   
 #from Ft.Xml import EMPTY_NAMESPACE, Parse   
 #import Ft.Xml.Domlette  
   
 import xml.etree.ElementTree as ET  import xml.etree.ElementTree as ET
   
 import os.path  import os
 import sys  import sys
 import urllib  import urllib
 import logging  import logging
Line 20  import urlparse Line 17  import urlparse
 import re  import re
 import string  import string
   
 from SrvTxtUtils import getInt, getText, getHttpData  from SrvTxtUtils import getInt, getText, getHttpData, refreshingImageFileIndexHtml
   
 def logger(txt,method,txt2):  
     """logging"""  
     logging.info(txt+ txt2)  
       
           
 def serializeNode(node, encoding="utf-8"):  def serializeNode(node, encoding="utf-8"):
     """returns a string containing node as XML"""      """returns a string containing node as XML"""
Line 106  def getParentPath(path, cnt=1): Line 98  def getParentPath(path, cnt=1):
     # split by /, shorten, and reassemble      # split by /, shorten, and reassemble
     return '/'.join(path.split('/')[0:-cnt])      return '/'.join(path.split('/')[0:-cnt])
   
   
 ##  ##
 ## documentViewer class  ## documentViewer class
 ##  ##
Line 124  class documentViewer(Folder): Line 115  class documentViewer(Folder):
   
     # templates and forms      # templates and forms
     viewer_text = PageTemplateFile('zpt/viewer_text', globals())      viewer_text = PageTemplateFile('zpt/viewer_text', globals())
       viewer_images = PageTemplateFile('zpt/viewer_images', globals())
     viewer_main = PageTemplateFile('zpt/viewer_main', globals())      viewer_main = PageTemplateFile('zpt/viewer_main', globals())
     toc_thumbs = PageTemplateFile('zpt/toc_thumbs', globals())      toc_thumbs = PageTemplateFile('zpt/toc_thumbs', globals())
     toc_text = PageTemplateFile('zpt/toc_text', globals())      toc_text = PageTemplateFile('zpt/toc_text', globals())
Line 137  class documentViewer(Folder): Line 129  class documentViewer(Folder):
     page_main_pureXml = PageTemplateFile('zpt/page_main_pureXml', globals())      page_main_pureXml = PageTemplateFile('zpt/page_main_pureXml', globals())
     head_main = PageTemplateFile('zpt/head_main', globals())      head_main = PageTemplateFile('zpt/head_main', globals())
     info_xml = PageTemplateFile('zpt/info_xml', globals())      info_xml = PageTemplateFile('zpt/info_xml', globals())
     # TODO: can this be nicer?      docuviewer_css = ImageFile('css/docuviewer.css',globals())
     docuviewer_css = File('docuviewer_css','',open(os.path.join(package_home(globals()),'css/docuviewer.css')), content_type='text/css')      # make ImageFile better for development
       docuviewer_css.index_html = refreshingImageFileIndexHtml
           
           
     thumbs_main_rss = PageTemplateFile('zpt/thumbs_main_rss', globals())      thumbs_main_rss = PageTemplateFile('zpt/thumbs_main_rss', globals())
Line 555  class documentViewer(Folder): Line 548  class documentViewer(Folder):
             # override image path from texttool with url              # override image path from texttool with url
             docinfo['imagePath'] = url.replace('/mpiwg/online/', '', 1)              docinfo['imagePath'] = url.replace('/mpiwg/online/', '', 1)
   
               
   
         # number of images from digilib          # number of images from digilib
         if docinfo.get('imagePath', None):          if docinfo.get('imagePath', None):
             docinfo['imageURL'] = self.digilibBaseUrl + "/servlet/Scaler?fn=" + docinfo['imagePath']              docinfo['imageURL'] = self.digilibBaseUrl + "/servlet/Scaler?fn=" + docinfo['imagePath']
Line 786  class documentViewer(Folder): Line 777  class documentViewer(Folder):
         return pageinfo          return pageinfo
   
   
     def getPageBatch(self, start=None, rows=None, cols=None, pageFlowLtr=True, pageZero=False, minIdx=1, maxIdx=0):      def getPageBatch(self, start=1, rows=10, cols=2, pageFlowLtr=True, pageZero=False, minIdx=1, maxIdx=0):
         """returns dict with array of page informations for one screenfull of thumbnails"""          """returns dict with array of page informations for one screenfull of thumbnails"""
           batch = {}
         grpsize = rows * cols          grpsize = rows * cols
         if maxIdx == 0:          if maxIdx == 0:
             maxIdx = start + grpsize              maxIdx = start + grpsize
   
           nb = int(math.ceil(maxIdx / float(grpsize)))
           # list of all batch start and end points
           batches = []
           if pageZero:
               ofs = 0
           else:
               ofs = 1
               
           for i in range(nb):
               s = i * grpsize + ofs
               e = min((i + 1) * grpsize + ofs - 1, maxIdx)
               batches.append({'start':s, 'end':e})
               
           batch['batches'] = batches
   
         pages = []          pages = []
         if pageZero and start == 1:          if pageZero and start == 1:
             # correct beginning              # correct beginning
Line 815  class documentViewer(Folder): Line 822  class documentViewer(Folder):
                                   
             pages.append(row)              pages.append(row)
                           
         batch = {}  
         if start > 1:          if start > 1:
             batch['prevStart'] = max(start - grpsize, 1)              batch['prevStart'] = max(start - grpsize, 1)
         else:          else:
Line 827  class documentViewer(Folder): Line 833  class documentViewer(Folder):
             batch['nextStart'] = None              batch['nextStart'] = None
   
         batch['pages'] = pages          batch['pages'] = pages
         #logging.debug("getPageList returns=%s"%(batch))          return batch
           
       def getBatch(self, start=1, size=10, end=0, data=None, fullData=True):
           """returns dict with information for one screenfull of data."""
           batch = {}
           if end == 0:
               end = start + size                    
               
           nb = int(math.ceil(end / float(size)))
           # list of all batch start and end points
           batches = []
           for i in range(nb):
               s = i * size + 1
               e = min((i + 1) * size, end)
               batches.append({'start':s, 'end':e})
               
           batch['batches'] = batches
           # list of elements in this batch
           this = []
           j = 0
           for i in range(start, min(start+size, end)):
               if data:
                   if fullData:
                       d = data[i]
                   else:
                       d = data[j]
                       j += 1
               
               else:
                   d = i+1
                   
               this.append(d)
               
           batch['this'] = this
           if start > 1:
               batch['prevStart'] = max(start - size, 1)
           else:
               batch['prevStart'] = None
               
           if start + size < end:
               batch['nextStart'] = start + size
           else:
               batch['nextStart'] = None
           
         return batch          return batch
                   
   
Line 862  def manage_AddDocumentViewer(self,id,ima Line 911  def manage_AddDocumentViewer(self,id,ima
           
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
   
 ## DocumentViewerTemplate class  
 class DocumentViewerTemplate(ZopePageTemplate):  
     """Template for document viewer"""  
     meta_type="DocumentViewer Template"  
   
   
 def manage_addDocumentViewerTemplateForm(self):  
     """Form for adding"""  
     pt=PageTemplateFile('zpt/addDocumentViewerTemplate', globals()).__of__(self)  
     return pt()  
   
 def manage_addDocumentViewerTemplate(self, id='viewer_main', title=None, text=None,  
                            REQUEST=None, submit=None):  
     "Add a Page Template with optional file content."  
   
     self._setObject(id, DocumentViewerTemplate(id))  
     ob = getattr(self, id)  
     txt=file(os.path.join(package_home(globals()),'zpt/viewer_main.zpt'),'r').read()  
     logging.info("txt %s:"%txt)  
     ob.pt_edit(txt,"text/html")  
     if title:  
         ob.pt_setTitle(title)  
     try:  
         u = self.DestinationURL()  
     except AttributeError:  
         u = REQUEST['URL1']  
           
     u = "%s/%s" % (u, urllib.quote(id))  
     REQUEST.RESPONSE.redirect(u+'/manage_main')  
     return ''  
   
   
       

Removed from v.1.175.2.26  
changed lines
  Added in v.1.175.2.33


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>