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.

55 line
2.1KB

  1. <section class="content-stack" x-data="employeeDirectory()">
  2. <div class="section-heading">
  3. <span class="eyebrow"><?= e($model->eyebrow) ?></span>
  4. <h1><?= e($model->title) ?></h1>
  5. <p><?= e($model->intro) ?></p>
  6. </div>
  7. <section class="section-panel controls-panel">
  8. <div class="panel-header controls-header">
  9. <div>
  10. <h2>Employee Workspace</h2>
  11. <p>Use htmx for server updates, Alpine for page state, and Tabulator for a richer table experience.</p>
  12. </div>
  13. <button class="button button-secondary" type="button" x-on:click="reloadTable()">Refresh Table</button>
  14. </div>
  15. <div class="search-row">
  16. <label class="field field-full">
  17. <span>Search employees</span>
  18. <input
  19. id="employee-search"
  20. class="input"
  21. type="search"
  22. name="search"
  23. placeholder="Search by name, email, department, title, or date"
  24. x-model.debounce.300ms="search"
  25. x-on:input.debounce.300ms="applySearch()"
  26. value="<?= e($model->search) ?>"
  27. >
  28. </label>
  29. </div>
  30. </section>
  31. <div class="employee-layout">
  32. <div id="employee-form-panel">
  33. <?php require __DIR__ . '/partials/form.php'; ?>
  34. </div>
  35. <section class="section-panel table-shell directory-panel">
  36. <div class="panel-header">
  37. <h2>Employee Directory Table</h2>
  38. <p>Browse, search, and sort all employees in one place. The table refreshes after new employee records are saved.</p>
  39. </div>
  40. <div class="table-toolbar">
  41. <span class="table-pill">HTMX + Alpine + Tabulator</span>
  42. <span class="table-caption">Live data endpoint: <code>/employees/data</code></span>
  43. </div>
  44. <div id="employee-table" class="tabulator-host"></div>
  45. </section>
  46. </div>
  47. </section>

Powered by TurnKey Linux.