diff --git a/static/javascript/statistics.js b/static/javascript/statistics.js index 2ad136d..1039e98 100644 --- a/static/javascript/statistics.js +++ b/static/javascript/statistics.js @@ -312,8 +312,8 @@ async function create_bar_chart(statistic_data, name=''){ } -async function create_multiple_boardgame_chart(statistic_data, name = '', footer_attribute = '', footer_preamble = ''){ - function create_boardgame_image_grid_row(boardgames, footer_data = []){ +async function create_multiple_boardgame_chart(statistic_data, name = '', include_footer = false, footer_preamble = ''){ + function create_boardgame_image_grid_row(boardgames, include_footer, footer_data, footer_preamble){ const row_container = document.createElement('div') row_container.classList.add('container') @@ -355,9 +355,9 @@ async function create_multiple_boardgame_chart(statistic_data, name = '', footer boardgame_card_body.appendChild(boardgame_title) - if (footer_data.length > 0){ + if (include_footer){ const boardgame_footer = document.createElement('p') - boardgame_footer.innerHTML = footer_data[boardgame_index] + boardgame_footer.innerHTML = footer_preamble + footer_data[current_boardgame.id] boardgame_footer.classList.add('card-text') boardgame_card_body.appendChild(boardgame_footer) } @@ -375,12 +375,6 @@ async function create_multiple_boardgame_chart(statistic_data, name = '', footer } - function footer_attribute_to_value(obj, footer_attribute){ - if (!footer_attribute) return obj; - const properties = footer_attribute.split('.'); - return footer_attribute_to_value(obj[properties.shift()], properties.join('.')) - } - if (name == ""){ statistic_name = statistic_data.name }else{ @@ -405,22 +399,24 @@ async function create_multiple_boardgame_chart(statistic_data, name = '', footer boardgame_image_container.classList.add('container-fluid') boardgame_image_container.classList.add('overflow-auto') - const boardgames_to_grid = statistic_data.result + const boardgames_to_grid = statistic_data.games - footer_data = [] + const footer_data = statistic_data.result - if (footer_attribute != ''){ - for (boardgame_index in boardgames_to_grid){ - let footer_string = footer_attribute_to_value(boardgames_to_grid[boardgame_index], footer_attribute) - if (footer_preamble != ''){ - footer_string = footer_preamble + footer_string - } - footer_data.push(footer_string) + + + // if (footer_attribute != ''){ + // for (boardgame_index in boardgames_to_grid){ + // let footer_string = footer_attribute_to_value(boardgames_to_grid[boardgame_index], footer_attribute) + // if (footer_preamble != ''){ + // footer_string = footer_preamble + footer_string + // } + // footer_data.push(footer_string) - } - } + // } + // } - const row = create_boardgame_image_grid_row(boardgames_to_grid, footer_data) + const row = create_boardgame_image_grid_row(boardgames_to_grid, include_footer, footer_data, footer_preamble) boardgame_image_container.appendChild(row) @@ -429,7 +425,7 @@ async function create_multiple_boardgame_chart(statistic_data, name = '', footer } -async function create_basic_statistic_chart(statistic_data, name=''){ +async function create_basic_statistic_chart(statistic_data, name='', preamble=''){ if (name == ""){ statistic_name = statistic_data.name @@ -451,7 +447,7 @@ async function create_basic_statistic_chart(statistic_data, name=''){ const card_title = document.createElement('h5') card_title.classList.add('card-title') - card_title.innerHTML = statistic_data.result + card_title.innerHTML = preamble + statistic_data.result card_body.appendChild(card_title) @@ -466,7 +462,7 @@ async function loadStatistics(){ create_basic_statistic_chart(amount_of_games_statistic_data, 'Spellen in bezit') const total_collection_cost_statistic_data = await makeRequest(api_url+'/statistics/total_collection_cost') - create_basic_statistic_chart(total_collection_cost_statistic_data, 'Totale kost van spellen in bezit') + create_basic_statistic_chart(total_collection_cost_statistic_data, 'Totale kost van spellen in bezit', '\u20AC ') @@ -495,15 +491,22 @@ async function loadStatistics(){ delete winrate_statistic_data.result[player_name] }else{ winrate_statistic_data.result[player_name] *= 100 + winrate_statistic_data.result[player_name] = winrate_statistic_data.result[player_name].toFixed(2) } } create_bar_chart(winrate_statistic_data, 'Winrate van spelers') const most_expensive_games_statistic_data = await makeRequest(api_url+'/statistics/most_expensive_games?top_amount=6') - create_multiple_boardgame_chart(most_expensive_games_statistic_data, 'Duurste spellen', 'owned_info.price_paid', '\u20AC ') + create_multiple_boardgame_chart(most_expensive_games_statistic_data, 'Duurste spellen', true, '\u20AC ') + + const cheapest_per_play_games_statistic_data = await makeRequest(api_url+'/statistics/cheapest_per_play?top_amount=6') + for (let boardgame_id_result in cheapest_per_play_games_statistic_data.result){ + cheapest_per_play_games_statistic_data.result[boardgame_id_result] = cheapest_per_play_games_statistic_data.result[boardgame_id_result].toFixed(2) + } + create_multiple_boardgame_chart(cheapest_per_play_games_statistic_data, 'Goedkoopste per sessie', true, '\u20AC ') const shelf_of_shame_statistic_data = await makeRequest(api_url + '/statistics/shelf_of_shame') - create_multiple_boardgame_chart(shelf_of_shame_statistic_data) + create_multiple_boardgame_chart(shelf_of_shame_statistic_data, 'Shelf of Shame', false) } \ No newline at end of file