]>
git.proxmox.com Git - pve2-api-doc.git/blob - data/PVEAPI.js
4 'Ext.window.MessageBox'
7 // avoid errors when running without development tools
8 if (!Ext
.isDefined(Ext
.global
.console
)) {
15 Ext
.onReady(function() {
17 Ext
.define('pve-param-schema', {
18 extend
: 'Ext.data.Model',
20 'name', 'type', 'typetext', 'description', 'enum',
21 'minimum', 'maximum', 'minLength', 'maxLength',
22 'pattern', 'title', 'requires', 'format', 'default',
23 'disallow', 'extends', 'links',
31 var store
= Ext
.create('Ext.data.TreeStore', {
32 model
: Ext
.define('pve-api-doc', {
33 extend
: 'Ext.data.Model',
35 'path', 'info', 'text',
51 var render_text = function(value
, metaData
, record
) {
52 var pdef
= record
.data
;
54 metaData
.style
= 'white-space:pre-wrap;'
59 var render_type = function(value
, metaData
, record
) {
60 var pdef
= record
.data
;
62 return pdef
['enum'] ? 'enum' : (pdef
.type
|| 'string');
65 var render_format = function(value
, metaData
, record
) {
66 var pdef
= record
.data
;
68 metaData
.style
= 'white-space:normal;'
74 return pdef
['enum'].join(' | ');
85 var render_docu = function(data
) {
92 Ext
.Array
.each(['GET', 'POST', 'PUT', 'DELETE'], function(method
) {
93 var info
= md
[method
];
99 html
: info
.description
,
104 if (info
.parameters
&& info
.parameters
.properties
) {
106 var pstore
= Ext
.create('Ext.data.Store', {
107 model
: 'pve-param-schema',
111 groupField
: 'optional',
120 Ext
.Object
.each(info
.parameters
.properties
, function(name
, pdef
) {
127 var groupingFeature
= Ext
.create('Ext.grid.feature.Grouping',{
128 enableGroupingMenu
: false,
129 groupHeaderTpl
: '<tpl if="name">Optional</tpl><tpl if="!name">Required</tpl>'
135 features
: [groupingFeature
],
149 renderer
: render_type
,
154 renderer
: render_format
,
158 header
: 'Description',
159 dataIndex
: 'description',
160 renderer
: render_text
,
170 var rtype
= info
.returns
.type
;
171 if (!rtype
&& info
.returns
.items
)
177 title
: 'Returns: ' + rtype
182 if (!info
.permissions
) {
183 permhtml
= "Root only.";
185 if (info
.permissions
.description
) {
186 permhtml
+= "<div style='white-space:pre-wrap;padding-bottom:10px;'>" +
187 Ext
.htmlEncode(info
.permissions
.description
) + "</div>";
190 if (info
.permissions
.user
) {
191 if (info
.permissions
.user
=== 'world') {
192 permhtml
+= "Accessible without any authententification.";
193 } else if (info
.permissions
.user
=== 'all') {
194 permhtml
+= "Accessible by all authententicated users.";
196 permhtml
+= 'Onyl accessible by user "' +
197 info
.permissions
.user
+ '"';
199 } else if (info
.permissions
.check
) {
200 permhtml
+= "<pre>Check: " +
201 Ext
.htmlEncode(Ext
.JSON
.encode(info
.permissions
.check
)) + "</pre>";
203 permhtml
+= "Unknown systax!";
208 title
: 'Required permissions',
225 var ct
= Ext
.getCmp('docview');
226 ct
.setTitle("Path: " + data
.path
);
231 var tree
= Ext
.create('Ext.tree.Panel', {
232 title
: 'Resource Tree',
240 selectionchange: function(v
, selections
) {
243 var rec
= selections
[0];
244 render_docu(rec
.data
);
249 Ext
.create('Ext.container.Viewport', {
251 renderTo
: Ext
.getBody(),
256 title
: 'Documentation',