Mercurial > hg > documentViewer
comparison documentViewer.py @ 475:5a3ab27385ce elementtree
more new template stuff
author | casties |
---|---|
date | Fri, 05 Aug 2011 19:04:20 +0200 |
parents | 0bc4a153863a |
children | 1d93a8cb2d8f |
comparison
equal
deleted
inserted
replaced
474:0bc4a153863a | 475:5a3ab27385ce |
---|---|
274 @param viewMode: 'images': display images, 'text': display text, default is 'auto' | 274 @param viewMode: 'images': display images, 'text': display text, default is 'auto' |
275 @param viewType: sub-type of viewMode, e.g. 'dict' for viewMode='text' | 275 @param viewType: sub-type of viewMode, e.g. 'dict' for viewMode='text' |
276 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none) | 276 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none) |
277 """ | 277 """ |
278 | 278 |
279 logging.debug("documentViewer (index) mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn)) | 279 logging.debug("documentViewer(index_html) mode=%s url=%s viewMode=%s viewType=%s start=%s pn=%s"%(mode,url,viewMode,viewType,start,pn)) |
280 | 280 |
281 if not hasattr(self, 'template'): | 281 if not hasattr(self, 'template'): |
282 # this won't work | 282 # this won't work |
283 logging.error("template folder missing!") | 283 logging.error("template folder missing!") |
284 return "ERROR: template folder missing!" | 284 return "ERROR: template folder missing!" |
303 elif viewMode == "text_dict": | 303 elif viewMode == "text_dict": |
304 # legacy fix | 304 # legacy fix |
305 viewMode = "text" | 305 viewMode = "text" |
306 viewType = "dict" | 306 viewType = "dict" |
307 | 307 |
308 | 308 # stringify viewType |
309 if isinstance(viewType, list): | |
310 viewType = ','.join([t for t in viewType if t]) | |
311 | |
309 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode) | 312 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode) |
310 | 313 |
311 # get template /template/viewer_main | 314 # get template /template/viewer_$viewMode |
312 pt = getattr(self.template, 'viewer_main') | 315 pt = getattr(self.template, 'viewer_%s'%viewMode, None) |
316 if pt is None: | |
317 logging.error("No template for viewMode=%s!"%viewMode) | |
318 # TODO: error page? | |
319 return "No template for viewMode=%s!"%viewMode | |
320 | |
313 # and execute with parameters | 321 # and execute with parameters |
314 return pt(docinfo=docinfo, pageinfo=pageinfo) | 322 return pt(docinfo=docinfo, pageinfo=pageinfo) |
315 | 323 |
316 def generateMarks(self,mk): | 324 def generateMarks(self,mk): |
317 ret="" | 325 ret="" |
378 | 386 |
379 def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'): | 387 def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'): |
380 """returns URL to documentviewer with parameter param set to val or from dict params""" | 388 """returns URL to documentviewer with parameter param set to val or from dict params""" |
381 urlParams = self.getParams(param=param, val=val, params=params) | 389 urlParams = self.getParams(param=param, val=val, params=params) |
382 # quote values and assemble into query string (not escaping '/') | 390 # quote values and assemble into query string (not escaping '/') |
383 ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(v,'/')) for (k, v) in urlParams.items()]) | 391 ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(unicode(v),'/')) for (k, v) in urlParams.items()]) |
384 if baseUrl is None: | 392 if baseUrl is None: |
385 baseUrl = self.getDocumentViewerURL() | 393 baseUrl = self.getDocumentViewerURL() |
386 | 394 |
387 url = "%s?%s"%(baseUrl, ps) | 395 url = "%s?%s"%(baseUrl, ps) |
388 return url | 396 return url |