vendor.php 1.6 KB

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