Changeset 825 for TI07-MOLES


Ignore:
Timestamp:
25/04/06 08:23:48 (13 years ago)
Author:
lawrence
Message:

Better error handling, better xhtml compliance

Location:
TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/browseCGI.py

    r824 r825  
    9090                self.ac=self.session.getCredentials() 
    9191         
    92                 try: 
    93                         self.b=stubB(self.uri) 
     92                self.b=stubB(self.uri) 
     93                if self.b.xml is not None: 
    9494                        self.session.addToHistory(self.b.Burl,self.b.name) 
    95                 except 'NotFound': 
    96                         return self.error('URI cannot be retrieved from DataBase') 
     95                        if EvaluateCredentials(self.ac,self.uri): 
     96                                #we can show the user the page 
     97                                #parsedHTML=self.b.toHTML() 
     98                                #bodge in the history list 
     99                                content=renderEntity(self.b) 
     100                        else: 
     101                                content=self.error('Not Allowed') 
     102                else: 
     103                        content=self.error('URI not available in database') 
     104                historyHTML='<p>' 
     105                for item in self.session.getHistory(): 
     106                        historyHTML+='<a href="%s">%s</a><br/>'%item 
     107                historyHTML+='</p>' 
    97108                         
    98                 if EvaluateCredentials(self.ac,self.uri): 
    99                         #we can show the user the page 
    100                         #parsedHTML=self.b.toHTML() 
    101                         #bodge in the history list 
    102                         historyHTML='<p>' 
    103                         for item in self.session.getHistory(): 
    104                                 historyHTML+='<a href="%s">%s</a></br>'%item 
    105                         historyHTML+='</p>' 
    106                         content=renderEntity(self.b) 
    107                         return renderPage(content,historyHTML,historyHTML,self.b.name) 
    108                         #return parsedHTML.replace('PutNDGBrowseHistoryHere',historyHTML) 
    109                 else: 
    110                         return self.error('Not Allowed') 
     109                return renderPage(content,historyHTML,historyHTML,self.b.name) 
    111110                 
    112111        def error(self,message): 
    113                 ''' Construct a nice formal response with appropriate HTML headers ''' 
    114                 return '<error>%s</error>'%message 
     112                ''' Construct a nice formal response, but don't throw a 404 ... ''' 
     113                return '<p>Error: %s</p>'%message 
    115114                 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/renderEntity.py

    r824 r825  
    88        #follow by building the contact information 
    99        #then get the related datasets (if available) 
     10 
     11        if entity is None: return '' 
    1012 
    1113        try: 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/renderPage.py

    r814 r825  
    1616         
    1717        #set up html header 
    18         html=''' 
    19                 <html> 
     18        html='''<?xml version="1.0" encoding="UTF-8"?> 
     19                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     20                <html xmlsns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    2021                        <head> 
    2122                                <META http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1"/> 
     
    4041                                        </td> 
    4142                                        <td width="51%%" align="center"> 
    42                                                 <img src="%s" border="0"/></a> 
     43                                                <img src="%s" border="0"/> 
    4344                                        </td> 
    4445                                        <td> 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/stubB.py

    r824 r825  
    139139                        if xsltMethod=='JavaXalan': 
    140140                                self.xml=insecureGetDoc(uri) 
    141                                 self.tree=ET.fromstring(self.xml) 
     141                                if self.xml is not None: 
     142                                        self.tree=ET.fromstring(self.xml) 
    142143                        else: 
    143144                                self.tree=ET.parse(uri).getroot() 
    144145                                self.xml=ET.tostring(self.tree) 
     146                        self.name=wrapGetText(self.tree,'name') 
    145147                except: 
    146148                        self.xml=None 
    147149                        self.tree=None 
    148                         raise 
    149                 if self.xml is None: 
    150                         raise 'NotFound' 
     150                        self.name='Not Found' 
     151                         
     152                if self.xml is None: return 
    151153                #note that the root of the ElementTree instance is dgMetadataRecord 
    152154                #so we don't need (or want) that in our xpath expressions. 
    153155                host='' #bodge 
    154                 self.name=wrapGetText(self.tree,'name') 
    155156                #this long ifelif sequence needs to go out of moles ... 
    156157                elem=self.tree.find('dgDataEntity') 
Note: See TracChangeset for help on using the changeset viewer.