comparison documentViewer.py @ 471:415a7026eeda elementtree

split viewMode in viewMode and viewType
author casties
date Thu, 04 Aug 2011 16:57:02 +0200
parents 15394486ab75
children 9705161bc888
comparison
equal deleted inserted replaced
470:c1ba044d4961 471:415a7026eeda
264 264
265 return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode) 265 return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode)
266 266
267 267
268 security.declareProtected('View','index_html') 268 security.declareProtected('View','index_html')
269 def index_html(self,url,mode="texttool",viewMode="auto",tocMode="thumbs",start=None,pn=1,mk=None): 269 def index_html(self,url,mode="texttool",viewMode="auto",viewTYpe=None,tocMode="thumbs"):
270 """ 270 """
271 view it 271 view page
272 @param url: url which contains display information
272 @param mode: defines how to access the document behind url 273 @param mode: defines how to access the document behind url
273 @param url: url which contains display information 274 @param viewMode: 'images': display images, 'text': display text, default is 'auto'
274 @param viewMode: if images display images, if text display text, default is auto (text,images or auto) 275 @param viewType: sub-type of viewMode, e.g. 'dict' for viewMode='text'
275 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none) 276 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none)
276 """ 277 """
277 278
278 logging.debug("documentViewer (index) mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn)) 279 logging.debug("documentViewer (index) mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn))
279 280
289 290
290 if tocMode != "thumbs": 291 if tocMode != "thumbs":
291 # get table of contents 292 # get table of contents
292 docinfo = self.getToc(mode=tocMode, docinfo=docinfo) 293 docinfo = self.getToc(mode=tocMode, docinfo=docinfo)
293 294
294 # auto viewMode: text_dict if text else images 295 # auto viewMode: text if there is a text else images
295 if viewMode=="auto": 296 if viewMode=="auto":
296 if docinfo.get('textURL', None) or docinfo.get('textURLPath', None): 297 if docinfo.get('textURL', None) or docinfo.get('textURLPath', None):
297 viewMode="text_dict" 298 viewMode = "text"
299 viewType = "dict"
298 else: 300 else:
299 viewMode="images" 301 viewMode = "images"
300 302
301 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, tocMode=tocMode) 303 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viweType=viewType, tocMode=tocMode)
302 304
303 # get template /template/viewer_main 305 # get template /template/viewer_main
304 pt = getattr(self.template, 'viewer_main') 306 pt = getattr(self.template, 'viewer_main')
305 # and execute with parameters 307 # and execute with parameters
306 return pt(docinfo=docinfo, pageinfo=pageinfo, viewMode=viewMode, mk=self.generateMarks(mk)) 308 return pt(docinfo=docinfo, pageinfo=pageinfo)
307 309
308 def generateMarks(self,mk): 310 def generateMarks(self,mk):
309 ret="" 311 ret=""
310 if mk is None: 312 if mk is None:
311 return "" 313 return ""
662 docinfo['title']=getText(dom.find(".//title")) 664 docinfo['title']=getText(dom.find(".//title"))
663 docinfo['date']=getText(dom.find(".//date")) 665 docinfo['date']=getText(dom.find(".//date"))
664 return docinfo 666 return docinfo
665 667
666 668
667 def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None): 669 def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, viewType=None, tocMode=None):
668 """returns pageinfo with the given parameters""" 670 """returns pageinfo with the given parameters"""
669 pageinfo = {} 671 pageinfo = {}
672 pageinfo['viewMode'] = viewMode
673 pageinfo['viewType'] = viewType
674 pageinfo['tocMode'] = tocMode
675
670 current = getInt(current) 676 current = getInt(current)
671 pageinfo['current'] = current 677 pageinfo['current'] = current
672 rows = int(rows or self.thumbrows) 678 rows = int(rows or self.thumbrows)
673 pageinfo['rows'] = rows 679 pageinfo['rows'] = rows
674 cols = int(cols or self.thumbcols) 680 cols = int(cols or self.thumbcols)
685 np = int(docinfo.get('numPages', 0)) 691 np = int(docinfo.get('numPages', 0))
686 if np == 0: 692 if np == 0:
687 # numPages unknown - maybe we can get it from text page 693 # numPages unknown - maybe we can get it from text page
688 if docinfo.get('textURLPath', None): 694 if docinfo.get('textURLPath', None):
689 # cache text page as well 695 # cache text page as well
690 pageinfo['textPage'] = self.getTextPage(mode=viewMode, pn=pn, docinfo=docinfo, pageinfo=pageinfo) 696 pageinfo['textPage'] = self.getTextPage(mode=viewType, pn=pn, docinfo=docinfo, pageinfo=pageinfo)
691 np = int(docinfo.get('numPages', 0)) 697 np = int(docinfo.get('numPages', 0))
692 698
693 pageinfo['end'] = min(pageinfo['end'], np) 699 pageinfo['end'] = min(pageinfo['end'], np)
694 pageinfo['numgroups'] = int(np / grpsize) 700 pageinfo['numgroups'] = int(np / grpsize)
695 if np % grpsize > 0: 701 if np % grpsize > 0:
696 pageinfo['numgroups'] += 1 702 pageinfo['numgroups'] += 1
697 703
698 pageinfo['viewMode'] = viewMode
699 pageinfo['tocMode'] = tocMode
700 pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg') 704 pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg')
701 #pageinfo['optionToggle'] = self.REQUEST.get('optionToggle','1')
702 pageinfo['query'] = self.REQUEST.get('query','') 705 pageinfo['query'] = self.REQUEST.get('query','')
703 pageinfo['queryType'] = self.REQUEST.get('queryType','') 706 pageinfo['queryType'] = self.REQUEST.get('queryType','')
704 pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext') 707 pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext')
705 pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','') 708 pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','')
706 pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30') 709 pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30')
707 pageinfo['queryPageSize'] =self.REQUEST.get('queryPageSize', '10') 710 pageinfo['queryPageSize'] =self.REQUEST.get('queryPageSize', '10')
708 pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1') 711 pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1')
709 # WTF?: 712 # WTF?:
710 toc = int(pageinfo['tocPN']) 713 toc = int(pageinfo['tocPN'])
711 pageinfo['textPages'] =int(toc) 714 pageinfo['textPages'] = int(toc)
712 715
713 # What does this do? 716 # What does this do?
714 if 'tocSize_%s'%tocMode in docinfo: 717 if 'tocSize_%s'%tocMode in docinfo:
715 tocSize = int(docinfo['tocSize_%s'%tocMode]) 718 tocSize = int(docinfo['tocSize_%s'%tocMode])
716 tocPageSize = int(pageinfo['tocPageSize']) 719 tocPageSize = int(pageinfo['tocPageSize'])