fix: pixel table
This commit is contained in:
parent
63d7c0c53a
commit
21568c4d0f
|
@ -1,32 +1,25 @@
|
||||||
.pixel-container {
|
#pixels {
|
||||||
display: flex;
|
|
||||||
justify-content: space-evenly;
|
|
||||||
align-items: center;
|
|
||||||
width: 100%;
|
|
||||||
height: 1000px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
--side: 80px;
|
--side: 80px;
|
||||||
--border-width: 3px;
|
--border-width: 3px;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
width: calc(10 * var(--side));
|
width: calc(10 * var(--side));
|
||||||
height: calc(10 * var(--side));
|
height: calc(10 * var(--side));
|
||||||
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
table tr {
|
#pixels tr {
|
||||||
height: var(--side);
|
height: var(--side);
|
||||||
}
|
}
|
||||||
|
|
||||||
.pixel {
|
#pixels td {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
width: var(--side);
|
width: var(--side);
|
||||||
height: var(--side);
|
height: var(--side);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pixel:hover {
|
#pixels td:hover {
|
||||||
--border-color: #333;
|
--border-color: #333;
|
||||||
box-shadow: 0px 0px 0px var(--border-width) var(--border-color);
|
box-shadow: 0px 0px 0px var(--border-width) var(--border-color);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
<link rel="stylesheet" href="css/login-signup.css" />
|
<link rel="stylesheet" href="css/login-signup.css" />
|
||||||
<link rel="stylesheet" href="css/pixels.css" />
|
<link rel="stylesheet" href="css/pixels.css" />
|
||||||
<script src="js/login-signup.js"></script>
|
<script src="js/login-signup.js"></script>
|
||||||
|
<script src="js/pixels.js"></script>
|
||||||
<script src="js/loaded.js"></script>
|
<script src="js/loaded.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -74,7 +75,7 @@
|
||||||
</span>
|
</span>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<table id="pixelTable">
|
<table id="pixels">
|
||||||
<tr></tr>
|
<tr></tr>
|
||||||
<tr></tr>
|
<tr></tr>
|
||||||
<tr></tr>
|
<tr></tr>
|
||||||
|
|
|
@ -28,4 +28,7 @@ function pageLoaded() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
updatePixelsJSON();
|
||||||
|
setInterval(updatePixelsJSON, 10000);
|
||||||
}
|
}
|
||||||
|
|
224
src/main/webapp/js/old.js
Normal file
224
src/main/webapp/js/old.js
Normal file
|
@ -0,0 +1,224 @@
|
||||||
|
//////////////////
|
||||||
|
// Update loops //
|
||||||
|
//////////////////
|
||||||
|
|
||||||
|
var urlPixel = "http://localhost:8080/api/pixel";
|
||||||
|
var urlUser = "http://localhost:8080/api/user";
|
||||||
|
|
||||||
|
var pixelsJSON;
|
||||||
|
var userJSON;
|
||||||
|
|
||||||
|
const updatePixelsJSON = async () => {
|
||||||
|
var reponse = await fetch(urlPixel);
|
||||||
|
pixelsJSON = await reponse.json();
|
||||||
|
};
|
||||||
|
|
||||||
|
const updateUserJSON = async () => {
|
||||||
|
var reponse = await fetch(urlUser);
|
||||||
|
userJSON = await reponse.json();
|
||||||
|
};
|
||||||
|
|
||||||
|
function updateSolde() {
|
||||||
|
var elems = document.getElementsByClassName("solde");
|
||||||
|
elems.forEach((el) => {
|
||||||
|
el.innerHTML = userJSON.solde + "₿";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
updateSolde();
|
||||||
|
updateUserJSON();
|
||||||
|
updatePixelsJSON();
|
||||||
|
setInterval(updateSolde, 10000);
|
||||||
|
setInterval(updateUserJSON, 10000);
|
||||||
|
setInterval(updatePixelsJSON, 10000);
|
||||||
|
|
||||||
|
////////////////
|
||||||
|
// Pixel grid //
|
||||||
|
////////////////
|
||||||
|
|
||||||
|
function setPixels() {
|
||||||
|
var table = document.getElementById("pixelTable");
|
||||||
|
var num_rows = table.rows.length;
|
||||||
|
|
||||||
|
for (let i = 0; i < num_rows; i++) {
|
||||||
|
table.rows[i].innerHTML = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i in pixelsJSON) {
|
||||||
|
var pixel = pixelsJSON[i];
|
||||||
|
var row_id = Math.floor((pixel.id - 1) / num_rows);
|
||||||
|
var row = table.rows[row_id];
|
||||||
|
|
||||||
|
row.innerHTML +=
|
||||||
|
'<td class="pixel" style="background:#' +
|
||||||
|
pixel.color +
|
||||||
|
'">' +
|
||||||
|
'<div class="info-pixel">' +
|
||||||
|
'<div class="username">' +
|
||||||
|
pixel.owner_username +
|
||||||
|
"</div>" +
|
||||||
|
'<div class="description">' +
|
||||||
|
pixel.description +
|
||||||
|
"</div>" +
|
||||||
|
"</div>" +
|
||||||
|
'<div class="patch-shadow"></div>' +
|
||||||
|
"</td>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
// Modify my pixels //
|
||||||
|
//////////////////////
|
||||||
|
|
||||||
|
function hexToRgb(hex) {
|
||||||
|
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
||||||
|
console.log(result);
|
||||||
|
return result
|
||||||
|
? {
|
||||||
|
r: parseInt(result[1], 16),
|
||||||
|
g: parseInt(result[2], 16),
|
||||||
|
b: parseInt(result[3], 16),
|
||||||
|
}
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize pixel index
|
||||||
|
function initUserPixel() {
|
||||||
|
var user_pixel_index = 0;
|
||||||
|
var pixel_index = userJSON.pixels[user_pixel_index] - 1;
|
||||||
|
|
||||||
|
document.getElementById("user-pixel-index").innerHTML = user_pixel_index;
|
||||||
|
document.getElementById("pixel-index").innerHTML = pixel_index;
|
||||||
|
|
||||||
|
updatePixelPreview();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute next pixel index
|
||||||
|
function nextUserPixel() {
|
||||||
|
var user_pixel_index = parseInt(
|
||||||
|
document.getElementById("user-pixel-index").innerHTML
|
||||||
|
);
|
||||||
|
|
||||||
|
user_pixel_index++;
|
||||||
|
if (user_pixel_index > userJSON.pixels.length - 1) {
|
||||||
|
user_pixel_index = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixel_index = userJSON.pixels[user_pixel_index] - 1;
|
||||||
|
|
||||||
|
document.getElementById("user-pixel-index").innerHTML = user_pixel_index;
|
||||||
|
document.getElementById("pixel-index").innerHTML = pixel_index;
|
||||||
|
|
||||||
|
updatePixelPreview();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute previous pixel index
|
||||||
|
function previousUserPixel() {
|
||||||
|
var user_pixel_index = parseInt(
|
||||||
|
document.getElementById("user-pixel-index").innerHTML
|
||||||
|
);
|
||||||
|
|
||||||
|
user_pixel_index--;
|
||||||
|
if (user_pixel_index < 0) {
|
||||||
|
user_pixel_index = userJSON.pixels.length - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixel_index = userJSON.pixels[user_pixel_index] - 1;
|
||||||
|
|
||||||
|
document.getElementById("user-pixel-index").innerHTML = user_pixel_index;
|
||||||
|
document.getElementById("pixel-index").innerHTML = pixel_index;
|
||||||
|
|
||||||
|
updatePixelPreview();
|
||||||
|
}
|
||||||
|
|
||||||
|
function updatePixelPreview() {
|
||||||
|
var index = parseInt(document.getElementById("pixel-index").innerHTML);
|
||||||
|
var pixel = pixelsJSON[index];
|
||||||
|
|
||||||
|
// Update price
|
||||||
|
var price = document.getElementById("price");
|
||||||
|
price.value = pixel.price;
|
||||||
|
|
||||||
|
// Update color
|
||||||
|
var red = document.getElementById("red");
|
||||||
|
var green = document.getElementById("green");
|
||||||
|
var blue = document.getElementById("blue");
|
||||||
|
|
||||||
|
var color = hexToRgb(pixel.color);
|
||||||
|
|
||||||
|
red.value = color.r;
|
||||||
|
green.value = color.g;
|
||||||
|
blue.value = color.b;
|
||||||
|
|
||||||
|
updateUserColorPreview();
|
||||||
|
|
||||||
|
// Update description
|
||||||
|
var description = document.getElementById("description");
|
||||||
|
description.value = pixel.description;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update preview's color
|
||||||
|
function updateUserColorPreview() {
|
||||||
|
var red = (document.getElementById("red").value * 255) / 100;
|
||||||
|
var green = (document.getElementById("green").value * 255) / 100;
|
||||||
|
var blue = (document.getElementById("blue").value * 255) / 100;
|
||||||
|
|
||||||
|
var color = document.getElementById("color");
|
||||||
|
color.style.background = "rgb(" + red + "," + green + "," + blue + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
initUserPixel();
|
||||||
|
|
||||||
|
///////////////
|
||||||
|
// Buy pixel //
|
||||||
|
///////////////
|
||||||
|
|
||||||
|
// Initialize pixel index
|
||||||
|
function initBuyPixel() {
|
||||||
|
var pixel_index = 0;
|
||||||
|
|
||||||
|
var pixel = pixelsJSON[pixel_index];
|
||||||
|
updatePixelBuyPreview(pixel);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute next pixel index
|
||||||
|
function nextBuyPixel() {
|
||||||
|
var pixel_index = document.getElementById("buy-pixel-index").value;
|
||||||
|
|
||||||
|
var table = document.getElementById("pixelTable");
|
||||||
|
var number_rows = table.rows.length;
|
||||||
|
|
||||||
|
pixel_index++;
|
||||||
|
if (pixel_index > number_rows * number_rows - 1) {
|
||||||
|
pixel_index = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixel = pixelsJSON[pixel_index];
|
||||||
|
updatePixelBuyPreview(pixel);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute previous pixel index
|
||||||
|
function previousBuyPixel() {
|
||||||
|
var pixel_index = document.getElementById("buy-pixel-index").value;
|
||||||
|
|
||||||
|
var table = document.getElementById("pixelTable");
|
||||||
|
var number_rows = table.rows.length;
|
||||||
|
|
||||||
|
pixel_index--;
|
||||||
|
if (pixel_index < 0) {
|
||||||
|
pixel_index = number_rows * number_rows - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixel = pixelsJSON[pixel_index];
|
||||||
|
updatePixelBuyPreview(pixel);
|
||||||
|
}
|
||||||
|
|
||||||
|
function updatePixelBuyPreview(pixel) {
|
||||||
|
document.getElementById("buy-pixel-index").value = pixel.id - 1;
|
||||||
|
document.getElementById("buy-pixel-owner").innerHTML = pixel.owner_username;
|
||||||
|
document.getElementById("buy-pixel-description").innerHTML =
|
||||||
|
pixel.description;
|
||||||
|
document.getElementById("buy-pixel-price").innerHTML = pixel.price;
|
||||||
|
}
|
||||||
|
|
||||||
|
initBuyPixel();
|
|
@ -1,43 +1,13 @@
|
||||||
//////////////////
|
let urlPixel = "http://localhost:8080/api/pixel";
|
||||||
// Update loops //
|
|
||||||
//////////////////
|
|
||||||
|
|
||||||
var urlPixel = "http://localhost:8080/api/pixel";
|
|
||||||
var urlUser = "http://localhost:8080/api/user";
|
|
||||||
|
|
||||||
var pixelsJSON;
|
|
||||||
var userJSON;
|
|
||||||
|
|
||||||
const updatePixelsJSON = async () => {
|
const updatePixelsJSON = async () => {
|
||||||
var reponse = await fetch(urlPixel);
|
reponse = await fetch(urlPixel);
|
||||||
pixelsJSON = await reponse.json();
|
pixelsJSON = await reponse.json();
|
||||||
|
setPixels();
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateUserJSON = async () => {
|
|
||||||
var reponse = await fetch(urlUser);
|
|
||||||
userJSON = await reponse.json();
|
|
||||||
};
|
|
||||||
|
|
||||||
function updateSolde() {
|
|
||||||
var elems = document.getElementsByClassName("solde");
|
|
||||||
elems.forEach((el) => {
|
|
||||||
el.innerHTML = userJSON.solde + "₿";
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
updateSolde();
|
|
||||||
updateUserJSON();
|
|
||||||
updatePixelsJSON();
|
|
||||||
setInterval(updateSolde, 10000);
|
|
||||||
setInterval(updateUserJSON, 10000);
|
|
||||||
setInterval(updatePixelsJSON, 10000);
|
|
||||||
|
|
||||||
////////////////
|
|
||||||
// Pixel grid //
|
|
||||||
////////////////
|
|
||||||
|
|
||||||
function setPixels() {
|
function setPixels() {
|
||||||
var table = document.getElementById("pixelTable");
|
var table = document.getElementById("pixels");
|
||||||
var num_rows = table.rows.length;
|
var num_rows = table.rows.length;
|
||||||
|
|
||||||
for (let i = 0; i < num_rows; i++) {
|
for (let i = 0; i < num_rows; i++) {
|
||||||
|
@ -65,160 +35,3 @@ function setPixels() {
|
||||||
"</td>";
|
"</td>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////
|
|
||||||
// Modify my pixels //
|
|
||||||
//////////////////////
|
|
||||||
|
|
||||||
function hexToRgb(hex) {
|
|
||||||
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
||||||
console.log(result);
|
|
||||||
return result
|
|
||||||
? {
|
|
||||||
r: parseInt(result[1], 16),
|
|
||||||
g: parseInt(result[2], 16),
|
|
||||||
b: parseInt(result[3], 16),
|
|
||||||
}
|
|
||||||
: null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize pixel index
|
|
||||||
function initUserPixel() {
|
|
||||||
var user_pixel_index = 0;
|
|
||||||
var pixel_index = userJSON.pixels[user_pixel_index] - 1;
|
|
||||||
|
|
||||||
document.getElementById("user-pixel-index").innerHTML = user_pixel_index;
|
|
||||||
document.getElementById("pixel-index").innerHTML = pixel_index;
|
|
||||||
|
|
||||||
updatePixelPreview();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compute next pixel index
|
|
||||||
function nextUserPixel() {
|
|
||||||
var user_pixel_index = parseInt(
|
|
||||||
document.getElementById("user-pixel-index").innerHTML
|
|
||||||
);
|
|
||||||
|
|
||||||
user_pixel_index++;
|
|
||||||
if (user_pixel_index > userJSON.pixels.length - 1) {
|
|
||||||
user_pixel_index = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var pixel_index = userJSON.pixels[user_pixel_index] - 1;
|
|
||||||
|
|
||||||
document.getElementById("user-pixel-index").innerHTML = user_pixel_index;
|
|
||||||
document.getElementById("pixel-index").innerHTML = pixel_index;
|
|
||||||
|
|
||||||
updatePixelPreview();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compute previous pixel index
|
|
||||||
function previousUserPixel() {
|
|
||||||
var user_pixel_index = parseInt(
|
|
||||||
document.getElementById("user-pixel-index").innerHTML
|
|
||||||
);
|
|
||||||
|
|
||||||
user_pixel_index--;
|
|
||||||
if (user_pixel_index < 0) {
|
|
||||||
user_pixel_index = userJSON.pixels.length - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var pixel_index = userJSON.pixels[user_pixel_index] - 1;
|
|
||||||
|
|
||||||
document.getElementById("user-pixel-index").innerHTML = user_pixel_index;
|
|
||||||
document.getElementById("pixel-index").innerHTML = pixel_index;
|
|
||||||
|
|
||||||
updatePixelPreview();
|
|
||||||
}
|
|
||||||
|
|
||||||
function updatePixelPreview() {
|
|
||||||
var index = parseInt(document.getElementById("pixel-index").innerHTML);
|
|
||||||
var pixel = pixelsJSON[index];
|
|
||||||
|
|
||||||
// Update price
|
|
||||||
var price = document.getElementById("price");
|
|
||||||
price.value = pixel.price;
|
|
||||||
|
|
||||||
// Update color
|
|
||||||
var red = document.getElementById("red");
|
|
||||||
var green = document.getElementById("green");
|
|
||||||
var blue = document.getElementById("blue");
|
|
||||||
|
|
||||||
var color = hexToRgb(pixel.color);
|
|
||||||
|
|
||||||
red.value = color.r;
|
|
||||||
green.value = color.g;
|
|
||||||
blue.value = color.b;
|
|
||||||
|
|
||||||
updateUserColorPreview();
|
|
||||||
|
|
||||||
// Update description
|
|
||||||
var description = document.getElementById("description");
|
|
||||||
description.value = pixel.description;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update preview's color
|
|
||||||
function updateUserColorPreview() {
|
|
||||||
var red = (document.getElementById("red").value * 255) / 100;
|
|
||||||
var green = (document.getElementById("green").value * 255) / 100;
|
|
||||||
var blue = (document.getElementById("blue").value * 255) / 100;
|
|
||||||
|
|
||||||
var color = document.getElementById("color");
|
|
||||||
color.style.background = "rgb(" + red + "," + green + "," + blue + ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
initUserPixel();
|
|
||||||
|
|
||||||
///////////////
|
|
||||||
// Buy pixel //
|
|
||||||
///////////////
|
|
||||||
|
|
||||||
// Initialize pixel index
|
|
||||||
function initBuyPixel() {
|
|
||||||
var pixel_index = 0;
|
|
||||||
|
|
||||||
var pixel = pixelsJSON[pixel_index];
|
|
||||||
updatePixelBuyPreview(pixel);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compute next pixel index
|
|
||||||
function nextBuyPixel() {
|
|
||||||
var pixel_index = document.getElementById("buy-pixel-index").value;
|
|
||||||
|
|
||||||
var table = document.getElementById("pixelTable");
|
|
||||||
var number_rows = table.rows.length;
|
|
||||||
|
|
||||||
pixel_index++;
|
|
||||||
if (pixel_index > number_rows * number_rows - 1) {
|
|
||||||
pixel_index = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var pixel = pixelsJSON[pixel_index];
|
|
||||||
updatePixelBuyPreview(pixel);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compute previous pixel index
|
|
||||||
function previousBuyPixel() {
|
|
||||||
var pixel_index = document.getElementById("buy-pixel-index").value;
|
|
||||||
|
|
||||||
var table = document.getElementById("pixelTable");
|
|
||||||
var number_rows = table.rows.length;
|
|
||||||
|
|
||||||
pixel_index--;
|
|
||||||
if (pixel_index < 0) {
|
|
||||||
pixel_index = number_rows * number_rows - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var pixel = pixelsJSON[pixel_index];
|
|
||||||
updatePixelBuyPreview(pixel);
|
|
||||||
}
|
|
||||||
|
|
||||||
function updatePixelBuyPreview(pixel) {
|
|
||||||
document.getElementById("buy-pixel-index").value = pixel.id - 1;
|
|
||||||
document.getElementById("buy-pixel-owner").innerHTML = pixel.owner_username;
|
|
||||||
document.getElementById("buy-pixel-description").innerHTML =
|
|
||||||
pixel.description;
|
|
||||||
document.getElementById("buy-pixel-price").innerHTML = pixel.price;
|
|
||||||
}
|
|
||||||
|
|
||||||
initBuyPixel();
|
|
||||||
|
|
Loading…
Reference in a new issue