Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

179 řádky
7.5KB

  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. <label for="draft_id">Draft laden</label>
  15. <select id="draft_id" name="draft_id">
  16. <option value="">Kein Draft</option>
  17. {{range .Drafts}}
  18. <option value="{{.ID}}" {{if eq $.SelectedDraftID .ID}}selected{{end}}>{{.RequestName}} | {{.Status}} | {{.Source}} ({{.TemplateID}})</option>
  19. {{end}}
  20. </select>
  21. <button type="submit">Draft laden</button>
  22. </form>
  23. <form method="get" action="/builds/new">
  24. {{if .SelectedDraftID}}<input type="hidden" name="draft_id" value="{{.SelectedDraftID}}">{{end}}
  25. <label for="template_id">Template</label>
  26. <select id="template_id" name="template_id">
  27. <option value="">Select template</option>
  28. {{range .Templates}}
  29. <option value="{{.ID}}" {{if eq $.SelectedTemplateID .ID}}selected{{end}}>{{.Name}} ({{.ID}})</option>
  30. {{end}}
  31. </select>
  32. <button type="submit">Load Fields</button>
  33. </form>
  34. {{if gt .SelectedTemplateID 0}}
  35. <form method="post" action="/builds">
  36. <input type="hidden" name="draft_id" value="{{.Form.DraftID}}">
  37. <input type="hidden" name="template_id" value="{{.SelectedTemplateID}}">
  38. <input type="hidden" name="manifest_id" value="{{.SelectedManifestID}}">
  39. <input type="hidden" name="field_count" value="{{len .EditableFields}}">
  40. <h2>Global Data</h2>
  41. <div class="grid2">
  42. <div><label>Draft Source<input type="text" name="draft_source" value="{{.Form.DraftSource}}" placeholder="ui"></label></div>
  43. <div>
  44. <label>Draft Status
  45. <select name="draft_status">
  46. <option value="draft" {{if eq .Form.DraftStatus "draft"}}selected{{end}}>draft</option>
  47. <option value="reviewed" {{if eq .Form.DraftStatus "reviewed"}}selected{{end}}>reviewed</option>
  48. <option value="submitted" {{if eq .Form.DraftStatus "submitted"}}selected{{end}}>submitted</option>
  49. </select>
  50. </label>
  51. </div>
  52. </div>
  53. <div><label>Request Name<input type="text" name="request_name" value="{{.Form.RequestName}}"></label></div>
  54. <div><label>Draft Notes<textarea name="draft_notes">{{.Form.DraftNotes}}</textarea></label></div>
  55. <h3>Basis / Firma</h3>
  56. <div class="grid2">
  57. <div><label>Firmenname*<input type="text" name="company_name" value="{{.Form.CompanyName}}" required></label></div>
  58. <div><label>Benutzername*<input type="text" name="username" value="{{.Form.Username}}" required></label></div>
  59. <div><label>Branche / Business Type<input type="text" name="business_type" value="{{.Form.BusinessType}}"></label></div>
  60. <div><label>Website-Sprache<input type="text" name="site_language" value="{{.Form.SiteLanguage}}"></label></div>
  61. </div>
  62. <h3>Intake / Website-Kontext</h3>
  63. <div class="grid2">
  64. <div><label>Website URL<input type="url" name="website_url" value="{{.Form.WebsiteURL}}" placeholder="https://example.com"></label></div>
  65. <div><label>Locale Style (z.B. de-CH)<input type="text" name="locale_style" value="{{.Form.LocaleStyle}}" placeholder="de-CH"></label></div>
  66. <div><label>Market Style (z.B. DACH)<input type="text" name="market_style" value="{{.Form.MarketStyle}}" placeholder="de-CH, de-DE, de-AT"></label></div>
  67. <div><label>Address Mode<input type="text" name="address_mode" value="{{.Form.AddressMode}}" placeholder="du oder sie"></label></div>
  68. <div><label>Content Tone<input type="text" name="content_tone" value="{{.Form.ContentTone}}" placeholder="sachlich, freundlich, ..."></label></div>
  69. </div>
  70. <div><label>Website Summary<textarea name="website_summary">{{.Form.WebsiteSummary}}</textarea></label></div>
  71. <div><label>Prompt Instructions<textarea name="prompt_instructions">{{.Form.PromptInstructions}}</textarea></label></div>
  72. <h3>Kontakt</h3>
  73. <div class="grid2">
  74. <div><label>E-Mail*<input type="email" name="email" value="{{.Form.Email}}" required></label></div>
  75. <div><label>Telefon<input type="text" name="phone" value="{{.Form.Phone}}"></label></div>
  76. </div>
  77. <h3>Firmeninformation</h3>
  78. <div class="grid2">
  79. <div><label>Organisationsnummer<input type="text" name="org_number" value="{{.Form.OrgNumber}}"></label></div>
  80. <div><label>Startdatum<input type="text" name="start_date" value="{{.Form.StartDate}}" placeholder="YYYY-MM-DD"></label></div>
  81. <div><label>Mission<textarea name="mission">{{.Form.Mission}}</textarea></label></div>
  82. <div><label>Kurzbeschreibung<textarea name="description_short">{{.Form.DescriptionShort}}</textarea></label></div>
  83. </div>
  84. <div><label>Langbeschreibung<textarea name="description_long">{{.Form.DescriptionLong}}</textarea></label></div>
  85. <h3>Adresse</h3>
  86. <div class="grid2">
  87. <div><label>Adresszeile 1<input type="text" name="address_line1" value="{{.Form.AddressLine1}}"></label></div>
  88. <div><label>Adresszeile 2<input type="text" name="address_line2" value="{{.Form.AddressLine2}}"></label></div>
  89. <div><label>Stadt<input type="text" name="address_city" value="{{.Form.AddressCity}}"></label></div>
  90. <div><label>Region / Bundesland<input type="text" name="address_region" value="{{.Form.AddressRegion}}"></label></div>
  91. <div><label>PLZ<input type="text" name="address_zip" value="{{.Form.AddressZIP}}"></label></div>
  92. <div><label>Land<input type="text" name="address_country" value="{{.Form.AddressCountry}}"></label></div>
  93. </div>
  94. <h2>Template-Felder</h2>
  95. {{range .FieldSections}}
  96. <h3>{{.Title}}</h3>
  97. {{if .Description}}<p>{{.Description}}</p>{{end}}
  98. {{range .EditableGroups}}
  99. <h4>{{.Title}}</h4>
  100. <table>
  101. <thead>
  102. <tr><th>Field</th><th>Value</th><th>Sample</th></tr>
  103. </thead>
  104. <tbody>
  105. {{range .Fields}}
  106. <tr>
  107. <td>
  108. <input type="hidden" name="field_path_{{.Index}}" value="{{.Path}}">
  109. {{.DisplayLabel}}<br><span class="mono">{{.Path}}</span>
  110. </td>
  111. <td><textarea name="field_value_{{.Index}}">{{.Value}}</textarea></td>
  112. <td class="mono">{{.SampleValue}}</td>
  113. </tr>
  114. {{end}}
  115. </tbody>
  116. </table>
  117. {{end}}
  118. {{if .EditableFields}}
  119. <table>
  120. <thead>
  121. <tr><th>Field</th><th>Value</th><th>Sample</th></tr>
  122. </thead>
  123. <tbody>
  124. {{range .EditableFields}}
  125. <tr>
  126. <td>
  127. <input type="hidden" name="field_path_{{.Index}}" value="{{.Path}}">
  128. {{.DisplayLabel}}<br><span class="mono">{{.Path}}</span>
  129. </td>
  130. <td><textarea name="field_value_{{.Index}}">{{.Value}}</textarea></td>
  131. <td class="mono">{{.SampleValue}}</td>
  132. </tr>
  133. {{end}}
  134. </tbody>
  135. </table>
  136. {{end}}
  137. {{if .DisabledFields}}
  138. <table>
  139. <thead>
  140. <tr><th>Field</th><th>Status</th><th>Sample</th></tr>
  141. </thead>
  142. <tbody>
  143. {{range .DisabledFields}}
  144. <tr>
  145. <td>{{.DisplayLabel}}<br><span class="mono">{{.Path}}</span></td>
  146. <td>Erkannt, deaktiviert (MVP ohne Bildlogik)</td>
  147. <td class="mono">{{.SampleValue}}</td>
  148. </tr>
  149. {{end}}
  150. </tbody>
  151. </table>
  152. {{end}}
  153. {{end}}
  154. {{if eq (len .EditableFields) 0}}
  155. <p>No enabled text fields found for this template.</p>
  156. {{end}}
  157. <button type="submit" formaction="/builds/drafts">Save Draft</button>
  158. <button type="submit">Start Build</button>
  159. </form>
  160. {{end}}
  161. </body>
  162. </html>
  163. {{end}}