From: Nicolas Frey <n.frey@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH proxmox-widget-toolkit] fix #6830: ui: apiviewer: add description panel to return section
Date: Wed, 15 Oct 2025 16:03:50 +0200 [thread overview]
Message-ID: <20251015140350.176989-1-n.frey@proxmox.com> (raw)
The PVE API viewer does not display schema object descriptions.
For example, when an endpoint's return type is defined like this:
`returns => {
type => 'object',
description => 'Some Description.',
...
}`
the description field would not be shown anywhere in the API viewer.
This patch adds a panel above the properties table, which shows the
description of the object if it is set.
Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=6830
Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
---
src/api-viewer/APIViewer.js | 101 ++++++++++++++++++++----------------
1 file changed, 55 insertions(+), 46 deletions(-)
diff --git a/src/api-viewer/APIViewer.js b/src/api-viewer/APIViewer.js
index 57d4451..7f27e0d 100644
--- a/src/api-viewer/APIViewer.js
+++ b/src/api-viewer/APIViewer.js
@@ -390,55 +390,64 @@ Ext.onReady(function () {
});
sections.push({
- xtype: 'gridpanel',
+ xtype: 'panel',
title: 'Returns: ' + rtype,
- features: [groupingFeature],
- store: rpstore,
- viewConfig: {
- trackOver: false,
- stripeRows: true,
- enableTextSelection: true,
- },
- columns: [
- {
- header: 'Name',
- dataIndex: 'name',
- flex: 1,
- },
- {
- header: 'Type',
- dataIndex: 'type',
- renderer: render_type,
- flex: 1,
- },
+ items: [
+ info.returns.description ? {
+ html: Ext.htmlEncode(info.returns.description),
+ bodyPadding: '5px 10px 5px 10px',
+ } : {},
{
- header: 'Default',
- dataIndex: 'default',
- flex: 1,
- },
- {
- header: 'Format',
- dataIndex: 'type',
- renderer: render_format,
- flex: 2,
- },
- {
- header: 'Description',
- dataIndex: 'description',
- renderer: render_description,
- flex: 6,
- },
- ],
- bbar: [
- {
- xtype: 'button',
- text: 'Show RAW',
- handler: function (btn) {
- rawSection.setVisible(!rawSection.isVisible());
- btn.setText(rawSection.isVisible() ? 'Hide RAW' : 'Show RAW');
+ xtype: 'gridpanel',
+ features: [groupingFeature],
+ store: rpstore,
+ viewConfig: {
+ trackOver: false,
+ stripeRows: true,
+ enableTextSelection: true,
},
- },
- ],
+ columns: [
+ {
+ header: 'Name',
+ dataIndex: 'name',
+ flex: 1,
+ },
+ {
+ header: 'Type',
+ dataIndex: 'type',
+ renderer: render_type,
+ flex: 1,
+ },
+ {
+ header: 'Default',
+ dataIndex: 'default',
+ flex: 1,
+ },
+ {
+ header: 'Format',
+ dataIndex: 'type',
+ renderer: render_format,
+ flex: 2,
+ },
+ {
+ header: 'Description',
+ dataIndex: 'description',
+ renderer: render_description,
+ flex: 6,
+ },
+ ],
+ bbar: [
+ {
+ xtype: 'button',
+ text: 'Show RAW',
+ handler: function (btn) {
+ rawSection.setVisible(!rawSection.isVisible());
+ btn.setText(rawSection.isVisible() ? 'Hide RAW' : 'Show RAW');
+ },
+ },
+ ],
+ }
+ ]
});
sections.push(rawSection);
--
2.47.3
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
reply other threads:[~2025-10-15 14:03 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251015140350.176989-1-n.frey@proxmox.com \
--to=n.frey@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox