The frontend/UI server, written in JS using the MarkoJS library
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.

28 lines
1.4 KiB

  1. <div class="tag-options">
  2. <div class="field">
  3. <label>Tag Name</label>
  4. <input key="name" autofocus placeholder="Name" on-change("change", "name") value=state.values.name />
  5. </div>
  6. <div class="field">
  7. <label>Tag Kind</label>
  8. <select key="kind" placeholder="Kind" on-change("change", "kind") value=state.values.kind>
  9. <option value="Character" selected=(state.values.kind === "Character")>Character</option>
  10. <option value="Event" selected=(state.values.kind === "Event")>Event</option>
  11. <option value="Location" selected=(state.values.kind === "Location")>Location</option>
  12. <option value="Organization" selected=(state.values.kind === "Organization")>Organization</option>
  13. <option value="Series" selected=(state.values.kind === "Series")>Series</option>
  14. </select>
  15. </div>
  16. <div class="button-field">
  17. <button class="add-tag" disabled=(input.loading) on-click("add", state.values)>Add</button>
  18. </div>
  19. <div class="suggestion-list" if(state.suggestions.length > 0)>
  20. <div class="header color-menu">Suggestions:</div>
  21. <a for(tag in state.suggestions) on-click("applySuggestion", tag) class=["tag", "color-tag-" + tag.kind.toLowerCase()]>${tag.name}</a>
  22. </div>
  23. <div for(tag in (input.tags || [])) class="tag" key=(tag.kind+":"+tag.name)>
  24. <div class=("content color-tag-"+tag.kind.toLowerCase())>${tag.name}</div>
  25. <button on-click("emit", "remove", tag)>Remove</button>
  26. </div>
  27. </div>