properties.tmpl 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?js
  2. var data = obj;
  3. var props = data.subprops || data.properties;
  4. /* sort subprops under their parent props (like opts.classname) */
  5. var parentProp = null;
  6. props.forEach(function(prop, i) {
  7. if (!prop) { return; }
  8. if ( parentProp && prop.name && prop.name.indexOf(parentProp.name + '.') === 0 ) {
  9. prop.name = prop.name.substr(parentProp.name.length+1);
  10. parentProp.subprops = parentProp.subprops || [];
  11. parentProp.subprops.push(prop);
  12. props[i] = null;
  13. }
  14. else {
  15. parentProp = prop;
  16. }
  17. });
  18. /* determine if we need extra columns, "attributes" and "default" */
  19. props.hasAttributes = false;
  20. props.hasDefault = false;
  21. props.hasName = false;
  22. props.forEach(function(prop) {
  23. if (!prop) { return; }
  24. if (prop.optional || prop.nullable) {
  25. props.hasAttributes = true;
  26. }
  27. if (prop.name) {
  28. props.hasName = true;
  29. }
  30. if (typeof prop.defaultvalue !== 'undefined' && !data.isEnum) {
  31. props.hasDefault = true;
  32. }
  33. });
  34. ?>
  35. <table class="props">
  36. <tbody>
  37. <?js
  38. var self = this;
  39. props.forEach(function(prop) {
  40. if (!prop) { return; }
  41. ?>
  42. <tr>
  43. <?js if (props.hasName) {?>
  44. <td class="name">
  45. <strong><?js= prop.name ?></strong>
  46. <?js if (prop.type && prop.type.names) {?>
  47. <br><?js= self.partial('type.tmpl', prop.type.names) ?>
  48. <?js } ?>
  49. </td>
  50. <?js } ?>
  51. <td class="description last">
  52. <?js= prop.description ?>
  53. <?js if (props.hasDefault) {?>
  54. <?js if (typeof prop.defaultvalue !== 'undefined') { ?>
  55. <p>Default is <code><?js= self.htmlsafe(prop.defaultvalue) ?></code>.</p>
  56. <?js } ?>
  57. <?js } ?>
  58. <?js if (prop.subprops) { ?>
  59. <h6>Properties</h6>
  60. <?js= self.partial('properties.tmpl', prop) ?>
  61. <?js } ?>
  62. </td>
  63. </tr>
  64. <?js }); ?>
  65. </tbody>
  66. </table>
粤ICP备19079148号