211 lines
8.9 KiB
HTML
211 lines
8.9 KiB
HTML
<html>
|
|
|
|
<head>
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png">
|
|
<link rel="manifest" href="/favicons/site.webmanifest">
|
|
<link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#5bbad5">
|
|
<meta name="msapplication-TileColor" content="#b91d47">
|
|
<meta name="theme-color" content="#ffffff">
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/css/spectre.min.css">
|
|
<script src="/js/util.js"></script>
|
|
<style>
|
|
.container {
|
|
max-width: 30em;
|
|
}
|
|
|
|
.card {
|
|
margin: 1em;
|
|
box-shadow: 0 0 2em #0003;
|
|
}
|
|
|
|
input.btn {
|
|
cursor: auto;
|
|
user-select: auto;
|
|
}
|
|
|
|
.centered {
|
|
margin: auto;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container">
|
|
|
|
<div id="loading" class="loading loading-lg"></div>
|
|
<div id="failure" style="display: none;">☹️</div>
|
|
|
|
|
|
<div id="headset_details" style="display: none;">
|
|
<div class="panel card">
|
|
<div class="panel-header text-center">
|
|
<figure class="avatar avatar-lg"><img src="/favicons/android-chrome-192x192.png"
|
|
alt="Avatar"></figure>
|
|
<div class="panel-title h5 mt-10">Headset Info</div>
|
|
<div class="panel-subtitle hw_id">---</div>
|
|
</div>
|
|
<div class="panel-body">
|
|
<div class="tile tile-centered">
|
|
<div class="tile-content">
|
|
<div class="tile-title text-bold">Current Room</div>
|
|
<input class="btn current_room" type="text" id="current_room" placeholder="----">
|
|
</div>
|
|
<div class="tile-action">
|
|
<button class="btn btn-primary btn-lg tooltip tooltip-left" id="set_room_id"
|
|
data-tooltip="Set Room ID">Set</button>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div class="tile tile-centered">
|
|
<div class="tile-content">
|
|
<div class="tile-title text-bold">First Added</div>
|
|
<div class="tile-subtitle date_created">---</div>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div class="tile tile-centered">
|
|
<div class="tile-content">
|
|
<div class="tile-title text-bold">Last Used</div>
|
|
<div class="tile-subtitle last_used">---</div>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div class="tile tile-centered">
|
|
<div class="tile-content">
|
|
<div class="tile-title text-bold">User Name</div>
|
|
<input class="btn user_name" type="text" id="user_name" placeholder="----">
|
|
</div>
|
|
<div class="tile-action">
|
|
<button class="btn btn-primary btn-lg tooltip tooltip-left" id="set_user_name"
|
|
data-tooltip="">Set</button>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div class="tile tile-centered">
|
|
<div class="tile-content">
|
|
<div class="tile-title text-bold">TV URL</div>
|
|
<input class="btn tv_url" type="text" id="tv_url" placeholder="----">
|
|
</div>
|
|
<div class="tile-action">
|
|
<button class="btn btn-primary btn-lg tooltip tooltip-left" id="set_tv_url"
|
|
data-tooltip="">Set</button>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div class="tile tile-centered">
|
|
<div class="tile-content">
|
|
<div class="tile-title text-bold">User Color</div>
|
|
<input class="btn user_color" type="color" id="user_color" placeholder="#ffffff">
|
|
</div>
|
|
<div class="tile-action">
|
|
<button class="btn btn-primary btn-lg tooltip tooltip-left" id="set_user_color"
|
|
data-tooltip="Set User Color">Set</button>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div class="tile tile-centered">
|
|
<div class="tile-content">
|
|
<div class="tile-title text-bold">Carpet Color</div>
|
|
<input class="btn carpet_color" type="color" id="carpet_color" placeholder="#ffffff">
|
|
</div>
|
|
<div class="tile-action">
|
|
<button class="btn btn-primary btn-lg tooltip tooltip-left" id="set_carpet_color"
|
|
data-tooltip="Set Carpet Color">Set</button>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
let submit_button = document.getElementById('submit_pairing_code');
|
|
let pair_code_input = document.getElementById('pair_code');
|
|
let loading = document.getElementById('loading');
|
|
let enter_pairing_id = document.getElementById('enter_pairing_id');
|
|
let headset_details = document.getElementById('headset_details');
|
|
let hw_id_field = document.getElementById('hw_id');
|
|
let failure = document.getElementById('failure');
|
|
let set_room_id = document.getElementById('set_room_id');
|
|
let current_room = document.getElementById('current_room');
|
|
|
|
|
|
// check cookie
|
|
let hw_id = getCookie('hw_id');
|
|
loading.style.display = "none";
|
|
if (hw_id != "") {
|
|
|
|
httpGetAsync('https://sparkling-dream-4e86.vel.workers.dev/api/get_state/' + hw_id, (resp) => {
|
|
console.log(resp);
|
|
let respData = JSON.parse(resp);
|
|
|
|
writeClass('hw_id', respData['user']['hw_id']);
|
|
writeValue('current_room', respData['user']['current_room']);
|
|
writeClass('date_created', respData['user']['date_created']);
|
|
writeClass('last_used', respData['user']['last_used']);
|
|
writeValue('user_color', respData['user']['user_color']);
|
|
writeValue('user_name', respData['user']['user_name']);
|
|
if (respData['room']) {
|
|
writeValue('tv_url', respData['room']['tv_url']);
|
|
writeValue('carpet_color', respData['room']['carpet_color']);
|
|
}
|
|
|
|
headset_details.style.display = "block";
|
|
}, (status) => {
|
|
failure.style.display = "block";
|
|
});
|
|
|
|
function setUserData(endpoint, data) {
|
|
httpPostAsync('https://sparkling-dream-4e86.vel.workers.dev/api/set_headset_details/' + hw_id + '/' + endpoint,
|
|
data,
|
|
(resp) => {console.log('success');},
|
|
(status) => {console.log('fail');}
|
|
);
|
|
}
|
|
function setRoomData(endpoint, data) {
|
|
httpPostAsync('https://sparkling-dream-4e86.vel.workers.dev/api/set_room_details/' + current_room.value + '/' + endpoint,
|
|
data,
|
|
(resp) => {console.log('success');},
|
|
(status) => {console.log('fail');}
|
|
);
|
|
}
|
|
|
|
set_room_id.addEventListener('click', () => {
|
|
setUserData('current_room', {"current_room": current_room.value});
|
|
});
|
|
document.getElementById('set_user_color').addEventListener('click', () => {
|
|
setUserData('user_color', {"user_color": document.getElementById('user_color').value});
|
|
});
|
|
document.getElementById('set_user_name').addEventListener('click', () => {
|
|
setUserData('user_name', {"user_name": document.getElementById('user_name').value});
|
|
});
|
|
document.getElementById('set_tv_url').addEventListener('click', () => {
|
|
setRoomData('tv_url', {"tv_url": document.getElementById('tv_url').value});
|
|
});
|
|
document.getElementById('set_carpet_color').addEventListener('click', () => {
|
|
setRoomData('carpet_color', {"carpet_color": document.getElementById('carpet_color').value});
|
|
});
|
|
|
|
} else {
|
|
window.location.href = "/pair";
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|