Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

49 lines
1.6KB

  1. <div class="row justify-content-center">
  2. <div class="col-md-6">
  3. <div class="d-flex align-items-center mb-4">
  4. <a href="/boards" class="btn btn-sm btn-outline-secondary me-3">
  5. <i class="bi bi-arrow-left"></i>
  6. </a>
  7. <h1 class="h3 mb-0">New Board</h1>
  8. </div>
  9. <div class="card shadow-sm">
  10. <div class="card-body">
  11. <form method="post" action="/boards">
  12. <div class="mb-3">
  13. <label for="name" class="form-label">Board Name</label>
  14. <input type="text" class="form-control" id="name" name="name"
  15. placeholder="e.g. Sprint 1" autofocus required />
  16. </div>
  17. <div class="mb-3">
  18. <label class="form-label text-muted small">URL Slug <span class="text-secondary">(auto-generated)</span></label>
  19. <div class="form-control bg-light text-muted" id="slug-preview" style="min-height:38px;">&nbsp;</div>
  20. </div>
  21. <div class="d-flex gap-2">
  22. <button type="submit" class="btn btn-primary">Create Board</button>
  23. <a href="/boards" class="btn btn-outline-secondary">Cancel</a>
  24. </div>
  25. </form>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. <script>
  31. (function () {
  32. var nameEl = document.getElementById('name');
  33. var preview = document.getElementById('slug-preview');
  34. nameEl.addEventListener('input', function () {
  35. preview.textContent = slugify(nameEl.value) || ' ';
  36. });
  37. function slugify(s) {
  38. return s.toLowerCase()
  39. .replace(/&/g, 'and')
  40. .replace(/[^a-z0-9\s-]/g, '')
  41. .trim()
  42. .replace(/[\s]+/g, '-')
  43. .replace(/-+/g, '-');
  44. }
  45. })();
  46. </script>

Powered by TurnKey Linux.