Windows inventory: add osInfo fallback from sysinfo; portal detail spacing + subcategory
This commit is contained in:
parent
2a4bc486cf
commit
328415d9e9
2 changed files with 17 additions and 2 deletions
|
|
@ -294,7 +294,21 @@ fn build_inventory_metadata(system: &System) -> serde_json::Value {
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
{
|
{
|
||||||
let extended = collect_windows_extended();
|
let mut extended = collect_windows_extended();
|
||||||
|
// Fallback: se osInfo vier vazio, preenche com dados do sysinfo
|
||||||
|
if let Some(win) = extended.get_mut("windows").and_then(|v| v.as_object_mut()) {
|
||||||
|
let needs_os_info = match win.get("osInfo") {
|
||||||
|
Some(v) => v.as_object().map(|m| m.is_empty()).unwrap_or(true),
|
||||||
|
None => true,
|
||||||
|
};
|
||||||
|
if needs_os_info {
|
||||||
|
let mut osmap = serde_json::Map::new();
|
||||||
|
if let Some(name) = System::name() { osmap.insert("ProductName".into(), json!(name)); }
|
||||||
|
if let Some(ver) = System::os_version() { osmap.insert("Version".into(), json!(ver)); }
|
||||||
|
if let Some(build) = System::kernel_version() { osmap.insert("BuildNumber".into(), json!(build)); }
|
||||||
|
win.insert("osInfo".into(), serde_json::Value::Object(osmap));
|
||||||
|
}
|
||||||
|
}
|
||||||
if let Some(obj) = inventory.as_object_mut() {
|
if let Some(obj) = inventory.as_object_mut() {
|
||||||
obj.insert("extended".into(), extended);
|
obj.insert("extended".into(), extended);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ export function PortalTicketDetail({ ticketId }: PortalTicketDetailProps) {
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="grid gap-4 border-t border-slate-100 px-5 py-5 text-sm text-neutral-700 sm:grid-cols-2">
|
<CardContent className="grid gap-4 border-t border-slate-100 px-5 py-5 text-sm text-neutral-700 sm:grid-cols-2">
|
||||||
{isCustomer ? null : <DetailItem label="Fila" value={ticket.queue ?? "Sem fila"} />}
|
{isCustomer ? null : <DetailItem label="Fila" value={ticket.queue ?? "Sem fila"} />}
|
||||||
<DetailItem label="Categoria" value={ticket.category?.name ?? "Não classificada"} />
|
<DetailItem label="Categoria" value={ticket.category?.name ?? "Não classificada"} />`n <DetailItem label="Subcategoria" value={ticket.subcategory?.name ?? "—"} />
|
||||||
<DetailItem label="Solicitante" value={ticket.requester.name} subtitle={ticket.requester.email} />
|
<DetailItem label="Solicitante" value={ticket.requester.name} subtitle={ticket.requester.email} />
|
||||||
{ticket.assignee ? (
|
{ticket.assignee ? (
|
||||||
<DetailItem label="Responsável" value={ticket.assignee.name} />
|
<DetailItem label="Responsável" value={ticket.assignee.name} />
|
||||||
|
|
@ -314,3 +314,4 @@ function DetailItem({ label, value, subtitle }: DetailItemProps) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue