25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

369 satır
22KB

  1. {{define "build_new"}}
  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>New Build</h1>
  13. <form method="get" action="/builds/new">
  14. {{if .ShowDebug}}<input type="hidden" name="debug" value="1">{{end}}
  15. <label for="draft_id">Draft laden</label>
  16. <select id="draft_id" name="draft_id">
  17. <option value="">Kein Draft</option>
  18. {{range .Drafts}}
  19. <option value="{{.ID}}" {{if eq $.SelectedDraftID .ID}}selected{{end}}>{{.RequestName}} | {{.Status}} | {{.Source}} ({{.TemplateID}})</option>
  20. {{end}}
  21. </select>
  22. <button type="submit">Draft laden</button>
  23. </form>
  24. <form method="get" action="/builds/new">
  25. {{if .ShowDebug}}<input type="hidden" name="debug" value="1">{{end}}
  26. {{if .SelectedDraftID}}<input type="hidden" name="draft_id" value="{{.SelectedDraftID}}">{{end}}
  27. <label for="template_id">Template</label>
  28. <select id="template_id" name="template_id">
  29. <option value="">Select template</option>
  30. {{range .Templates}}
  31. <option value="{{.ID}}" {{if eq $.SelectedTemplateID .ID}}selected{{end}}>{{.Name}} ({{.ID}})</option>
  32. {{end}}
  33. </select>
  34. <button type="submit">Load Fields</button>
  35. </form>
  36. {{if gt .SelectedTemplateID 0}}
  37. <form method="post" action="/builds">
  38. <input type="hidden" name="draft_id" value="{{.Form.DraftID}}">
  39. <input type="hidden" name="template_id" value="{{.SelectedTemplateID}}">
  40. <input type="hidden" name="manifest_id" value="{{.SelectedManifestID}}">
  41. <input type="hidden" name="field_count" value="{{len .EditableFields}}">
  42. <input type="hidden" name="suggestion_state_json" value="{{.SuggestionStateJSON}}">
  43. <h2>Global Data</h2>
  44. <div class="grid2">
  45. <div><label>Draft Source<input type="text" name="draft_source" value="{{.Form.DraftSource}}" placeholder="ui"></label></div>
  46. <div>
  47. <label>Draft Status
  48. <select name="draft_status">
  49. <option value="draft" {{if eq .Form.DraftStatus "draft"}}selected{{end}}>draft</option>
  50. <option value="reviewed" {{if eq .Form.DraftStatus "reviewed"}}selected{{end}}>reviewed</option>
  51. <option value="submitted" {{if eq .Form.DraftStatus "submitted"}}selected{{end}}>submitted</option>
  52. </select>
  53. </label>
  54. </div>
  55. </div>
  56. <div><label>Request Name<input type="text" name="request_name" value="{{.Form.RequestName}}"></label></div>
  57. <div><label>Draft Notes<textarea name="draft_notes">{{.Form.DraftNotes}}</textarea></label></div>
  58. <h3>Basis / Firma</h3>
  59. <div class="grid2">
  60. <div><label>Firmenname*<input type="text" name="company_name" value="{{.Form.CompanyName}}" required></label></div>
  61. <div><label>Benutzername*<input type="text" name="username" value="{{.Form.Username}}" required></label></div>
  62. <div><label>Branche / Business Type
  63. <select name="business_type">
  64. <option value="">Bitte waehlen</option>
  65. <option value="accountant" {{if eq .Form.BusinessType "accountant"}}selected{{end}}>Buchhaltung / Steuerberatung</option>
  66. <option value="consultancy" {{if eq .Form.BusinessType "consultancy"}}selected{{end}}>Beratung / Consultancy</option>
  67. <option value="financial_legal_services" {{if eq .Form.BusinessType "financial_legal_services"}}selected{{end}}>Finanz- &amp; Rechtsdienstleistungen</option>
  68. <option value="lawyer" {{if eq .Form.BusinessType "lawyer"}}selected{{end}}>Rechtsanwalt / Kanzlei</option>
  69. <option value="auto_motor" {{if eq .Form.BusinessType "auto_motor"}}selected{{end}}>Auto / Motor</option>
  70. <option value="auto_parts_equipment" {{if eq .Form.BusinessType "auto_parts_equipment"}}selected{{end}}>Autoteile &amp; Zubehör</option>
  71. <option value="boat_equipment" {{if eq .Form.BusinessType "boat_equipment"}}selected{{end}}>Bootsausstattung</option>
  72. <option value="auto_repair" {{if eq .Form.BusinessType "auto_repair"}}selected{{end}}>Autowerkstatt / Reparatur</option>
  73. <option value="auto_sales" {{if eq .Form.BusinessType "auto_sales"}}selected{{end}}>Autohandel</option>
  74. <option value="dentist" {{if eq .Form.BusinessType "dentist"}}selected{{end}}>Zahnarzt</option>
  75. <option value="doctor" {{if eq .Form.BusinessType "doctor"}}selected{{end}}>Arzt / Praxis</option>
  76. <option value="surgery" {{if eq .Form.BusinessType "surgery"}}selected{{end}}>Chirurgie / OP-Zentrum</option>
  77. <option value="veterinarian" {{if eq .Form.BusinessType "veterinarian"}}selected{{end}}>Tierarzt</option>
  78. <option value="limousine_services" {{if eq .Form.BusinessType "limousine_services"}}selected{{end}}>Limousinenservice</option>
  79. <option value="taxi_services" {{if eq .Form.BusinessType "taxi_services"}}selected{{end}}>Taxi / Fahrdienst</option>
  80. <option value="bar" {{if eq .Form.BusinessType "bar"}}selected{{end}}>Bar / Lounge</option>
  81. <option value="nightclub" {{if eq .Form.BusinessType "nightclub"}}selected{{end}}>Nachtclub</option>
  82. <option value="bathroom_toilet" {{if eq .Form.BusinessType "bathroom_toilet"}}selected{{end}}>Bad &amp; Sanitär</option>
  83. <option value="hotel" {{if eq .Form.BusinessType "hotel"}}selected{{end}}>Hotel</option>
  84. <option value="menu_accommodation" {{if eq .Form.BusinessType "menu_accommodation"}}selected{{end}}>Gastronomie &amp; Unterkunft</option>
  85. <option value="beauty_salon_spa" {{if eq .Form.BusinessType "beauty_salon_spa"}}selected{{end}}>Beauty Salon / Spa</option>
  86. <option value="health_beauty_personal_services" {{if eq .Form.BusinessType "health_beauty_personal_services"}}selected{{end}}>Gesundheit &amp; Beauty</option>
  87. <option value="bicycle" {{if eq .Form.BusinessType "bicycle"}}selected{{end}}>Fahrrad / Velo</option>
  88. <option value="building_materials" {{if eq .Form.BusinessType "building_materials"}}selected{{end}}>Baumaterialien &amp; Handel</option>
  89. <option value="cafe" {{if eq .Form.BusinessType "cafe"}}selected{{end}}>Café / Kaffeehaus</option>
  90. <option value="carpenter" {{if eq .Form.BusinessType "carpenter"}}selected{{end}}>Schreiner / Tischler</option>
  91. <option value="catering_kitchen" {{if eq .Form.BusinessType "catering_kitchen"}}selected{{end}}>Catering / Küche</option>
  92. <option value="cleaning_services" {{if eq .Form.BusinessType "cleaning_services"}}selected{{end}}>Reinigung &amp; Gebäudedienste</option>
  93. <option value="transportation_of_goods" {{if eq .Form.BusinessType "transportation_of_goods"}}selected{{end}}>Gütertransport / Logistik</option>
  94. <option value="transportation_services" {{if eq .Form.BusinessType "transportation_services"}}selected{{end}}>Personentransport</option>
  95. <option value="construction" {{if eq .Form.BusinessType "construction"}}selected{{end}}>Bau / Bauunternehmen</option>
  96. <option value="construction_repair_craftmanship" {{if eq .Form.BusinessType "construction_repair_craftmanship"}}selected{{end}}>Bau &amp; Handwerk</option>
  97. <option value="scaffolding" {{if eq .Form.BusinessType "scaffolding"}}selected{{end}}>Gerüstbau</option>
  98. <option value="demolition" {{if eq .Form.BusinessType "demolition"}}selected{{end}}>Abbruch / Rückbau</option>
  99. <option value="e_shop" {{if eq .Form.BusinessType "e_shop"}}selected{{end}}>Online-Shop / E-Commerce</option>
  100. <option value="school" {{if eq .Form.BusinessType "school"}}selected{{end}}>Schule / Ausbildung</option>
  101. <option value="educational_community_services" {{if eq .Form.BusinessType "educational_community_services"}}selected{{end}}>Bildung &amp; Gemeinschaft</option>
  102. <option value="voluntary_work" {{if eq .Form.BusinessType "voluntary_work"}}selected{{end}}>Ehrenamt / NGO</option>
  103. <option value="electrician" {{if eq .Form.BusinessType "electrician"}}selected{{end}}>Elektriker</option>
  104. <option value="event_happenings_culture" {{if eq .Form.BusinessType "event_happenings_culture"}}selected{{end}}>Events &amp; Kultur</option>
  105. <option value="event" {{if eq .Form.BusinessType "event"}}selected{{end}}>Veranstaltung</option>
  106. <option value="exhibition" {{if eq .Form.BusinessType "exhibition"}}selected{{end}}>Messe / Ausstellung</option>
  107. <option value="it_consultancy" {{if eq .Form.BusinessType "it_consultancy"}}selected{{end}}>IT-Beratung</option>
  108. <option value="media_it_communication_services" {{if eq .Form.BusinessType "media_it_communication_services"}}selected{{end}}>Medien &amp; IT</option>
  109. <option value="tires" {{if eq .Form.BusinessType "tires"}}selected{{end}}>Reifen &amp; Felgen</option>
  110. <option value="fashion_clothes" {{if eq .Form.BusinessType "fashion_clothes"}}selected{{end}}>Mode &amp; Bekleidung</option>
  111. <option value="haute_couture" {{if eq .Form.BusinessType "haute_couture"}}selected{{end}}>Haute Couture</option>
  112. <option value="fitness" {{if eq .Form.BusinessType "fitness"}}selected{{end}}>Fitness &amp; Sport</option>
  113. <option value="people_in_motion" {{if eq .Form.BusinessType "people_in_motion"}}selected{{end}}>Bewegung &amp; Lifestyle</option>
  114. <option value="florist" {{if eq .Form.BusinessType "florist"}}selected{{end}}>Blumenladen / Florist</option>
  115. <option value="gardening_services" {{if eq .Form.BusinessType "gardening_services"}}selected{{end}}>Gartenbau &amp; Gartenpflege</option>
  116. <option value="landscapes" {{if eq .Form.BusinessType "landscapes"}}selected{{end}}>Landschaftsbau</option>
  117. <option value="hairdresser" {{if eq .Form.BusinessType "hairdresser"}}selected{{end}}>Friseur / Coiffeur</option>
  118. <option value="heating_pumps" {{if eq .Form.BusinessType "heating_pumps"}}selected{{end}}>Heizung &amp; Wärmepumpen</option>
  119. <option value="home_decor" {{if eq .Form.BusinessType "home_decor"}}selected{{end}}>Wohndekoration &amp; Einrichtung</option>
  120. <option value="interior_design" {{if eq .Form.BusinessType "interior_design"}}selected{{end}}>Innenarchitektur</option>
  121. <option value="home_broker" {{if eq .Form.BusinessType "home_broker"}}selected{{end}}>Immobilien</option>
  122. <option value="manufacturing_production" {{if eq .Form.BusinessType "manufacturing_production"}}selected{{end}}>Produktion &amp; Fertigung</option>
  123. <option value="masonry_stone_work" {{if eq .Form.BusinessType "masonry_stone_work"}}selected{{end}}>Maurer &amp; Steinmetz</option>
  124. <option value="moving_services" {{if eq .Form.BusinessType "moving_services"}}selected{{end}}>Umzug &amp; Transport</option>
  125. <option value="online_media" {{if eq .Form.BusinessType "online_media"}}selected{{end}}>Online-Medien</option>
  126. <option value="optician" {{if eq .Form.BusinessType "optician"}}selected{{end}}>Optiker</option>
  127. <option value="paint_tapestry" {{if eq .Form.BusinessType "paint_tapestry"}}selected{{end}}>Maler &amp; Tapezierung</option>
  128. <option value="printed_media" {{if eq .Form.BusinessType "printed_media"}}selected{{end}}>Druckmedien</option>
  129. <option value="restaurant" {{if eq .Form.BusinessType "restaurant"}}selected{{end}}>Restaurant</option>
  130. <option value="retail" {{if eq .Form.BusinessType "retail"}}selected{{end}}>Detailhandel / Einzelhandel</option>
  131. <option value="shop" {{if eq .Form.BusinessType "shop"}}selected{{end}}>Laden / Geschäft</option>
  132. <option value="shopping_commercial_services" {{if eq .Form.BusinessType "shopping_commercial_services"}}selected{{end}}>Shopping &amp; Handelsdienstleistungen</option>
  133. <option value="travel_agencies" {{if eq .Form.BusinessType "travel_agencies"}}selected{{end}}>Reisebüro / Touristik</option>
  134. <option value="plumber" {{if eq .Form.BusinessType "plumber"}}selected{{end}}>Sanitär / Klempner</option>
  135. <option value="other" {{if eq .Form.BusinessType "other"}}selected{{end}}>Andere</option>
  136. </select>
  137. </label></div>
  138. <div><label>Website-Sprache<input type="text" name="site_language" value="{{.Form.SiteLanguage}}"></label></div>
  139. </div>
  140. <h3>Intake / Website-Kontext</h3>
  141. <div class="grid2">
  142. <div><label>Website URL<input type="url" name="website_url" value="{{.Form.WebsiteURL}}" placeholder="https://example.com"></label></div>
  143. <div>
  144. <label>Locale Style
  145. <select name="locale_style">
  146. <option value="">Bitte waehlen</option>
  147. <option value="de-CH" {{if eq .Form.LocaleStyle "de-CH"}}selected{{end}}>de-CH</option>
  148. <option value="de-DE" {{if eq .Form.LocaleStyle "de-DE"}}selected{{end}}>de-DE</option>
  149. <option value="de-AT" {{if eq .Form.LocaleStyle "de-AT"}}selected{{end}}>de-AT</option>
  150. </select>
  151. </label>
  152. </div>
  153. <div>
  154. <label>Market Style
  155. <select name="market_style">
  156. <option value="">Bitte waehlen</option>
  157. <option value="DACH" {{if eq .Form.MarketStyle "DACH"}}selected{{end}}>DACH</option>
  158. <option value="Schweiz" {{if eq .Form.MarketStyle "Schweiz"}}selected{{end}}>Schweiz</option>
  159. <option value="Deutschland" {{if eq .Form.MarketStyle "Deutschland"}}selected{{end}}>Deutschland</option>
  160. <option value="Oesterreich" {{if eq .Form.MarketStyle "Oesterreich"}}selected{{end}}>Oesterreich</option>
  161. </select>
  162. </label>
  163. </div>
  164. <div>
  165. <label>Address Mode
  166. <select name="address_mode">
  167. <option value="">Bitte waehlen</option>
  168. <option value="du" {{if eq .Form.AddressMode "du"}}selected{{end}}>du</option>
  169. <option value="sie" {{if eq .Form.AddressMode "sie"}}selected{{end}}>sie</option>
  170. </select>
  171. </label>
  172. </div>
  173. <div>
  174. <label>Content Tone
  175. <select name="content_tone">
  176. <option value="">Bitte waehlen</option>
  177. <option value="sachlich" {{if eq .Form.ContentTone "sachlich"}}selected{{end}}>sachlich</option>
  178. <option value="freundlich" {{if eq .Form.ContentTone "freundlich"}}selected{{end}}>freundlich</option>
  179. <option value="modern" {{if eq .Form.ContentTone "modern"}}selected{{end}}>modern</option>
  180. <option value="professionell" {{if eq .Form.ContentTone "professionell"}}selected{{end}}>professionell</option>
  181. <option value="locker" {{if eq .Form.ContentTone "locker"}}selected{{end}}>locker</option>
  182. <option value="premium" {{if eq .Form.ContentTone "premium"}}selected{{end}}>premium</option>
  183. </select>
  184. </label>
  185. </div>
  186. </div>
  187. <div><label>Website Summary<textarea name="website_summary">{{.Form.WebsiteSummary}}</textarea></label></div>
  188. <p><small>Prompt-/Systemsteuerung wird global unter <a href="/settings">Settings</a> gepflegt.</small></p>
  189. <h3>Kontakt</h3>
  190. <div class="grid2">
  191. <div><label>E-Mail*<input type="email" name="email" value="{{.Form.Email}}" required></label></div>
  192. <div><label>Telefon<input type="text" name="phone" value="{{.Form.Phone}}"></label></div>
  193. </div>
  194. <h3>Firmeninformation</h3>
  195. <div class="grid2">
  196. <div><label>Organisationsnummer<input type="text" name="org_number" value="{{.Form.OrgNumber}}"></label></div>
  197. <div><label>Startdatum<input type="text" name="start_date" value="{{.Form.StartDate}}" placeholder="YYYY-MM-DD"></label></div>
  198. <div><label>Mission<textarea name="mission">{{.Form.Mission}}</textarea></label></div>
  199. <div><label>Kurzbeschreibung<textarea name="description_short">{{.Form.DescriptionShort}}</textarea></label></div>
  200. </div>
  201. <div><label>Langbeschreibung<textarea name="description_long">{{.Form.DescriptionLong}}</textarea></label></div>
  202. <h3>Adresse</h3>
  203. <div class="grid2">
  204. <div><label>Adresszeile 1<input type="text" name="address_line1" value="{{.Form.AddressLine1}}"></label></div>
  205. <div><label>Adresszeile 2<input type="text" name="address_line2" value="{{.Form.AddressLine2}}"></label></div>
  206. <div><label>Stadt<input type="text" name="address_city" value="{{.Form.AddressCity}}"></label></div>
  207. <div><label>Region / Bundesland<input type="text" name="address_region" value="{{.Form.AddressRegion}}"></label></div>
  208. <div><label>PLZ<input type="text" name="address_zip" value="{{.Form.AddressZIP}}"></label></div>
  209. <div><label>Land<input type="text" name="address_country" value="{{.Form.AddressCountry}}"></label></div>
  210. </div>
  211. <h2>Template-Felder</h2>
  212. <div>
  213. <label><input type="checkbox" name="debug" value="1" {{if .ShowDebug}}checked{{end}}> Debug: technische Felddetails anzeigen</label>
  214. </div>
  215. <div>
  216. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="generate_all">Generate all suggestions</button>
  217. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="regenerate_all">Regenerate all suggestions</button>
  218. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="apply_all">Apply all suggestions</button>
  219. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="apply_all_empty">Apply all suggestions to empty fields (safe)</button>
  220. </div>
  221. {{if and .ShowDebug .SemanticSlots}}
  222. <details>
  223. <summary>Technik-Preview: Semantische Zielslots (intern)</summary>
  224. <table>
  225. <thead>
  226. <tr><th>Slot</th><th>Zuordnungen</th><th>Beispiele</th></tr>
  227. </thead>
  228. <tbody>
  229. {{range .SemanticSlots}}
  230. <tr>
  231. <td class="mono">{{.Slot}}</td>
  232. <td>{{.Count}}</td>
  233. <td class="mono">{{.Examples}}</td>
  234. </tr>
  235. {{end}}
  236. </tbody>
  237. </table>
  238. </details>
  239. {{end}}
  240. {{range .FieldSections}}
  241. <h3>{{.Title}}</h3>
  242. {{if .Description}}<p>{{.Description}}</p>{{end}}
  243. {{range .EditableGroups}}
  244. <h4>{{.Title}}</h4>
  245. <table>
  246. <thead>
  247. <tr><th>Field</th><th>Value</th><th>Sample</th></tr>
  248. </thead>
  249. <tbody>
  250. {{range .Fields}}
  251. <tr id="{{.AnchorID}}">
  252. <td>
  253. <input type="hidden" name="field_path_{{.Index}}" value="{{.Path}}">
  254. {{.DisplayLabel}}
  255. {{if $.ShowDebug}}<br><span class="mono">{{.Path}}</span>{{end}}
  256. </td>
  257. <td>
  258. <textarea name="field_value_{{.Index}}">{{.Value}}</textarea>
  259. {{if .SuggestedValue}}
  260. <div><small>Vorschlag: {{.SuggestedValue}}</small></div>
  261. {{if and $.ShowDebug .SuggestionReason}}<div><small>Grund: {{.SuggestionReason}}</small></div>{{end}}
  262. {{if and $.ShowDebug .SuggestionStatus}}<div><small>Status: {{.SuggestionStatus}}</small></div>{{end}}
  263. {{if and $.ShowDebug .SuggestionSource}}<div><small>Quelle: {{.SuggestionSource}}</small></div>{{end}}
  264. <div>
  265. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="apply_field::{{.Path}}">Apply</button>
  266. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="regenerate_field::{{.Path}}">Regenerate</button>
  267. </div>
  268. {{else}}
  269. <div>
  270. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="regenerate_field::{{.Path}}">Regenerate</button>
  271. </div>
  272. {{end}}
  273. </td>
  274. <td class="mono">{{.SampleValue}}</td>
  275. </tr>
  276. {{end}}
  277. </tbody>
  278. </table>
  279. {{end}}
  280. {{if .EditableFields}}
  281. <table>
  282. <thead>
  283. <tr><th>Field</th><th>Value</th><th>Sample</th></tr>
  284. </thead>
  285. <tbody>
  286. {{range .EditableFields}}
  287. <tr id="{{.AnchorID}}">
  288. <td>
  289. <input type="hidden" name="field_path_{{.Index}}" value="{{.Path}}">
  290. {{.DisplayLabel}}
  291. {{if $.ShowDebug}}<br><span class="mono">{{.Path}}</span>{{end}}
  292. </td>
  293. <td>
  294. <textarea name="field_value_{{.Index}}">{{.Value}}</textarea>
  295. {{if .SuggestedValue}}
  296. <div><small>Vorschlag: {{.SuggestedValue}}</small></div>
  297. {{if and $.ShowDebug .SuggestionReason}}<div><small>Grund: {{.SuggestionReason}}</small></div>{{end}}
  298. {{if and $.ShowDebug .SuggestionStatus}}<div><small>Status: {{.SuggestionStatus}}</small></div>{{end}}
  299. {{if and $.ShowDebug .SuggestionSource}}<div><small>Quelle: {{.SuggestionSource}}</small></div>{{end}}
  300. <div>
  301. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="apply_field::{{.Path}}">Apply</button>
  302. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="regenerate_field::{{.Path}}">Regenerate</button>
  303. </div>
  304. {{else}}
  305. <div>
  306. <button type="submit" formaction="/builds/drafts/autofill" name="autofill_action" value="regenerate_field::{{.Path}}">Regenerate</button>
  307. </div>
  308. {{end}}
  309. </td>
  310. <td class="mono">{{.SampleValue}}</td>
  311. </tr>
  312. {{end}}
  313. </tbody>
  314. </table>
  315. {{end}}
  316. {{if .DisabledFields}}
  317. <table>
  318. <thead>
  319. <tr><th>Field</th><th>Status</th><th>Sample</th></tr>
  320. </thead>
  321. <tbody>
  322. {{range .DisabledFields}}
  323. <tr>
  324. <td>{{.DisplayLabel}}{{if $.ShowDebug}}<br><span class="mono">{{.Path}}</span>{{end}}</td>
  325. <td>Erkannt, deaktiviert (MVP ohne Bildlogik)</td>
  326. <td class="mono">{{.SampleValue}}</td>
  327. </tr>
  328. {{end}}
  329. </tbody>
  330. </table>
  331. {{end}}
  332. {{end}}
  333. {{if eq (len .EditableFields) 0}}
  334. <p>No enabled text fields found for this template.</p>
  335. {{end}}
  336. <button type="submit" formaction="/builds/drafts">Save Draft</button>
  337. <button type="submit">Start Build</button>
  338. </form>
  339. {{if .AutofillFocusID}}
  340. <script>
  341. window.addEventListener("load", function () {
  342. var target = document.getElementById("{{.AutofillFocusID}}");
  343. if (target) {
  344. target.scrollIntoView({ block: "center" });
  345. }
  346. });
  347. </script>
  348. {{end}}
  349. {{end}}
  350. </body>
  351. </html>
  352. {{end}}