comparison documentViewer.py @ 511:551ca1641a5e elementtree

more cleanup. search really works now.
author casties
date Tue, 28 Feb 2012 18:21:59 +0100
parents 9d05befdd462
children 67095296c95a
comparison
equal deleted inserted replaced
510:4fb35343d2e7 511:551ca1641a5e
121 toc_thumbs = PageTemplateFile('zpt/toc_thumbs', globals()) 121 toc_thumbs = PageTemplateFile('zpt/toc_thumbs', globals())
122 toc_text = PageTemplateFile('zpt/toc_text', globals()) 122 toc_text = PageTemplateFile('zpt/toc_text', globals())
123 toc_figures = PageTemplateFile('zpt/toc_figures', globals()) 123 toc_figures = PageTemplateFile('zpt/toc_figures', globals())
124 toc_none = PageTemplateFile('zpt/toc_none', globals()) 124 toc_none = PageTemplateFile('zpt/toc_none', globals())
125 common_template = PageTemplateFile('zpt/common_template', globals()) 125 common_template = PageTemplateFile('zpt/common_template', globals())
126 search_template = PageTemplateFile('zpt/search_template', globals())
126 info_xml = PageTemplateFile('zpt/info_xml', globals()) 127 info_xml = PageTemplateFile('zpt/info_xml', globals())
127 docuviewer_css = ImageFile('css/docuviewer.css',globals()) 128 docuviewer_css = ImageFile('css/docuviewer.css',globals())
128 # make ImageFile better for development 129 # make ImageFile better for development
129 docuviewer_css.index_html = refreshingImageFileIndexHtml 130 docuviewer_css.index_html = refreshingImageFileIndexHtml
130 jquery_js = ImageFile('js/jquery.js',globals()) 131 jquery_js = ImageFile('js/jquery.js',globals())
708 pageinfo['groupsize'] = grpsize 709 pageinfo['groupsize'] = grpsize
709 # is start is empty use one around current 710 # is start is empty use one around current
710 start = getInt(start, default=(math.ceil(float(current)/float(grpsize))*grpsize-(grpsize-1))) 711 start = getInt(start, default=(math.ceil(float(current)/float(grpsize))*grpsize-(grpsize-1)))
711 # int(current / grpsize) * grpsize +1)) 712 # int(current / grpsize) * grpsize +1))
712 pageinfo['start'] = start 713 pageinfo['start'] = start
713 714 # get number of pages
714 np = int(docinfo.get('numPages', 0)) 715 np = int(docinfo.get('numPages', 0))
715 if np == 0: 716 if np == 0:
716 # numPages unknown - maybe we can get it from text page 717 # numPages unknown - maybe we can get it from text page
717 if docinfo.get('textURLPath', None): 718 if docinfo.get('textURLPath', None):
718 # cache text page as well 719 # cache text page as well
719 pageinfo['textPage'] = self.getTextPage(mode=viewLayer, pn=current, docinfo=docinfo, pageinfo=pageinfo) 720 pageinfo['textPage'] = self.getTextPage(mode=viewLayer, pn=current, docinfo=docinfo, pageinfo=pageinfo)
720 np = int(docinfo.get('numPages', 0)) 721 np = int(docinfo.get('numPages', 0))
721 722
723 # cache table of contents
724 pageinfo['tocPageSize'] = getInt(self.REQUEST.get('tocPageSize', 30))
722 pageinfo['numgroups'] = int(np / grpsize) 725 pageinfo['numgroups'] = int(np / grpsize)
723 if np % grpsize > 0: 726 if np % grpsize > 0:
724 pageinfo['numgroups'] += 1 727 pageinfo['numgroups'] += 1
725 728
726 pageFlowLtr = docinfo.get('pageFlow', 'ltr') != 'rtl' 729 pageFlowLtr = docinfo.get('pageFlow', 'ltr') != 'rtl'
728 # add zeroth page for two columns 731 # add zeroth page for two columns
729 pageZero = (cols == 2 and (pageFlowLtr != oddScanLeft)) 732 pageZero = (cols == 2 and (pageFlowLtr != oddScanLeft))
730 pageinfo['pageZero'] = pageZero 733 pageinfo['pageZero'] = pageZero
731 pageinfo['pageBatch'] = self.getPageBatch(start=start, rows=rows, cols=cols, pageFlowLtr=pageFlowLtr, pageZero=pageZero, minIdx=1, maxIdx=np) 734 pageinfo['pageBatch'] = self.getPageBatch(start=start, rows=rows, cols=cols, pageFlowLtr=pageFlowLtr, pageZero=pageZero, minIdx=1, maxIdx=np)
732 735
733 # TODO: do we need this here?
734 pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg') 736 pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg')
735 pageinfo['tocPageSize'] = getInt(self.REQUEST.get('tocPageSize', 30)) 737
738 # cache search results
736 pageinfo['resultPageSize'] = getInt(self.REQUEST.get('resultPageSize', 10)) 739 pageinfo['resultPageSize'] = getInt(self.REQUEST.get('resultPageSize', 10))
737 pageinfo['tocPN'] = getInt(self.REQUEST.get('tocPN', '1')) 740 query = self.REQUEST.get('query',None)
738 pageinfo['resultPN'] = getInt(self.REQUEST.get('resultPN','1')) 741 pageinfo['query'] = query
739 742 if query:
740 # limit tocPN TODO: do we need this? 743 queryType = self.REQUEST.get('queryType', 'fulltextMorph')
741 if 'tocSize_%s'%tocMode in docinfo: 744 pageinfo['queryType'] = queryType
742 tocSize = docinfo['tocSize_%s'%tocMode] 745 pageinfo['resultStart'] = getInt(self.REQUEST.get('resultStart', '1'))
743 tocPageSize = pageinfo['tocPageSize'] 746 self.getSearchResults(mode=queryType, query=query, pageinfo=pageinfo, docinfo=docinfo)
744 # cached toc 747
745 if tocSize%tocPageSize>0: 748 # highlighting
746 tocPages=tocSize/tocPageSize+1 749 highlightQuery = self.REQUEST.get('highlightQuery', None)
747 else: 750 if highlightQuery:
748 tocPages=tocSize/tocPageSize 751 pageinfo['highlightQuery'] = highlightQuery
749 752 pageinfo['highlightElement'] = self.REQUEST.get('highlightElement', '')
750 pageinfo['tocPN'] = min(tocPages,pageinfo['tocPN']) 753 pageinfo['highlightElementPos'] = self.REQUEST.get('highlightElementPos', '')
751 754
752 return pageinfo 755 return pageinfo
753 756
754 757
755 def getPageBatch(self, start=1, rows=10, cols=2, pageFlowLtr=True, pageZero=False, minIdx=1, maxIdx=0): 758 def getPageBatch(self, start=1, rows=10, cols=2, pageFlowLtr=True, pageZero=False, minIdx=1, maxIdx=0):