boardgame_site_v2/static/main.js

98 lines
2.6 KiB
JavaScript
Raw Normal View History

2024-08-08 16:14:55 +02:00
const api_url = "http://127.0.0.1:8000"
var all_owned_games
async function makeRequest(url) {
2024-08-08 16:14:55 +02:00
try {
const url_request = new Request(url)
const response = await fetch(url_request);
2024-08-08 16:14:55 +02:00
const result = await response.json();
return result
} catch (error) {
console.error("Error:", error);
}
}
2024-08-08 16:32:05 +02:00
function add_boardgame_row(html_tbody, boardgame_json) {
var row = html_tbody.insertRow();
var icon_cell = row.insertCell();
2024-08-08 16:14:55 +02:00
var name_cell = row.insertCell();
2024-08-08 16:32:05 +02:00
var description_cell = row.insertCell();
2024-08-09 14:42:52 +02:00
var weight_cell = row.insertCell()
2024-08-08 16:14:55 +02:00
2024-08-08 16:32:05 +02:00
var icon_image = document.createElement('img')
icon_image.src = boardgame_json.thumbnail_url
icon_image.classList.add("img-thumbnail")
icon_cell.appendChild(icon_image)
2024-08-08 16:14:55 +02:00
name_cell.innerHTML = boardgame_json.name
description_cell.innerHTML = boardgame_json.description
2024-08-09 14:42:52 +02:00
weight_cell.innerHTML = boardgame_json.weight
2024-08-09 15:29:29 +02:00
row.onclick = function(){ window.location.href = '/boardgame?id=' + boardgame_json.id}
2024-08-08 16:14:55 +02:00
}
2024-08-08 16:14:55 +02:00
async function loadOwnedGames() {
2024-08-11 10:29:40 +02:00
var boardgame_datatable = new DataTable('#boardgame_table', {
ajax: {
url: api_url + '/owned',
dataSrc: ''
},
columns: [
2024-08-11 10:29:40 +02:00
{
data: 'id'
},
{
data: 'thumbnail_url',
render: function (data,type){
return '<img src="' + data + '" />'
}
},
{
data: 'name'
},
{
data: 'description'
},
{
data: 'weight'
}
2024-08-11 10:29:40 +02:00
],
columnDefs: [
{
target: 0,
visible: false,
searchable: false
}
],
order: [[2, 'asc']]
});
2024-08-11 10:49:59 +02:00
2024-08-11 10:29:40 +02:00
$('#boardgame_table').on('click', 'tbody tr', function() {
var boardgame_id = boardgame_datatable.row(this).data().id;
window.location.href = "/boardgame?id=" + boardgame_id
})
2024-08-08 16:14:55 +02:00
}
async function loadGame() {
let params = new URLSearchParams(document.location.search);
2024-08-11 10:49:59 +02:00
let boardgame_id = params.get("id");
2024-08-11 10:49:59 +02:00
var loadGameURL = api_url + '/boardgame/' + boardgame_id
var requested_game = await makeRequest(loadGameURL)
2024-08-11 10:49:59 +02:00
$('#boardgame_image').attr('src', requested_game.image_url)
$('#boardgame_name').text(requested_game.name)
$('#boardgame_weight').text(requested_game.weight)
$('#boardgame_description').text(requested_game.description)
2024-08-11 10:49:59 +02:00
$('#boardgame_link').attr('href', 'https://boardgamegeek.com/boardgame/' + boardgame_id)
2024-08-08 16:14:55 +02:00
}