diff --git a/htdocs/css/admin.css b/htdocs/css/admin.css index 73acdbb..019be64 100644 --- a/htdocs/css/admin.css +++ b/htdocs/css/admin.css @@ -103,6 +103,11 @@ table.bookmarks .frequency { background: initial; } +.sdr-device-list .sdr-profile-list { + max-height: 20rem; + overflow-y: auto; +} + .removable-group.removable { display: flex; flex-direction: row; diff --git a/owrx/controllers/settings/sdr.py b/owrx/controllers/settings/sdr.py index a776419..88e1d31 100644 --- a/owrx/controllers/settings/sdr.py +++ b/owrx/controllers/settings/sdr.py @@ -23,6 +23,16 @@ class SdrDeviceListController(AuthorizationMixin, WebpageController): return variables def render_devices(self): + def render_profile(profile_id, profile): + return """ +
  • + {profile_name} +
  • + """.format( + profile_name=profile["name"], + profile_link="{}/{}".format(self.request.path, quote(profile_id)), + ) + def render_device(device_id, config): # TODO: this only returns non-failed sources... source = SdrService.getSource(device_id) @@ -47,12 +57,19 @@ class SdrDeviceListController(AuthorizationMixin, WebpageController): return """
  • - -

    {device_name}

    -
    -
    State: {state}
    -
    {num_profiles} profile(s)
    - {additional_info} +
    +
    + +

    {device_name}

    +
    +
    State: {state}
    +
    {num_profiles} profile(s)
    + {additional_info} +
    + +
  • """.format( device_name=config["name"], @@ -60,10 +77,11 @@ class SdrDeviceListController(AuthorizationMixin, WebpageController): state="Unknown" if source is None else source.getState(), num_profiles=len(config["profiles"]), additional_info=additional_info, + profiles="".join(render_profile(p_id, p) for p_id, p in config["profiles"].items()) ) return """ -