Skip to content
Snippets Groups Projects
Verified Commit a16e2674 authored by hanfi's avatar hanfi
Browse files

Merge branch 'staging' of git.cccv.de:hanfi/bgp_worker into staging

parents b75f5a6b a9233ad1
No related branches found
No related tags found
1 merge request!20merge from staging
This diff is collapsed.
<!DOCTYPE html><html lang="de"><head><title>Paketshop: Checkin</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon shortcut" href="data:image/x-icon;," type="image/x-icon"><link rel="stylesheet" type="text/css" href="/bootstrap.min.css"><link rel="stylesheet" type="text/css" href="/bootstrap-icons.css"><link rel="stylesheet" type="text/css" href="/index.css"></head><body> <div class="container"> <h1>Checkin</h1> <div class="row"> <div class="col-md-4"> <div>Storage</div> <select class="form-control" id="storage_select"></select> <div id="storage"></div> </div> <div class="col-md-4"> <div>Sticker Item</div> <input class="form-control" type="text" placeholder="tag" oninput="lib.onTagTextUpdate(this)" onchange="lib.onTagInputChanged(this)"> <button id="startScan" onclick="lib.addItemScan()" class="btn btn-primary">Scan Item</button> <button id="stopScan" onclick="lib.stopScanningItem()" class="btn btn-primary" style="display: none">Stop Scanning</button> </div> <div class="col-md-4"> <div>Manual Item</div> <input onchange="lib.addItemImage(this)" type="file" accept="image/*"> </div> </div> <div class="row"> <div>Items to checkin</div> <ul id="items"> </ul> </div> <div class="row"> <div id="reader" style="width: 500px; margin 0 auto;"></div> </div> <div class="row"> <button onclick="lib.checkinItems()" class="btn btn-primary">Submit Data</button> </div> <div aria-live="polite" aria-atomic="true" class="align-items-center d-flex justify-content-center" style="min-height: 200px;"> <div id="bottomToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true"> <div class="toast-header"> <strong class="mr-auto">ToastHeader</strong> </div> <div class="toast-body"> Toast Message. </div> </div> </div> </div> <script src="./bundle.js"></script> <script>window.onload=function(){lib.onPageLoad()};</script> </body></html> <!DOCTYPE html><html lang="de"><head><title>Paketshop: Checkin</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon shortcut" href="data:image/x-icon;," type="image/x-icon"><link rel="stylesheet" type="text/css" href="/bootstrap.min.css"><link rel="stylesheet" type="text/css" href="/bootstrap-icons.css"><link rel="stylesheet" type="text/css" href="/index.css"></head><body> <div class="container"> <h1>Checkin</h1> <div class="row"> <div class="col-md-4"> <div>Storage</div> <select class="form-control" id="storage_select"></select> <div id="storage"></div> </div> <div class="col-md-4"> <div>Sticker Item</div> <input class="form-control" type="text" placeholder="tag" oninput="lib.onTagTextUpdate(this)" onchange="lib.onTagInputChanged(this)"> <button id="startScan" onclick="lib.addItemScan()" class="btn btn-primary">Scan Item</button> <button id="stopScan" onclick="lib.stopScanningItem()" class="btn btn-primary" style="display: none">Stop Scanning</button> </div> <div class="col-md-4"> <div>Manual Item</div> <input onchange="lib.addItemImage(this)" type="file" accept="image/*"> </div> </div> <div class="row"> <div>Items to checkin</div> <ul id="items"> </ul> </div> <div class="row"> <div id="reader" style="width: 500px; margin 0 auto;"></div> </div> <div class="row"> <button onclick="lib.checkinItems()" class="btn btn-primary">Submit Data</button> </div> <div aria-live="polite" aria-atomic="true" class="align-items-center d-flex justify-content-center" style="min-height: 200px;"> <div id="bottomToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true"> <div class="toast-header"> <strong class="mr-auto">ToastHeader</strong> </div> <div class="toast-body"> Toast Message. </div> </div> </div> </div> <script src="./bundle.js"></script> <script>window.onload=function(){lib.onPageLoad(!0)};</script> </body></html>
\ No newline at end of file \ No newline at end of file
<!DOCTYPE html><html lang="de"><head><title>Paketshop: Checkout</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon shortcut" href="data:image/x-icon;," type="image/x-icon"><link rel="stylesheet" type="text/css" href="/bootstrap.min.css"><link rel="stylesheet" type="text/css" href="/bootstrap-icons.css"><link rel="stylesheet" type="text/css" href="/index.css"></head><body> <div class="container"> <h1>Checkout</h1> <div class="row"> <button onclick="lib.scanReceiver()" class="btn btn-primary">Scan Code</button> </div> <div class="row"> <div id="reader" style="width: 500px; margin 0 auto;"></div> </div> <div class="row"> <h2 id="uuid"></h2> <div class="col-md-6"> <strong id="storage"></strong><br> <span id="tag"></span> </div> <div class="col-md-6"> <strong id="addressee"></strong><br> <span id="team"></span> </div> </div> </div> <script src="./bundle.js"></script> </body></html> <!DOCTYPE html><html lang="de"><head><title>Paketshop: Checkout</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon shortcut" href="data:image/x-icon;," type="image/x-icon"><link rel="stylesheet" type="text/css" href="/bootstrap.min.css"><link rel="stylesheet" type="text/css" href="/bootstrap-icons.css"><link rel="stylesheet" type="text/css" href="/index.css"></head><body> <div class="container"> <h1>Checkout</h1> <div class="row"> <button onclick="lib.scanReceiver()" class="btn btn-primary">Scan Code</button> </div> <div class="row"> <input class="form-control" id="checkoutByTag" type="text" placeholder="tag"><button onclick="lib.checkoutByTag()" class="btn btn-primary">Checkout By Tag</button> </div> <div class="row"> <div id="reader" style="width: 500px; margin 0 auto;"></div> </div> <div class="row"> <h2 id="storage"></h2> <div class="col-md-6"> <strong id="tag"></strong><br> <span id="uuid"></span> </div> <div class="col-md-6"> <strong id="addressee"></strong><br> <span id="team"></span> </div> </div> </div> <script src="./bundle.js"></script> <script>window.onload=function(){lib.onPageLoad(!1)};</script> </body></html>
\ No newline at end of file \ No newline at end of file
...@@ -351,6 +351,14 @@ export async function checkinItems() { ...@@ -351,6 +351,14 @@ export async function checkinItems() {
updateItemsView(); updateItemsView();
} }
function updateCheckoutItem(tracking_item) {
document.querySelector("#uuid").innerHTML = tracking_item.uuid;
document.querySelector("#tag").innerHTML = tracking_item.tag;
document.querySelector("#storage").innerHTML = tracking_item.storage;
document.querySelector("#addressee").innerHTML = tracking_item.addressee;
document.querySelector("#team").innerHTML = tracking_item.team;
}
async function onRecevierScanSuccess(scannedCode) { async function onRecevierScanSuccess(scannedCode) {
debounceScanner(); debounceScanner();
var [uuid,signature] = scannedCode.split("/"); var [uuid,signature] = scannedCode.split("/");
...@@ -364,11 +372,12 @@ async function onRecevierScanSuccess(scannedCode) { ...@@ -364,11 +372,12 @@ async function onRecevierScanSuccess(scannedCode) {
if (response.status == 200) { if (response.status == 200) {
var tracking_item = await response.json(); var tracking_item = await response.json();
if (ed448.verify(htoa(signature),new TextEncoder().encode(tracking_item.uuid),htoa(tracking_item.verification))) { if (ed448.verify(htoa(signature),new TextEncoder().encode(tracking_item.uuid),htoa(tracking_item.verification))) {
document.querySelector("#uuid").innerHTML = tracking_item.uuid; if(tracking_item.storage == undefined || tracking_item.storage == null || tracking_item.storage.length == 0) {
document.querySelector("#tag").innerHTML = tracking_item.tag; alert("Item not yet received.");
document.querySelector("#storage").innerHTML = tracking_item.storage; console.log("Item not yet received.");
document.querySelector("#addressee").innerHTML = tracking_item.addressee; return;
document.querySelector("#team").innerHTML = tracking_item.team; }
updateCheckoutItem(tracking_item);
console.log("Receiver verify success"); console.log("Receiver verify success");
} else { } else {
alert("Could not verify signature."); alert("Could not verify signature.");
...@@ -406,7 +415,7 @@ export async function loadStorages(selectedStorage) { ...@@ -406,7 +415,7 @@ export async function loadStorages(selectedStorage) {
} }
} }
export async function onPageLoad() { export async function onPageLoad(doloadStorages) {
await getConfig(); await getConfig();
let pw = window.location.hash.substring(1); let pw = window.location.hash.substring(1);
if(pw.length > 1) { if(pw.length > 1) {
...@@ -414,5 +423,38 @@ export async function onPageLoad() { ...@@ -414,5 +423,38 @@ export async function onPageLoad() {
} else { } else {
await login(); await login();
} }
if(doloadStorages) {
loadStorages(document.location.search.substring(1)); loadStorages(document.location.search.substring(1));
} }
}
export async function checkoutByTag() {
console.log("Checkout by tag");
let el = document.getElementById("checkoutByTag");
if (el.value.length != 6) {
alert("Not a BGP tag!");
console.log("Not a BGP tag");
return;
}
var response = await fetchWithAuth(config.backend_url + "/tag/" + el.value);
if (response.status == 200) {
var tracking_item = await response.json();
let confirmed = confirm("Did you make sure the recipient is really the right person?");
if(!confirmed) {
console.log("Recipient confirmation denied.");
return;
}
if(tracking_item.storage == undefined || tracking_item.storage == null || tracking_item.storage.length == 0) {
alert("Item not yet received.");
console.log("Item not yet received.");
return;
}
console.log("Checkout item by tag success.");
updateCheckoutItem(tracking_item);
} else if(response.status == 404) {
console.log("Item not found");
alert("Item not found!");
} else {
checkResponseForError(response, "Failed to get item from backend");
}
}
...@@ -48,6 +48,6 @@ ...@@ -48,6 +48,6 @@
</div> </div>
</div> </div>
<module href="/components/foot.html"></module> <module href="/components/foot.html"></module>
<script>window.onload = function () { lib.onPageLoad(); };</script> <script>window.onload = function () { lib.onPageLoad(true); };</script>
</body> </body>
</html> </html>
...@@ -11,14 +11,17 @@ ...@@ -11,14 +11,17 @@
<div class="row"> <div class="row">
<button onclick="lib.scanReceiver()" class="btn btn-primary">Scan Code</button> <button onclick="lib.scanReceiver()" class="btn btn-primary">Scan Code</button>
</div> </div>
<div class="row">
<input class="form-control" id="checkoutByTag" type="text" placeholder="tag"><button onclick="lib.checkoutByTag()" class="btn btn-primary">Checkout By Tag</button>
</div>
<div class="row"> <div class="row">
<div id="reader" style="width: 500px; margin 0 auto;"></div> <div id="reader" style="width: 500px; margin 0 auto;"></div>
</div> </div>
<div class="row"> <div class="row">
<h2 id="uuid"></h2> <h2 id="storage"></h2>
<div class="col-md-6"> <div class="col-md-6">
<strong id="storage"></strong><br> <strong id="tag"></strong><br>
<span id="tag"></span> <span id="uuid"></span>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<strong id="addressee"></strong><br> <strong id="addressee"></strong><br>
...@@ -27,5 +30,6 @@ ...@@ -27,5 +30,6 @@
</div> </div>
</div> </div>
<module href="/components/foot.html"></module> <module href="/components/foot.html"></module>
<script>window.onload = function () { lib.onPageLoad(false); };</script>
</body> </body>
</html> </html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment