X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FJSONSchema.pm;h=37a6e1fa673451e171844f172894715075faf660;hp=fe6614ac57b86cae287c5757c169e01558fd73a6;hb=abc1afd874c5a1ea126dbcf5013166512264e6f1;hpb=25d9bda94127b1a91181cd80bb9948093dea389b diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index fe6614a..37a6e1f 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -1485,7 +1485,7 @@ my $find_schema_default_key = sub { }; sub generate_typetext { - my ($format) = @_; + my ($format, $list_enums) = @_; my ($default_key, $keyAliasProps) = &$find_schema_default_key($format); @@ -1518,7 +1518,11 @@ sub generate_typetext { } elsif (my $text = $phash->{typetext}) { $typetext .= $text; } elsif (my $enum = $phash->{enum}) { - $typetext .= '<' . join('|', @$enum) . '>'; + if ($list_enums || (scalar(@$enum) <= 3)) { + $typetext .= '<' . join('|', @$enum) . '>'; + } else { + $typetext .= ''; + } } elsif ($phash->{type} eq 'boolean') { $typetext .= '<1|0>'; } elsif ($phash->{type} eq 'integer') { @@ -1674,7 +1678,7 @@ sub print_property_string { } sub schema_get_type_text { - my ($phash) = @_; + my ($phash, $style) = @_; my $type = $phash->{type} || 'string'; @@ -1700,7 +1704,9 @@ sub schema_get_type_text { if (my $format = $phash->{format}) { $format = get_format($format) if ref($format) ne 'HASH'; if (ref($format) eq 'HASH') { - return generate_typetext($format); + my $list_enums = 0; + $list_enums = 1 if $style && $style eq 'config-sub'; + return generate_typetext($format, $list_enums); } } }