diff options
| author | Robin ALEXANDER <colisee@hotmail.com> | 2022-02-03 10:55:20 +0100 | 
|---|---|---|
| committer | Robin ALEXANDER <colisee@hotmail.com> | 2022-02-03 10:55:20 +0100 | 
| commit | 852665779c24880e97c1a560e8f19a11f2ee28a3 (patch) | |
| tree | 51e4d4ec58dc1753ec8708bfc38943b86bba9d0e | |
| parent | 6db5087d69445592e193267fbe2e13b96b4c41d7 (diff) | |
| download | dabmux-852665779c24880e97c1a560e8f19a11f2ee28a3.tar.gz dabmux-852665779c24880e97c1a560e8f19a11f2ee28a3.tar.bz2 dabmux-852665779c24880e97c1a560e8f19a11f2ee28a3.zip  | |
Introduce selectable values for ad-hoc parameters
| -rwxr-xr-x | gui/odr-dabmux-gui.py | 19 | ||||
| -rw-r--r-- | gui/rcparam.json | 48 | ||||
| -rw-r--r-- | gui/views/rcparam.tpl | 28 | 
3 files changed, 85 insertions, 10 deletions
diff --git a/gui/odr-dabmux-gui.py b/gui/odr-dabmux-gui.py index 31f9588..df6b81f 100755 --- a/gui/odr-dabmux-gui.py +++ b/gui/odr-dabmux-gui.py @@ -29,7 +29,7 @@  from muxconfig import *  from muxrc import * -from bottle import route, run, template, static_file, request +from bottle import *  import json  import argparse @@ -84,10 +84,19 @@ def rc_get(module, param):      value = rc.get_param_value(module, param) +    if param in paramObj: +      paramList = paramObj[param] +      label = paramObj["labels"][param] +    else: +      paramList = [] +      label = "" +      return template('rcparam',              module    = module,              param     = param, -            value     = value) +            value     = value, +            label     = label, +            list      = paramList)  @route('/rc/<module>/<param>', method="POST")  def rc_post(module, param): @@ -153,5 +162,9 @@ if __name__ == '__main__':      rc = MuxRemoteControl(cli_args.mhost, cli_args.rcport) -    run(host=cli_args.host, port=int(cli_args.port), debug=True, reloader=False) +    # Import selectable paramaters values +    paramFile = open("rcparam.json") +    paramStr = paramFile.read() +    paramObj = json.loads(paramStr) +    run(host=cli_args.host, port=int(cli_args.port), debug=True, reloader=False) diff --git a/gui/rcparam.json b/gui/rcparam.json new file mode 100644 index 0000000..f350060 --- /dev/null +++ b/gui/rcparam.json @@ -0,0 +1,48 @@ +{
 +    "labels": {
 +      "buffermanagement":"Buffer management",
 +      "ptysd":"Program-type mode",
 +      "pty":"Program type"
 +    },
 +    "buffermanagement": [
 +      {"value":"prebuffering", "desc":"prebuffering"},
 +      {"value":"timestamped", "desc":"timestamped"}
 +    ],
 +    "ptysd": [
 +      {"value":"dynamic", "desc":"dynamic"},
 +      {"value":"static", "desc":"static"}
 +    ],
 +    "pty": [
 +      {"value":"0", "desc":"None"},
 +      {"value":"1", "desc":"News"},
 +      {"value":"2", "desc":"Affairs"},
 +      {"value":"3", "desc":"Info"},
 +      {"value":"4", "desc":"Sport"},
 +      {"value":"5", "desc":"Educate"},
 +      {"value":"6", "desc":"Drama"},
 +      {"value":"7", "desc":"Arts"},
 +      {"value":"8", "desc":"Science"},
 +      {"value":"9", "desc":"Talk"},
 +      {"value":"10", "desc":"Pop"},
 +      {"value":"11", "desc":"Rock"},
 +      {"value":"12", "desc":"Easy"},
 +      {"value":"13", "desc":"Light classics"},
 +      {"value":"14", "desc":"Classics"},
 +      {"value":"15", "desc":"Other music"},
 +      {"value":"16", "desc":"Weather"},
 +      {"value":"17", "desc":"Finance"},
 +      {"value":"18", "desc":"Children"},
 +      {"value":"19", "desc":"Factual"},
 +      {"value":"20", "desc":"Religion"},
 +      {"value":"21", "desc":"Phone in"},
 +      {"value":"22", "desc":"Travel"},
 +      {"value":"23", "desc":"Leisure"},
 +      {"value":"24", "desc":"Jazz"},
 +      {"value":"25", "desc":"Country"},
 +      {"value":"26", "desc":"National music"},
 +      {"value":"27", "desc":"Oldies"},
 +      {"value":"28", "desc":"Folk"},
 +      {"value":"29", "desc":"Document"}
 +    ]
 +  }
 +  
\ No newline at end of file diff --git a/gui/views/rcparam.tpl b/gui/views/rcparam.tpl index 3bf3e5c..c415d7a 100644 --- a/gui/views/rcparam.tpl +++ b/gui/views/rcparam.tpl @@ -9,17 +9,31 @@      <script type="text/javascript" src="/static/intercooler-1.0.1.min.js"></script>    </head> -  <body> -    <h1 class="w3-container w3-blue-grey">Remote-Control of module {{module}}</h1> -    <div class="w3-container"> -      <form class="w3-container w3-card-4" ic-on-error="alert(str)" ic-post-to="/rc/{{module}}/{{param}}"> +  <body class="w3-container"> +    <h1 class="w3-blue-grey">Remote-Control: module {{module}}</h1> +    <div class="w3-card-4">  +      <form class="w3-container" ic-on-error="alert(str)" ic-post-to="/rc/{{module}}/{{param}}">          <p /> -        <label>Parameter <b>{{param}}</b></label> -        <input name="newvalue" type="text" value="{{value}}"> +        % if (len(list) == 0): +          <label>{{param}}:</label> +          <input name="newvalue" type="text" value="{{value}}" autofocus> +        % else: +          <label>{{label}}:</label> +          <select id="newvalue" name="newvalue"> +            % for l in list: +              % if (bytes(l["value"], 'utf-8') == value): +                <option selected value={{l["value"]}}>{{l["desc"]}}</option> +              % else: +                <option value={{l["value"]}}>{{l["desc"]}}</option> +              % end +            % end +          </select> +        % end          <p />          <button class="w3-button w3-blue-grey">Update</button> +        <p />        </form>      </div>    </body> -</html> +</html>
\ No newline at end of file  | 
