From 193ee2326d3d9b76bfe0b5e37e0c1cfb8530f712 Mon Sep 17 00:00:00 2001 From: ElaadF Date: Fri, 28 Jul 2023 00:04:54 +0200 Subject: [PATCH] Fixes #23087: Inventory variable that are Json types are listed as plain string types in the UI --- .../rudder/web/services/DisplayNode.scala | 33 +++++++++++++------ .../main/webapp/style/rudder/rudder-menu.css | 4 +++ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala index 62aa9f16b4b..4ce52dee219 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/services/DisplayNode.scala @@ -66,6 +66,8 @@ import net.liftweb.http.js.JE.JsRaw import net.liftweb.http.js.JE.JsVar import net.liftweb.http.js.JE.Str import net.liftweb.http.js.JsCmds._ +import net.liftweb.json.JsonAST._ +import net.liftweb.json.JsonDSL._ import net.liftweb.util._ import net.liftweb.util.Helpers._ import org.joda.time.DateTime @@ -885,27 +887,38 @@ object DisplayNode extends Loggable { if (value.strip().isEmpty) { } else { - {value} + +
{value}
+ + } } } + val os = ( + ("fullName" -> escape(sm.node.main.osDetails.fullName)) + ~ ("name" -> escape(S.?("os.name." + sm.node.main.osDetails.os.name))) + ~ ("version" -> escape(sm.node.main.osDetails.version.value)) + ~ ("servicePack" -> escape(sm.node.main.osDetails.servicePack.getOrElse("None"))) + ~ ("kernelVersion" -> escape(sm.node.main.osDetails.kernelVersion.value)) + ) + + val machine = ( + ("manufacturer" -> escape(sm.machine.flatMap(x => x.manufacturer).map(x => x.name).getOrElse(""))) + ~ ("machineType" -> displayMachineType(sm.machine).text.toString) + ) + val values = Seq[(String, String)]( ("localAdministratorAccountName", escape(sm.node.main.rootUser)), ("hostname", escape(sm.node.main.hostname)), ("policyServerId", escape(sm.node.main.policyServerId.value)), - ("os.fullName", escape(sm.node.main.osDetails.fullName)), - ("os.name", escape(S.?("os.name." + sm.node.main.osDetails.os.name))), - ("os.version", escape(sm.node.main.osDetails.version.value)), - ("os.servicePack", escape(sm.node.main.osDetails.servicePack.getOrElse("None"))), + ("os", net.liftweb.json.prettyRender(os)), ("archDescription", escape(sm.node.archDescription.getOrElse("None"))), - ("os.kernelVersion", escape(sm.node.main.osDetails.kernelVersion.value)), ("ram", escape(sm.node.ram.map(_.size.toString).getOrElse(""))), - ("machine.manufacturer", escape(sm.machine.flatMap(x => x.manufacturer).map(x => x.name).getOrElse(""))), - ("machine.machineType", displayMachineType(sm.machine).text.toString), + ("machine", net.liftweb.json.prettyRender(machine)), ( "timezone", escape( diff --git a/webapp/sources/rudder/rudder-web/src/main/webapp/style/rudder/rudder-menu.css b/webapp/sources/rudder/rudder-web/src/main/webapp/style/rudder/rudder-menu.css index 74cc2ab393d..70d0083ee25 100644 --- a/webapp/sources/rudder/rudder-web/src/main/webapp/style/rudder/rudder-menu.css +++ b/webapp/sources/rudder/rudder-web/src/main/webapp/style/rudder/rudder-menu.css @@ -119,6 +119,10 @@ header.main-header .logo-lg img{ overflow : hidden; } /* - JSON - */ +.json-inventory-vars { + border: none; + background-color: transparent; +} pre.json-beautify, .content-wrapper pre.json-beautify{ border: none; background-color: transparent;