comparison documentViewer.py @ 503:030251fe9dbc elementtree

more cleanup. made viewType into viewLayer and viewType=xml into viewMode=xml.
author casties
date Thu, 16 Feb 2012 14:30:01 +0100
parents 29c6d09a506c
children 67014399894d
comparison
equal deleted inserted replaced
502:daf36d0fcfee 503:030251fe9dbc
113 metadataService = None 113 metadataService = None
114 """MetaDataFolder instance""" 114 """MetaDataFolder instance"""
115 115
116 # templates and forms 116 # templates and forms
117 viewer_text = PageTemplateFile('zpt/viewer_text', globals()) 117 viewer_text = PageTemplateFile('zpt/viewer_text', globals())
118 viewer_xml = PageTemplateFile('zpt/viewer_xml', globals())
118 viewer_images = PageTemplateFile('zpt/viewer_images', globals()) 119 viewer_images = PageTemplateFile('zpt/viewer_images', globals())
119 viewer_index = PageTemplateFile('zpt/viewer_index', globals()) 120 viewer_index = PageTemplateFile('zpt/viewer_index', globals())
120 toc_thumbs = PageTemplateFile('zpt/toc_thumbs', globals()) 121 toc_thumbs = PageTemplateFile('zpt/toc_thumbs', globals())
121 toc_text = PageTemplateFile('zpt/toc_text', globals()) 122 toc_text = PageTemplateFile('zpt/toc_text', globals())
122 toc_figures = PageTemplateFile('zpt/toc_figures', globals()) 123 toc_figures = PageTemplateFile('zpt/toc_figures', globals())
256 257
257 return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode) 258 return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode)
258 259
259 260
260 security.declareProtected('View','index_html') 261 security.declareProtected('View','index_html')
261 def index_html(self,url,mode="texttool",viewMode="auto",viewType=None,tocMode="thumbs",start=1,pn=1): 262 def index_html(self,url,mode="texttool",viewMode="auto",viewLayer=None,tocMode="thumbs",start=1,pn=1):
262 """ 263 """
263 view page 264 view page
264 @param url: url which contains display information 265 @param url: url which contains display information
265 @param mode: defines how to access the document behind url 266 @param mode: defines how to access the document behind url
266 @param viewMode: 'images': display images, 'text': display text, default is 'auto' 267 @param viewMode: 'images': display images, 'text': display text, 'xml': display xml, default is 'auto'
267 @param viewType: sub-type of viewMode, e.g. 'dict' for viewMode='text' 268 @param viewLayer: sub-type of viewMode, e.g. 'dict' for viewMode='text'
268 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none) 269 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none)
269 """ 270 """
270 271
271 logging.debug("documentViewer(index_html) mode=%s url=%s viewMode=%s viewType=%s start=%s pn=%s"%(mode,url,viewMode,viewType,start,pn)) 272 logging.debug("documentViewer(index_html) mode=%s url=%s viewMode=%s viewLayer=%s start=%s pn=%s"%(mode,url,viewMode,viewLayer,start,pn))
272 273
273 if not hasattr(self, 'template'): 274 if not hasattr(self, 'template'):
274 # this won't work 275 # this won't work
275 logging.error("template folder missing!") 276 logging.error("template folder missing!")
276 return "ERROR: template folder missing!" 277 return "ERROR: template folder missing!"
286 287
287 # auto viewMode: text if there is a text else images 288 # auto viewMode: text if there is a text else images
288 if viewMode=="auto": 289 if viewMode=="auto":
289 if docinfo.get('textURL', None) or docinfo.get('textURLPath', None): 290 if docinfo.get('textURL', None) or docinfo.get('textURLPath', None):
290 viewMode = "text" 291 viewMode = "text"
291 viewType = "dict" 292 viewLayer = "dict"
292 else: 293 else:
293 viewMode = "images" 294 viewMode = "images"
294 295
295 elif viewMode == "text_dict": 296 elif viewMode == "text_dict":
296 # legacy fix 297 # legacy fix
297 viewMode = "text" 298 viewMode = "text"
298 viewType = "dict" 299 viewLayer = "dict"
299 300
300 # stringify viewType 301 # stringify viewLayer
301 if isinstance(viewType, list): 302 if isinstance(viewLayer, list):
302 logging.debug("index_html: viewType is list:%s"%viewType) 303 logging.debug("index_html: viewLayer is list:%s"%viewLayer)
303 viewType = ','.join([t for t in viewType if t]) 304 viewLayer = ','.join([t for t in viewLayer if t])
304 305
305 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode) 306 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewLayer=viewLayer, tocMode=tocMode)
306 307
307 # get template /template/viewer_$viewMode 308 # get template /template/viewer_$viewMode
308 pt = getattr(self.template, 'viewer_%s'%viewMode, None) 309 pt = getattr(self.template, 'viewer_%s'%viewMode, None)
309 if pt is None: 310 if pt is None:
310 logging.error("No template for viewMode=%s!"%viewMode) 311 logging.error("No template for viewMode=%s!"%viewMode)
701 docinfo['title']=getText(dom.find(".//title")) 702 docinfo['title']=getText(dom.find(".//title"))
702 docinfo['date']=getText(dom.find(".//date")) 703 docinfo['date']=getText(dom.find(".//date"))
703 return docinfo 704 return docinfo
704 705
705 706
706 def getPageinfo(self, current=None, start=None, rows=None, cols=None, docinfo=None, viewMode=None, viewType=None, tocMode=None): 707 def getPageinfo(self, current=None, start=None, rows=None, cols=None, docinfo=None, viewMode=None, viewLayer=None, tocMode=None):
707 """returns pageinfo with the given parameters""" 708 """returns pageinfo with the given parameters"""
708 logging.debug("getPageInfo(current=%s, start=%s, rows=%s, cols=%s, viewMode=%s, viewType=%s, tocMode=%s)"%(current,start,rows,cols,viewMode,viewType,tocMode)) 709 logging.debug("getPageInfo(current=%s, start=%s, rows=%s, cols=%s, viewMode=%s, viewLayer=%s, tocMode=%s)"%(current,start,rows,cols,viewMode,viewLayer,tocMode))
709 pageinfo = {} 710 pageinfo = {}
710 pageinfo['viewMode'] = viewMode 711 pageinfo['viewMode'] = viewMode
711 pageinfo['viewType'] = viewType 712 pageinfo['viewLayer'] = viewLayer
712 pageinfo['tocMode'] = tocMode 713 pageinfo['tocMode'] = tocMode
713 714
714 current = getInt(current) 715 current = getInt(current)
715 pageinfo['current'] = current 716 pageinfo['current'] = current
716 pageinfo['pn'] = current 717 pageinfo['pn'] = current
728 np = int(docinfo.get('numPages', 0)) 729 np = int(docinfo.get('numPages', 0))
729 if np == 0: 730 if np == 0:
730 # numPages unknown - maybe we can get it from text page 731 # numPages unknown - maybe we can get it from text page
731 if docinfo.get('textURLPath', None): 732 if docinfo.get('textURLPath', None):
732 # cache text page as well 733 # cache text page as well
733 pageinfo['textPage'] = self.getTextPage(mode=viewType, pn=current, docinfo=docinfo, pageinfo=pageinfo) 734 pageinfo['textPage'] = self.getTextPage(mode=viewLayer, pn=current, docinfo=docinfo, pageinfo=pageinfo)
734 np = int(docinfo.get('numPages', 0)) 735 np = int(docinfo.get('numPages', 0))
735 736
736 pageinfo['numgroups'] = int(np / grpsize) 737 pageinfo['numgroups'] = int(np / grpsize)
737 if np % grpsize > 0: 738 if np % grpsize > 0:
738 pageinfo['numgroups'] += 1 739 pageinfo['numgroups'] += 1