diff --git a/src/webui/service/__init__.py b/src/webui/service/__init__.py index d60cca6597ced52db8e320f3ba1beb2b032be65b..beb99a317816ef231aafb4a7f150ddeec3aeca0f 100644 --- a/src/webui/service/__init__.py +++ b/src/webui/service/__init__.py @@ -38,8 +38,14 @@ def readiness(): except Exception as e: raise HealthError('Can\'t connect with the service: ' + e.details()) -def from_json(json_str): - return json.loads(json_str) +def from_json(value): + try: + return json.loads(value) + except: + return value + +def is_dict(value): + return isinstance(value, dict) class SetSubAppMiddleware(): def __init__(self, app, web_app_root): @@ -80,10 +86,10 @@ def create_app(use_config=None, web_app_root=None): from webui.service.link.routes import link app.register_blueprint(link) - app.jinja_env.filters['from_json'] = from_json - + app.jinja_env.filters['is_dict'] = is_dict + app.jinja_env.globals.update(get_working_context=get_working_context) app.jinja_env.globals.update(get_working_topology=get_working_topology) diff --git a/src/webui/service/templates/device/detail.html b/src/webui/service/templates/device/detail.html index 69ca93727310db7f89034f56510ceb5df504083f..2e8f79b87f28790985c6c3bea6f838cffc692434 100644 --- a/src/webui/service/templates/device/detail.html +++ b/src/webui/service/templates/device/detail.html @@ -94,11 +94,16 @@ {{ config.custom.resource_key }} </td> <td> - <ul> - {% for key, value in (config.custom.resource_value | from_json).items() %} - <li><b>{{ key }}:</b> {{ value }}</li> - {% endfor %} - </ul> + {% set json_resource_value = config.custom.resource_value | from_json %} + {% if json_resource_value | is_dict %} + <ul> + {% for key, value in json_resource_value.items() %} + <li><b>{{ key }}:</b> {{ value }}</li> + {% endfor %} + </ul> + {% else %} + {{ json_resource_value }} + {% endif %} </td> </tr> {% endif %}