Ignore:
Timestamp:
14/12/09 12:40:11 (10 years ago)
Author:
astephen
Message:

more fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cows_wps/trunk/cows_wps/renderer/form_renderer.py

    r6111 r6117  
    3333        return html 
    3434 
    35     def renderTextInput(self, name, dtype): 
     35    def renderTextInput(self, name, dtype, optional=False, default=None): 
    3636        """ 
    3737        Returns HTML for text input including onChange validator. 
     38        optional is a boolean. 
     39 
     40        Populates with default value if not None. 
    3841        """ 
     42        if default == None: default = "" 
     43 
    3944        allowed_dtypes = ("float", "int", "string", "datetime") 
     45        js_opt = str(optional).lower() 
    4046 
    4147        if dtype not in allowed_dtypes: 
     
    4955        (regex, msg) = validators[dtype] 
    5056  
    51         html = """<input type="text" name="%s" id="%s" value="" onChange="validateTextInput(this.value, %s, '%s');" /><br />\n""" % (name, name, regex, msg) 
    52         html += """<script type="text/javascript">addValidator('%s', 'text', %s, '%s');</script>\n""" % (name, regex, msg) 
     57        html = """<input type="text" name="%s" id="%s" value="%s" onChange="validateTextInput(this.value, %s, '%s', %s);" /><br />\n""" % (name, name, default, regex, msg, js_opt) 
     58        html += """<script type="text/javascript">addValidator('%s', 'text', %s, '%s', %s);</script>\n""" % (name, regex, msg, js_opt) 
    5359        return html 
    5460 
    55     def renderSelectList(self, name, values): 
     61    def renderSelectList(self, name, values, optional=False, multiple=False): 
    5662        """ 
    5763        Returns HTML for select list. 
     64 
     65        If optional is True then add an extra option called "-- Please select --". 
    5866        """ 
    59         html = """<select name="%s" id="%s">\n""" % (name, name) 
    60          
     67        if optional == True: 
     68            values.insert(0, "-- Please select --") 
     69 
     70        multiple_string = "" 
     71        if multiple == True: 
     72            multiple_string = 'multiple="multiple"' 
     73 
     74        html = """<select %s name="%s" id="%s">\n""" % (multiple_string, name, name) 
     75        
     76        selected = 'selected="selected"'  
    6177        for value in values: 
    62             html += """ <option value="%s">%s</option>\n""" % (value, value) 
     78            html += """ <option %s value="%s">%s</option>\n""" % (selected, value, value) 
     79            selected = "" 
    6380 
    6481        return html 
    6582 
    66     def renderBBox(self, name, extent): 
     83    def renderBBox(self, name, extent="90|-180|-90|180"): 
     84        """ 
     85        Renders a bounding box and N/W/S/E/ selectors. 
     86        """ 
     87        if extent == False: extent = "90|-180|-90|180" 
     88 
     89        (n, w, s, e) = extent.split("|") 
     90 
     91        html = """      <label for="_north">North:</label> <input type="text" id="_north" name="_north" value="%s" onChange="updateBBox('%s');" /><br> 
     92        <label for="_west">West:</label> <input type="text" id="_west" name="_west" value="%s" onChange="updateBBox('%s');" /><br> 
     93        <label for="_south">South:</label> <input type="text" id="_south" name="_south" value="%s" onChange="updateBBox('%s');" /><br> 
     94        <label for="_east">East:</label> <input type="text" id="_east" name="_east" value="%s" onChange="updateBBox('%s');" /><br> 
     95        <input type="hidden" id="%s" name="%s" value="%s" /> 
     96        """ % (n, name, w, name, s, name, e, name, name, name, extent) 
     97 
     98        return html 
     99 
     100 
     101    def renderBBoxOLD(self, name, extent): 
    67102        """ 
    68103        Renders a bounding box and N/W/S/E selectors. 
Note: See TracChangeset for help on using the changeset viewer.