Diff for /documentViewer/documentViewer.py between versions 1.55 and 1.69

version 1.55, 2010/05/20 09:28:36 version 1.69, 2010/06/11 10:34:24
Line 195  class documentViewer(Folder): Line 195  class documentViewer(Folder):
             # get table of contents              # get table of contents
             docinfo = self.getToc(mode=tocMode, docinfo=docinfo)              docinfo = self.getToc(mode=tocMode, docinfo=docinfo)
                           
         pageinfo = self.getPageinfo(start=start,current=pn,docinfo=docinfo,viewMode=viewMode,tocMode=tocMode)  
           
         if viewMode=="auto": # automodus gewaehlt          if viewMode=="auto": # automodus gewaehlt
             if docinfo.get("textURL",''): #texturl gesetzt und textViewer konfiguriert              if docinfo.get("textURL",''): #texturl gesetzt und textViewer konfiguriert
                 viewMode="text"                  viewMode="text_dict"
             else:              else:
                 viewMode="images"                  viewMode="images"
                                   
           pageinfo = self.getPageinfo(start=start,current=pn,docinfo=docinfo,viewMode=viewMode,tocMode=tocMode)
           
         pt = getattr(self.template, 'viewer_main')                         pt = getattr(self.template, 'viewer_main')               
         return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode,mk=self.generateMarks(mk))          return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode,mk=self.generateMarks(mk))
       
Line 222  class documentViewer(Folder): Line 222  class documentViewer(Folder):
         url = self.template.zogilib.getDLBaseUrl()          url = self.template.zogilib.getDLBaseUrl()
         return url          return url
           
       def getDocumentViewerURL(self):
           """returns the URL of this instance"""
           return self.absolute_url()
       
     def getStyle(self, idx, selected, style=""):      def getStyle(self, idx, selected, style=""):
         """returns a string with the given style and append 'sel' if path == selected."""          """returns a string with the given style and append 'sel' if path == selected."""
         #logger("documentViewer (getstyle)", logging.INFO, "idx: %s selected: %s style: %s"%(idx,selected,style))          #logger("documentViewer (getstyle)", logging.INFO, "idx: %s selected: %s style: %s"%(idx,selected,style))
Line 636  class documentViewer(Folder): Line 640  class documentViewer(Folder):
         self.REQUEST.SESSION['docinfo'] = docinfo          self.REQUEST.SESSION['docinfo'] = docinfo
         return docinfo          return docinfo
                   
           
     def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None):      def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, tocMode=None):
         """returns pageinfo with the given parameters"""          """returns pageinfo with the given parameters"""
         pageinfo = {}          pageinfo = {}
Line 658  class documentViewer(Folder): Line 661  class documentViewer(Folder):
             pageinfo['numgroups'] = int(np / grpsize)              pageinfo['numgroups'] = int(np / grpsize)
             if np % grpsize > 0:              if np % grpsize > 0:
                 pageinfo['numgroups'] += 1                  pageinfo['numgroups'] += 1
           
             
         pageinfo['viewMode'] = viewMode          pageinfo['viewMode'] = viewMode
         pageinfo['tocMode'] = tocMode          pageinfo['tocMode'] = tocMode
         pageinfo['query'] = self.REQUEST.get('query',' ')          pageinfo['query'] = self.REQUEST.get('query',' ')
         pageinfo['queryType'] = self.REQUEST.get('queryType',' ')          pageinfo['queryType'] = self.REQUEST.get('queryType',' ')
         pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext')          pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext')
           
         pageinfo['textPN'] = self.REQUEST.get('textPN','1')          pageinfo['textPN'] = self.REQUEST.get('textPN','1')
         pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','')          pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','')
         pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30')          pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30')
