136 lines
No EOL
3.7 KiB
JavaScript
136 lines
No EOL
3.7 KiB
JavaScript
const api_url = "http://127.0.0.1:8000"
|
|
|
|
var all_owned_games
|
|
|
|
async function makeRequest(url) {
|
|
try {
|
|
const url_request = new Request(url)
|
|
const response = await fetch(url_request);
|
|
const result = await response.json();
|
|
return result
|
|
} catch (error) {
|
|
console.error("Error:", error);
|
|
}
|
|
}
|
|
|
|
function add_boardgame_row(html_tbody, boardgame_json) {
|
|
var row = html_tbody.insertRow();
|
|
var icon_cell = row.insertCell();
|
|
var name_cell = row.insertCell();
|
|
var description_cell = row.insertCell();
|
|
var weight_cell = row.insertCell()
|
|
|
|
var icon_image = document.createElement('img')
|
|
icon_image.src = boardgame_json.thumbnail_url
|
|
icon_image.classList.add("img-thumbnail")
|
|
|
|
icon_cell.appendChild(icon_image)
|
|
name_cell.innerHTML = boardgame_json.name
|
|
description_cell.innerHTML = boardgame_json.description
|
|
weight_cell.innerHTML = boardgame_json.weight
|
|
|
|
row.onclick = function(){ window.location.href = '/boardgame?id=' + boardgame_json.id}
|
|
}
|
|
|
|
async function loadWishlistedGames() {
|
|
|
|
var wishlist_priorities = [1,2,3,4]
|
|
|
|
jQuery.each(wishlist_priorities, function(index, item){
|
|
|
|
var boardgame_datatable = new DataTable('#wishlist_table'+item, {
|
|
ajax: {
|
|
url: api_url + '/wishlist?priority='+item,
|
|
dataSrc: ''
|
|
},
|
|
columns: [
|
|
{
|
|
data: 'wishlist_priority'
|
|
},
|
|
{
|
|
data: 'thumbnail_url',
|
|
render: function (data,type){
|
|
return '<img src="' + data + '" />'
|
|
}
|
|
},
|
|
{
|
|
data: 'name'
|
|
},
|
|
{
|
|
data: 'description'
|
|
},
|
|
{
|
|
data: 'weight'
|
|
}
|
|
],
|
|
columnDefs: [
|
|
{
|
|
target: 0,
|
|
visible: false
|
|
}
|
|
],
|
|
order: [[2, 'asc']]
|
|
});
|
|
|
|
$('#wishlist_table'+item).on('click', 'tbody tr', function() {
|
|
var boardgame_id = boardgame_datatable.row(this).data().id;
|
|
window.location.href = "/boardgame?id=" + boardgame_id
|
|
})
|
|
});
|
|
|
|
|
|
}
|
|
|
|
async function loadOwnedGames() {
|
|
|
|
var boardgame_datatable = new DataTable('.boardgame_table', {
|
|
ajax: {
|
|
url: api_url + '/owned',
|
|
dataSrc: ''
|
|
},
|
|
columns: [
|
|
{
|
|
data: 'thumbnail_url',
|
|
render: function (data,type){
|
|
return '<img src="' + data + '" />'
|
|
}
|
|
},
|
|
{
|
|
data: 'name'
|
|
},
|
|
{
|
|
data: 'description'
|
|
},
|
|
{
|
|
data: 'weight'
|
|
}
|
|
],
|
|
order: [[1, 'asc']]
|
|
});
|
|
|
|
|
|
$('.boardgame_table').on('click', 'tbody tr', function() {
|
|
var boardgame_id = boardgame_datatable.row(this).data().id;
|
|
window.location.href = "/boardgame?id=" + boardgame_id
|
|
})
|
|
|
|
}
|
|
|
|
async function loadGame() {
|
|
let params = new URLSearchParams(document.location.search);
|
|
let boardgame_id = params.get("id");
|
|
|
|
var loadGameURL = api_url + '/boardgame/' + boardgame_id
|
|
var requested_game = await makeRequest(loadGameURL)
|
|
|
|
$('#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)
|
|
|
|
$('#boardgame_link').attr('href', 'https://boardgamegeek.com/boardgame/' + boardgame_id)
|
|
|
|
} |