You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

933 lines
39 KiB

10 months ago
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Acme project</title>
  5. <meta name="description" content="REST Api">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <link href="assets/bootstrap.min.css" rel="stylesheet" media="screen">
  9. <link href="assets/prism.css" rel="stylesheet" />
  10. <link href="assets/main.css" rel="stylesheet" media="screen, print">
  11. <link href="assets/favicon.ico" rel="icon" type="image/x-icon">
  12. <link href="assets/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180">
  13. <link href="assets/favicon-32x32.png" rel="icon" type="image/png" sizes="32x32">
  14. <link href="assets/favicon-16x16.png"rel="icon" type="image/png" sizes="16x16">
  15. </head>
  16. <body class="container-fluid">
  17. <!-- SIDENAV -->
  18. <script id="template-sidenav" type="text/x-handlebars-template">
  19. <nav id="scrollingNav">
  20. <div class="sidenav-search">
  21. <input class="form-control search" data-action='filter-search' type="text" placeholder="{{__ "Filter..."}}">
  22. <span class="search-reset">x</span>
  23. </div>
  24. <ul class="sidenav nav nav-list list">
  25. {{#each nav}}
  26. {{#if title}}
  27. {{#if isHeader}}
  28. {{#if isFixed}}
  29. <li class="nav-fixed nav-header navbar-btn nav-list-item" data-group="{{group}}"><a href="#api-{{group}}" data-name="show-api-{{group}}" class="show-api api-{{group}}-init">{{underscoreToSpace title}}</a></li>
  30. {{else}}
  31. <li class="nav-header nav-list-item" data-group="{{group}}"><a href="#api-{{group}}" data-group="show-api-{{group}}" class="show-group api-{{group}}-init">{{underscoreToSpace title}}</a></li>
  32. {{/if}}
  33. {{else}}
  34. <li class="{{#if hidden}}hide {{/if}}" data-group="{{group}}" data-name="{{name}}" data-version="{{version}}">
  35. <a href="#api-{{group}}-{{name}}" title="{{url}}" data-group="show-api-{{group}}" data-name="show-api-{{group}}-{{name}}" class="nav-list-item show-api api-{{group}}-{{name}}-init">{{title}}<div class="nav-list-url-item hide">{{url}}</div></a>
  36. </li>
  37. {{/if}}
  38. {{/if}}
  39. {{/each}}
  40. </ul>
  41. </nav>
  42. </script>
  43. <!-- PROJECT -->
  44. <script id="template-project" type="text/x-handlebars-template">
  45. <div class="pull-left">
  46. <h1>{{name}}</h1>
  47. {{#if description}}<h2>{{{nl2br description}}}</h2>{{/if}}
  48. </div>
  49. <div class="pull-right">
  50. {{#if template.withCompare}}
  51. <div class="btn-group">
  52. <button id="version" class="btn btn-lg btn-default dropdown-toggle" data-toggle="dropdown">
  53. <strong>{{version}}</strong>&nbsp;<span class="caret"></span>
  54. </button>
  55. <ul id="versions" class="dropdown-menu open-left">
  56. <li><a id="compareAllWithPredecessor" href="#">{{__ "Compare all with predecessor"}}</a></li>
  57. <li class="divider"></li>
  58. <li class="disabled"><a href="#">{{__ "show up to version:"}}</a></li>
  59. {{#each versions}}
  60. <li class="version"><a href="#">{{this}}</a></li>
  61. {{/each}}
  62. </ul>
  63. </div>
  64. {{else}}
  65. <div id="version" class="well well-sm">
  66. <strong>{{version}}</strong>
  67. </div>
  68. {{/if}}
  69. </div>
  70. <div class="clearfix"></div>
  71. </script>
  72. <script id="template-header" type="text/x-handlebars-template">
  73. {{#if content}}
  74. <div id="api-_header" class="show-api-article show-api-_-article">{{{content}}}</div>
  75. {{/if}}
  76. </script>
  77. <script id="template-footer" type="text/x-handlebars-template">
  78. {{#if content}}
  79. <div id="api-_footer" class="show-api-article show-api-_-article">{{{content}}}</div>
  80. {{/if}}
  81. </script>
  82. <script id="template-generator" type="text/x-handlebars-template">
  83. {{#if template.withGenerator}}
  84. {{#if generator}}
  85. <div>
  86. <p class="text-muted">
  87. {{__ "Generated with"}} <a href="{{{generator.url}}}">{{{generator.name}}}</a> {{{generator.version}}} - {{{generator.time}}}
  88. </p>
  89. </div>
  90. {{/if}}
  91. {{/if}}
  92. </script>
  93. <script id="template-sections" type="text/x-handlebars-template">
  94. <section id="api-{{group}}" class="show-api-group show-api-{{group}}-group {{#if aloneDisplay}} hide{{/if}}">
  95. <h1 class="color-primary font-weight-bold">{{underscoreToSpace title}}</h1>
  96. {{#if description}}
  97. <p>{{{nl2br description}}}</p>
  98. {{/if}}
  99. {{#each articles}}
  100. <div id="api-{{group}}-{{name}}" class="show-api-article show-api-{{group}}-article show-api-{{group}}-{{name}}-article {{#if aloneDisplay}} hide{{/if}}">
  101. {{{article}}}
  102. </div>
  103. {{/each}}
  104. </section>
  105. </script>
  106. <script id="template-article" type="text/x-handlebars-template">
  107. <article id="api-{{article.group}}-{{article.name}}-{{article.version}}" {{#if hidden}}class="hide"{{/if}} data-group="{{article.group}}" data-name="{{article.name}}" data-version="{{article.version}}">
  108. <div class="pull-left">
  109. <h1><span class="color-primary">{{underscoreToSpace article.groupTitle}}</span>{{#if article.title}} <span class="text-muted">|</span> {{article.title}}{{/if}}</h1>
  110. </div>
  111. {{#if template.withCompare}}
  112. <div class="pull-right">
  113. <div class="btn-group">
  114. <button class="version btn btn-default dropdown-toggle" data-toggle="dropdown">
  115. <strong>{{article.version}}</strong>&nbsp;<span class="caret"></span>
  116. </button>
  117. <ul class="versions dropdown-menu open-left">
  118. <li class="disabled"><a href="#">{{__ "compare changes to:"}}</a></li>
  119. {{#each versions}}
  120. <li class="version"><a href="#">{{this}}</a></li>
  121. {{/each}}
  122. </ul>
  123. </div>
  124. </div>
  125. {{/if}}
  126. <div class="clearfix"></div>
  127. {{#if article.author}}<h4 class="muted">Authored by: {{article.author}}</h4>{{/if}}
  128. {{#if article.deprecated}}
  129. <p class="deprecated"><span>{{__ "DEPRECATED"}}</span>
  130. {{{markdown article.deprecated.content}}}
  131. </p>
  132. {{/if}}
  133. {{#if article.description}}
  134. <p>{{{nl2br article.description}}}</p>
  135. {{/if}}
  136. <span class="method meth-{{toLowerCase article.type}}">{{article.type}}</span>
  137. <pre data-type="{{toLowerCase article.type}}"><code class="language-http">{{article.url}}</code></pre>
  138. {{#if article.permission}}
  139. <p>
  140. {{__ "Permission:"}}
  141. {{#each article.permission}}
  142. {{name}}
  143. {{#if title}}
  144. <button type="button" class="btn btn-info btn-xs" data-title="{{title}}" data-content="{{nl2br description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
  145. <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
  146. </button>
  147. {{/if}}
  148. {{/each}}
  149. </p>
  150. {{/if}}
  151. {{!-- CODE EXAMPLES IN TABS --}}
  152. {{#ifCond article.examples.length '>' 0}}
  153. <ul class="nav nav-tabs nav-tabs-examples" role="tablist">
  154. {{#each article.examples}}
  155. <li{{#ifCond @index '==' 0}} class="active"{{/ifCond}}>
  156. <a href="#examples-{{../id}}-{{@index}}" role="tab" data-toggle="tab">{{title}}</a>
  157. </li>
  158. {{/each}}
  159. </ul>
  160. <div class="tab-content">
  161. {{#each article.examples}}
  162. <div class="tab-pane{{#ifCond @index '==' 0}} active{{/ifCond}}" id="examples-{{../id}}-{{@index}}">
  163. <pre data-type="{{type}}"><code class="language-{{type}}">{{content}}</code></pre>
  164. </div>
  165. {{/each}}
  166. </div>
  167. {{/ifCond}}
  168. {{subTemplate "article-param-block" params=article.header _hasType=_hasTypeInHeaderFields section="header"}}
  169. {{subTemplate "article-param-block" params=article.parameter _hasType=_hasTypeInParameterFields section="parameter"}}
  170. {{subTemplate "article-query-block" params=article.query _hasType=_hasTypeInParameterFields section="query"}}
  171. {{subTemplate "article-body-block" params=article.body _hasType=_hasTypeInParameterFields section="body"}}
  172. {{subTemplate "article-param-block" params=article.success _hasType=_hasTypeInSuccessFields section="success"}}
  173. {{subTemplate "article-param-block" params=article.error _col1="Name" _hasType=_hasTypeInErrorFields section="error"}}
  174. {{subTemplate "article-sample-request" article=article id=id}}
  175. </article>
  176. </script>
  177. <script id="template-article-query-block" type="text/x-handlebars-template">
  178. {{#if article.query}}
  179. <h2>{{__ "Query Parameter(s)"}}</h2>
  180. <table>
  181. <thead>
  182. <tr>
  183. <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
  184. {{#unless this.Type compare=null}}
  185. <th style="width: 10%">{{__ "Type"}}</th>
  186. {{/unless}}
  187. <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
  188. </tr>
  189. </thead>
  190. <tbody>
  191. {{#each params}}
  192. <tr>
  193. <td class="code">{{this.field}}&nbsp;&nbsp;
  194. {{#if optional}}
  195. <span class="label optional">{{__ "optional"}}</span>
  196. {{else}}
  197. {{#if ../template.showRequiredLabels}}
  198. <span class="label required">{{__ "required"}}</span>
  199. {{/if}}
  200. {{/if}}
  201. </td>
  202. {{#unless this.Type compare=null}}
  203. <td class="code">{{this.type}}</td>
  204. {{/unless}}
  205. <td>{{{nl2br this.description}}}
  206. {{#if defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{defaultValue}}}</code></p>{{/if}}
  207. {{#if size}}<p class="type-size">{{__ "Size range:"}} <code>{{{size}}}</code></p>{{/if}}
  208. {{#if allowedValues}}<p class="type-size">{{__ "Allowed values:"}}
  209. {{#each allowedValues}}
  210. <code>{{{this}}}</code>{{#unless @last}}, {{/unless}}
  211. {{/each}}
  212. </p>
  213. {{/if}}
  214. </td>
  215. </tr>
  216. {{/each}}
  217. </tbody>
  218. </table>
  219. {{/if}}
  220. </script>
  221. <script id="template-article-body-block" type="text/x-handlebars-template">
  222. {{#if article.body}}
  223. <h2>{{__ "Request Body"}}</h2>
  224. <table>
  225. <thead>
  226. <tr>
  227. <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
  228. {{#unless this.Type compare=null}}
  229. <th style="width: 10%">{{__ "Type"}}</th>
  230. {{/unless}}
  231. <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
  232. </tr>
  233. </thead>
  234. <tbody>
  235. {{#each params}}
  236. <tr>
  237. <td class="code">{{this.field}}&nbsp;&nbsp;
  238. {{#if optional}}
  239. <span class="label optional">{{__ "optional"}}</span>
  240. {{else}}
  241. {{#if ../template.showRequiredLabels}}
  242. <span class="label required">{{__ "required"}}</span>
  243. {{/if}}
  244. {{/if}}
  245. </td>
  246. {{#unless this.Type compare=null}}
  247. <td class="code">{{this.type}}</td>
  248. {{/unless}}
  249. <td>
  250. {{{nl2br this.description}}}
  251. {{#if defaultValue}}
  252. <p class="default-value">{{__ "Default value:"}} <code>{{{defaultValue}}}</code></p>
  253. {{/if}}
  254. {{#if size}}
  255. <p class="type-size">{{__ "Size range:"}} <code>{{{size}}}</code></p>
  256. {{/if}}
  257. {{#if allowedValues}}
  258. <p class="type-size">{{__ "Allowed values:"}}
  259. {{#each allowedValues}}
  260. <code>{{{this}}}</code>{{#unless @last}}, {{/unless}}
  261. {{/each}}
  262. </p>
  263. {{/if}}
  264. </td>
  265. </tr>
  266. {{/each}}
  267. </tbody>
  268. </table>
  269. {{/if}}
  270. </script>
  271. <script id="template-article-param-block" type="text/x-handlebars-template">
  272. {{#if params}}
  273. {{#each params.fields}}
  274. <h2>{{__ @key}}</h2>
  275. <table>
  276. <thead>
  277. <tr>
  278. <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
  279. {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
  280. <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
  281. </tr>
  282. </thead>
  283. <tbody>
  284. {{#each this}}
  285. <tr>
  286. <td class="code">{{{splitFill field "." "&nbsp;&nbsp;"}}}
  287. {{#if optional}}
  288. <span class="label optional">{{__ "optional"}}</span>
  289. {{else}}
  290. {{#if ../template.showRequiredLabels}}
  291. <span class="label required">{{__ "required"}}</span>
  292. {{/if}}
  293. {{/if}}</td>
  294. {{#if ../../_hasType}}
  295. <td class="code">
  296. {{{type}}}
  297. </td>
  298. {{/if}}
  299. <td>
  300. {{{nl2br description}}}
  301. {{#if defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{defaultValue}}}</code></p>{{/if}}
  302. {{#if size}}<p class="type-size">{{__ "Size range:"}} <code>{{{size}}}</code></p>{{/if}}
  303. {{#if allowedValues}}<p class="type-size">{{__ "Allowed values:"}}
  304. {{#each allowedValues}}
  305. <code>{{{this}}}</code>{{#unless @last}}, {{/unless}}
  306. {{/each}}
  307. </p>
  308. {{/if}}
  309. </td>
  310. </tr>
  311. {{/each}}
  312. </tbody>
  313. </table>
  314. {{/each}}
  315. {{#ifCond params.examples.length '>' 0}}
  316. <ul class="nav nav-tabs nav-tabs-examples" role="tablist">
  317. {{#each params.examples}}
  318. <li{{#ifCond @index '==' 0}} class="active"{{/ifCond}}>
  319. <a href="#{{../section}}-examples-{{../id}}-{{@index}}" role="tab" data-toggle="tab">{{title}}</a>
  320. </li>
  321. {{/each}}
  322. </ul>
  323. <div class="tab-content">
  324. {{#each params.examples}}
  325. <div class="tab-pane{{#ifCond @index '==' 0}} active{{/ifCond}}" id="{{../section}}-examples-{{../id}}-{{@index}}">
  326. <pre data-type="{{type}}"><code class="language-{{type}}">{{reformat content type}}</code></pre>
  327. </div>
  328. {{/each}}
  329. </div>
  330. {{/ifCond}}
  331. {{/if}}
  332. </script>
  333. <script id="template-article-sample-request" type="text/x-handlebars-template">
  334. {{#if article.sampleRequest}}
  335. <div class="well">
  336. <h3>{{__ "Send a Sample Request"}}</h3>
  337. <form class="form-horizontal">
  338. <fieldset>
  339. <div class="form-group">
  340. <label class="col-md-3 control-label" for="{{../id}}-sample-request-url">URL</label>
  341. <div class="input-group">
  342. <span class="input-group-addon">{{__ "url"}}</span>
  343. <input id="{{../id}}-sample-request-url" type="url" class="form-control sample-request-url" value="{{article.sampleRequest.0.url}}" />
  344. </div>
  345. </div>
  346. {{#if article.header}}
  347. {{#if article.header.fields}}
  348. <h3>{{__ "Headers"}}</h3>
  349. {{#each article.header.fields}}
  350. <div class="{{../id}}-sample-request-header-fields">
  351. {{#each this}}
  352. <div class="form-group">
  353. <label class="col-md-3 control-label" for="sample-request-header-field-{{field}}">{{field}}</label>
  354. <div class="input-group">
  355. <span class="input-group-addon">{{{type}}}</span>
  356. <input type="text" id="sample-request-header-field-{{field}}"
  357. class="form-control sample-request-input"
  358. value="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
  359. placeholder="{{#if defaultValue}}{{ defaultValue }}{{else}}{{field}}{{/if}}"
  360. data-family="header"
  361. data-name="{{field}}"
  362. data-group="{{@../index}}">
  363. </div>
  364. </div>
  365. {{/each}}
  366. </div>
  367. {{/each}}
  368. {{/if}}
  369. {{/if}}
  370. {{#if article.parameter}}
  371. {{#if article.parameter.fields}}
  372. <h3>{{__ "Parameters"}}</h3>
  373. {{#each article.parameter.fields}}
  374. <div class="col-md-3">
  375. <select name="{{../id}}-sample-header-content-type" class="{{../id}}-sample-request-param-select sample-header-content-type sample-header-content-type-switch">
  376. <option value="auto" selected>ajax-auto</option>
  377. <option value="json" >json</option>
  378. <option value="form-data" >form-data</option>
  379. </select>
  380. </div>
  381. <div class="{{../id}}-sample-request-param-body {{../id}}-sample-header-content-type-body hide">
  382. <div class="form-group">
  383. <div class="input-group">
  384. <div class="input-group-addon">json</div>
  385. <textarea id="sample-request-body-json" class="form-control sample-request-body" data-sample-request-body-group="sample-request-param-{{@./index}}" rows="6" style="OVERFLOW: visible" {{#if optional}}data-sample-request-param-optional="true"{{/if}}></textarea>
  386. </div>
  387. </div>
  388. </div>
  389. <div class="{{../id}}-sample-request-param-fields {{../id}}-sample-header-content-type-fields">
  390. {{#each this}}
  391. <div class="form-group">
  392. <label class="col-md-3 control-label" for="sample-request-param-field-{{field}}">{{field}}</label>
  393. <div class="input-group">
  394. <div class="input-group-addon">{{{type}}}</div>
  395. {{#if allowedValues}}
  396. <div class="input-group-addon sample-request-select">
  397. <select class="form-control" data-name="{{field}}" data-family="query" data-group="{{@../index}}" {{#if optional}}data-optional="true"{{/if}}>
  398. <option value="" class="empty">&lt;{{__ "No value"}}&gt;</option>
  399. {{#each allowedValues}}
  400. <option {{#ifCond ../defaultValue '===' this}} selected {{/ifCond}}value="{{{removeDblQuotes this}}}">{{{removeDblQuotes this}}}</option>
  401. {{/each}}
  402. </select>
  403. </div>
  404. <input class="invisible">
  405. {{else}}
  406. <div class="sample-request-input-{{type}}-container"><div>
  407. <input id="sample-request-param-field-{{field}}"
  408. class="{{#ifCond type '!==' 'Boolean'}}form-control{{/ifCond}} sample-request-param"
  409. type="{{setInputType type}}"
  410. value="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
  411. placeholder="{{#if defaultValue}}{{ defaultValue }}{{else}}{{field}}{{/if}}"
  412. data-name="{{field}}"
  413. data-family="query"
  414. data-group="{{@../index}}"
  415. {{#if optional}}data-optional="true"{{/if}}>
  416. </div></div>
  417. {{/if}}
  418. </div>
  419. </div>
  420. {{/each}}
  421. </div>
  422. {{/each}}
  423. {{/if}}
  424. {{/if}}
  425. {{#if article.query}}
  426. <h3>{{__ "Query Parameters"}}</h3>
  427. <div class="{{../id}}-sample-request-param-fields {{../id}}-sample-header-content-type-fields">
  428. {{#each article.query}}
  429. <div class="form-group">
  430. <label class="col-md-3 control-label" for="sample-request-param-field-{{field}}">{{field}}{{#if optional}} ({{__ "optional"}}){{/if}}</label>
  431. <div class="input-group col-md-6">
  432. <div class="input-group-addon">{{{type}}}</div>
  433. {{#if allowedValues}}
  434. <div class="input-group-addon sample-request-select">
  435. <select class="form-control" data-name="{{field}}" data-family="query" data-group="{{@../index}}" {{#if optional}}data-optional="true"{{/if}}>
  436. <option value="" class="empty">&lt;{{__ "No value"}}&gt;</option>
  437. {{#each allowedValues}}
  438. <option {{#ifCond ../defaultValue '===' this}} selected {{/ifCond}}value="{{{removeDblQuotes this}}}">{{{removeDblQuotes this}}}</option>
  439. {{/each}}
  440. </select>
  441. </div>
  442. <input class="invisible">
  443. {{else}}
  444. <div class="sample-request-input-{{type}}-container"><div>
  445. <input id="sample-request-param-field-{{field}}"
  446. class="{{#ifCond type '!==' 'Boolean'}}form-control{{/ifCond}} sample-request-input"
  447. type="{{setInputType type}}"
  448. value="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
  449. placeholder="{{#if defaultValue}}{{ defaultValue }}{{else}}{{field}}{{/if}}"
  450. data-name="{{field}}"
  451. data-family="query"
  452. data-group="{{@../index}}"
  453. {{#if optional}}data-optional="true"{{/if}}>
  454. </div></div>
  455. {{/if}}
  456. </div>
  457. </div>
  458. {{/each}}
  459. </div>
  460. {{/if}}
  461. {{#if article.body}}
  462. <h3>{{__ "Body"}}</h3>
  463. <div class="col-md-3">
  464. <label for="body-content-type-{{this.id}}">{{__ "Content-Type"}}</label>
  465. <select id="body-content-type-{{this.id}}" data-id="{{this.id}}" class="sample-request-content-type-switch form-control">
  466. <option value="body-json" selected>json</option>
  467. <option value="body-form-data">form-data</option>
  468. </select>
  469. </div>
  470. <div class="col-md-9" id="sample-request-body-json-input-{{this.id}}">
  471. <div class="form-group">
  472. <div class="input-group">
  473. <div class="input-group-addon">json</div>
  474. <textarea class="form-control sample-request-input" rows="6"
  475. data-family="body-json"
  476. data-name={{"body"}}
  477. data-content-type="json"
  478. {{#if optional}}data-optional="true"{{/if}}>{{body2json article.body}}</textarea>
  479. </div>
  480. </div>
  481. </div>
  482. <div hidden class="col-md-9" id="sample-request-body-form-input-{{this.id}}">
  483. {{#each article.body}}
  484. <div class="form-group">
  485. <label class="col-md-3 control-label" for="sample-request-param-field-{{field}}">{{field}}</label>
  486. <div class="input-group">
  487. <div class="input-group-addon">{{{type}}}</div>
  488. {{#if allowedValues}}
  489. <div class="input-group-addon sample-request-select">
  490. <select class="form-control" data-name="{{field}}" data-family="body" data-group="{{@../index}}" {{#if optional}}data-optional="true"{{/if}}>
  491. <option value="" class="empty">&lt;{{__ "No value"}}&gt;</option>
  492. {{#each allowedValues}}
  493. <option {{#ifCond ../defaultValue '===' this}} selected {{/ifCond}}value="{{{removeDblQuotes this}}}">{{{removeDblQuotes this}}}</option>
  494. {{/each}}
  495. </select>
  496. </div>
  497. <input class="invisible">
  498. {{else}}
  499. <div class="sample-request-input-{{type}}-container"><div>
  500. <input id="sample-request-param-field-{{field}}"
  501. class="{{#ifCond type '!==' 'Boolean'}}form-control{{/ifCond}} sample-request-input"
  502. type="{{setInputType type}}"
  503. value="{{#ifCond type '!==' 'Boolean'}}{{#if defaultValue}}{{ defaultValue }}{{/if}}{{/ifCond}}"
  504. {{#if checked}}checked{{/if}}
  505. placeholder="{{field}}"
  506. data-family="body"
  507. data-name="{{field}}"
  508. data-content-type="form"
  509. {{#if optional}}data-optional="true"{{/if}}>
  510. </div></div>
  511. {{/if}}
  512. </div>
  513. </div>
  514. {{/each}}
  515. </div>
  516. {{/if}}
  517. <div class="form-group">
  518. <div class="controls pull-right">
  519. <button class="btn btn-primary bg-primary sample-request-send" data-type="{{article.type}}">{{__ "Send"}}</button>
  520. <button class="btn btn-danger bg-red sample-request-clear" data-type="{{article.type}}">{{__ "Reset"}}</button>
  521. </div>
  522. </div>
  523. <div class="form-group sample-request-response" hidden>
  524. <h3>
  525. {{__ "Response"}}
  526. <button class="btn btn-default btn-xs pull-right sample-request-clear">X</button>
  527. </h3>
  528. <pre data-type="json"><code class="language-json sample-request-response-json"></code></pre>
  529. </div>
  530. </fieldset>
  531. </form>
  532. </div>
  533. {{/if}}
  534. </script>
  535. <script id="template-compare-article" type="text/x-handlebars-template">
  536. <article id="api-{{article.group}}-{{article.name}}-{{article.version}}" {{#if hidden}}class="hide"{{/if}} data-group="{{article.group}}" data-name="{{article.name}}" data-version="{{article.version}}" data-compare-version="{{compare.version}}">
  537. <div class="pull-left">
  538. <h1>{{underscoreToSpace article.groupTitle}} | {{{showDiff article.title compare.title}}}</h1>
  539. </div>
  540. <div class="pull-right">
  541. <div class="btn-group">
  542. <button class="btn btn-success" disabled>
  543. <strong>{{article.version}}</strong> {{__ "compared to"}}
  544. </button>
  545. <button class="version btn btn-danger dropdown-toggle" data-toggle="dropdown">
  546. <strong>{{compare.version}}</strong>&nbsp;<span class="caret"></span>
  547. </button>
  548. <ul class="versions dropdown-menu open-left">
  549. <li class="disabled"><a href="#">{{__ "compare changes to:"}}</a></li>
  550. <li class="divider"></li>
  551. {{#each versions}}
  552. <li class="version"><a href="#">{{this}}</a></li>
  553. {{/each}}
  554. </ul>
  555. </div>
  556. </div>
  557. <div class="clearfix"></div>
  558. {{#if article.description}}
  559. <p>{{{showDiff article.description compare.description "nl2br"}}}</p>
  560. {{else}}
  561. {{#if compare.description}}
  562. <p>{{{showDiff "" compare.description "nl2br"}}}</p>
  563. {{/if}}
  564. {{/if}}
  565. <span class="method meth-{{toLowerCase compare.type}}">{{compare.type}}</span>
  566. <pre data-type="{{toLowerCase article.type}}" class="language-html">{{{showDiff article.url compare.url}}}</pre>
  567. {{subTemplate "article-compare-permission" article=article compare=compare}}
  568. <ul class="nav nav-tabs nav-tabs-examples" role="tablist">
  569. {{#each_compare_title article.examples compare.examples}}
  570. {{#if typeSame}}
  571. <li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
  572. <a href="#compare-examples-{{../../article.id}}-{{index}}" role="tab" data-toggle="tab">{{{showDiff source.title compare.title}}}</a>
  573. </li>
  574. {{/if}}
  575. {{#if typeIns}}
  576. <li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
  577. <a href="#compare-examples-{{../../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
  578. </li>
  579. {{/if}}
  580. {{#if typeDel}}
  581. <li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
  582. <a href="#compare-examples-{{../../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
  583. </li>
  584. {{/if}}
  585. {{/each_compare_title}}
  586. </ul>
  587. <div class="tab-content">
  588. {{#each_compare_title article.examples compare.examples}}
  589. {{#if typeSame}}
  590. <div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="compare-examples-{{../../article.id}}-{{index}}">
  591. <pre data-type="{{source.type}}" class="language-{{source.type}}">{{{showDiff source.content compare.content}}}</pre>
  592. </div>
  593. {{/if}}
  594. {{#if typeIns}}
  595. <div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="compare-examples-{{../../article.id}}-{{index}}">
  596. <pre data-type="{{source.type}}" class="language-{{source.type}}">{{{source.content}}}</pre>
  597. </div>
  598. {{/if}}
  599. {{#if typeDel}}
  600. <div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="compare-examples-{{../../article.id}}-{{index}}">
  601. <pre data-type="{{compare.type}}" class="language-{{source.type}}">{{{compare.content}}}</pre>
  602. </div>
  603. {{/if}}
  604. {{/each_compare_title}}
  605. </div>
  606. {{subTemplate "article-compare-param-block" source=article.parameter compare=compare.parameter _hasType=_hasTypeInParameterFields section="parameter"}}
  607. {{subTemplate "article-compare-param-block" source=article.success compare=compare.success _hasType=_hasTypeInSuccessFields section="success"}}
  608. {{subTemplate "article-compare-param-block" source=article.error compare=compare.error _col1="Name" _hasType=_hasTypeInErrorFields section="error"}}
  609. {{subTemplate "article-sample-request" article=article id=id}}
  610. </article>
  611. </script>
  612. <script id="template-article-compare-permission" type="text/x-handlebars-template">
  613. <p>
  614. {{__ "Permission:"}}
  615. {{#each_compare_list_field article.permission compare.permission field="name"}}
  616. {{#if source}}
  617. {{#if typeSame}}
  618. {{source.name}}
  619. {{#if source.title}}
  620. <button type="button" class="btn btn-info btn-xs" data-title="{{source.title}}" data-content="{{nl2br source.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
  621. <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
  622. </button>
  623. {{#unless _last}}, {{/unless}}
  624. {{/if}}
  625. {{/if}}
  626. {{#if typeIns}}
  627. <ins>{{source.name}}</ins>
  628. {{#if source.title}}
  629. <button type="button" class="btn btn-info btn-xs" data-title="{{source.title}}" data-content="{{nl2br source.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
  630. <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
  631. </button>
  632. {{#unless _last}}, {{/unless}}
  633. {{/if}}
  634. {{/if}}
  635. {{#if typeDel}}
  636. <del>{{source.name}}</del>
  637. {{#if source.title}}
  638. <button type="button" class="btn btn-info btn-xs" data-title="{{source.title}}" data-content="{{nl2br source.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
  639. <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
  640. </button>
  641. {{#unless _last}}, {{/unless}}
  642. {{/if}}
  643. {{/if}}
  644. {{else}}
  645. {{#if typeSame}}
  646. {{compare.name}}
  647. {{#if compare.title}}
  648. <button type="button" class="btn btn-info btn-xs" data-title="{{compare.title}}" data-content="{{nl2br compare.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
  649. <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
  650. </button>
  651. {{#unless _last}}, {{/unless}}
  652. {{/if}}
  653. {{/if}}
  654. {{#if typeIns}}
  655. <ins>{{compare.name}}</ins>
  656. {{#if compare.title}}
  657. <button type="button" class="btn btn-info btn-xs" data-title="{{compare.title}}" data-content="{{nl2br compare.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
  658. <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
  659. </button>
  660. {{#unless _last}}, {{/unless}}
  661. {{/if}}
  662. {{/if}}
  663. {{#if typeDel}}
  664. <del>{{compare.name}}</del>
  665. {{#if compare.title}}
  666. <button type="button" class="btn btn-info btn-xs" data-title="{{compare.title}}" data-content="{{nl2br compare.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
  667. <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
  668. </button>
  669. {{#unless _last}}, {{/unless}}
  670. {{/if}}
  671. {{/if}}
  672. {{/if}}
  673. {{/each_compare_list_field}}
  674. </p>
  675. </script>
  676. <script id="template-article-compare-param-block" type="text/x-handlebars-template">
  677. {{#if source}}
  678. {{#each_compare_keys source.fields compare.fields}}
  679. {{#if typeSame}}
  680. <h2>{{__ source.key}}</h2>
  681. <table>
  682. <thead>
  683. <tr>
  684. <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
  685. {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
  686. <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
  687. </tr>
  688. </thead>
  689. {{subTemplate "article-compare-param-block-body" source=source.value compare=compare.value _hasType=../_hasType}}
  690. </table>
  691. {{/if}}
  692. {{#if typeIns}}
  693. <h2><ins>{{__ source.key}}</ins></h2>
  694. <table class="ins">
  695. <thead>
  696. <tr>
  697. <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
  698. {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
  699. <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
  700. </tr>
  701. </thead>
  702. {{subTemplate "article-compare-param-block-body" source=source.value compare=source.value _hasType=../_hasType}}
  703. </table>
  704. {{/if}}
  705. {{#if typeDel}}
  706. <h2><del>{{__ compare.key}}</del></h2>
  707. <table class="del">
  708. <thead>
  709. <tr>
  710. <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
  711. {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
  712. <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
  713. </tr>
  714. </thead>
  715. {{subTemplate "article-compare-param-block-body" source=compare.value compare=compare.value _hasType=../_hasType}}
  716. </table>
  717. {{/if}}
  718. {{/each_compare_keys}}
  719. {{#if source.examples}}
  720. <ul class="nav nav-tabs nav-tabs-examples" role="tablist">
  721. {{#each_compare_title source.examples compare.examples}}
  722. {{#if typeSame}}
  723. <li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
  724. <a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}" role="tab" data-toggle="tab">{{{showDiff source.title compare.title}}}</a>
  725. </li>
  726. {{/if}}
  727. {{#if typeIns}}
  728. <li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
  729. <a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
  730. </li>
  731. {{/if}}
  732. {{#if typeDel}}
  733. <li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
  734. <a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
  735. </li>
  736. {{/if}}
  737. {{/each_compare_title}}
  738. </ul>
  739. <div class="tab-content">
  740. {{#each_compare_title source.examples compare.examples}}
  741. {{#if typeSame}}
  742. <div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
  743. <pre data-type="{{source.type}}" class="language-{{source.type}}">{{{showDiff source.content compare.content}}}</pre>
  744. </div>
  745. {{/if}}
  746. {{#if typeIns}}
  747. <div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
  748. <pre data-type="{{source.type}}"><code class="language-{{source.type}}">{{{source.content}}}</code></pre>
  749. </div>
  750. {{/if}}
  751. {{#if typeDel}}
  752. <div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
  753. <pre data-type="{{compare.type}}"><code class="language-{{source.type}}">{{{compare.content}}}</code></pre>
  754. </div>
  755. {{/if}}
  756. {{/each_compare_title}}
  757. </div>
  758. {{/if}}
  759. {{/if}}
  760. </script>
  761. <script id="template-article-compare-param-block-body" type="text/x-handlebars-template">
  762. <tbody>
  763. {{#each_compare_field source compare}}
  764. {{#if typeSame}}
  765. <tr>
  766. <td class="code">
  767. {{{splitFill source.field "." "&nbsp;&nbsp;"}}}
  768. {{#if source.optional}}
  769. {{#if compare.optional}} <span class="label label-optional">{{__ "optional"}}</span>
  770. {{else}} <span class="label label-optional label-ins">{{__ "optional"}}</span>
  771. {{/if}}
  772. {{else}}
  773. {{#if compare.optional}} <span class="label label-optional label-del">{{__ "optional"}}</span>{{/if}}
  774. {{/if}}
  775. </td>
  776. {{#if source.type}}
  777. {{#if compare.type}}
  778. <td>{{{showDiff source.type compare.type}}}</td>
  779. {{else}}
  780. <td>{{{source.type}}}</td>
  781. {{/if}}
  782. {{else}}
  783. {{#if compare.type}}
  784. <td>{{{compare.type}}}</td>
  785. {{else}}
  786. {{#if ../../../../_hasType}}<td></td>{{/if}}
  787. {{/if}}
  788. {{/if}}
  789. <td>
  790. {{{showDiff source.description compare.description "nl2br"}}}
  791. {{#if source.defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{showDiff source.defaultValue compare.defaultValue}}}</code><p>{{/if}}
  792. </td>
  793. </tr>
  794. {{/if}}
  795. {{#if typeIns}}
  796. <tr class="ins">
  797. <td class="code">
  798. {{{splitFill source.field "." "&nbsp;&nbsp;"}}}
  799. {{#if source.optional}} <span class="label label-optional label-ins">{{__ "optional"}}</span>{{/if}}
  800. </td>
  801. {{#if source.type}}
  802. <td>{{{source.type}}}</td>
  803. {{else}}
  804. {{{typRowTd}}}
  805. {{/if}}
  806. <td>
  807. {{{nl2br source.description}}}
  808. {{#if source.defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{source.defaultValue}}}</code><p>{{/if}}
  809. </td>
  810. </tr>
  811. {{/if}}
  812. {{#if typeDel}}
  813. <tr class="del">
  814. <td class="code">
  815. {{{splitFill compare.field "." "&nbsp;&nbsp;"}}}
  816. {{#if compare.optional}} <span class="label label-optional label-del">{{__ "optional"}}</span>{{/if}}
  817. </td>
  818. {{#if compare.type}}
  819. <td>{{{compare.type}}}</td>
  820. {{else}}
  821. {{{typRowTd}}}
  822. {{/if}}
  823. <td>
  824. {{{nl2br compare.description}}}
  825. {{#if compare.defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{compare.defaultValue}}}</code><p>{{/if}}
  826. </td>
  827. </tr>
  828. {{/if}}
  829. {{/each_compare_field}}
  830. </tbody>
  831. </script>
  832. <div class="container-fluid">
  833. <div class="row">
  834. <div id="sidenav" class="span2"></div>
  835. <div id="content">
  836. <div id="project"></div>
  837. <div id="header"></div>
  838. <div id="sections"></div>
  839. <div id="footer"></div>
  840. <div id="generator"></div>
  841. </div>
  842. </div>
  843. </div>
  844. <div id="loader">
  845. <div class="spinner">
  846. <div class="spinner-container container1">
  847. <div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div>
  848. </div>
  849. <div class="spinner-container container2">
  850. <div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div>
  851. </div>
  852. <div class="spinner-container container3">
  853. <div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div>
  854. </div>
  855. <p>Loading...</p>
  856. </div>
  857. </div>
  858. <script src="assets/main.bundle.js"></script>
  859. </body>
  860. </html>