|
|
@@ -111,13 +111,38 @@
|
|
|
<div class="result" id="res-prices"></div>
|
|
|
|
|
|
<!-- ── RESERVATIONS ───────────────────────────────── -->
|
|
|
- <h2>Reservations <span class="section-note">(read-only)</span></h2>
|
|
|
+ <h2>Reservations</h2>
|
|
|
<div class="row">
|
|
|
<label class="lbl">date</label>
|
|
|
<input id="rsv-d1" type="date">
|
|
|
<span class="dash">–</span>
|
|
|
<input id="rsv-d2" type="date" title="end date for range">
|
|
|
<button onclick="doGetReservation()">GET</button>
|
|
|
+ <span class="section-note">GET uses date range</span>
|
|
|
+ </div>
|
|
|
+ <div class="row">
|
|
|
+ <label class="lbl">uid</label>
|
|
|
+ <input id="rsv-uid" type="text" placeholder="reservation uid">
|
|
|
+ </div>
|
|
|
+ <div class="row">
|
|
|
+ <label class="lbl">checkin_date</label>
|
|
|
+ <input id="rsv-checkin" type="date" title="required for PATCH">
|
|
|
+ </div>
|
|
|
+ <div class="row">
|
|
|
+ <label class="lbl">door_code</label>
|
|
|
+ <input id="rsv-door-code" type="text" placeholder="4-digit code">
|
|
|
+ </div>
|
|
|
+ <div class="row">
|
|
|
+ <label class="lbl">wifi_key</label>
|
|
|
+ <input id="rsv-wifi-key" type="text" placeholder="wifi password">
|
|
|
+ </div>
|
|
|
+ <div class="row">
|
|
|
+ <label class="lbl">wifi_ssid</label>
|
|
|
+ <input id="rsv-wifi-ssid" type="text" placeholder="network name">
|
|
|
+ </div>
|
|
|
+ <div class="row">
|
|
|
+ <button onclick="doPatchReservation()">PATCH /reservation/:uid</button>
|
|
|
+ <span class="section-note">only non-empty fields are sent</span>
|
|
|
</div>
|
|
|
<div class="result" id="res-reservations"></div>
|
|
|
|
|
|
@@ -453,6 +478,22 @@
|
|
|
show('res-reservations', await api('GET', `/reservation/${range}`));
|
|
|
}
|
|
|
|
|
|
+ async function doPatchReservation() {
|
|
|
+ const uid = document.getElementById('rsv-uid').value.trim();
|
|
|
+ if (!uid) return;
|
|
|
+ const checkin_date = document.getElementById('rsv-checkin').value;
|
|
|
+ if (!checkin_date) return;
|
|
|
+ const body = { checkin_date };
|
|
|
+ const door_code = document.getElementById('rsv-door-code').value.trim();
|
|
|
+ const wifi_key = document.getElementById('rsv-wifi-key').value.trim();
|
|
|
+ const wifi_ssid = document.getElementById('rsv-wifi-ssid').value.trim();
|
|
|
+ if (door_code) body.door_code = door_code;
|
|
|
+ if (wifi_key) body.wifi_key = wifi_key;
|
|
|
+ if (wifi_ssid) body.wifi_ssid = wifi_ssid;
|
|
|
+ pending('res-reservations');
|
|
|
+ show('res-reservations', await api('PATCH', `/reservation/${uid}`, body));
|
|
|
+ }
|
|
|
+
|
|
|
// ── closed ──
|
|
|
async function doGetClosed() {
|
|
|
const range = dateArg('cls-d1', 'cls-d2');
|