From f13294be8bde7eef9607dbb13edd9156f3e5c300 Mon Sep 17 00:00:00 2001 From: tonyford <tonyford@strategy-investor.de> Date: Sun, 6 Nov 2022 11:36:15 +0100 Subject: [PATCH] bug fixes, runtime improvements --- html/_layouts/default.php | 50 ++++++++-------- html/assets/css/custom.scss | 7 ++- html/assets/js/script.js | 110 ++++++++++++++++++++++-------------- 3 files changed, 96 insertions(+), 71 deletions(-) diff --git a/html/_layouts/default.php b/html/_layouts/default.php index 32f38cd..58a76b8 100644 --- a/html/_layouts/default.php +++ b/html/_layouts/default.php @@ -69,7 +69,7 @@ if( !empty($csv) ){ <link rel="stylesheet" href="assets/css/custom.css?8"> <script src="assets/js/jquery.min.js"></script> <script src="assets/js/utils.js"></script> - <script src="assets/js/script.js?3"></script> + <script src="assets/js/script.js"></script> </head> <body> @@ -102,7 +102,6 @@ if( !empty($csv) ){ } var SPIELER=json_load('functions/get_spieler.php'); var UNKNOWN=json_load('functions/get_unknown.php'); - console.log( UNKNOWN ); if( UNKNOWN.length == 0 ) UNKNOWN=[[''],['']]; UNKNOWN = UNKNOWN.reduce((a,b) => (a.concat(b))); @@ -166,10 +165,8 @@ if( !empty($csv) ){ if( check ){ $(document).ready( function(){ - calculatePartien('{{ page.saison }}', '{{ page.date }}'); - calculatePunktestand('{{ page.saison }}', '7'); - //calculatePunktestand( 0, '7'); + calculatePunktestand('{{ page.saison }}', '7'); // ######## check this calculateTabelle('{{ page.saison }}','T'); calculateTabelle('{{ page.saison }}','A'); calculateTabelle('{{ page.saison }}','Z'); @@ -256,25 +253,27 @@ if( !empty($csv) ){ var div = document.createElement('div'); div.classList='face'; - var img = document.createElement('img'); - img.src='images/facegenerator/fg_head_' + v.face.split(/_/g)[0] + '.png'; - $(div).append(img); + if( v.face.split(/_/g).length == 5 ){ + var img = document.createElement('img'); + img.src='images/facegenerator/fg_head_' + v.face.split(/_/g)[0] + '.png'; + $(div).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_hair_' + v.face.split(/_/g)[1] + '.png'; - $(div).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_hair_' + v.face.split(/_/g)[1] + '.png'; + $(div).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_beard_' + v.face.split(/_/g)[2] + '.png'; - $(div).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_beard_' + v.face.split(/_/g)[2] + '.png'; + $(div).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_mouth_' + v.face.split(/_/g)[3] + '.png'; - $(div).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_mouth_' + v.face.split(/_/g)[3] + '.png'; + $(div).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_eyes_' + v.face.split(/_/g)[4] + '.png'; - $(div).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_eyes_' + v.face.split(/_/g)[4] + '.png'; + $(div).append(img); + } $(td).append(div); $(tr).append(td); @@ -331,9 +330,6 @@ if( !empty($csv) ){ alert( 'Error: Nicht alle Teams der Startliste sind in der DB vorhanden!'); } - - - </script> <form method="POST"> @@ -366,7 +362,7 @@ if( !empty($csv) ){ <th>Team</th> <th><i class="fas fa-trophy" title="Pokalgewinn"></i></th> <th><i class="fas fa-crown" title="Meistertitel"></i></th> - <th><i class="fas fa-star" title="knapp gescheitert"></i></th> + <th><i class="fas fa-star" title="im Finale gescheitert"></i></th> <th title="Siege">S</th> <th title="Unentschieden">U</th> <th title="Niederlagen">N</th> @@ -429,6 +425,8 @@ if( !empty($csv) ){ <table id="tabelle_team" class="tabelle d-none" ondblclick="backToActiveTable()"> <thead> <tr> + <th></th> + <th>Nt</th> <th>Spieler</th> <th>Alter</th> <th>S/T/A</th> @@ -474,10 +472,6 @@ if( !empty($csv) ){ </table> </div> - - - - </body> </html> diff --git a/html/assets/css/custom.scss b/html/assets/css/custom.scss index 350dea5..784671c 100644 --- a/html/assets/css/custom.scss +++ b/html/assets/css/custom.scss @@ -259,7 +259,11 @@ tr.stats { #tabelle_team { tr { td,th { - &:nth-child(1) { width: 350px; text-align: left; } + + &:nth-child(1) { width: 20px; } + &:nth-child(2) { width: 30px; } + &:nth-child(3) { width: 270px; } + /* &:nth-child(4) { width: 50px; } */ } } } @@ -281,6 +285,7 @@ td.n { color: firebrick; } .fa-meh-rolling-eyes { color: #a42; } .fa-crown { color: goldenrod; } .fa-trophy { color: goldenrod; } +.fa-skull { color: #a42; } #saisons { diff --git a/html/assets/js/script.js b/html/assets/js/script.js index 54fc37a..59decdc 100644 --- a/html/assets/js/script.js +++ b/html/assets/js/script.js @@ -433,6 +433,7 @@ function calculatePunktestand(saison,runde,show=true){ $(tabelle).html(''); var TabelleLast= ( saison > 26 ) ? calculateAllPunktestand()[saison-27] : []; + var M = calculateMeistertitel(); Tabelle.forEach( function(v,i){ var border=SAISON_SETTINGS[saison - 26] == i+1 ? 'dashed ' : ''; @@ -447,8 +448,8 @@ function calculatePunktestand(saison,runde,show=true){ var S=t.reduce( (a,b) => a+b ); var pokal=ERGEBNISSE.filter((a) => ( a.runde=='F' && ( parseInt(a.TH) > parseInt(a.TA) && a.H.toLowerCase() == v.nt.toLowerCase() || parseInt(a.TH) < parseInt(a.TA) && a.A.toLowerCase() == v.nt.toLowerCase() ) ) ).length; - var meistertitel=calculateAllPunktestand().filter((a) => ( a[0].nt == v.nt.toLowerCase() ) ).length; - var finalist=( calculateAllPunktestand().filter((a) => ( a[1].nt == v.nt.toLowerCase() ) ).length + ERGEBNISSE.filter((a) => ( a.runde=='F' && ( a.H.toLowerCase() == v.nt.toLowerCase() && a.TH < a.TA || a.A.toLowerCase() == v.nt.toLowerCase() && a.TH > a.TA ) ) ).length ); + var finalist=ERGEBNISSE.filter((a) => ( a.runde=='F' && ( parseInt(a.TH) > parseInt(a.TA) && a.H.toLowerCase() == v.nt.toLowerCase() || parseInt(a.TH) > parseInt(a.TA) && a.A.toLowerCase() == v.nt.toLowerCase() ) ) ).length; + var meistertitel=M[v.nt.toLowerCase()] ? M[v.nt.toLowerCase()] : 0; tmp+='<td class="'+border+'">'+S+'</td>'; tmp+='<td class="'+border+'"><img class="flags" src="./images/flags/'+(( v.flag ) ? v.flag : v.nt.toLowerCase())+'.svg"> <a href="javascript:calculateTeam('+((saison == 0 && false) ? SAISON_NOW : saison)+',\''+v.nt+'\')">'+v.name.replace(/\(NL\)/g,'<sup>'+v.nt.toUpperCase()+'</sup></a>')+' <a href="'+v.link+'" target="ultrasoccer"><i class="fas fa-link"></i></a>'+(( trophy.toLowerCase() == v.nt.toLowerCase() ) ? ' <i class="fas fa-trophy"></i>' : '') + @@ -477,6 +478,8 @@ function calculateTabelle(saison,param){ function(v,i){ var team=TEAMS.filter( (a) => ( a.nt == v[1].nt ) ); + var tr=document.createElement('tr'); + if( team.length == 0 ){ var flag = document.createElement('img'); flag.classList='flags'; @@ -492,25 +495,29 @@ function calculateTabelle(saison,param){ var face = document.createElement('td'); face.classList='face'; - var img = document.createElement('img'); - img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png'; - $(face).append(img); + if( v[1].face.split(/_/g).length == 5 ){ + var img = document.createElement('img'); + img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png'; + $(face).append(img); + + var img = document.createElement('img'); + img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png'; + $(face).append(img); + + var img = document.createElement('img'); + img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png'; + $(face).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png'; - $(face).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png'; + $(face).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png'; - $(face).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png'; + $(face).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png'; - $(face).append(img); + } - var img = document.createElement('img'); - img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png'; - $(face).append(img); var flag = document.createElement('img'); flag.classList='flags'; @@ -535,8 +542,6 @@ function calculateTabelle(saison,param){ var attr=document.createElement('span'); attr.innerHTML=((v[1].attr != undefined) ? v[1].attr : '').split(' ').map( (a) => ( a != '' && a != 'fas' ? '<i class="fas '+a+'"></i>' : '' ) ).join(''); - var tr=document.createElement('tr'); - var td=document.createElement('td'); td.innerText=(i+1); tr.append(td); @@ -581,8 +586,10 @@ function calculateTeam(saison,nt){ var n=SPIELER.filter( (a) => ( a.nt == nt ) ).map( (b) => ( [ b.id, STATISTIK[b.id] ] ) ).filter( (c) => ( c[1] !== undefined ) ).map( function(v,i){ - console.log(v,i); var team=TEAMS.filter( (a) => ( a.nt == v[1].nt ) ); + + var tr=document.createElement('tr'); + if( team.length == 0 ){ var flag = document.createElement('img'); flag.classList='flags'; @@ -595,28 +602,34 @@ function calculateTeam(saison,nt){ } else { - var face = document.createElement('span'); + var face = document.createElement('td'); face.classList='face'; - var img = document.createElement('img'); - img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png'; - $(face).append(img); + if( v[1].face.split(/_/g).length == 5 ){ + var img = document.createElement('img'); + img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png'; + $(face).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png'; - $(face).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png'; + $(face).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png'; - $(face).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png'; + $(face).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png'; - $(face).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png'; + $(face).append(img); - var img = document.createElement('img'); - img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png'; - $(face).append(img); + var img = document.createElement('img'); + img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png'; + $(face).append(img); + } else { + face.innerHTML = ' '; + } + + tr.append(face); var flag = document.createElement('img'); flag.classList='flags'; @@ -641,11 +654,11 @@ function calculateTeam(saison,nt){ var attr=document.createElement('span'); attr.innerHTML=((v[1].attr != undefined) ? v[1].attr : '').split(' ').map( (a) => ( a != '' && a != 'fas' ? '<i class="fas '+a+'"></i>' : '' ) ).join(''); - var tr=document.createElement('tr'); - var td=document.createElement('td'); - td.append(face); td.append(flag); + tr.append(td); + + var td=document.createElement('td'); td.append(attr); var a_=document.createElement('a'); a_.href='https://ultrasoccer.de/playerprofile/?id='+v[0]; @@ -736,7 +749,6 @@ var R=undefined; function showLastResults(H,A){ $('#lastresults').toggleClass('d-none',false); R=ERGEBNISSE.filter((a) => ( a.H==H && a.A==A || a.A==H && a.H==A) ).slice(-5); - console.log(R) $('#lastresults table tbody').html(R.map( function(c){ var teamH=TEAMS.filter( (a) => ( a.nt == c.H ) ); @@ -793,8 +805,6 @@ function showLastResults(H,A){ </tr>' ); - console.log( 'III',d ) - } var ignore_hidelastresults=false; @@ -819,3 +829,19 @@ function calculateAllPunktestand(){ } return T; } + + +function calculateMeistertitel(){ + + var M = {}; + var T = calculateAllPunktestand(); + T.forEach( + function(v,i){ + if( M[ v[0].nt ] == undefined ) M[ v[0].nt ] = 0; + M[ v[0].nt ]++; + } + ); + + return M; + +} -- GitLab