Changeset 526:3f375a048402 in documentViewer for documentViewer.py
- Timestamp:
- Apr 10, 2012, 5:41:44 PM (12 years ago)
- Branch:
- default
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
documentViewer.py
r525 r526 17 17 import re 18 18 import string 19 import json 19 20 20 21 from SrvTxtUtils import getInt, utf8ify, getText, getHttpData, refreshingImageFileIndexHtml … … 124 125 viewer_index = PageTemplateFile('zpt/viewer_index', globals()) 125 126 # available layer types 126 availableLayers = {'text': ['dict','search','gis','annotator'], 127 'xml': None, 'images': None, 'index': None} 127 builtinLayers = {'text': ['dict','search','gis','annotator'], 128 'xml': None, 'images': None, 'index': None} 129 availableLayers = builtinLayers; 128 130 # layer templates 131 layer_text_dict = PageTemplateFile('zpt/layer_text_dict', globals()) 132 layer_text_search = PageTemplateFile('zpt/layer_text_search', globals()) 129 133 layer_text_annotator = PageTemplateFile('zpt/layer_text_annotator', globals()) 130 134 layer_text_gis = PageTemplateFile('zpt/layer_text_gis', globals()) … … 133 137 toc_text = PageTemplateFile('zpt/toc_text', globals()) 134 138 toc_figures = PageTemplateFile('zpt/toc_figures', globals()) 139 toc_concordance = PageTemplateFile('zpt/toc_concordance', globals()) 135 140 toc_none = PageTemplateFile('zpt/toc_none', globals()) 136 141 # other templates 137 142 common_template = PageTemplateFile('zpt/common_template', globals()) 138 search_template = PageTemplateFile('zpt/search_template', globals())139 143 info_xml = PageTemplateFile('zpt/info_xml', globals()) 140 144 docuviewer_css = ImageFile('css/docuviewer.css',globals()) … … 409 413 return self.getLink(param=param, val=val, params=params, baseUrl=baseUrl, paramSep='&', duplicates=duplicates) 410 414 415 416 def setAvailableLayers(self, newLayerString=None): 417 """sets availableLayers to newLayerString or tries to autodetect available layers. 418 assumes layer templates have the form layer_{m}_{l} for layer l in mode m. 419 newLayerString is parsed as JSON.""" 420 if newLayerString is not None: 421 try: 422 layers = json.loads(newLayerString) 423 if 'text' in layers and 'images' in layers: 424 self.availableLayers = layers 425 return 426 except: 427 pass 428 429 logging.error("invalid layers=%s! autodetecting..."%repr(newLayerString)) 430 431 # start with builtin layers 432 self.availableLayers = self.builtinLayers.copy() 433 # add layers from templates 434 for t in self.template: 435 if t.startswith('layer_'): 436 try: 437 (x, m, l) = t.split('_', 3) 438 if m not in self.availableLayers: 439 # mode m doesn't exist -> new list 440 self.availableLayers[m] = [l] 441 442 else: 443 # m exists -> append 444 if l not in self.availableLayers[m]: 445 self.availableLayers[m].append() 446 447 except: 448 pass 449 450 def getAvailableLayersJson(self): 451 """returns available layers as JSON string.""" 452 return json.dumps(self.availableLayers) 453 411 454 412 455 def getInfo_xml(self,url,mode): … … 838 881 batch['prevStart'] = None 839 882 840 if start + grpsize < maxIdx:883 if start + grpsize <= maxIdx: 841 884 batch['nextStart'] = start + grpsize 842 885 else: … … 864 907 this = [] 865 908 j = 0 866 for i in range(start, min(start+size, end )):909 for i in range(start, min(start+size, end+1)): 867 910 if data: 868 911 if fullData: 869 d = data [i]912 d = data.get(i, None) 870 913 else: 871 d = data [j]914 d = data.get(j, None) 872 915 j += 1 873 916 … … 888 931 batch['nextStart'] = None 889 932 933 logging.debug("getBatch start=%s size=%s end=%s batch=%s"%(start,size,end,repr(batch))) 890 934 return batch 891 935 … … 894 938 changeDocumentViewerForm = PageTemplateFile('zpt/changeDocumentViewer', globals()) 895 939 896 def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg', RESPONSE=None):940 def changeDocumentViewer(self,title="",digilibBaseUrl=None,thumbrows=2,thumbcols=5,authgroups='mpiwg',availableLayers=None,RESPONSE=None): 897 941 """init document viewer""" 898 942 self.title=title … … 906 950 except Exception, e: 907 951 logging.error("Unable to find MetaDataFolder 'metadata': "+str(e)) 952 953 self.setAvailableLayers(availableLayers) 908 954 909 955 if RESPONSE is not None:
Note: See TracChangeset
for help on using the changeset viewer.