Changeset 469:15394486ab75 in documentViewer for documentViewer.py


Ignore:
Timestamp:
Aug 3, 2011, 7:04:18 PM (13 years ago)
Author:
casties
Branch:
elementtree
Message:

working with new templates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • documentViewer.py

    r468 r469  
    300300               
    301301        pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, tocMode=tocMode)
    302        
    303         if viewMode != 'images' and docinfo.get('textURLPath', None):
    304             # get full text page
    305             page = self.getTextPage(mode=viewMode, pn=pn, docinfo=docinfo, pageinfo=pageinfo)
    306             pageinfo['textPage'] = page
    307            
     302                   
    308303        # get template /template/viewer_main
    309304        pt = getattr(self.template, 'viewer_main')
     
    345340            return style
    346341   
    347     def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'):
    348         """returns URL to documentviewer with parameter param set to val or from dict params"""
     342    def getParams(self, param=None, val=None, params=None):
     343        """returns dict with URL parameters.
     344       
     345        Takes URL parameters and additionally param=val or dict params.
     346        Deletes key if value is None."""
    349347        # copy existing request params
    350         urlParams=self.REQUEST.form.copy()
     348        newParams=self.REQUEST.form.copy()
    351349        # change single param
    352350        if param is not None:
    353351            if val is None:
    354                 if urlParams.has_key(param):
    355                     del urlParams[param]
     352                if newParams.has_key(param):
     353                    del newParams[param]
    356354            else:
    357                 urlParams[param] = str(val)
     355                newParams[param] = str(val)
    358356               
    359357        # change more params
     
    363361                if v is None:
    364362                    # val=None removes param
    365                     if urlParams.has_key(k):
    366                         del urlParams[k]
     363                    if newParams.has_key(k):
     364                        del newParams[k]
    367365                       
    368366                else:
    369                     urlParams[k] = v
    370 
    371         # FIXME: does this belong here?
    372         if urlParams.get("mode", None) == "filepath": #wenn beim erst Aufruf filepath gesetzt wurde aendere das nun zu imagepath
    373                 urlParams["mode"] = "imagepath"
    374                 urlParams["url"] = getParentPath(urlParams["url"])
    375                
     367                    newParams[k] = v
     368                   
     369        return newParams
     370   
     371    def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'):
     372        """returns URL to documentviewer with parameter param set to val or from dict params"""
     373        urlParams = self.getParams(param=param, val=val, params=params)
    376374        # quote values and assemble into query string (not escaping '/')
    377375        ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(v,'/')) for (k, v) in urlParams.items()])
    378         #ps = urllib.urlencode(urlParams)
    379376        if baseUrl is None:
    380             baseUrl = self.REQUEST['URL1']
     377            baseUrl = self.getDocumentViewerURL()
    381378           
    382379        url = "%s?%s"%(baseUrl, ps)
    383380        return url
    384 
    385381
    386382    def getLinkAmp(self, param=None, val=None, params=None, baseUrl=None):
    387383        """link to documentviewer with parameter param set to val"""
    388384        return self.getLink(param, val, params, baseUrl, '&')
     385   
    389386   
    390387    def getInfo_xml(self,url,mode):
     
    465462        if metaDom is not None:
    466463            # document directory name and path
    467             logging.debug("RESOURCE: %s"%repr(self.metadataService.resource.meta.getData(dom=metaDom, all=True, recursive=2)))
    468464            resource = self.metadataService.getResourceData(dom=metaDom)
    469465            if resource:
     
    573569        docinfo['oddPage'] = texttool.get('odd-scan-orientation', 'left')
    574570           
    575         # number of title page
     571        # number of title page (0: not defined)
    576572        docinfo['titlePage'] = texttool.get('title-scan-no', 0)
    577573           
     
    673669        pageinfo = {}
    674670        current = getInt(current)
    675    
    676671        pageinfo['current'] = current
    677672        rows = int(rows or self.thumbrows)
     
    686681        pageinfo['start'] = start
    687682        pageinfo['end'] = start + grpsize
    688         if (docinfo is not None) and ('numPages' in docinfo):
    689             np = int(docinfo['numPages'])
    690             pageinfo['end'] = min(pageinfo['end'], np)
    691             pageinfo['numgroups'] = int(np / grpsize)
    692             if np % grpsize > 0:
    693                 pageinfo['numgroups'] += 1
     683        pn = self.REQUEST.get('pn','1')
     684        pageinfo['pn'] = pn
     685        np = int(docinfo.get('numPages', 0))
     686        if np == 0:
     687            # numPages unknown - maybe we can get it from text page
     688            if docinfo.get('textURLPath', None):
     689                # cache text page as well
     690                pageinfo['textPage'] = self.getTextPage(mode=viewMode, pn=pn, docinfo=docinfo, pageinfo=pageinfo)
     691                np = int(docinfo.get('numPages', 0))
     692               
     693        pageinfo['end'] = min(pageinfo['end'], np)
     694        pageinfo['numgroups'] = int(np / grpsize)
     695        if np % grpsize > 0:
     696            pageinfo['numgroups'] += 1
    694697               
    695698        pageinfo['viewMode'] = viewMode
     
    700703        pageinfo['queryType'] = self.REQUEST.get('queryType','')
    701704        pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext')
    702         pageinfo['textPN'] = self.REQUEST.get('textPN','1')
    703705        pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','')
    704706        pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30')
     
    722724           
    723725        pageinfo['searchPN'] =self.REQUEST.get('searchPN','1')
    724         pageinfo['sn'] =self.REQUEST.get('sn','')
    725726        return pageinfo
    726727
Note: See TracChangeset for help on using the changeset viewer.