Line 678  class documentViewer(Folder): Line 678  class documentViewer(Folder):
             tocSize = int(docinfo['tocSize_%s'%tocMode])              tocSize = int(docinfo['tocSize_%s'%tocMode])
             tocPageSize = int(pageinfo['tocPageSize'])              tocPageSize = int(pageinfo['tocPageSize'])
             # cached toc              # cached toc
              
             if tocSize%tocPageSize>0:              if tocSize%tocPageSize>0:
                 tocPages=tocSize/tocPageSize+1                  tocPages=tocSize/tocPageSize+1
             else:              else:
                 tocPages=tocSize/tocPageSize                  tocPages=tocSize/tocPageSize
             pageinfo['tocPN'] = min (tocPages,toc)              pageinfo['tocPN'] = min (tocPages,toc)
                        
         pageinfo['searchPN'] =self.REQUEST.get('searchPN','1')          pageinfo['searchPN'] =self.REQUEST.get('searchPN','1')
         pageinfo['sn'] =self.REQUEST.get('sn','1')          pageinfo['sn'] =self.REQUEST.get('sn','')
   
         return pageinfo          return pageinfo
                                   
     def getSearch(self, pn=1, pageinfo=None,  docinfo=None, query=None, queryType=None):      def getSearch(self, pn=1, pageinfo=None,  docinfo=None, query=None, queryType=None, lemma=None):
         """get search list"""          """get search list"""
         docpath = docinfo['textURLPath']           docpath = docinfo['textURLPath'] 
         url = docinfo['url']          url = docinfo['url']
Line 706  class documentViewer(Folder): Line 703  class documentViewer(Folder):
         tocMode = pageinfo['tocMode']          tocMode = pageinfo['tocMode']
         tocPN = pageinfo['tocPN']          tocPN = pageinfo['tocPN']
         selfurl = self.absolute_url()          selfurl = self.absolute_url()
         logging.debug("documentViewer (gettoc) /mpdl/interface/doc-query.xql?document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn, viewMode))          page=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s&highlightQuery=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn, viewMode,highlightQuery) ,outputUnicode=False)                
         page=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&sn=%s&viewMode=%s"%(docpath, 'text', queryType, query, pagesize, pn, sn, viewMode) ,outputUnicode=False)                  
         pagexml = page.replace('?document=%s'%str(docpath),'?url=%s'%url)          pagexml = page.replace('?document=%s'%str(docpath),'?url=%s'%url)
         pagedom = Parse(pagexml)          pagedom = Parse(pagexml)
         if (queryType=="fulltext")or(queryType=="xpath")or(queryType=="xquery")or(queryType=="fulltextMorphLemma"):             if (queryType=="fulltext")or(queryType=="xpath")or(queryType=="xquery")or(queryType=="fulltextMorphLemma"):   
Line 721  class documentViewer(Folder): Line 717  class documentViewer(Folder):
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         if href.startswith('page-fragment.xql'):                          if href.startswith('page-fragment.xql'):
                             selfurl = self.absolute_url()                              selfurl = self.absolute_url()
                             #l.setAttributeNS(None, "span class = 'hit highlight'", "background-color: #77DD77;")              
                             pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s'%(viewMode,queryType,query,pagesize,pn,tocMode,pn,tocPN))                              pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s'%(viewMode,queryType,query,pagesize,pn,tocMode,pn,tocPN))
                             hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                                                        hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                          
                             l.setAttributeNS(None, "onClick", "id='highlighting'")   
                             logging.debug("documentViewer (gettoc) highlightQuery: %s"%(highlightQuery))  
                             l.setAttributeNS(None, "highlightQuery", "id='highlighting'")   
                 return serializeNode(pagenode)                  return serializeNode(pagenode)
           
         if (queryType=="fulltextMorph"):          if (queryType=="fulltextMorph"):
             pagedivs = pagedom.xpath("//div[@class='queryResult']")              pagedivs = pagedom.xpath("//div[@class='queryResult']")
               
             if len(pagedivs)>0:              if len(pagedivs)>0:
                 pagenode=pagedivs[0]                  pagenode=pagedivs[0]
                 links=pagenode.xpath("//a")                  links=pagenode.xpath("//a")
Line 744  class documentViewer(Folder): Line 734  class documentViewer(Folder):
                             pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s'%(viewMode,queryType,query,pagesize,pn,tocMode,pn,tocPN))                              pagexml=href.replace('mode=text','mode=texttool&viewMode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s&tocMode=%s&searchPN=%s&tocPN=%s'%(viewMode,queryType,query,pagesize,pn,tocMode,pn,tocPN))
                             hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)                                hrefNode.nodeValue = pagexml.replace('page-fragment.xql','%s'%selfurl)  
                         if href.startswith('../lt/lemma.xql'):                          if href.startswith('../lt/lemma.xql'):
                             selfurl = self.absolute_url()                              hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma_New'%(selfurl))        
                             hrefNode.nodeValue = href.replace('lt/lemma.xql','%s/template/head_main_lemma'%selfurl)          
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')                                                l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')                  
                   pagedivs = pagedom.xpath("//div[@class='queryResultMorphExpansion']")                
                 return serializeNode(pagenode)                  return serializeNode(pagenode)
           
         if (queryType=="ftIndex")or(queryType=="ftIndexMorph"):          if (queryType=="ftIndex")or(queryType=="ftIndexMorph"):
             pagedivs= pagedom.xpath("//div[@class='queryResultPage']")              pagedivs= pagedom.xpath("//div[@class='queryResultPage']")
             if len(pagedivs)>0:              if len(pagedivs)>0:
