Mercurial > hg > documentViewer
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 |