all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH proxmox-widget-toolkit] fix #6830: ui: apiviewer: add description panel to return section
@ 2025-10-15 14:03 Nicolas Frey
  0 siblings, 0 replies; only message in thread
From: Nicolas Frey @ 2025-10-15 14:03 UTC (permalink / raw)
  To: pve-devel

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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-10-15 14:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-15 14:03 [pve-devel] [PATCH proxmox-widget-toolkit] fix #6830: ui: apiviewer: add description panel to return section Nicolas Frey

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal