PDQ.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. require_once __DIR__ . '/lib/identity.php';
  3. require_once __DIR__ . '/lib/render.php';
  4. $actor = current_actor('ICG');
  5. $vendors = all_vendors();
  6. ?><!doctype html>
  7. <html lang="en">
  8. <head>
  9. <meta charset="utf-8">
  10. <title>PDQ Schedule</title>
  11. <link rel="stylesheet" href="assets/app.css">
  12. <script>
  13. window.PDQ = {
  14. actor: 'ICG',
  15. audience: 'ICG',
  16. vendors: <?= json_encode(array_map(fn($v) => ['slug' => $v['slug'], 'name' => $v['name']], $vendors)) ?>,
  17. pollMs: 60000
  18. };
  19. </script>
  20. <script src="assets/app.js" defer></script>
  21. </head>
  22. <body>
  23. <div class="topbar">
  24. <h1>PDQ Schedule</h1>
  25. <span class="who">Signed in as <strong>ICG</strong> &middot; <span id="sync-time">Loading…</span></span>
  26. </div>
  27. <div class="add-row">
  28. <label for="add-job-vendor">Add job for:</label>
  29. <select id="add-job-vendor">
  30. <?php foreach ($vendors as $v): ?>
  31. <option value="<?= h($v['slug']) ?>"><?= h($v['name']) ?></option>
  32. <?php endforeach; ?>
  33. </select>
  34. <button id="add-job" class="btn btn-add">Add One</button>
  35. </div>
  36. <div class="jobs-wrap">
  37. <div id="jobs-table"><?= render_jobs_table('ICG') ?></div>
  38. </div>
  39. <?php foreach ($vendors as $v):
  40. $vid = (int) $v['id'];
  41. $maxId = max_message_id($vid);
  42. ?>
  43. <section class="thread" data-vendor="<?= h($v['slug']) ?>">
  44. <h2>Messages with <?= h($v['name']) ?></h2>
  45. <div class="thread-list" data-max-id="<?= $maxId ?>">
  46. <?php
  47. $rendered = render_messages($vid);
  48. echo $rendered !== '' ? $rendered : '<div class="msg-empty">No messages yet.</div>';
  49. ?>
  50. </div>
  51. <form class="thread-compose" autocomplete="off">
  52. <input type="text" name="body" placeholder="Message <?= h($v['name']) ?>…" maxlength="4000" required>
  53. <button type="submit" class="btn btn-post">Post</button>
  54. </form>
  55. </section>
  56. <?php endforeach; ?>
  57. </body>
  58. </html>