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.

69 lines
2.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="mb-3">
  22. <div class="form-check">
  23. <input class="form-check-input" type="checkbox" id="import_from_printstream"
  24. name="import_from_printstream" />
  25. <label class="form-check-label" for="import_from_printstream">Import Jobs from Printstream</label>
  26. </div>
  27. </div>
  28. <div class="mb-3" id="printstream-job-name-group" style="display:none;">
  29. <label for="printstream_job_name" class="form-label">Job Name to Import</label>
  30. <textarea class="form-control" id="printstream_job_name" name="printstream_job_name"
  31. rows="4" placeholder="Enter job name(s) to import"></textarea>
  32. </div>
  33. <div class="d-flex gap-2">
  34. <button type="submit" class="btn btn-primary">Create Board</button>
  35. <a href="/boards" class="btn btn-outline-secondary">Cancel</a>
  36. </div>
  37. </form>
  38. </div>
  39. </div>
  40. </div>
  41. </div>
  42. <script>
  43. (function () {
  44. var nameEl = document.getElementById('name');
  45. var preview = document.getElementById('slug-preview');
  46. var chk = document.getElementById('import_from_printstream');
  47. var jobGroup = document.getElementById('printstream-job-name-group');
  48. nameEl.addEventListener('input', function () {
  49. preview.textContent = slugify(nameEl.value) || ' ';
  50. });
  51. chk.addEventListener('change', function () {
  52. jobGroup.style.display = this.checked ? '' : 'none';
  53. });
  54. function slugify(s) {
  55. return s.toLowerCase()
  56. .replace(/&/g, 'and')
  57. .replace(/[^a-z0-9\s-]/g, '')
  58. .trim()
  59. .replace(/[\s]+/g, '-')
  60. .replace(/-+/g, '-');
  61. }
  62. })();
  63. </script>

Powered by TurnKey Linux.