Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

104 linhas
3.8KB

  1. {{define "template_detail"}}
  2. <!doctype html>
  3. <html lang="en">
  4. <head>
  5. <title>{{.Title}}</title>
  6. {{template "head" .}}
  7. </head>
  8. <body>
  9. {{template "nav" .}}
  10. {{if .Msg}}<div class="flash flash-ok">{{.Msg}}</div>{{end}}
  11. {{if .Err}}<div class="flash flash-err">{{.Err}}</div>{{end}}
  12. <h1>Template Detail</h1>
  13. <table>
  14. <tr><th>ID</th><td>{{.Detail.Template.ID}}</td></tr>
  15. <tr><th>Name</th><td>{{.Detail.Template.Name}}</td></tr>
  16. <tr><th>Type</th><td>{{.Detail.Template.Type}}</td></tr>
  17. <tr><th>Manifest status</th><td>{{.Detail.Template.ManifestStatus}}</td></tr>
  18. <tr>
  19. <th>Thumbnail</th>
  20. <td>
  21. {{if .Detail.Template.ThumbnailURL}}
  22. <span class="thumb-hover">
  23. <a href="{{.Detail.Template.ThumbnailURL}}" target="_blank" rel="noopener">open thumbnail</a>
  24. <span class="thumb-preview"><img src="{{.Detail.Template.ThumbnailURL}}" alt="Template thumbnail for {{.Detail.Template.Name}}" loading="lazy"></span>
  25. </span>
  26. {{else}}none{{end}}
  27. </td>
  28. </tr>
  29. <tr><th>Active manifest</th><td>{{if .Detail.Manifest}}{{.Detail.Manifest.ID}}{{else}}none{{end}}</td></tr>
  30. </table>
  31. <form method="post" action="/templates/{{.Detail.Template.ID}}/onboard">
  32. <button type="submit">Run Onboarding Discovery</button>
  33. </form>
  34. {{if .Detail.Manifest}}
  35. <h2>Manifest</h2>
  36. <p class="mono">{{prettyJSON .Detail.Manifest.FlattenedManifestJSON}}</p>
  37. <h2>Fields</h2>
  38. <form method="post" action="/templates/{{.Detail.Template.ID}}/fields">
  39. <input type="hidden" name="manifest_id" value="{{.Detail.Manifest.ID}}">
  40. <input type="hidden" name="field_count" value="{{len .Fields}}">
  41. <table>
  42. <thead>
  43. <tr>
  44. <th>Path</th>
  45. <th>Kind</th>
  46. <th>Enabled</th>
  47. <th>Required</th>
  48. <th>Label</th>
  49. <th>Order</th>
  50. <th>Website Section</th>
  51. <th>Semantic Slot</th>
  52. <th>Notes</th>
  53. <th>Sample</th>
  54. </tr>
  55. </thead>
  56. <tbody>
  57. {{range $i, $f := .Fields}}
  58. <tr>
  59. <td>
  60. <input type="hidden" name="field_path_{{$i}}" value="{{$f.Path}}">
  61. <span class="mono">{{$f.Path}}</span>
  62. </td>
  63. <td>{{$f.FieldKind}}</td>
  64. <td><input type="checkbox" name="field_enabled_{{$i}}" {{if $f.IsEnabled}}checked{{end}}></td>
  65. <td><input type="checkbox" name="field_required_{{$i}}" {{if $f.IsRequiredByUs}}checked{{end}}></td>
  66. <td><input type="text" name="field_label_{{$i}}" value="{{$f.DisplayLabel}}"></td>
  67. <td><input type="number" name="field_order_{{$i}}" value="{{$f.DisplayOrder}}"></td>
  68. <td>
  69. <select name="field_website_section_{{$i}}">
  70. {{range $opt := $.WebsiteSectionOptions}}
  71. <option value="{{$opt.Value}}" {{if eq $f.WebsiteSection $opt.Value}}selected{{end}}>{{$opt.Label}}</option>
  72. {{end}}
  73. </select>
  74. </td>
  75. <td>
  76. <select name="field_semantic_slot_{{$i}}">
  77. {{if and (ne $f.SemanticSlot "") (not $f.SemanticSlotIsKnown)}}
  78. <option value="{{$f.SemanticSlot}}" selected>{{$f.SemanticSlot}} (custom)</option>
  79. {{end}}
  80. {{range $opt := $.SemanticSlotOptions}}
  81. <option value="{{$opt.Value}}" {{if eq $f.SemanticSlot $opt.Value}}selected{{end}}>{{$opt.Label}}</option>
  82. {{end}}
  83. </select>
  84. {{if $f.MappingSource}}<small class="mono">{{$f.MappingSource}}</small>{{end}}
  85. </td>
  86. <td><input type="text" name="field_notes_{{$i}}" value="{{$f.Notes}}"></td>
  87. <td class="mono">{{$f.SampleValue}}</td>
  88. </tr>
  89. {{end}}
  90. </tbody>
  91. </table>
  92. <button type="submit">Save Field Settings</button>
  93. </form>
  94. {{end}}
  95. <h2>Raw Template JSON</h2>
  96. <p class="mono">{{prettyJSON .Detail.Template.RawJSON}}</p>
  97. </body>
  98. </html>
  99. {{end}}