2024-08-14 10:16:54 +02:00
|
|
|
document.body.onload=loadOwnedGames()
|
|
|
|
|
|
2024-08-14 11:03:19 +02:00
|
|
|
document.getElementById('owned_nav').classList.add('active')
|
|
|
|
|
|
2024-08-14 10:16:54 +02:00
|
|
|
async function loadOwnedGames() {
|
|
|
|
|
|
2025-02-12 12:18:54 +01:00
|
|
|
const name_input = document.getElementById("name_input")
|
|
|
|
|
const player_amount_input = document.getElementById("player_amount_input")
|
2025-02-06 16:49:22 +01:00
|
|
|
|
2024-08-14 10:16:54 +02:00
|
|
|
var boardgame_datatable = new DataTable('.boardgame_table', {
|
2025-02-06 15:30:58 +01:00
|
|
|
"pageLength":-1,
|
2025-02-06 16:50:22 +01:00
|
|
|
"bLengthChange": false,
|
2025-02-12 12:18:54 +01:00
|
|
|
"bPaginate": false,
|
|
|
|
|
"info": false,
|
2024-08-14 10:16:54 +02:00
|
|
|
ajax: {
|
|
|
|
|
url: api_url + '/owned?filter_expansions_out=true',
|
|
|
|
|
dataSrc: ''
|
|
|
|
|
},
|
|
|
|
|
columns: [
|
|
|
|
|
{
|
|
|
|
|
data: 'thumbnail_url',
|
|
|
|
|
render: function (data,type){
|
|
|
|
|
return '<img src="' + data + '" class="img-fluid" />'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
data: 'name'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
data: 'min_players',
|
|
|
|
|
render: function(data,type,row){
|
|
|
|
|
if (row.min_players != row.max_players){
|
|
|
|
|
return row.min_players + '-' + row.max_players
|
|
|
|
|
}else{
|
|
|
|
|
return row.min_players
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
data: 'min_playing_time',
|
|
|
|
|
render: function(data,type,row){
|
|
|
|
|
if (row.min_playing_time != row.max_playing_time){
|
|
|
|
|
return row.min_playing_time + '-' + row.max_playing_time
|
|
|
|
|
}else{
|
|
|
|
|
return row.min_playing_time
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
data: 'weight'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
columnDefs: [
|
2024-08-16 10:14:39 +02:00
|
|
|
{
|
|
|
|
|
targets: 'no-sort', orderable: false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
targets: '_all',
|
|
|
|
|
orderSequence: [ 'asc', 'desc' ]
|
|
|
|
|
}
|
2024-08-14 10:16:54 +02:00
|
|
|
],
|
|
|
|
|
order: [[1, 'asc']]
|
|
|
|
|
});
|
|
|
|
|
|
2025-02-06 16:49:22 +01:00
|
|
|
// Custom range filtering function
|
|
|
|
|
boardgame_datatable.search.fixed('range', function (searchStr, data, index) {
|
2025-02-12 12:18:54 +01:00
|
|
|
|
|
|
|
|
function isCorrectPlayerAmount(player_amount_wanted, min_players, max_players){
|
|
|
|
|
if ((player_amount_wanted >= min_players && player_amount_wanted <= max_players) || isNaN(player_amount_wanted)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isCorrectName(game_name_wanted, game_name){
|
|
|
|
|
if (game_name.includes(game_name_wanted) || game_name_wanted == ""){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var player_amount_wanted = parseInt(player_amount_input.value, 10);
|
2025-02-06 16:49:22 +01:00
|
|
|
var min_players = parseFloat(data['min_players'])
|
|
|
|
|
var max_players = parseFloat(data['max_players'])
|
2025-02-12 12:18:54 +01:00
|
|
|
|
|
|
|
|
var game_name_wanted = name_input.value.toLowerCase()
|
|
|
|
|
var game_name = data['name'].toLowerCase()
|
|
|
|
|
|
|
|
|
|
if (isCorrectPlayerAmount(player_amount_wanted, min_players, max_players) && isCorrectName(game_name_wanted, game_name)){
|
2025-02-06 16:49:22 +01:00
|
|
|
return true;
|
|
|
|
|
}
|
2025-02-12 12:18:54 +01:00
|
|
|
|
2025-02-06 16:49:22 +01:00
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
player_amount_input.addEventListener('input', function () {
|
|
|
|
|
boardgame_datatable.draw();
|
|
|
|
|
});
|
|
|
|
|
|
2025-02-12 12:18:54 +01:00
|
|
|
name_input.addEventListener('input', function () {
|
|
|
|
|
boardgame_datatable.draw();
|
|
|
|
|
});
|
|
|
|
|
|
2024-08-14 10:16:54 +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
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|