--- zogiLib/zogiLib.py 2004/07/22 17:19:22 1.35 +++ zogiLib/zogiLib.py 2004/08/25 16:31:28 1.43 @@ -14,7 +14,7 @@ import urllib import types from Globals import package_home -ZOGIVERSION = "0.9.7 ROC:21.7.2004" +ZOGIVERSION = "0.9.8 ROC:27.7.2004" def cropf(f): """returns a float with reduced precision""" @@ -388,21 +388,25 @@ class zogiLib(Folder): {'label':'Main Config','action':'changeZogiLibForm'}, ) - def __init__(self, id, title, dlServerURL,localFileBase, version="book", basePath="", dlTarget=None): + def __init__(self, id, title, dlServerURL, layout="book", basePath="", dlTarget=None, dlToolbarBaseURL=None): """init""" self.id=id self.title=title self.dlServerURL = dlServerURL - - self.localFileBase=localFileBase self.basePath=basePath - self.layout=version + self.layout=layout if dlTarget: self.dlTarget = dlTarget else: self.dlTarget = "digilib" + if dlToolbarBaseURL: + self.dlToolbarBaseURL = dlToolbarBaseURL + else: + self.dlToolbarBaseURL = dlServerURL + "/digimage.jsp?" + + def version(self): """version information""" return ZOGIVERSION @@ -450,8 +454,8 @@ class zogiLib(Folder): except: return ret - def formatHTML(self,url,label=None,viewUrl=None): + def formatHTML(self,url,label=None,viewUrl=None): sets=xml.dom.minidom.parse(urllib.urlopen(url)).getElementsByTagName('dataset') ret="" @@ -470,6 +474,7 @@ class zogiLib(Folder): ret+="""%s:%s"""%(label,text) ret+="" return ret + def getMetaData(self): """getMetaData""" @@ -517,12 +522,13 @@ class zogiLib(Folder): return self.formatHTML(link+'fn=%s&pn=%s&object=%s'%(fn,pn,ob),label,url) return ret + def getDLInfo(self): """get DLInfo from digilib server""" paramH={} baseUrl=self.dlServerURL+"/dlInfo-xml.jsp" try: - url=urllib.urlopen(baseUrl+self.REQUEST['QUERY_STRING']) + url=urllib.urlopen(baseUrl+'?'+self.REQUEST['QUERY_STRING']) dom=xml.dom.minidom.parse(url) params=dom.getElementsByTagName('parameter') for param in params: @@ -634,18 +640,17 @@ class zogiLib(Folder): self.checkQuery() if self.REQUEST.has_key('frametarget'): self.dlTarget = self.REQUEST['frametarget'] - print "current dltarget: ", self.dlTarget bt = self.REQUEST.SESSION['browserType'] if bt['staticHTML']: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/optionwindow_static.zpt')).__of__(self) else: - finds=self.ZopeFind(self,obj_ids=['viewingTools.zpt']) - if finds: - - return finds[0][1]() + tp = "viewingTools.zpt" + if hasattr(self, tp): + pt = getattr(self, tp) else: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/optionwindow.zpt')).__of__(self) - return pt() + + return pt() def mark1(self): """mark image""" @@ -754,7 +759,7 @@ class zogiLib(Folder): else: modes=[] - self.REQUEST.SESSION['query'] = dlParams + self.REQUEST.SESSION['ZogiLibQuery'] = dlParams self.REQUEST.SESSION['dlModes'] = modes self.REQUEST.SESSION['dlInfo'] = self.getDLInfo() if not self.REQUEST.SESSION.has_key('browserType'): @@ -764,7 +769,7 @@ class zogiLib(Folder): def checkQuery(self): """check if the query has been stored""" - if not (self.REQUEST.SESSION and self.REQUEST.SESSION.has_key('query')) : + if not (self.REQUEST.SESSION and self.REQUEST.SESSION.has_key('ZogiLibQuery')) : print "ZOGILIB: have to store query!!" self.storeQuery() return @@ -787,18 +792,18 @@ class zogiLib(Folder): def getDLParam(self, param): """returns parameter""" try: - return self.REQUEST.SESSION['query'][param] + return self.REQUEST.SESSION['ZogiLibQuery'][param] except: return def setDLParam(self, param, value): """sets parameter""" - self.REQUEST.SESSION['query'][param] = value + self.REQUEST.SESSION['ZogiLibQuery'][param] = value return def getAllDLParams(self): """parameter string for digilib""" - dlParams = self.REQUEST.SESSION['query'] + dlParams = self.REQUEST.SESSION['ZogiLibQuery'] # save modes modes = self.REQUEST.SESSION['dlModes'] dlParams['mo'] = string.join(modes, ',') @@ -844,7 +849,7 @@ class zogiLib(Folder): def getToolbarPageURL(self): """returns a toolbar-enabled page URL""" - url=self.dlServerURL+'/digimage.jsp?'+self.getAllDLParams() + url=self.dlToolbarBaseURL+self.getAllDLParams() return url def getDLTarget(self): @@ -1094,11 +1099,10 @@ class zogiLib(Folder): pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/changeZogiLibForm.zpt')).__of__(self) return pt() - def changeZogiLib(self,title,dlServerURL, localFileBase, version, basePath, dlTarget, RESPONSE=None): + def changeZogiLib(self,title,dlServerURL, version, basePath, dlTarget, dlToolbarBaseURL, RESPONSE=None): """change it""" self.title=title self.dlServerURL=dlServerURL - self.localFileBase=localFileBase self.basePath = basePath self.layout=version if dlTarget: @@ -1106,6 +1110,11 @@ class zogiLib(Folder): else: self.dlTarget = "digilib" + if dlToolbarBaseURL: + self.dlToolbarBaseURL = dlToolbarBaseURL + else: + self.dlToolbarBaseURL = dlServerURL + "/digimage.jsp?" + if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -1129,11 +1138,19 @@ class zogiLib(Folder): for entry in entries: print " found ", entry + # + # replace digilibBaseUrl by dlServerURL if hasattr(entry[1], 'digilibBaseUrl'): - msg += " fixing "+entry[0]+"/n" - entry[1].dlServerURL = re.sub('/servlet/Scaler?','',entry[1].digilibBaseUrl) + msg += " fixing digilibBaseUrl in "+entry[0]+"\n" + entry[1].dlServerURL = re.sub('/servlet/Scaler\?','',entry[1].digilibBaseUrl) del entry[1].digilibBaseUrl + # + # add dlToolbarBaseURL + if not hasattr(entry[1], 'dlToolbarBaseURL'): + msg += " fixing dlToolbarBaseURL in "+entry[0]+"\n" + entry[1].dlToolbarBaseURL = entry[1].dlServerURL + "/digimage.jsp?" + return msg+"\n\nfixed all zogilib instances in: "+obj.title @@ -1142,9 +1159,9 @@ def manage_addZogiLibForm(self): pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/addZogiLibForm')).__of__(self) return pt() -def manage_addZogiLib(self,id,title,dlServerURL, localFileBase,version="book",basePath="",dlTarget="digilib",RESPONSE=None): +def manage_addZogiLib(self,id,title,dlServerURL,version="book",basePath="",dlTarget="digilib",dlToolbarBaseURL=None,RESPONSE=None): """add dgilib""" - newObj=zogiLib(id,title,dlServerURL, localFileBase, version, basePath, dlTarget) + newObj=zogiLib(id,title,dlServerURL, version, basePath, dlTarget, dlToolbarBaseURL) self.Destination()._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main')