Mercurial > hg > documentViewer
diff 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 |
line wrap: on
line diff
--- a/documentViewer.py Tue Feb 28 10:39:21 2012 +0100 +++ b/documentViewer.py Tue Feb 28 18:21:59 2012 +0100 @@ -123,6 +123,7 @@ toc_figures = PageTemplateFile('zpt/toc_figures', globals()) toc_none = PageTemplateFile('zpt/toc_none', globals()) common_template = PageTemplateFile('zpt/common_template', globals()) + search_template = PageTemplateFile('zpt/search_template', globals()) info_xml = PageTemplateFile('zpt/info_xml', globals()) docuviewer_css = ImageFile('css/docuviewer.css',globals()) # make ImageFile better for development @@ -710,7 +711,7 @@ start = getInt(start, default=(math.ceil(float(current)/float(grpsize))*grpsize-(grpsize-1))) # int(current / grpsize) * grpsize +1)) pageinfo['start'] = start - + # get number of pages np = int(docinfo.get('numPages', 0)) if np == 0: # numPages unknown - maybe we can get it from text page @@ -719,6 +720,8 @@ pageinfo['textPage'] = self.getTextPage(mode=viewLayer, pn=current, docinfo=docinfo, pageinfo=pageinfo) np = int(docinfo.get('numPages', 0)) + # cache table of contents + pageinfo['tocPageSize'] = getInt(self.REQUEST.get('tocPageSize', 30)) pageinfo['numgroups'] = int(np / grpsize) if np % grpsize > 0: pageinfo['numgroups'] += 1 @@ -730,24 +733,24 @@ pageinfo['pageZero'] = pageZero pageinfo['pageBatch'] = self.getPageBatch(start=start, rows=rows, cols=cols, pageFlowLtr=pageFlowLtr, pageZero=pageZero, minIdx=1, maxIdx=np) - # TODO: do we need this here? pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg') - pageinfo['tocPageSize'] = getInt(self.REQUEST.get('tocPageSize', 30)) - pageinfo['resultPageSize'] = getInt(self.REQUEST.get('resultPageSize', 10)) - pageinfo['tocPN'] = getInt(self.REQUEST.get('tocPN', '1')) - pageinfo['resultPN'] = getInt(self.REQUEST.get('resultPN','1')) - # limit tocPN TODO: do we need this? - if 'tocSize_%s'%tocMode in docinfo: - tocSize = docinfo['tocSize_%s'%tocMode] - tocPageSize = pageinfo['tocPageSize'] - # cached toc - if tocSize%tocPageSize>0: - tocPages=tocSize/tocPageSize+1 - else: - tocPages=tocSize/tocPageSize - - pageinfo['tocPN'] = min(tocPages,pageinfo['tocPN']) + # cache search results + pageinfo['resultPageSize'] = getInt(self.REQUEST.get('resultPageSize', 10)) + query = self.REQUEST.get('query',None) + pageinfo['query'] = query + if query: + queryType = self.REQUEST.get('queryType', 'fulltextMorph') + pageinfo['queryType'] = queryType + pageinfo['resultStart'] = getInt(self.REQUEST.get('resultStart', '1')) + self.getSearchResults(mode=queryType, query=query, pageinfo=pageinfo, docinfo=docinfo) + + # highlighting + highlightQuery = self.REQUEST.get('highlightQuery', None) + if highlightQuery: + pageinfo['highlightQuery'] = highlightQuery + pageinfo['highlightElement'] = self.REQUEST.get('highlightElement', '') + pageinfo['highlightElementPos'] = self.REQUEST.get('highlightElementPos', '') return pageinfo