Line 761  class documentViewer(Folder): Line 750  class documentViewer(Folder):
                     if hrefNode:                      if hrefNode:
                         href = hrefNode.nodeValue                          href = hrefNode.nodeValue
                         hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s'%(viewMode,tocMode,tocPN,pn))                          hrefNode.nodeValue=href.replace('mode=text','mode=texttool&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s'%(viewMode,tocMode,tocPN,pn))
                          
                         if href.startswith('../lt/lex.xql'):                          if href.startswith('../lt/lex.xql'):
                            # selfurl = self.absolute_url()  
                             hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_voc'%selfurl)                                       hrefNode.nodeValue = href.replace('../lt/lex.xql','%s/template/head_main_voc'%selfurl)         
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')                              l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')
                         if href.startswith('../lt/lemma.xql'):                          if href.startswith('../lt/lemma.xql'):
                             #selfurl = self.absolute_url()  
                             hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma'%selfurl)                                      hrefNode.nodeValue = href.replace('../lt/lemma.xql','%s/template/head_main_lemma'%selfurl)        
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=400, scrollbars=1'); return false;")
Line 785  class documentViewer(Folder): Line 771  class documentViewer(Folder):
         docinfo['numPages'] = text.count("<pb ")          docinfo['numPages'] = text.count("<pb ")
         return docinfo          return docinfo
                 
     def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None,):      def getTextPage(self, mode="text", pn=1, docinfo=None, pageinfo=None, highlightQuery=None,sn=None, viewMode=None, tocMode=None, tocPN=None):
         """returns single page from fulltext"""          """returns single page from fulltext"""
         docpath = docinfo['textURLPath']          docpath = docinfo['textURLPath']
           path = docinfo['textURLPath']
           url = docinfo['url']
           viewMode= pageinfo['viewMode']
           tocMode = pageinfo['tocMode']
           tocPN = pageinfo['tocPN']
           selfurl = self.absolute_url()   
         if mode == "text_dict":          if mode == "text_dict":
             textmode = "textPollux"              textmode = "textPollux"
         else:          else:
             textmode = mode              textmode = mode
                           
         #selfurl = self.absolute_url()            textParam = "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn)
         #viewMode=  pageinfo['viewMode']          if highlightQuery is not None:
         #tocMode = pageinfo['tocMode']              textParam +="&highlightQuery=%s&sn=%s"%(highlightQuery,sn)           
         #tocPN = pageinfo['tocPN']          pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", textParam, outputUnicode=False)
     
         pagexml=self.template.fulltextclient.eval("/mpdl/interface/page-fragment.xql", "document=%s&mode=%s&pn=%s"%(docpath,textmode,pn), outputUnicode=False)  
         # post-processing downloaded xml  
         pagedom = Parse(pagexml)          pagedom = Parse(pagexml)
         # plain text mode          # plain text mode
         if mode == "text":          if mode == "text":
             # first div contains text              # first div contains text
             pagedivs = pagedom.xpath("/div")              pagedivs = pagedom.xpath("/div")
             #queryResultPage  
             if len(pagedivs) > 0:              if len(pagedivs) > 0:
                  
                 pagenode = pagedivs[0]                  pagenode = pagedivs[0]
                 links = pagenode.xpath("//a")                  links = pagenode.xpath("//a")
                 for l in links:                  for l in links:
                     hrefNode = l.getAttributeNodeNS(None, u"href")                      hrefNode = l.getAttributeNodeNS(None, u"href")
                     if hrefNode:                      if hrefNode:
                         href= hrefNode.nodeValue                          href= hrefNode.nodeValue
                         if href.startswith('#note-0006-01'):                          if href.startswith('#note-'):
                             selfurl = self.absolute_url()                              hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,viewMode,tocMode,tocPN,pn))
                             hrefNode.nodeValue = href.replace("href='#note-'",'xaxa/%s/'%selfurl)  
                 return serializeNode(pagenode)                  return serializeNode(pagenode)
         if mode == "xml":          if mode == "xml":
               # first div contains text                # first div contains text
