diff --git a/src/include/add-on/add-on-workflow.rb b/src/include/add-on/add-on-workflow.rb index dea6f34..3d6fb58 100755 --- a/src/include/add-on/add-on-workflow.rb +++ b/src/include/add-on/add-on-workflow.rb @@ -1171,49 +1171,30 @@ def ReturnCurrentlySelectedProductInfo end def AdjustInfoWidget - pi = ReturnCurrentlySelectedProductInfo() - if pi.nil? || pi == {} + product_info = ReturnCurrentlySelectedProductInfo() + + if product_info.to_h.empty? UI.ChangeWidget(Id("product_details"), :Value, "") + return end - vendor = pi["product"].vendor.empty? ? _("Unknown vendor") : pi["product"].vendor - version = pi["product"].version.empty? ? _("Unknown version") : pi["product"].version - rt_description = Builtins.sformat( - "

%1\n%2\n%3\n%4

", - Builtins.sformat( - _("Vendor: %1
"), - vendor - ), - Builtins.sformat( - _("Version: %1
"), - version - ), - if Ops.greater_than( - Builtins.size(Ops.get_list(pi, ["info", "URLs"], [])), - 0 - ) - Builtins.sformat( - _("Repository URL: %1
"), - Builtins.mergestring(Ops.get_list(pi, ["info", "URLs"], []), ",") - ) - else - "" - end, - if Ops.greater_than( - Builtins.size(Ops.get_list(pi, ["info", "aliases"], [])), - 0 - ) - Builtins.sformat( - _("Repository Alias: %1
"), - Builtins.mergestring(Ops.get_list(pi, ["info", "aliases"], []), ",") - ) - else - "" - end - ) + product = product_info["product"] + info = product_info["info"] || {} + + vendor = product.vendor.empty? ? _("Unknown vendor") : product.vendor + version = product.version.empty? ? _("unknown version") : product.version + urls = info.fetch("URLs", []).join(",") + aliases = info.fetch("aliases", []).join(",") + + details = [] + details << format(_("Vendor: %s
"), vendor) + details << format(_("Version: %s
"), version) + details << format(_("Repository URL: %s
"), urls) unless urls.empty? + details << format(_("Repository Alias: %s
"), aliases) unless aliases.empty? + - UI.ChangeWidget(Id("product_details"), :Value, rt_description) + UI.ChangeWidget(Id("product_details"), :Value, "

#{details.join("\n")}

") nil end