Add basic forms

This commit is contained in:
Dzejkobik007
2023-06-05 23:39:04 +02:00
parent 6de2baa38e
commit 6e1573e6d0
3 changed files with 299 additions and 0 deletions

73
forms/download.html Normal file
View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kakubovna: Download</title>
<link rel="stylesheet" href="/css/style.css">
<link href="https://fonts.googleapis.com/css2?family=Geologica:wght@800&display=swap" rel="stylesheet">
</head>
<body>
<div class="flex-container">
<div id="code-view" class="container vertical" style="display:none">
<input id="code" type="text" placeholder="Enter code">
<button onclick="loadUpload()">Submit</button>
<p id="status"></p>
</div>
<div id="file-view" class="container vertical" style="display:none">
<input id="code" type="text" placeholder="Enter code">
<button onclick="loadUpload()">Submit</button>
<p id="status"></p>
</div>
<div id="admin-file-view" class="container vertical" style="display:none">
<input id="code" type="text" placeholder="Enter code">
<button onclick="loadUpload()">Submit</button>
<p id="status"></p>
</div>
</div>
<script>
var hash = "";
var adminHash = "";
handleUrl();
function handleUrl() {
console.log(document.location.pathname.split("/", 4));
path = document.location.pathname.split("/", 4)
if(path[2].length > 10 && path[2] === path[2].toUpperCase()) {
hash = path[2];
if(path[3].length == 10 && path[3] === path[3].toUpperCase()) {
adminHash = path[3];
}
} else {
document.getElementById("code-view").style = "";
}
}
codeInput = document.getElementById("code");
statusText = document.getElementById("status");
function loadUpload() {
if (!(codeInput.value.length > 10 && codeInput.value === codeInput.value.toUpperCase())) {
statusText.innerHTML = 'Wrong Code';
return;
}
fetch('/api/download/' + codeInput.value)
.then(
response => response.json()
).then(jsonResponse => {
console.log(jsonResponse);
if (jsonResponse.code == 404) {
statusText.innerHTML = 'Not Found';
} else if (jsonResponse.code == 200) {
statusText.innerHTML = 'Found';
} else {
statusText.innerHTML = 'Error';
}
});
};
</script>
</body>
</html>

82
forms/select.html Normal file
View File

@@ -0,0 +1,82 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kakubovna: Select</title>
<link rel="stylesheet" href="/css/style.css">
<link href="https://fonts.googleapis.com/css2?family=Geologica:wght@800&display=swap" rel="stylesheet">
</head>
<body>
<div class="flex-container">
<div id="select" class="container">
<div class="card-button-box">
<div class="card-button" onclick="window.location.href = document.URL+'upload'"><img src="/img/add-sharp-white.svg" alt="Upload"></div>
<div class="card-button" onclick="window.location.href = document.URL+'download'"><img src="/img/arrow-down-white.svg" alt="Download"></div>
</div>
</div>
</div>
<!-- <canvas id="c" style="width: 100%; height: 100%; position: absolute;"></canvas> -->
<script>
</script>
<script>
// geting canvas by Boujjou Achraf
var c = document.getElementById("c");
var ctx = c.getContext("2d");
//making the canvas full screen
c.height = window.innerHeight;
c.width = window.innerWidth;
//chinese characters - taken from the unicode charset
var matrix = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@#$%^&*()*&^%+-/~{[|`]}";
//converting the string into an array of single characters
matrix = matrix.split("");
var font_size = 10;
var columns = c.width / font_size; //number of columns for the rain
//an array of drops - one per column
var drops = [];
//x below is the x coordinate
//1 = y co-ordinate of the drop(same for every drop initially)
for (var x = 0; x < columns; x++)
drops[x] = 1;
//drawing the characters
function draw() {
rainbow = ['#ff0000', '#ffa500', '#ffff00', '#008000', '#00FFFF', '#4b0082', '#ee82ee'];
//Black BG for the canvas
//translucent BG to show trail
ctx.fillStyle = "rgba(0, 0, 0, 0.04)";
ctx.fillRect(0, 0, c.width, c.height);
ctx.fillStyle = rainbow[Math.floor(Math.random() * 5)];//green text
ctx.font = font_size + "px arial";
//looping over drops
for (var i = 0; i < drops.length; i++) {
//a random chinese character to print
var text = matrix[Math.floor(Math.random() * matrix.length)];
//x = i*font_size, y = value of drops[i]*font_size
ctx.fillText(text, i * font_size, drops[i] * font_size);
//sending the drop back to the top randomly after it has crossed the screen
//adding a randomness to the reset to make the drops scattered on the Y axis
if (drops[i] * font_size > c.height && Math.random() > 0.975)
drops[i] = 0;
//incrementing Y coordinate
drops[i]++;
}
}
setInterval(draw, 35);
</script>
</body>
</html>

