comparison documentViewer.py @ 589:d8d6975cebcb

more fixes for pf-parameter
author casties
date Thu, 15 Nov 2012 17:58:14 +0100
parents 6000c7e24d8a
children ed4485d2748e
comparison
equal deleted inserted replaced
588:e1034c2ca255 589:d8d6975cebcb
45 # make sure path doesn't end with / 45 # make sure path doesn't end with /
46 path = path.rstrip('/') 46 path = path.rstrip('/')
47 # split by /, shorten, and reassemble 47 # split by /, shorten, and reassemble
48 return '/'.join(path.split('/')[0:-cnt]) 48 return '/'.join(path.split('/')[0:-cnt])
49 49
50 def getPnForPf(docinfo, pf): 50 def getPnForPf(docinfo, pf, default=0):
51 """returns image number for image file name or 0""" 51 """returns image number for image file name or default"""
52 if 'imgFileNames' in docinfo: 52 if 'imgFileNames' in docinfo:
53 pn = docinfo['imgFileNames'].get(pf, None) 53 pn = docinfo['imgFileNames'].get(pf, None)
54 if pn is None: 54 if pn is None:
55 # try to cut extension 55 # try to cut extension
56 xi = pf.rfind('.') 56 xi = pf.rfind('.')
57 if xi > 0: 57 if xi > 0:
58 pf = pf[:xi] 58 pf = pf[:xi]
59 # try again, else return 0 59 # try again, else return 0
60 pn = docinfo['imgFileNames'].get(pf, 0) 60 pn = docinfo['imgFileNames'].get(pf, default)
61 else:
62 # no extension
63 pn = default
61 64
62 return pn 65 return pn
63 66
64 return 0 67 return default
65 68
66 69
67 ## 70 ##
68 ## documentViewer class 71 ## documentViewer class
69 ## 72 ##
232 235
233 return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode) 236 return pt(docinfo=docinfo,pageinfo=pageinfo,viewMode=viewMode)
234 237
235 238
236 security.declareProtected('View','index_html') 239 security.declareProtected('View','index_html')
237 def index_html(self,url,mode="texttool",viewMode="auto",viewLayer=None,tocMode=None,start=None,pn=None,pf=None): 240 def index_html(self, url, mode="texttool", viewMode="auto", viewLayer=None, tocMode=None, start=None, pn=None, pf=None):
238 """ 241 """
239 show page 242 show page
240 @param url: url which contains display information 243 @param url: url which contains display information
241 @param mode: defines how to access the document behind url 244 @param mode: defines how to access the document behind url
242 @param viewMode: 'images': display images, 'text': display text, 'xml': display xml, default is 'auto' 245 @param viewMode: 'images': display images, 'text': display text, 'xml': display xml, default is 'auto'
828 pageinfo['viewLayers'] = [viewLayer] 831 pageinfo['viewLayers'] = [viewLayer]
829 832
830 pageinfo['viewLayer'] = viewLayer 833 pageinfo['viewLayer'] = viewLayer
831 pageinfo['tocMode'] = tocMode 834 pageinfo['tocMode'] = tocMode
832 835
833 # TODO: unify current and pn!
834 #pageinfo['current'] = current
835 # pf takes precedence over pn 836 # pf takes precedence over pn
836 if pf: 837 if pf:
837 pageinfo['pf'] = pf 838 pageinfo['pf'] = pf
838 pn = getPnForPf(docinfo, pf) 839 pn = getPnForPf(docinfo, pf)
840 # replace pf in request params (used for creating new URLs)
841 self.REQUEST.form.pop('pf', None)
842 self.REQUEST.form['pn'] = pn
839 else: 843 else:
840 pn = getInt(pn, 1) 844 pn = getInt(pn, 1)
841 845
842 pageinfo['pn'] = pn 846 pageinfo['pn'] = pn
843 rows = int(rows or self.thumbrows) 847 rows = int(rows or self.thumbrows)