324 lines
14 KiB
Plaintext
324 lines
14 KiB
Plaintext
---
|
|
import Layout from "../../layouts/Layout.astro";
|
|
---
|
|
<Layout title="">
|
|
<main>
|
|
<div>
|
|
<!-- bg-[url('/assets/background.jpg')] -->
|
|
<section class="bg-white bg-center bg-no-repeat bg-cover h-screen">
|
|
<div class="container mx-auto px-4">
|
|
<div class="flex flex-row place-content-between pt-6">
|
|
<p class="text-5xl text-[#5ac6c8] font-bold select-none">Tick</p>
|
|
<img src="/assets/top_logo.png" alt="" draggable="false" class="select-none">
|
|
</div>
|
|
<p class="text-4xl text-center font-[600] text-[#7c4c23] my-16 select-none" id="gameDescription"></p>
|
|
<form id="contactForm">
|
|
<div id="" class="flex flex-row place-content-between">
|
|
<div class="flex flex-col gap-6 place-items-center">
|
|
<!-- <img id="image1" src="" alt="" draggable="false" class="select-none" /> -->
|
|
<input onclick="checkResult2('image1');" type="checkbox" id="a1" class="round-checkbox-input myCheckbox" value="a1"/>
|
|
<label for="a1" class="round-checkbox-label">
|
|
<img id="image1" src="" alt="" draggable="false" class="select-none" />
|
|
</label>
|
|
|
|
<img id="image2" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image2');" type="checkbox" id="a2" class="round-checkbox-input myCheckbox" value="a2"/>
|
|
<label for="a2" class="round-checkbox-label"></label>
|
|
|
|
<img id="image3" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image3');" type="checkbox" id="a3" class="round-checkbox-input myCheckbox" value="a3"/>
|
|
<label for="a3" class="round-checkbox-label"></label>
|
|
</div>
|
|
<div class="flex flex-col gap-6 place-items-center">
|
|
<img id="image4" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image4');" type="checkbox" id="a4" class="round-checkbox-input myCheckbox" value="a4"/>
|
|
<label for="a4" class="round-checkbox-label"></label>
|
|
|
|
<img id="image5" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image5');" type="checkbox" id="a5" class="round-checkbox-input myCheckbox" value="a5"/>
|
|
<label for="a5" class="round-checkbox-label"></label>
|
|
|
|
<img id="image6" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image6');" type="checkbox" id="a6" class="round-checkbox-input myCheckbox" value="a6"/>
|
|
<label for="a6" class="round-checkbox-label"></label>
|
|
</div>
|
|
<div class="flex flex-col gap-6 place-items-center">
|
|
<img id="image7" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image7');" type="checkbox" id="a7" class="round-checkbox-input myCheckbox" value="a7"/>
|
|
<label for="a7" class="round-checkbox-label"></label>
|
|
|
|
<img id="image8" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image8');" type="checkbox" id="a8" class="round-checkbox-input myCheckbox" value="a8"/>
|
|
<label for="a8" class="round-checkbox-label"></label>
|
|
|
|
<img id="image9" src="" alt="" draggable="false" class="select-none" />
|
|
<input onclick="checkResult2('image9');" type="checkbox" id="a9" class="round-checkbox-input myCheckbox" value="a9"/>
|
|
<label for="a9" class="round-checkbox-label"></label>
|
|
</div>
|
|
</div>
|
|
<div class="flex flex-col justify-center place-items-center pt-8">
|
|
<p id="savedMessage"></p>
|
|
<input onclick="saveUserData();" class="bg-blue-700 px-8 py-2 rounded-lg shadow-lg font-bold text-white cursor-pointer" type="submit" value="Save">
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</main>
|
|
</Layout>
|
|
<script is:inline>
|
|
const params = new URLSearchParams(window.location.search);
|
|
const paramsID = params.get('id');
|
|
fetch(`https://management.beanstalkedu.com/items/game_tick_variant2/${encodeURIComponent(paramsID)}?filter[status][_eq]=published`)
|
|
.then(res => res.json())
|
|
.then(data => {
|
|
gameData = data.data;
|
|
// console.log(gameData);
|
|
document.getElementById("gameDescription").innerHTML = gameData.description;
|
|
const assetsURL = 'https://management.beanstalkedu.com/assets/';
|
|
document.getElementById("image1").src = assetsURL + gameData.image1;
|
|
document.getElementById("image2").src = assetsURL + gameData.image2;
|
|
document.getElementById("image3").src = assetsURL + gameData.image3;
|
|
document.getElementById("image4").src = assetsURL + gameData.image4;
|
|
document.getElementById("image5").src = assetsURL + gameData.image5;
|
|
document.getElementById("image6").src = assetsURL + gameData.image6;
|
|
document.getElementById("image7").src = assetsURL + gameData.image7;
|
|
document.getElementById("image8").src = assetsURL + gameData.image8;
|
|
document.getElementById("image9").src = assetsURL + gameData.image9;
|
|
});
|
|
function checkResult2(id){
|
|
// alert("Matched")
|
|
if(id == 'image1'){
|
|
// console.log(gameData.a1)
|
|
if(gameData.a1 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image2'){
|
|
if(gameData.a2 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image3'){
|
|
if(gameData.a3 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image4'){
|
|
if(gameData.a4 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image5'){
|
|
if(gameData.a5 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image6'){
|
|
if(gameData.a6 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image7'){
|
|
if(gameData.a7 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image8'){
|
|
if(gameData.a8 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
if(id == 'image9'){
|
|
if(gameData.a9 == true){
|
|
var element = document.getElementById(id);
|
|
element.classList.add("greenBorder");
|
|
} else{
|
|
var element = document.getElementById(id);
|
|
element.classList.add("redBorder");
|
|
}
|
|
};
|
|
|
|
};
|
|
let url = window.location.href;
|
|
let urlSplit = url.split('/')
|
|
let gameName = urlSplit[3] +`-`+ urlSplit[4];
|
|
let formatedDateTime;
|
|
|
|
window.onload = function () {
|
|
let currentTime = new Date();
|
|
formatedDateTime = currentTime.toLocaleString();
|
|
// console.log(formatedDateTime);
|
|
|
|
// Create userData object inside the onload event
|
|
let userData = {
|
|
'f2': formatedDateTime,
|
|
};
|
|
// console.log(userData); // Now, f1 and f2 should have values
|
|
};
|
|
function generateShortUniqueID(length) {
|
|
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
let result = '';
|
|
for (let i = 0; i < length; i++) {
|
|
const randomIndex = Math.floor(Math.random() * characters.length);
|
|
result += characters.charAt(randomIndex);
|
|
}
|
|
return result;
|
|
}
|
|
const shortUniqueID = generateShortUniqueID(10); // Change 10 to the desired length
|
|
// console.log(shortUniqueID);
|
|
function saveUserData() {
|
|
// Move the userData object creation inside the saveUserData function if needed
|
|
let userData = {
|
|
'status' : 'published',
|
|
'user_id': 'tick-v2@beanstalkedu.com',
|
|
'game_name': gameName,
|
|
'game_open': formatedDateTime,
|
|
};
|
|
|
|
fetch(`https://management.beanstalkedu.com/items/game_result`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify(userData)
|
|
})
|
|
.then(response => {
|
|
if (response.ok) {
|
|
document.getElementById('savedMessage').innerHTML = 'Saved Successfully';
|
|
// console.log('Data Saved', response);
|
|
} else {
|
|
// console.log('Something Wrong', response);
|
|
}
|
|
})
|
|
.catch(error => {
|
|
console.error('An error occurred', error);
|
|
});
|
|
}
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
const contactForm = document.getElementById('contactForm');
|
|
contactForm.addEventListener('submit', async function (event) {
|
|
event.preventDefault();
|
|
// const formData = {
|
|
// f1: result[0],
|
|
// f2: result[1],
|
|
// f3: result[2],
|
|
// f4: result[3],
|
|
// f5: result[4],
|
|
// f6: result[5]
|
|
// };
|
|
// console.log("Form Data", formData)
|
|
// try {
|
|
// const response = await fetch('https://management.beanstalkedu.com/items/game_result', {
|
|
// method: 'POST',
|
|
// headers: {
|
|
// 'Content-Type': 'application/json'
|
|
// },
|
|
// body: JSON.stringify(formData)
|
|
// });
|
|
// if (response.ok) {
|
|
// console.log('Form data submitted successfully');
|
|
// } else {
|
|
// console.error('Failed to submit form data');
|
|
// }
|
|
// } catch (error) {
|
|
// console.error('An error occurred:', error);
|
|
// }
|
|
});
|
|
});
|
|
</script>
|
|
<style>
|
|
@import url('https://fonts.googleapis.com/css2?family=Lobster&family=Quicksand:wght@500;700&display=swap');
|
|
/* body{
|
|
font-family: quicksand;
|
|
animation: fadeInAnimation ease 6s;
|
|
animation-iteration-count: 1;
|
|
animation-fill-mode: forwards;
|
|
}
|
|
@keyframes fadeInAnimation {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
} */
|
|
.greenBorder{
|
|
border: 4px solid #008000;
|
|
border-radius: 10%;
|
|
/* transform:scale3d(0.5, 1, 1.7); */
|
|
transition: border 0.5s, border-color 0.3s, transform 6s;
|
|
}
|
|
.redBorder{
|
|
border: 4px solid red;
|
|
border-radius: 10%;
|
|
}
|
|
#image1, #image2, #image3, #image4, #image5, #image6, #image7, #image8, #image9{
|
|
width: 150px;
|
|
/* border: 4px solid red;
|
|
border-radius: 5%; */
|
|
}
|
|
.round-checkbox-input {
|
|
display: none;
|
|
}
|
|
.round-checkbox-label {
|
|
display: inline-block;
|
|
/* width: 30px; */
|
|
/* height: 30px; */
|
|
/* border-radius: 10%; */
|
|
/* background-color: #ccc; */
|
|
/* border: 2px solid #007bff; */
|
|
cursor: pointer;
|
|
position: relative;
|
|
transition: background-color 0.3s, border-color 0.3s, transform 0.3s;
|
|
}
|
|
.round-checkbox-input:checked + .round-checkbox-label {
|
|
/* background-color: #007bff; */
|
|
/* border-color: #007bff; */
|
|
transform: scale(1.2);
|
|
border-radius: 30%;
|
|
}
|
|
.round-checkbox-input:checked + .round-checkbox-label::after {
|
|
/* content: '\2713'; */
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
font-size: 40px;
|
|
/* color: white; */
|
|
display: block;
|
|
}
|
|
</style>
|