Changeset 5958


Ignore:
Timestamp:
03/11/09 21:28:13 (10 years ago)
Author:
astephen
Message:

more updates for submission form.

Location:
cows_wps/trunk/cows_wps
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • cows_wps/trunk/cows_wps/controllers/submit.py

    r5956 r5958  
    2424        del args["proc_id"] 
    2525 
    26         wps_url_base = """/wps?Request=Execute&Format=text/xml&Identifier=%s&Store=false&Status=false&DataInputs=""" 
    27         wps_request = wps_url_base % proc_id 
     26        wps_url_format = "/wps?Request=Execute&Format=text/xml&Identifier=%s&Store=false&Status=false&DataInputs=" 
     27        wps_request = wps_url_format % proc_id 
    2828 
    2929        for (key, value) in args.items(): 
     
    3434 
    3535        return redirect_to(wps_request)  
    36         return "Do I get here?" 
     36 
     37    def choose(self): 
     38        """ 
     39        Shows a drop-down list of possible procs to submit - to choose from. 
     40        """ 
     41        pc = ProcConfig() 
     42        procs = pc.getProcList() 
     43 
     44        resp = """      <form action="/submit/form"> 
     45                <p>Please select a process from the drop-down menu below and press 'GO' to generate a form to submit a job.</p> 
     46                <select name="proc_id">""" 
     47 
     48        for (proc, long_name) in procs.items(): 
     49            resp += ('                  <option name="%s" value="%s">%s</option>\n' % (proc, proc, long_name)) 
     50 
     51        resp += """             </select> 
     52                <input type="submit" value="GO" /> 
     53        </form>""" 
     54 
     55        renderer = UIPageRenderer() 
     56        resp = renderer.render("Submission Form", 
     57                               [("Choose a process to submit a job to", resp)]) 
     58 
     59        return resp 
     60 
    3761 
    3862    def form(self): 
  • cows_wps/trunk/cows_wps/lib/ui/proc_config.py

    r5955 r5958  
    11import logging 
     2import copy 
    23 
    34from cows_wps.utils.create_process_config import createProcessConfig 
     
    9091        Renders the table of all procs on the view page. 
    9192        """ 
    92         resp = """<table border="1" style="position: relative; left: 30px;">\n<tr>""" 
     93        resp = """<table border="1">\n<tr>""" 
    9394        headings = ("Process name", "Short description", "Full description", "Comments",  
    9495                    "Options") 
    9596        for heading in headings: 
    96             resp += """<td width="20%%" style="background:#FF9900"><b>%s</b></td>\n""" % heading   
     97            resp += """<td width="17%%" style="background:#FF9900"><b>%s</b></td>\n""" % heading   
    9798        resp += "</tr>\n" 
    9899 
     
    103104 
    104105            required_items = ("Title", "Abstract", "ProcessDescription")      
    105             resp += "<tr>\n<td>%s</td>\n" % proc  
     106            resp += """<tr>\n<td style="background: #FFFFFF;">%s</td>\n""" % proc  
    106107 
    107108            for req_item in required_items: 
    108                 resp += """<td>%s</td>\n""" % proc_dict[req_item] 
     109                resp += """<td style="background: #FFFFFF;">%s</td>\n""" % proc_dict[req_item] 
    109110 
    110111            # Now add link to details and submit pages 
    111             resp += """<td><a href="/submit/form?proc_id=%s">Submit job</a><br /> 
     112            resp += """<td style="background: #FFFFFF;"><a href="/submit/form?proc_id=%s">Submit job</a><br /> 
    112113                           <a href="/view/proc?proc_id=%s">View full details</a></td>\n""" % (proc, proc) 
    113114 
     
    132133                Click the 'Submit' button to submit your request.""" 
    133134 
    134         resp += """<form action="/submit"> 
     135        resp += """<form action="/submit" onSubmit="return validateInputs();"> 
    135136                <input type="hidden" name="proc_id" value="%s" /> 
    136137                <table border="0">\n""" % proc 
     
    139140         
    140141        for (name, input) in inputs: 
    141             resp += """<tr><td width="30%%"><b>%s</b></td><td width="45%%">\n""" % name 
     142            resp += """<tr><td width="25%%"><b>%s</b></td><td width="40%%">\n""" % name 
    142143            al = input["allowed_length"] 
    143144            pv = input["possible_values"] 
     
    145146            tp = input["type"] 
    146147 
    147             if tp == "bool": 
     148            if pv != None: 
     149                resp += fm.renderSelectList(name, values=pv) 
     150 
     151            elif tp == "bool": 
    148152                resp += fm.renderRadioButton(name, is_boolean=True) 
    149153             
  • cows_wps/trunk/cows_wps/lib/ui/proc_config_convertor.py

    r5940 r5958  
    99 
    1010import logging 
     11import copy 
    1112 
    1213from cows_wps.utils.create_process_config import createProcessConfig 
     
    2122 
    2223    def convertConfig(self, proc_id): 
    23         proc_config = createProcessConfig(proc_id)["Capabilities"] 
     24        proc_config = copy.deepcopy(createProcessConfig(proc_id)["Capabilities"]) 
    2425        can_cache = proc_config["wps_interface"]["caching_enabled"] 
    2526        globals = self.convertGlobals(proc_config["globals"]) 
  • cows_wps/trunk/cows_wps/public/home.html

    r5938 r5958  
    1010 
    1111        <div id="title"> 
    12                 <h1>CEDA WPS UI</h1> 
    13                 <span id="strapline_text">Distributed Processing in an OGC / Pylons framework</span> 
     12                <span id="title_text">CEDA WPS UI</span> 
     13                <span id="strapline_text">Distributed Processing in an OGC / Pylons framework</span> 
    1414        </div> 
    1515        <div id="menu"> 
     
    1717                <a href="/wps?Service=WPS&Request=GetCapabilities&Format=text/xml">Capabilities</a>&nbsp;&nbsp; 
    1818                <a href="/view">View</a>&nbsp;&nbsp; 
    19                 <a href="/submit.html">Submit</a>&nbsp;&nbsp; 
     19                <a href="/submit/choose">Submit</a>&nbsp;&nbsp; 
    2020                <a href="/jobs">Jobs</a>&nbsp;&nbsp; 
    2121                <a href="/technical.html">Technical</a>&nbsp;&nbsp; 
  • cows_wps/trunk/cows_wps/public/js/ui/validate.js

    r5955 r5958  
    3636} 
    3737 
     38var validators = new Array(); 
     39/* Validator is a pseudo-class */ 
     40function Validator(name, validation_type, regex_match, msg) { 
     41    this.name = name; 
     42    this.validation_type = validation_type; 
     43    this.regex_match = regex_match; 
     44    this.msg = msg; 
     45} 
    3846 
     47/* ValidatorMappings is a pseudo-class */ 
     48function ValidatorMappings() { 
     49    this.ids = new Array("text"); 
     50    this.values = new Array(validateTextInput); 
     51 
     52    function getFunction(id) { 
     53        for (var i = 0; i < this.ids.length; i++) { 
     54            if (id == this.ids[i]) { 
     55                return this.values[i]; 
     56            } 
     57        } 
     58        return false; 
     59    } 
     60 
     61    this.getFunction = getFunction;  
     62} 
     63 
     64function addValidator(name, validation_type, regex_match, msg) { 
     65    var vdr = new Validator(name, validation_type, regex_match, msg); 
     66    var this_arr = new Array(vdr); 
     67    validators = validators.concat(this_arr); 
     68} 
     69 
     70/* function validateInputs(): 
     71   Loops through validators and checks each. 
     72*/ 
     73function validateInputs() { 
     74 
     75    var vm = new ValidatorMappings(); 
     76 
     77    for (var i = 0; i < validators.length; i++) { 
     78        var vdr = validators[i]; 
     79 
     80        var name = vdr.name; 
     81        var validation_type = vdr.validation_type; 
     82        var regex_match = vdr.regex_match; 
     83        var msg = vdr.msg;  
     84 
     85        var fnc = vm.getFunction(validation_type); 
     86         
     87        var value = document.getElementById(name); 
     88        var res = fnc.call(value, regex_match, msg); 
     89 
     90        if (res == false) { 
     91            return false; 
     92        } 
     93    } 
     94}  
  • cows_wps/trunk/cows_wps/public/style/wps_ui.css

    r5938 r5958  
    2020h2 { 
    2121        color: #1111FF; 
    22         text-align: center; 
    2322} 
    2423 
     
    2928 
    3029#strapline_text { 
    31         position: absolute; 
    32         left: 200px; 
    33         top: 55px; 
    3430        font-style: italic; 
    3531        text-align: center; 
     32        left: 100px; 
     33        position: relative; 
     34} 
     35 
     36#title_text { 
     37        top: 50px; 
     38        font-size: 40px; 
     39        color: #2222FF; 
     40        font-weight: bold; 
    3641} 
    3742 
     
    3944        position: absolute; 
    4045        width: 100%; 
    41         height: 80px; 
     46        height: 55px; 
    4247        border-style: inset; 
    4348        border-color: #0000FF; 
     
    4954        position: absolute; 
    5055        width: 100%; 
    51         top: 85px; 
    52         height: 40px; 
     56        top: 65px; 
     57        height: 30px; 
    5358        font-size: 12pt; 
    5459        text-decoration: none; 
  • cows_wps/trunk/cows_wps/public/technical.html

    r5938 r5958  
    1010 
    1111        <div id="title"> 
    12                 <h1>CEDA WPS: Technical</h1> 
     12                <span id="title_text">CEDA WPS UI</span> 
    1313                <span id="strapline_text">Distributed Processing in an OGC / Pylons framework</span> 
    1414        </div> 
     
    1717                <a href="/wps?Service=WPS&Request=GetCapabilities&Format=text/xml">Capabilities</a>&nbsp;&nbsp; 
    1818                <a href="/view">View</a>&nbsp;&nbsp; 
    19                 <a href="/submit.html">Submit</a>&nbsp;&nbsp; 
     19                <a href="/submit/choose">Submit</a>&nbsp;&nbsp; 
    2020                <a href="/jobs">Jobs</a>&nbsp;&nbsp; 
    2121                <a href="/technical.html">Technical</a>&nbsp;&nbsp; 
  • cows_wps/trunk/cows_wps/renderer/form_renderer.py

    r5955 r5958  
    4848  
    4949        html = """<input type="text" name="%s" id="%s" value="" onChange="validateTextInput(this.value, %s, '%s');" /><br />\n""" % (name, name, regex, msg) 
     50        html += """<script type="text/javascript">addValidator('%s', 'text', %s, '%s');</script>\n""" % (name, regex, msg) 
    5051        return html 
    5152 
    52                   
     53    def renderSelectList(self, name, values): 
     54        """ 
     55        Returns HTML for select list. 
     56        """ 
     57        html = """<select name="%s" id="%s">\n""" % (name, name) 
     58         
     59        for value in values: 
     60            html += """ <option value="%s">%s</option>\n""" % (value, value) 
     61 
     62        return html 
  • cows_wps/trunk/cows_wps/renderer/xml_renderer.py

    r5615 r5958  
    145145 
    146146    for out_tag, out_def in proc_out_defs.items(): 
    147          
     147        log.warn("out_def: %s" % str(out_def))  
    148148        type = out_def["type"] 
    149149         
  • cows_wps/trunk/cows_wps/templates/ui_template.html

    r5955 r5958  
    1313 
    1414        <div id="title"> 
    15                 <h1>CEDA WPS UI</h1> 
     15                <span id="title_text">CEDA WPS UI</span> 
    1616                <span id="strapline_text">Distributed Processing in an OGC / Pylons framework</span> 
    1717        </div> 
     
    2020                <a href="${wps_capabilities_url}">Capabilities</a>&nbsp;&nbsp; 
    2121                <a href="/view">View</a>&nbsp;&nbsp; 
    22                 <a href="/submit.html">Submit</a>&nbsp;&nbsp; 
     22                <a href="/submit/choose">Submit</a>&nbsp;&nbsp; 
    2323                <a href="/jobs">Jobs</a>&nbsp;&nbsp; 
    2424                <a href="/technical.html">Technical</a>&nbsp;&nbsp; 
Note: See TracChangeset for help on using the changeset viewer.