0001AMA commited on
Commit
2c541ca
·
verified ·
1 Parent(s): 8e30faf

Rebrand SmOS_CC customer surfaces to HAH restaurant.

Browse files
modules/SmOS_CC/admin-config.js CHANGED
@@ -1,4 +1,4 @@
1
  window.SmOS_Module = {
2
  id: "SmOS_CC",
3
- name: "The Corner Cafe",
4
  };
 
1
  window.SmOS_Module = {
2
  id: "SmOS_CC",
3
+ name: "HAH restaurant",
4
  };
modules/SmOS_CC/admin/admin.js CHANGED
@@ -4,7 +4,7 @@ window.SmOSAdmin = (function () {
4
  const match = location.pathname.match(/\/modules\/([^/]+)\/admin/);
5
  return {
6
  id: match ? match[1] : "SmOS_CC",
7
- name: "The Corner Cafe",
8
  };
9
  }
10
 
@@ -815,7 +815,7 @@ window.SmOSAdmin = (function () {
815
  }
816
 
817
  function menuDrinkIds() {
818
- const menu = window.CornerCafeMenu || [];
819
  return new Set(menu.filter((i) => i.section === "Drinks").map((i) => i.id));
820
  }
821
 
@@ -1257,7 +1257,7 @@ window.SmOSAdmin = (function () {
1257
  const b = bookings.find((row) => row.id === id);
1258
  if (!b) return;
1259
  if (window.SmOSReceipt?.openPrint) {
1260
- window.SmOSReceipt.openPrint(b, { businessName: "The Corner Cafe" });
1261
  } else {
1262
  alert("Receipt helper not loaded.");
1263
  }
 
4
  const match = location.pathname.match(/\/modules\/([^/]+)\/admin/);
5
  return {
6
  id: match ? match[1] : "SmOS_CC",
7
+ name: "HAH restaurant",
8
  };
9
  }
10
 
 
815
  }
816
 
817
  function menuDrinkIds() {
818
+ const menu = window.HAHRestaurantMenu || [];
819
  return new Set(menu.filter((i) => i.section === "Drinks").map((i) => i.id));
820
  }
821
 
 
1257
  const b = bookings.find((row) => row.id === id);
1258
  if (!b) return;
1259
  if (window.SmOSReceipt?.openPrint) {
1260
+ window.SmOSReceipt.openPrint(b, { businessName: "HAH restaurant" });
1261
  } else {
1262
  alert("Receipt helper not loaded.");
1263
  }
modules/SmOS_CC/admin/barista.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Corner Cafe · Barista</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -14,7 +14,7 @@
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
- <h1 data-module-name>Corner Cafe</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HAH restaurant · Barista</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
+ <h1 data-module-name>HAH restaurant</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
modules/SmOS_CC/admin/chef.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Corner Cafe · Chef</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -14,7 +14,7 @@
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
- <h1 data-module-name>Corner Cafe</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HAH restaurant · Chef</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
+ <h1 data-module-name>HAH restaurant</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
modules/SmOS_CC/admin/dashboard.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Corner Cafe · Staff</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -14,7 +14,7 @@
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
- <h1 data-module-name>Corner Cafe</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HAH restaurant · Staff</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
+ <h1 data-module-name>HAH restaurant</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
modules/SmOS_CC/admin/home.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Corner Cafe · Admin home</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -14,7 +14,7 @@
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
- <h1 data-module-name>Corner Cafe</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item is-active" href="home.html">Home</a>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HAH restaurant · Admin home</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
+ <h1 data-module-name>HAH restaurant</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item is-active" href="home.html">Home</a>
modules/SmOS_CC/admin/index.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Corner Cafe · Staff sign in</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -13,7 +13,7 @@
13
  <body class="admin-login-page">
14
  <div class="admin-login-card">
15
  <div class="admin-login-brand">
16
- <p class="admin-login-eyebrow"><span data-module-name>The Corner Cafe</span> · <span data-module-id>SmOS_CC</span></p>
17
  <h1>Staff sign in</h1>
18
  <p class="admin-login-lead">Admin home, orders &amp; reservations for this venue.</p>
19
  </div>
@@ -29,7 +29,7 @@
29
  <p class="admin-login-error" data-login-error hidden role="alert"></p>
30
  <button type="submit">Sign in</button>
31
  </form>
32
- <p class="admin-login-foot">Local demo: <code>admin</code> / <code>corner-cafe</code></p>
33
  <p class="admin-login-foot"><a class="admin-link" href="../">← Back to ordering</a></p>
34
  </div>
35
  <script src="../admin-config.js?v=1" defer></script>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HAH restaurant · Staff sign in</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
13
  <body class="admin-login-page">
14
  <div class="admin-login-card">
15
  <div class="admin-login-brand">
16
+ <p class="admin-login-eyebrow"><span data-module-name>HAH restaurant</span> · <span data-module-id>SmOS_CC</span></p>
17
  <h1>Staff sign in</h1>
18
  <p class="admin-login-lead">Admin home, orders &amp; reservations for this venue.</p>
19
  </div>
 
29
  <p class="admin-login-error" data-login-error hidden role="alert"></p>
30
  <button type="submit">Sign in</button>
31
  </form>
32
+ <p class="admin-login-foot">Local demo: <code>admin</code> / <code>hah-restaurant</code></p>
33
  <p class="admin-login-foot"><a class="admin-link" href="../">← Back to ordering</a></p>
34
  </div>
35
  <script src="../admin-config.js?v=1" defer></script>
modules/SmOS_CC/admin/waiter.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Corner Cafe · Waiter</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -14,7 +14,7 @@
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
- <h1 data-module-name>Corner Cafe</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HAH restaurant · Waiter</title>
7
  <link rel="icon" type="image/svg+xml" href="../assets/logo-c.svg">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
14
  <aside class="admin-sidebar">
15
  <div class="admin-sidebar__brand">
16
  <p class="admin-sidebar__eyebrow"><span data-module-id>SmOS_CC</span></p>
17
+ <h1 data-module-name>HAH restaurant</h1>
18
  </div>
19
  <nav class="admin-nav">
20
  <a class="admin-nav__item" href="home.html">Home</a>
modules/SmOS_CC/app.js CHANGED
@@ -1,8 +1,8 @@
1
  (function () {
2
- const THEME_KEY = "corner-cafe-theme";
3
- const SERVICE_KEY = "corner-cafe-order-service";
4
- const MODE_KEY = "corner-cafe-order-mode";
5
- const CART_KEY = "corner-cafe-cart";
6
 
7
  const serviceLabels = {
8
  delivery: "Delivery",
@@ -117,7 +117,7 @@
117
  const keys = [];
118
  for (let i = 0; i < sessionStorage.length; i += 1) {
119
  const key = sessionStorage.key(i);
120
- if (key && key.startsWith("corner-cafe-pay-ref")) keys.push(key);
121
  }
122
  keys.forEach((key) => sessionStorage.removeItem(key));
123
  } catch (e) {
@@ -306,7 +306,7 @@
306
 
307
  if (linesEl) {
308
  linesEl.innerHTML = "";
309
- const menu = window.CornerCafeMenu || [];
310
  cart.forEach((line) => {
311
  const item = menu.find((m) => m.id === line.id) || line;
312
  const li = document.createElement("li");
@@ -405,7 +405,7 @@
405
  }
406
 
407
  function initMenuPanel() {
408
- const menu = window.CornerCafeMenu || [];
409
  const filters = document.querySelector("[data-menu-filters]");
410
  const list = document.querySelector("[data-menu-list]");
411
  if (!filters || !list) return;
@@ -512,7 +512,7 @@
512
  }
513
 
514
  function matchOrder(query) {
515
- const menu = window.CornerCafeMenu || [];
516
  const tokens = tokenize(query);
517
  if (!tokens.length) return [];
518
 
@@ -562,7 +562,7 @@
562
  const results = document.querySelector("[data-know-results]");
563
  if (!form || !results) return;
564
 
565
- const findItem = (id) => (window.CornerCafeMenu || []).find((m) => m.id === id);
566
 
567
  const renderMatches = (matches) => {
568
  results.hidden = false;
@@ -613,7 +613,7 @@
613
  "sitting-in": "SIT",
614
  };
615
  const prefix = prefixes[service] || "ORD";
616
- const storageKey = `corner-cafe-pay-ref-${service || "order"}`;
617
  let ref = "";
618
  try {
619
  ref = sessionStorage.getItem(storageKey) || "";
@@ -637,8 +637,8 @@
637
 
638
  function clearOrderReference(service) {
639
  try {
640
- sessionStorage.removeItem(`corner-cafe-pay-ref-${service || "order"}`);
641
- sessionStorage.removeItem("corner-cafe-pay-ref");
642
  } catch (e) {
643
  /* ignore */
644
  }
@@ -646,7 +646,7 @@
646
 
647
  function loadSitTablesFromSession() {
648
  try {
649
- const raw = sessionStorage.getItem("corner-cafe-reservation");
650
  if (!raw) return [];
651
  const res = JSON.parse(raw);
652
  return Array.isArray(res.tables) ? res.tables : [];
@@ -859,7 +859,7 @@
859
 
860
  let pendingMeta = {};
861
  try {
862
- pendingMeta = JSON.parse(sessionStorage.getItem("corner-cafe-mollie-pending") || "{}") || {};
863
  } catch (_) {
864
  pendingMeta = {};
865
  }
@@ -875,7 +875,7 @@
875
  clearCart();
876
  clearOrderReference(svc);
877
  try {
878
- sessionStorage.removeItem("corner-cafe-mollie-pending");
879
  } catch (_) {}
880
  if (lead) {
881
  lead.textContent = `Thanks ${name || "there"}. ${ref} · ${svcLabel} · ${total} · paid via Mollie.`;
@@ -903,9 +903,9 @@
903
  placedAt: booking.created_at || new Date().toISOString(),
904
  };
905
  try {
906
- const history = JSON.parse(sessionStorage.getItem("corner-cafe-orders") || "[]");
907
  history.unshift(historyOrder);
908
- sessionStorage.setItem("corner-cafe-orders", JSON.stringify(history.slice(0, 20)));
909
  } catch (_) {}
910
  const receiptBtn = document.querySelector("[data-download-receipt]");
911
  if (receiptBtn && window.SmOSReceipt?.openPrint) {
@@ -1291,7 +1291,7 @@
1291
  if (!created?.checkout_url) throw new Error("No Mollie checkout URL returned.");
1292
  try {
1293
  sessionStorage.setItem(
1294
- "corner-cafe-mollie-pending",
1295
  JSON.stringify({
1296
  paymentId: created.payment_id,
1297
  ref: order.ref,
@@ -1342,9 +1342,9 @@
1342
  }
1343
 
1344
  try {
1345
- const history = JSON.parse(sessionStorage.getItem("corner-cafe-orders") || "[]");
1346
  history.unshift(order);
1347
- sessionStorage.setItem("corner-cafe-orders", JSON.stringify(history.slice(0, 20)));
1348
  clearOrderReference(service);
1349
  } catch (e) {
1350
  /* ignore */
 
1
  (function () {
2
+ const THEME_KEY = "hah-restaurant-theme";
3
+ const SERVICE_KEY = "hah-restaurant-order-service";
4
+ const MODE_KEY = "hah-restaurant-order-mode";
5
+ const CART_KEY = "hah-restaurant-cart";
6
 
7
  const serviceLabels = {
8
  delivery: "Delivery",
 
117
  const keys = [];
118
  for (let i = 0; i < sessionStorage.length; i += 1) {
119
  const key = sessionStorage.key(i);
120
+ if (key && key.startsWith("hah-restaurant-pay-ref")) keys.push(key);
121
  }
122
  keys.forEach((key) => sessionStorage.removeItem(key));
123
  } catch (e) {
 
306
 
307
  if (linesEl) {
308
  linesEl.innerHTML = "";
309
+ const menu = window.HAHRestaurantMenu || [];
310
  cart.forEach((line) => {
311
  const item = menu.find((m) => m.id === line.id) || line;
312
  const li = document.createElement("li");
 
405
  }
406
 
407
  function initMenuPanel() {
408
+ const menu = window.HAHRestaurantMenu || [];
409
  const filters = document.querySelector("[data-menu-filters]");
410
  const list = document.querySelector("[data-menu-list]");
411
  if (!filters || !list) return;
 
512
  }
513
 
514
  function matchOrder(query) {
515
+ const menu = window.HAHRestaurantMenu || [];
516
  const tokens = tokenize(query);
517
  if (!tokens.length) return [];
518
 
 
562
  const results = document.querySelector("[data-know-results]");
563
  if (!form || !results) return;
564
 
565
+ const findItem = (id) => (window.HAHRestaurantMenu || []).find((m) => m.id === id);
566
 
567
  const renderMatches = (matches) => {
568
  results.hidden = false;
 
613
  "sitting-in": "SIT",
614
  };
615
  const prefix = prefixes[service] || "ORD";
616
+ const storageKey = `hah-restaurant-pay-ref-${service || "order"}`;
617
  let ref = "";
618
  try {
619
  ref = sessionStorage.getItem(storageKey) || "";
 
637
 
638
  function clearOrderReference(service) {
639
  try {
640
+ sessionStorage.removeItem(`hah-restaurant-pay-ref-${service || "order"}`);
641
+ sessionStorage.removeItem("hah-restaurant-pay-ref");
642
  } catch (e) {
643
  /* ignore */
644
  }
 
646
 
647
  function loadSitTablesFromSession() {
648
  try {
649
+ const raw = sessionStorage.getItem("hah-restaurant-reservation");
650
  if (!raw) return [];
651
  const res = JSON.parse(raw);
652
  return Array.isArray(res.tables) ? res.tables : [];
 
859
 
860
  let pendingMeta = {};
861
  try {
862
+ pendingMeta = JSON.parse(sessionStorage.getItem("hah-restaurant-mollie-pending") || "{}") || {};
863
  } catch (_) {
864
  pendingMeta = {};
865
  }
 
875
  clearCart();
876
  clearOrderReference(svc);
877
  try {
878
+ sessionStorage.removeItem("hah-restaurant-mollie-pending");
879
  } catch (_) {}
880
  if (lead) {
881
  lead.textContent = `Thanks ${name || "there"}. ${ref} · ${svcLabel} · ${total} · paid via Mollie.`;
 
903
  placedAt: booking.created_at || new Date().toISOString(),
904
  };
905
  try {
906
+ const history = JSON.parse(sessionStorage.getItem("hah-restaurant-orders") || "[]");
907
  history.unshift(historyOrder);
908
+ sessionStorage.setItem("hah-restaurant-orders", JSON.stringify(history.slice(0, 20)));
909
  } catch (_) {}
910
  const receiptBtn = document.querySelector("[data-download-receipt]");
911
  if (receiptBtn && window.SmOSReceipt?.openPrint) {
 
1291
  if (!created?.checkout_url) throw new Error("No Mollie checkout URL returned.");
1292
  try {
1293
  sessionStorage.setItem(
1294
+ "hah-restaurant-mollie-pending",
1295
  JSON.stringify({
1296
  paymentId: created.payment_id,
1297
  ref: order.ref,
 
1342
  }
1343
 
1344
  try {
1345
+ const history = JSON.parse(sessionStorage.getItem("hah-restaurant-orders") || "[]");
1346
  history.unshift(order);
1347
+ sessionStorage.setItem("hah-restaurant-orders", JSON.stringify(history.slice(0, 20)));
1348
  clearOrderReference(service);
1349
  } catch (e) {
1350
  /* ignore */
modules/SmOS_CC/assets/logo-c.svg CHANGED
modules/SmOS_CC/checkout.html CHANGED
@@ -7,7 +7,7 @@
7
  <script>
8
  (function () {
9
  try {
10
- var k = "corner-cafe-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
@@ -18,7 +18,7 @@
18
  }
19
  })();
20
  </script>
21
- <title>Corner Cafe | Checkout</title>
22
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg">
23
  <link rel="preconnect" href="https://fonts.googleapis.com">
24
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
7
  <script>
8
  (function () {
9
  try {
10
+ var k = "hah-restaurant-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
 
18
  }
19
  })();
20
  </script>
21
+ <title>HAH restaurant | Checkout</title>
22
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg">
23
  <link rel="preconnect" href="https://fonts.googleapis.com">
24
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
modules/SmOS_CC/hours-config.js CHANGED
@@ -1,4 +1,4 @@
1
- /** Corner Cafe service hours — single source for customer-facing copy. */
2
  window.SmOS_CC_Hours = {
3
  cafe: {
4
  label: "Cafe",
 
1
+ /** HAH restaurant service hours — single source for customer-facing copy. */
2
  window.SmOS_CC_Hours = {
3
  cafe: {
4
  label: "Cafe",
modules/SmOS_CC/index.html CHANGED
@@ -7,7 +7,7 @@
7
  <script>
8
  (function () {
9
  try {
10
- var k = "corner-cafe-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
@@ -18,8 +18,8 @@
18
  }
19
  })();
20
  </script>
21
- <title>Corner Cafe | Order online</title>
22
- <meta name="description" content="Order from The Corner Cafe, Dalkeith — delivery, collection or sitting in.">
23
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg?v=1.17">
24
  <link rel="preconnect" href="https://fonts.googleapis.com">
25
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -33,7 +33,7 @@
33
  <header class="app-header">
34
  <a class="app-brand" href="../../index.html" title="SmOS home">
35
  <img src="assets/logo-c.svg" alt="" width="36" height="36" decoding="async">
36
- <span>SmOS_CC · Corner Cafe</span>
37
  </a>
38
  <div class="app-header__actions">
39
  <a class="app-admin-link" href="admin/">Admin</a>
@@ -51,7 +51,7 @@
51
 
52
  <main class="app-main">
53
  <div class="app-hero">
54
- <img class="app-hero__logo" src="assets/logo-c.svg?v=1.17" alt="Corner Cafe" width="88" height="88" decoding="async">
55
  <h1 class="app-hero__title">How would you like your order?</h1>
56
  <p class="app-hero__lead">Choose delivery, collection, sitting in, or reserve a table.</p>
57
  </div>
 
7
  <script>
8
  (function () {
9
  try {
10
+ var k = "hah-restaurant-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
 
18
  }
19
  })();
20
  </script>
21
+ <title>HAH restaurant | Order online</title>
22
+ <meta name="description" content="Order from HAH restaurant, Dalkeith — delivery, collection or sitting in.">
23
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg?v=1.17">
24
  <link rel="preconnect" href="https://fonts.googleapis.com">
25
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
33
  <header class="app-header">
34
  <a class="app-brand" href="../../index.html" title="SmOS home">
35
  <img src="assets/logo-c.svg" alt="" width="36" height="36" decoding="async">
36
+ <span>SmOS_CC · HAH restaurant</span>
37
  </a>
38
  <div class="app-header__actions">
39
  <a class="app-admin-link" href="admin/">Admin</a>
 
51
 
52
  <main class="app-main">
53
  <div class="app-hero">
54
+ <img class="app-hero__logo" src="assets/logo-c.svg?v=1.17" alt="HAH restaurant" width="88" height="88" decoding="async">
55
  <h1 class="app-hero__title">How would you like your order?</h1>
56
  <p class="app-hero__lead">Choose delivery, collection, sitting in, or reserve a table.</p>
57
  </div>
modules/SmOS_CC/menu-data.js CHANGED
@@ -1,4 +1,4 @@
1
- window.CornerCafeMenu = [
2
  {"id": "organic-porridge", "name": "Organic porridge", "desc": "cream or oat milk · banana & honey or berries", "price": 6.5, "priceDisplay": "£6.50", "section": "Breakfast", "group": "Morning classics", "tags": ["organic", "porridge"]},
3
  {"id": "buttery-jam", "name": "Buttery & jam", "desc": "Aberdeen rowie, unsalted butter", "price": 3.8, "priceDisplay": "£3.80", "section": "Breakfast", "group": "Morning classics", "tags": ["buttery", "jam"]},
4
  {"id": "bacon-or-lorne-sausage-roll", "name": "Bacon or Lorne sausage roll", "desc": "on a soft morning roll", "price": 4.5, "priceDisplay": "£4.50", "section": "Breakfast", "group": "Morning classics", "tags": ["bacon", "lorne", "sausage", "roll"]},
 
1
+ window.HAHRestaurantMenu = [
2
  {"id": "organic-porridge", "name": "Organic porridge", "desc": "cream or oat milk · banana & honey or berries", "price": 6.5, "priceDisplay": "£6.50", "section": "Breakfast", "group": "Morning classics", "tags": ["organic", "porridge"]},
3
  {"id": "buttery-jam", "name": "Buttery & jam", "desc": "Aberdeen rowie, unsalted butter", "price": 3.8, "priceDisplay": "£3.80", "section": "Breakfast", "group": "Morning classics", "tags": ["buttery", "jam"]},
4
  {"id": "bacon-or-lorne-sausage-roll", "name": "Bacon or Lorne sausage roll", "desc": "on a soft morning roll", "price": 4.5, "priceDisplay": "£4.50", "section": "Breakfast", "group": "Morning classics", "tags": ["bacon", "lorne", "sausage", "roll"]},
modules/SmOS_CC/order.html CHANGED
@@ -7,7 +7,7 @@
7
  <script>
8
  (function () {
9
  try {
10
- var k = "corner-cafe-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
@@ -18,7 +18,7 @@
18
  }
19
  })();
20
  </script>
21
- <title>Corner Cafe | Order</title>
22
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg?v=1.17">
23
  <link rel="preconnect" href="https://fonts.googleapis.com">
24
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
7
  <script>
8
  (function () {
9
  try {
10
+ var k = "hah-restaurant-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
 
18
  }
19
  })();
20
  </script>
21
+ <title>HAH restaurant | Order</title>
22
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg?v=1.17">
23
  <link rel="preconnect" href="https://fonts.googleapis.com">
24
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
modules/SmOS_CC/path.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
6
- <title>Corner Cafe | Order</title>
7
  <script>
8
  (function () {
9
  var p = new URLSearchParams(window.location.search);
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
6
+ <title>HAH restaurant | Order</title>
7
  <script>
8
  (function () {
9
  var p = new URLSearchParams(window.location.search);
modules/SmOS_CC/payments-config.js CHANGED
@@ -1,10 +1,10 @@
1
  window.SmOS_CC_Payments = {
2
- businessName: "The Corner Cafe",
3
- payeeName: "The Corner Cafe",
4
  sortCode: "",
5
  accountNumber: "",
6
  bankName: "",
7
- referencePrefix: "CC",
8
  mollieEnabled: false,
9
  mollieMode: "off",
10
  options: [
 
1
  window.SmOS_CC_Payments = {
2
+ businessName: "HAH restaurant",
3
+ payeeName: "HAH restaurant",
4
  sortCode: "",
5
  accountNumber: "",
6
  bankName: "",
7
+ referencePrefix: "HAH",
8
  mollieEnabled: false,
9
  mollieMode: "off",
10
  options: [
modules/SmOS_CC/receipt.js CHANGED
@@ -1,4 +1,4 @@
1
- /** Shared receipt helpers for Corner Cafe orders (customer download + waiter print). */
2
  window.SmOSReceipt = (function () {
3
  function money(n) {
4
  const v = Number(n);
@@ -40,7 +40,7 @@ window.SmOSReceipt = (function () {
40
  }
41
 
42
  function buildHtml(b, opts = {}) {
43
- const biz = opts.businessName || "The Corner Cafe";
44
  const when = b.placedAt || b.created_at || b.updated_at || new Date().toISOString();
45
  const whenLabel = (() => {
46
  try {
 
1
+ /** Shared receipt helpers for HAH restaurant orders (customer download + waiter print). */
2
  window.SmOSReceipt = (function () {
3
  function money(n) {
4
  const v = Number(n);
 
40
  }
41
 
42
  function buildHtml(b, opts = {}) {
43
+ const biz = opts.businessName || "HAH restaurant";
44
  const when = b.placedAt || b.created_at || b.updated_at || new Date().toISOString();
45
  const whenLabel = (() => {
46
  try {
modules/SmOS_CC/reservation-config.js CHANGED
@@ -1,6 +1,6 @@
1
- /** Corner Cafe floor plan — tables, layout grid, adjacency for smart merges. */
2
  window.SmOS_CC_Reservations = {
3
- venue: "Corner Cafe · 9 Eskdail Court, Dalkeith",
4
  /** Table reservations cover cafe day + Indian evening service. */
5
  openHours: { start: "09:00", end: "22:00", lastArrival: "21:45" },
6
  cafeHours: { start: "09:00", end: "18:00", orderCutoff: "17:30" },
 
1
+ /** HAH restaurant floor plan — tables, layout grid, adjacency for smart merges. */
2
  window.SmOS_CC_Reservations = {
3
+ venue: "HAH restaurant · 9 Eskdail Court, Dalkeith",
4
  /** Table reservations cover cafe day + Indian evening service. */
5
  openHours: { start: "09:00", end: "22:00", lastArrival: "21:45" },
6
  cafeHours: { start: "09:00", end: "18:00", orderCutoff: "17:30" },
modules/SmOS_CC/reservation.js CHANGED
@@ -1,5 +1,5 @@
1
  (function () {
2
- const RES_KEY = "corner-cafe-reservation";
3
  const cfg = window.SmOS_CC_Reservations;
4
  if (!cfg) return;
5
 
@@ -536,9 +536,9 @@
536
 
537
  try {
538
  sessionStorage.setItem(RES_KEY, JSON.stringify(reservation));
539
- const history = JSON.parse(sessionStorage.getItem("corner-cafe-reservations") || "[]");
540
  history.unshift(reservation);
541
- sessionStorage.setItem("corner-cafe-reservations", JSON.stringify(history.slice(0, 20)));
542
  } catch (e) {
543
  /* ignore */
544
  }
 
1
  (function () {
2
+ const RES_KEY = "hah-restaurant-reservation";
3
  const cfg = window.SmOS_CC_Reservations;
4
  if (!cfg) return;
5
 
 
536
 
537
  try {
538
  sessionStorage.setItem(RES_KEY, JSON.stringify(reservation));
539
+ const history = JSON.parse(sessionStorage.getItem("hah-restaurant-reservations") || "[]");
540
  history.unshift(reservation);
541
+ sessionStorage.setItem("hah-restaurant-reservations", JSON.stringify(history.slice(0, 20)));
542
  } catch (e) {
543
  /* ignore */
544
  }
modules/SmOS_CC/reserve.html CHANGED
@@ -7,7 +7,7 @@
7
  <script>
8
  (function () {
9
  try {
10
- var k = "corner-cafe-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
@@ -18,7 +18,7 @@
18
  }
19
  })();
20
  </script>
21
- <title>Corner Cafe | Reserve a table</title>
22
  <meta name="description" content="Smart table reservation — pick your seat on the floor plan or get merged table suggestions.">
23
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg?v=1.17">
24
  <link rel="preconnect" href="https://fonts.googleapis.com">
 
7
  <script>
8
  (function () {
9
  try {
10
+ var k = "hah-restaurant-theme";
11
  var t = localStorage.getItem(k);
12
  var th = t === "light" ? "light" : "dark";
13
  document.documentElement.setAttribute("data-theme", th);
 
18
  }
19
  })();
20
  </script>
21
+ <title>HAH restaurant | Reserve a table</title>
22
  <meta name="description" content="Smart table reservation — pick your seat on the floor plan or get merged table suggestions.">
23
  <link rel="icon" type="image/svg+xml" href="assets/logo-c.svg?v=1.17">
24
  <link rel="preconnect" href="https://fonts.googleapis.com">