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