--- ECHO_content/ECHO_collection.py 2007/01/09 16:58:08 1.279 +++ ECHO_content/ECHO_collection.py 2007/01/15 11:13:04 1.280 @@ -1167,8 +1167,42 @@ class ECHO_resource(CatalogAware,Folder, + def changeViewer(self,newViewer): + """set newViewer to the url of the new viewer + only if metalink is set, otherwise it gives false + """ + + vl,msg=self.checkValidityOfMetaLink() + + if vl: + self.newViewer=newViewer + return vl,msg + else: + return vl,msg + + def checkValidityOfMetaLink(self): + """checks if the metalink is valid xml""" + + ml=self.metalink + + try: + txt=urllib.urlopen(ml) - def changeECHO_resource_main(self,metalink,link,title,label,description,contentType,renderingType,weight,resourceID,RESPONSE=None): + except: + return False,"Cannot open: %s)"%ml + + txt.close() + try: + dom = NonvalidatingReader.parseUri(ml) + except: + return False, "Connot parse: %s)"%ml + + if len(dom.xpath("//texttool"))==0: + return False, "No texttools: %s)"%ml + + return True,"" + + def changeECHO_resource_main(self,metalink,link,title,label,description,contentType,renderingType,weight,resourceID,newViewer='',RESPONSE=None): """Aenderung der Properties""" self.resourceID=resourceID self.title=title @@ -1182,6 +1216,9 @@ class ECHO_resource(CatalogAware,Folder, self.link=link self.metalink=metalink + self.newViewer=newViewer + + if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -1624,6 +1661,11 @@ class ECHO_resource(CatalogAware,Folder, self.REQUEST.RESPONSE.write(fh) self.REQUEST.RESPONSE.close() return + + if getattr(self,'newViewer',''): #benutze den neuen viewer + url=self.newViewer+'url='+self.metalink+"&mode=texttool" + return self.REQUEST.RESPONSE.redirect(url) + return self.REQUEST.RESPONSE.redirect(self.link) def startpage_html(self): @@ -2306,6 +2348,28 @@ class ECHO_collection(CatalogAware, Fold else: return None + def changeViewer(self,newViewer,REQUEST=None,RESPONSE=None): + """changes all ressources to the newViewer""" + + resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) + if RESPONSE is not None: + RESPONSE.write("") + + for resource in resources: + + done,msg=resource[1].changeViewer(newViewer) + if done: + if RESPONSE is not None: + RESPONSE.write("

OK: %s"%resource[0]) + else: + if RESPONSE is not None: + RESPONSE.write("

ERROR: %s (%s)"%(resource[1].absolute_url()+'/ECHO_resource_config_main',resource[0],msg)) + + + + if RESPONSE is not None: + RESPONSE.write("

Done

") + def changeViewerTemplateSets(self,project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix,RESPONSE=None): """change the templates"""