Line 824  class documentViewer(Folder): Line 810  class documentViewer(Folder):
               if len(pagedivs) > 0:                if len(pagedivs) > 0:
                   pagenode = pagedivs[0]                    pagenode = pagedivs[0]
                   return serializeNode(pagenode)                    return serializeNode(pagenode)
           if mode == "pureXml":
                 # first div contains text
                 pagedivs = pagedom.xpath("/div")
                 if len(pagedivs) > 0:
                     pagenode = pagedivs[0]
                     return serializeNode(pagenode)      
         # text-with-links mode          # text-with-links mode
         if mode == "text_dict":          if mode == "text_dict":
             # first div contains text              # first div contains text
Line 846  class documentViewer(Folder): Line 838  class documentViewer(Folder):
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')                              l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')
                               
                         if href.startswith('lt/lemma.xql'):                              if href.startswith('lt/lemma.xql'):    
                             selfurl = self.absolute_url()                              selfurl = self.absolute_url()
                             hrefNode.nodeValue = href.replace('lt/lemma.xql','%s/template/head_main_lemma'%selfurl)                              hrefNode.nodeValue = href.replace('lt/lemma.xql','%s/template/head_main_lemma'%selfurl)
                             l.setAttributeNS(None, 'target', '_blank')                              l.setAttributeNS(None, 'target', '_blank')
                             l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")                              l.setAttributeNS(None, 'onClick',"popupWin = window.open(this.href, 'contacts', 'location,width=500,height=600,top=180, left=700, scrollbars=1'); return false;")
                             l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')                              l.setAttributeNS(None, 'onDblclick', 'popupWin.focus();')
                           if href.startswith('#note-'):
                               hrefNode.nodeValue = href.replace('#note-',"?url=%s&viewMode=%s&tocMode=%s&tocPN=%s&pn=%s#note-"%(url,viewMode,tocMode,tocPN,pn))    
                 return serializeNode(pagenode)                  return serializeNode(pagenode)
           
         return "no text here"          return "no text here"
   
     def getTranslate(self, query=None, language=None):      def getTranslate(self, query=None, language=None):
Line 865  class documentViewer(Folder): Line 857  class documentViewer(Folder):
     def getLemma(self, lemma=None, language=None):      def getLemma(self, lemma=None, language=None):
         """simular words lemma """          """simular words lemma """
         pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(lemma)))          pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(lemma)))
         #pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","lemma=%s&language=%s"%(lemma,language),outputUnicode=False)          return pagexml
       
       def getLemmaNew(self, query=None, language=None):
           """simular words lemma """
           pagexml=self.template.fulltextclient.eval("/mpdl/interface/lt/lemma.xql","document=&language="+str(language)+"&lemma="+url_quote(str(query)))
         return pagexml          return pagexml
   
     def getQuery (self,  docinfo=None, pageinfo=None, query=None, queryType=None, pn=1):      def getQuery (self,  docinfo=None, pageinfo=None, query=None, queryType=None, pn=1):
Line 875  class documentViewer(Folder): Line 871  class documentViewer(Folder):
          pn = pageinfo['searchPN']           pn = pageinfo['searchPN']
          query =pageinfo['query']           query =pageinfo['query']
          queryType =pageinfo['queryType']           queryType =pageinfo['queryType']
   
          tocSearch = 0           tocSearch = 0
          tocDiv = None           tocDiv = None
          pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath, 'text', queryType, query, pagesize, pn) ,outputUnicode=False)           pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql","document=%s&mode=%s&queryType=%s&query=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath, 'text', queryType, query, pagesize, pn) ,outputUnicode=False)
            
          pagedom = Parse(pagexml)           pagedom = Parse(pagexml)
          numdivs = pagedom.xpath("//div[@class='queryResultHits']")           numdivs = pagedom.xpath("//div[@class='queryResultHits']")
          tocSearch = int(getTextFromNode(numdivs[0]))           tocSearch = int(getTextFromNode(numdivs[0]))
Line 890  class documentViewer(Folder): Line 884  class documentViewer(Folder):
     def getToc(self, mode="text", docinfo=None):      def getToc(self, mode="text", docinfo=None):
         """loads table of contents and stores in docinfo"""          """loads table of contents and stores in docinfo"""
         logging.debug("documentViewer (gettoc) mode: %s"%(mode))          logging.debug("documentViewer (gettoc) mode: %s"%(mode))
           if mode == "none":
               return docinfo        
         if 'tocSize_%s'%mode in docinfo:          if 'tocSize_%s'%mode in docinfo:
             # cached toc              # cached toc
             return docinfo               return docinfo 
           
         docpath = docinfo['textURLPath']          docpath = docinfo['textURLPath']
         # we need to set a result set size          # we need to set a result set size
         pagesize = 1000          pagesize = 1000