144
forms/upload.html Normal file
View File

@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kakubovna: Upload</title>
<link rel="stylesheet" href="/css/style.css">
<link href="https://fonts.googleapis.com/css2?family=Geologica:wght@800&display=swap" rel="stylesheet">
</head>
<body>
<div class="flex-container">
<div id="upload" class="container vertical">
<div class="dropZoneContainer">
<input type="file" title="" id="drop_zone" class="FileUpload" onchange="addFiles(this.files)" multiple/>
<div class="dropZoneOverlay"><p>Drag and drop your files <br />or<br />Click to add</p></div>
</div>
<div class="list">
<table class="filelist"></table>
</div>
<button style="vertical-align:middle" class="button" onclick="startUpload()"><span>Upload </span></button>
</div>
</div>
<canvas id="c" style="width: 100%; height: 100%; position: absolute;"></canvas>
<script src="js/socket.io.js"></script>
<script src="js/siofu-client.js"></script>
<script>
var selectedFiles = [];
function addFiles(files) {
Array.from(files).forEach(file => {
addFile(file);
});
}
function addFile(file) {
console.log(selectedFiles.find((element) => element.name == file.name))
if(selectedFiles.find((element) => element.name == file.name) == undefined) {
selectedFiles.push(file);
}
updateFileList();
}
function shortString(str, maxlen = 13) {
if(str.length > maxlen) {
shortstr = str.slice(0, (maxlen-3)/2)+"..."+str.slice(-(maxlen-3)/2);
} else {
shortstr = str;
}
return shortstr;
}
function updateFileList(maxlen = 30) {
filelist = document.getElementsByClassName("filelist")[0];
filelist.innerHTML = "";
i = 0
selectedFiles.forEach(file => {
filelist.innerHTML += "<tr title=\""+file.name+"\"><td>"+shortString(file.name, maxlen)+"</td></tr>";
i++;
});
}
var socket = io.connect(
{
forceNew: true,
extraHeaders: {
Authorization: "bsadsds"
}
}
);
var uploader = new SocketIOFileUpload(socket);
uploader.addEventListener("choose", function (event) {
console.log("Files Chosen: " + event.files);
});
uploader.addEventListener("progress", function (event) {
console.log("Files Chosen: " + event.bytesLoaded / event.file.size);
});
function startUpload() {
uploader.submitFiles(selectedFiles);
}
socket.once("linkCreated", (hash, adminhash) => {
console.log("Link Created");
window.location.href = document.location.protocol+"//"+document.location.host+"/api/download/"+hash+'/'
});
</script>
<script>
// geting canvas by Boujjou Achraf
var c = document.getElementById("c");
var ctx = c.getContext("2d");
//making the canvas full screen
c.height = window.innerHeight;
c.width = window.innerWidth;
//chinese characters - taken from the unicode charset
var matrix = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@#$%^&*()*&^%+-/~{[|`]}";
//converting the string into an array of single characters
matrix = matrix.split("");
var font_size = 10;
var columns = c.width / font_size; //number of columns for the rain
//an array of drops - one per column
var drops = [];
//x below is the x coordinate
//1 = y co-ordinate of the drop(same for every drop initially)
for (var x = 0; x < columns; x++)
drops[x] = 1;
//drawing the characters
function draw() {
rainbow = ['#ff0000', '#ffa500', '#ffff00', '#008000', '#00FFFF', '#4b0082', '#ee82ee'];
//Black BG for the canvas
//translucent BG to show trail
ctx.fillStyle = "rgba(0, 0, 0, 0.04)";
ctx.fillRect(0, 0, c.width, c.height);
ctx.fillStyle = rainbow[Math.floor(Math.random() * 5)];//green text
ctx.font = font_size + "px arial";
//looping over drops
for (var i = 0; i < drops.length; i++) {
//a random chinese character to print
var text = matrix[Math.floor(Math.random() * matrix.length)];
//x = i*font_size, y = value of drops[i]*font_size
ctx.fillText(text, i * font_size, drops[i] * font_size);
//sending the drop back to the top randomly after it has crossed the screen
//adding a randomness to the reset to make the drops scattered on the Y axis
if (drops[i] * font_size > c.height && Math.random() > 0.975)
drops[i] = 0;
//incrementing Y coordinate
drops[i]++;
}
}
setInterval(draw, 35);
</script>
</body>
</html>