Changeset 996 for TI07-MOLES


Ignore:
Timestamp:
24/05/06 10:18:57 (13 years ago)
Author:
lawrence
Message:

Further changes associated with the browse/discovery
look and feel

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

Legend:

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

    r963 r996  
    4141                value=item.text 
    4242                if value not in match[level]: match[level].append(value) 
    43         print self.parameters 
    44              
     43         
    4544        #load up information about spatial bounding box  
    4645        self.bbox=Bounding(self.elem,entity='DIF') 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/ETxmlView.py

    r976 r996  
    77 
    88import ElementTree as ET 
     9import re 
    910 
    1011def et2text(elem,indent='',html=0,space='   '): 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/browseCGI.py

    r991 r996  
    1515from renderEntity import renderEntity 
    1616from renderPage import renderPage 
     17from renderDiscoverySet import renderDiscoverySet 
    1718from Utilities import * 
    1819from ETxmlView import * 
     20from DiscoveryWS import * 
    1921 
    2022import Cookie 
     
    2527        to work with the discovery portal as well ''' 
    2628         
    27         def __init__(self,cookie,url,config): 
     29        def __init__(self,cookie,config): 
    2830                 
    2931                '''Instantiate with an unsecured browse session (security only 
     
    3436                self.history=RingBuffer(10) 
    3537                self.__loadBrowseHistory() 
    36                 self.url=url  
    3738         
    3839        def __toXML(self): 
     
    9697                ''' This method actually responds to the user''' 
    9798                 
    98                 #Instantiate the Session Environment 
     99                self.ViewTextOnly,self.ViewXML=0,0 
     100                 
     101                #Instantiate the Session Environment 
    99102                self.cookie=self.env.get('HTTP_COOKIE',None) 
    100  
     103                self.session=BrowseSession(self.cookie,self.config) 
     104                if self.config.logfile is not None: self.config.log(self.cookie) 
     105                 
    101106                #this will do for the moment, although I'd rather the whole 
    102107                #URI was self consistent ... 
    103108                 
     109                #use name as an error return as well in the following calls ... 
    104110                if self.FieldStorage.has_key('uri'): 
    105111                        self.uri=self.FieldStorage['uri'].value 
    106                 else:  
     112                        content,name=self.__browse() 
     113                elif self.FieldStorage.has_key('search'): 
     114                        self.searchType=self.FieldStorage['search'].value 
     115                        content,name=self.__search() 
     116                else:  
    107117                        self.response.content=self.error('No valid URI') 
    108118                        return self.response 
    109                  
    110                 self.ViewTextOnly,self.ViewXML=0,0 
     119                
     120                if not self.ViewTextOnly and name !=0: 
     121                    historyHTML='<p>' 
     122                    for item in self.session.getHistory(): 
     123                        historyHTML+='<a href="%s">%s</a><br/>'%item 
     124                    historyHTML+='</p>' 
     125                    self.response.content=renderPage( 
     126                        content,historyHTML,historyHTML,name,self.config) 
     127                else: 
     128                    self.response.content=content 
     129                return self.response 
     130                 
     131        def __browse(self): 
     132                ''' Handle orthodox browsing ''' 
     133                 
    111134                if self.FieldStorage.has_key('text'): 
    112135                    self.ViewTextOnly=1 
     
    116139                if self.FieldStorage.has_key('ndgSec'): 
    117140                    pass 
    118                      
    119                 self.session=BrowseSession(self.cookie,self.uri,self.config) 
    120                  
    121                 if self.config.logfile is not None: self.config.log(self.cookie) 
    122                  
     141                 
    123142                #this is where we invoke NDG security setup 
    124143                self.makeGateway() 
     
    133152                if self.b.xml is None: 
    134153                    content=self.error('Unable to obtain stub-B from database') 
     154                    return content,0 
    135155                else: 
    136156                    self.session.addToHistory(self.b.Burl,self.b.abbreviation) 
     
    146166                        access=1 
    147167                    if access: 
     168                        name=self.b.name 
    148169                        if self.ViewTextOnly: 
    149170                            self.response.contentType='text/plain' 
     
    154175                            content=self.b.toHTML() 
    155176                    else: 
     177                        name='NDG Browse' 
    156178                        content=result 
    157                  
    158                 if not self.ViewTextOnly: 
    159                     historyHTML='<p>' 
    160                     for item in self.session.getHistory(): 
    161                         historyHTML+='<a href="%s">%s</a><br/>'%item 
    162                     historyHTML+='</p>' 
    163                     self.response.content=renderPage( 
    164                         content,historyHTML,historyHTML,self.b.name,self.config) 
    165                 else: 
    166                     self.response.content=content 
    167                  
    168                 return self.response 
    169                  
     179 
     180                    return content,name 
     181                 
     182        def __search(self): 
     183            ''' Handle simple searching within the context of the browse ''' 
     184            if self.FieldStorage.has_key('SEARCHSTRING'): 
     185                searchString=self.FieldStorage['SEARCHSTRING'].value 
     186                ws=DiscoveryWS() 
     187                ws.SearchFullText(searchString) 
     188                results=ws.GetResults(number=5) 
     189                difs=[] 
     190                for result in results: 
     191                    difs.append(xmlCleanup(result)) 
     192                html=renderDiscoverySet(difs,summary=1,spatial=1,temporal=1) 
     193                title='Search for '+searchString 
     194                return html,title 
     195            else: 
     196                return self.error('No valid search optoin'),0 
     197               
    170198        def error(self,message): 
    171199                ''' Construct a nice formal response, but don't throw a 404 ... ''' 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/renderDiscoverySet.py

    r994 r996  
    1818        h='<tr bgcolor="%s">'%bgcolor 
    1919        for item in rowList: 
    20             print item 
    2120            if type(item)==type((1,2)): 
    2221                h+='<td colspan="%s">%s</td>'%(item[1],item[0]) 
     
    7877    from ETxmlView import xmlCleanup 
    7978    ws=DiscoveryWS() 
    80     ws.SearchFullText('acsoe') 
     79    ws.SearchFullText('humidity') 
    8180    results=ws.GetResults(number=5) 
    8281    difs=[] 
     82    g=file('log.xml','w') 
    8383    for result in results: 
     84        g.write(xmlCleanup(result)+'\n') 
    8485        difs.append(xmlCleanup(result)) 
    8586    html=renderDiscoverySet(difs,summary=1,spatial=1,temporal=1) 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/renderPage.py

    r993 r996  
    1717        #set up search box form ... 
    1818        searchBox=''' 
    19             <FORM NAME="SEARCH" ACTION="http://ndg.nerc.ac.uk/discovery/Task" METHOD="POST> 
     19            <FORM NAME="SEARCH" ACTION="browse.py" METHOD="POST> 
    2020            <INPUT TYPE="HIDDEN" NAME="task" VALUE="discovery"/> 
    2121            <INPUT TYPE="HIDDEN" NAME="dispSum" VALUE="false"/> 
Note: See TracChangeset for help on using the changeset viewer.