Line 911  class documentViewer(Folder): Line 908  class documentViewer(Folder):
         numdivs = pagedom.xpath("//div[@class='queryResultHits']")          numdivs = pagedom.xpath("//div[@class='queryResultHits']")
         if len(numdivs) > 0:          if len(numdivs) > 0:
             tocSize = int(getTextFromNode(numdivs[0]))              tocSize = int(getTextFromNode(numdivs[0]))
             # div contains text  
             #pagedivs = pagedom.xpath("//div[@class='queryResultPage']")  
             #if len(pagedivs) > 0:  
             #    tocDiv = pagedivs[0]  
   
         docinfo['tocSize_%s'%mode] = tocSize          docinfo['tocSize_%s'%mode] = tocSize
         #docinfo['tocDiv_%s'%mode] = tocDiv  
         return docinfo          return docinfo
           
     def getTocPage(self, mode="text", pn=1, pageinfo=None, docinfo=None):      def getTocPage(self, mode="text", pn=1, pageinfo=None, docinfo=None):
Line 929  class documentViewer(Folder): Line 920  class documentViewer(Folder):
             queryType = mode              queryType = mode
         docpath = docinfo['textURLPath']          docpath = docinfo['textURLPath']
         path = docinfo['textURLPath']          path = docinfo['textURLPath']
         #logging.debug("documentViewer (gettoc) pathNomer: %s"%(pathNomer))  
         pagesize = pageinfo['tocPageSize']          pagesize = pageinfo['tocPageSize']
         pn = pageinfo['tocPN']          pn = pageinfo['tocPN']
         url = docinfo['url']          url = docinfo['url']
Line 937  class documentViewer(Folder): Line 927  class documentViewer(Folder):
         viewMode=  pageinfo['viewMode']          viewMode=  pageinfo['viewMode']
         tocMode = pageinfo['tocMode']          tocMode = pageinfo['tocMode']
         tocPN = pageinfo['tocPN']          tocPN = pageinfo['tocPN']
       
         pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn), outputUnicode=False)          pagexml=self.template.fulltextclient.eval("/mpdl/interface/doc-query.xql", "document=%s&queryType=%s&queryResultPageSize=%s&queryResultPN=%s"%(docpath,queryType, pagesize, pn), outputUnicode=False)
         page = pagexml.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl,url, viewMode, tocMode, tocPN))          page = pagexml.replace('page-fragment.xql?document=%s'%str(path),'%s?url=%s&viewMode=%s&tocMode=%s&tocPN=%s'%(selfurl,url, viewMode, tocMode, tocPN))
         text = page.replace('mode=image','mode=texttool')          text = page.replace('mode=image','mode=texttool')
         return text          return text
         # post-processing downloaded xml  
         #pagedom = Parse(text)  
         # div contains text  
         #pagedivs = pagedom.xpath("//div[@class='queryResultPage']")  
         #if len(pagedivs) > 0:  
         #    pagenode = pagedivs[0]  
         #    return serializeNode(pagenode)  
         #else:  
         #    return "No TOC!"  
   
           
     def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):      def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',RESPONSE=None):
         """init document viewer"""          """init document viewer"""
Line 963  class documentViewer(Folder): Line 942  class documentViewer(Folder):
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
           
       
           
 def manage_AddDocumentViewerForm(self):  def manage_AddDocumentViewerForm(self):
     """add the viewer form"""      """add the viewer form"""
     pt=PageTemplateFile('zpt/addDocumentViewer', globals()).__of__(self)      pt=PageTemplateFile('zpt/addDocumentViewer', globals()).__of__(self)
Line 978  def manage_AddDocumentViewer(self,id,ima Line 955  def manage_AddDocumentViewer(self,id,ima
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
   
   
 ##  
 ## DocumentViewerTemplate class  ## DocumentViewerTemplate class
 ##  
 class DocumentViewerTemplate(ZopePageTemplate):  class DocumentViewerTemplate(ZopePageTemplate):
     """Template for document viewer"""      """Template for document viewer"""
     meta_type="DocumentViewer Template"      meta_type="DocumentViewer Template"

Removed from v.1.55  
changed lines
  Added in v.1.69


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>