WEBSCOKETS
This commit is contained in:
parent
3d1a45cafe
commit
d28bdf14ec
27
index.html
27
index.html
@ -9,7 +9,7 @@
|
|||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
const inputs = Array.from(
|
const inputs = Array.from(
|
||||||
document.querySelectorAll('input[name=extension], input[name=cellNumber], input[name=directLine]')
|
document.querySelectorAll('input[name=extension], input[name=cellNumber], input[name=directNumber]')
|
||||||
);
|
);
|
||||||
const inputListener = e => {
|
const inputListener = e => {
|
||||||
inputs.filter(i => i !== e.target).forEach(i => (i.required = !e.target.value.length));
|
inputs.filter(i => i !== e.target).forEach(i => (i.required = !e.target.value.length));
|
||||||
@ -49,21 +49,26 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a class="active" href="#">Home</a></li>
|
<li><a class="active" href="#">Home</a></li>
|
||||||
<li><a href="install/">Install</a></li>
|
<li><a href="install/">Install</a></li>
|
||||||
|
<li><a href="websocket/">WebSocket</a></li>
|
||||||
<li class="float-right"><a href="javascript:getCardToEdit()">Edit Card</a></li>
|
<li class="float-right"><a href="javascript:getCardToEdit()">Edit Card</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<main class="page contact-page">
|
<main>
|
||||||
<section class="portfolio-block contact">
|
<section class="portfolio-block contact">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1 class="text-center mt mb h1">Signature Card Creator</h1>
|
<h1 class="text-center mt mb h1">Signature Card Creator</h1>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<a id="card" href="#" style="display: none">
|
<a id="card" href="#">
|
||||||
<img class="card" id="cardImg" alt="card"/>
|
<img class="hidden" id="cardImg" alt="card"/>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<label for="card" class="text-center"></label>
|
<label for="card" class="text-center"></label>
|
||||||
<div class="form-group mt">
|
<div class="form-group mt">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="location">Location:</label>
|
||||||
|
<select class="form-control" id="location" name="location"></select>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="full_name">Full Name & Credentials</label>
|
<label for="full_name">Full Name & Credentials</label>
|
||||||
<input type="text" class="form-control" id="full_name" name="full_name" maxlength="36" required="">
|
<input type="text" class="form-control" id="full_name" name="full_name" maxlength="36" required="">
|
||||||
@ -77,16 +82,12 @@
|
|||||||
<input type="email" class="form-control" id="email" name="email" required="">
|
<input type="email" class="form-control" id="email" name="email" required="">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="location">Location:</label>
|
<input type="checkbox" id="directNumberCheckbox" onclick="handleCheckbox()">
|
||||||
<select class="form-control" id="location" name="location"></select>
|
<label for="directNumberCheckbox">Direct Line</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group" id="directNumberInput" style="display:none">
|
||||||
<input type="checkbox" id="directLineCheckbox" onclick="handleCheckbox()">
|
<label for="directNumber">Direct Line:</label>
|
||||||
<label for="directLineCheckbox">Direct Line</label>
|
<input type="text" class="form-control" id="directNumber" name="directNumber" maxlength="15" required="">
|
||||||
</div>
|
|
||||||
<div class="form-group" id="directLineInput" style="display:none">
|
|
||||||
<label for="directLine">Direct Line:</label>
|
|
||||||
<input type="text" class="form-control" id="directLine" name="directLine" maxlength="15" required="">
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group" id="extensionInput">
|
<div class="form-group" id="extensionInput">
|
||||||
<label for="extension">Extension</label>
|
<label for="extension">Extension</label>
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<link rel="stylesheet" href="../stylesheet.css">
|
<link rel="stylesheet" href="../stylesheet.css">
|
||||||
<link rel="stylesheet" href="../darkmode.css">
|
<link rel="stylesheet" href="../darkmode.css">'
|
||||||
|
<link rel="icon" href="../favicon.ico">
|
||||||
<title>Install Card</title>
|
<title>Install Card</title>
|
||||||
<script>document.documentElement.dataset.theme = localStorage.getItem('theme') || 'light';</script>
|
<script>document.documentElement.dataset.theme = localStorage.getItem('theme') || 'light';</script>
|
||||||
</head>
|
</head>
|
||||||
@ -37,6 +38,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../">Home</a></li>
|
<li><a href="../">Home</a></li>
|
||||||
<li><a class="active" href="#">Install</a></li>
|
<li><a class="active" href="#">Install</a></li>
|
||||||
|
<li><a href="../websocket/">WebSocket</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
23
script.js
23
script.js
@ -1,4 +1,5 @@
|
|||||||
let backendUrl = "https://signature.caiu.org"
|
//let backendUrl = "https://signature.caiu.org"
|
||||||
|
let backendUrl = "http://localhost:8080"
|
||||||
let locations = JSON.parse("{}");
|
let locations = JSON.parse("{}");
|
||||||
const locationSelector = document.getElementById("location");
|
const locationSelector = document.getElementById("location");
|
||||||
|
|
||||||
@ -26,15 +27,15 @@ document.getElementById("uploadDiv").addEventListener("drop", dropHandler, false
|
|||||||
|
|
||||||
function handleCheckbox() {
|
function handleCheckbox() {
|
||||||
const extensionInput = document.getElementById("extensionInput");
|
const extensionInput = document.getElementById("extensionInput");
|
||||||
const directLineInput = document.getElementById("directLineInput");
|
const directNumberInput = document.getElementById("directNumberInput");
|
||||||
if (document.getElementById("directLineCheckbox").checked) {
|
if (document.getElementById("directNumberCheckbox").checked) {
|
||||||
extensionInput.style.display = "none";
|
extensionInput.style.display = "none";
|
||||||
directLineInput.style.display = "block";
|
directNumberInput.style.display = "block";
|
||||||
document.getElementById("extension").value = "";
|
document.getElementById("extension").value = "";
|
||||||
} else {
|
} else {
|
||||||
extensionInput.style.display = "block";
|
extensionInput.style.display = "block";
|
||||||
directLineInput.style.display = "none";
|
directNumberInput.style.display = "none";
|
||||||
document.getElementById("directLine").value = "";
|
document.getElementById("directNumber").value = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +66,7 @@ function clearForm() {
|
|||||||
document.getElementById("title").value = "";
|
document.getElementById("title").value = "";
|
||||||
document.getElementById("email").value = "";
|
document.getElementById("email").value = "";
|
||||||
document.getElementById("extension").value = "";
|
document.getElementById("extension").value = "";
|
||||||
document.getElementById("directLine").value = "";
|
document.getElementById("directNumber").value = "";
|
||||||
document.getElementById("cellNumber").value = "";
|
document.getElementById("cellNumber").value = "";
|
||||||
document.getElementById("existingFile").value = ""
|
document.getElementById("existingFile").value = ""
|
||||||
}
|
}
|
||||||
@ -91,7 +92,7 @@ function submitForm() {
|
|||||||
"\"email\":\"" + document.getElementById("email").value + "\"," +
|
"\"email\":\"" + document.getElementById("email").value + "\"," +
|
||||||
"\"locationId\":\"" + document.getElementById("location").value + "\"," +
|
"\"locationId\":\"" + document.getElementById("location").value + "\"," +
|
||||||
"\"extension\":\"" + document.getElementById("extension").value + "\"," +
|
"\"extension\":\"" + document.getElementById("extension").value + "\"," +
|
||||||
"\"directNumber\":\"" + document.getElementById("directLine").value + "\"," +
|
"\"directNumber\":\"" + document.getElementById("directNumber").value + "\"," +
|
||||||
"\"cellNumber\":\"" + document.getElementById("cellNumber").value + "\"," +
|
"\"cellNumber\":\"" + document.getElementById("cellNumber").value + "\"," +
|
||||||
"\"size\":" + document.querySelector('input[name = outlookVer]:checked').value +
|
"\"size\":" + document.querySelector('input[name = outlookVer]:checked').value +
|
||||||
"}";
|
"}";
|
||||||
@ -199,9 +200,9 @@ function loadFromExistingCard() {
|
|||||||
document.getElementById("email").value = json.Email;
|
document.getElementById("email").value = json.Email;
|
||||||
document.getElementById("location").value = json.Location;
|
document.getElementById("location").value = json.Location;
|
||||||
if (json.Extension === "") {
|
if (json.Extension === "") {
|
||||||
let directLineCheckbox = document.getElementById("directLineCheckbox");
|
let directNumberCheckbox = document.getElementById("directNumberCheckbox");
|
||||||
if (directLineCheckbox.value === "on") {
|
if (directNumberCheckbox.value === "on") {
|
||||||
document.getElementById("directLine").value = json.DirectNumber;
|
document.getElementById("directNumber").value = json.DirectNumber;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
document.getElementById("extension").value = json.Extension;
|
document.getElementById("extension").value = json.Extension;
|
||||||
|
@ -298,6 +298,7 @@ input[type="checkbox"], input[type="radio"] {
|
|||||||
.card {
|
.card {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: 24em;
|
width: 24em;
|
||||||
|
border: solid 2px var(--theme-gray)
|
||||||
}
|
}
|
||||||
|
|
||||||
.fade {
|
.fade {
|
||||||
|
20
websocket.js
Normal file
20
websocket.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
let liveGenWS = new WebSocket("ws://localhost:8080/backend/generate/live");
|
||||||
|
|
||||||
|
liveGenWS.addEventListener("open", (e) => {
|
||||||
|
console.log("Websocket connection opened");
|
||||||
|
}, false);
|
||||||
|
liveGenWS.addEventListener("message", (e) => {
|
||||||
|
console.log(e.data);
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
let location = document.getElementById("location");
|
||||||
|
let name = document.getElementById("full_name");
|
||||||
|
let title = document.getElementById("title");
|
||||||
|
let email = document.getElementById("email");
|
||||||
|
let extension = document.getElementById("extension");
|
||||||
|
let directNumber = document.getElementById("directNumber");
|
||||||
|
let cellNumber = document.getElementById("cellNumber");
|
||||||
|
|
||||||
|
location.addEventListener("selectionchange", (e) => {
|
||||||
|
liveGenWS.send("")
|
||||||
|
}, false);
|
82
websocket/index.html
Normal file
82
websocket/index.html
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link rel="stylesheet" href="../stylesheet.css">
|
||||||
|
<link rel="stylesheet" href="../darkmode.css">
|
||||||
|
<link rel="icon" href="../favicon.ico">
|
||||||
|
<title>Websocket</title>
|
||||||
|
<script>document.documentElement.dataset.theme = localStorage.getItem('theme') || 'light';</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<a class="navbar-brand" href="https://www.caiu.org">
|
||||||
|
<img class="logo" src="../logo.png" alt="CAIU Logo">
|
||||||
|
</a>
|
||||||
|
<div style="margin-right: 0.5em;">
|
||||||
|
<label for="theme" class="theme">
|
||||||
|
<span class="toggle-wrap">
|
||||||
|
<input id="theme" class="toggle" type="checkbox" role="switch" name="theme" value="dark">
|
||||||
|
<span class="icon">
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
<span class="icon-part"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<nav class="navbar">
|
||||||
|
<ul>
|
||||||
|
<li><a href="../">Home</a></li>
|
||||||
|
<li><a href="../install/">Install</a></li>
|
||||||
|
<li><a class="active" href="#">WebSocket</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div class="container">
|
||||||
|
<div class="mt mb">
|
||||||
|
<label for="code">Code to Execute:</label>
|
||||||
|
<textarea id="code" rows="8" cols="120"></textarea>
|
||||||
|
<button id="execCode" class="btn btn-primary">Execute</button>
|
||||||
|
</div>
|
||||||
|
<div class="mt mb">
|
||||||
|
<label for="output">Output:</label>
|
||||||
|
<textarea id="output" rows="8" cols="120" readonly></textarea>
|
||||||
|
<button id="clearOutput" class="btn btn-primary">Clear</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>Made by the best intern!</footer>
|
||||||
|
<script src="../darkmode.js"></script>
|
||||||
|
<script src="../websocket.js"></script>
|
||||||
|
<script>
|
||||||
|
(()=>{
|
||||||
|
const console_log = window.console.log;
|
||||||
|
window.console.log = function(...args){
|
||||||
|
console_log(...args);
|
||||||
|
let textarea = document.getElementById('output');
|
||||||
|
if(!textarea) return;
|
||||||
|
args.forEach(arg=>textarea.value += `${JSON.stringify(arg)}\n`);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
document.getElementById("execCode").addEventListener("click", (e) => {
|
||||||
|
eval(document.getElementById("code").value);
|
||||||
|
}, false);
|
||||||
|
document.getElementById("clearOutput").addEventListener("click", (e) => {
|
||||||
|
document.getElementById("output").value = "";
|
||||||
|
}, false);
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user