Advertisement
Guest User

gradeAverage.js

a guest
Sep 12th, 2018
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * @Author: Toke Raabjerg <TokeDK>
  3.  * @Date:   29-Aug-2018
  4.  * @Email:  tokermc@hotmail.co
  5.  * @Project: Lectio Expert
  6.  * @Last modified by:   TokeDK
  7.  * @Last modified time: 09-Sep-2018
  8.  */
  9. /*----------------------------------------------------------------*/
  10. //                             CHECKS                             //
  11. /*----------------------------------------------------------------*/
  12.  
  13. chrome.storage.local.get([
  14.   'Lectio_gradeAverage'
  15. ], function (result) {
  16.   if (result.Lectio_gradeAverage == true || result.Lectio_gradeAverage == undefined) {
  17.  
  18.       run();
  19.  
  20.       } else {
  21.           var targetx = document.getElementsByTagName('tbody')[0];
  22.           var trx = document.createElement('tr');
  23.           trx.style = "text-align:center; font-weight:600;";
  24.           trx.id = "average";
  25.           trx.innerHTML = "<tr><td>Husk du kan benytte gennemsnitsberegneren! Aktiver under indstillinger.</td>";
  26.           targetx.appendChild(trx);
  27.     }
  28.   }
  29. );
  30.  
  31. /*----------------------------------------------------------------*/
  32. //                         DATA STRUCTURE                         //
  33. /*----------------------------------------------------------------*/
  34.  
  35. function run () {
  36. var times2 = 0; var times3 = 0; var times4 = 0; var times5 = 0; var times6 = 0;
  37. var calcAverage2 = 0; var calcAverage3 = 0; var calcAverage4 = 0; var calcAverage5 = 0; var calcAverage6 = 0;
  38. var tables = 0;
  39.  
  40. function calculateData (tr, div) {
  41.   var grade = div.textContent;
  42.   var title = div.title;
  43.   var weightStr = title.split(":").pop();
  44.   var weight = parseFloat(weightStr.replace(',','.').replace(' ',''));
  45.   var average = grade * weight;
  46.  
  47.   if (tr == 2) {
  48.     times2 = times2 + 1;
  49.     calcAverage2 = calcAverage2 + average;
  50.   }
  51.       if (tr == 3) {
  52.         times3 = times3 + 1;
  53.         calcAverage3 = calcAverage3 + average;
  54.       }
  55.           if (tr == 4) {
  56.             times4 = times4 + 1;
  57.             calcAverage4 = calcAverage4 + average;
  58.           }
  59.               if (tr == 5) {
  60.                 times5 = times5 + 1;
  61.                 calcAverage5 = calcAverage5 + average;
  62.               }
  63.                   if (tr == 6) {
  64.                     times6 = times6 + 1;
  65.                     calcAverage6 = calcAverage6 + average;
  66.                   }
  67. }
  68.  
  69. /*----------------------------------------------------------------*/
  70. //                               LOOP                             //
  71. /*----------------------------------------------------------------*/
  72.  
  73.   document.getElementsByTagName("tbody")[0].id = "karakter_tabel";
  74.  
  75.   var getChildren = document.getElementById('karakter_tabel').childElementCount;
  76.   var GetinnerHTML = document.getElementById('karakter_tabel');
  77.   countChildren = getChildren - 1;
  78.  
  79.   for(var i = 0; i < countChildren; i++)
  80.   {
  81.     //if (i != 0) {
  82.       var countTRchildren = document.getElementById('karakter_tabel').getElementsByTagName('tr')[i].childElementCount;
  83.         for(var tr = 0; tr < countTRchildren; tr++)
  84.           {
  85.             var inner = GetinnerHTML.rows[i].cells[tr];
  86.             div = inner.querySelector('div');
  87.             if (div != null) {calculateData (tr, div);}
  88.           //}
  89.     }
  90.   }
  91.  
  92.  
  93. /*----------------------------------------------------------------*/
  94. //                     DOM & DATA STRUCTURE                       //
  95. /*----------------------------------------------------------------*/
  96.  
  97.   if (countChildren > 2) {
  98.     var target = document.getElementById('karakter_tabel');
  99.       var trd = document.createElement('tr');
  100.       trd.style = "text-align:center; font-weight:600;";
  101.       trd.id = "average";
  102.       trd.innerHTML = "<tr><td></td><td>Gennemsnit (Er dette forkert? <a href='https://goo.gl/forms/7UaKrXlbDX3cCl1U2' target='_blank'>Klik her</a>)</td>";//<td><div>" + average2 + "</div></td><td><div>" + average3 + "</td></div><td><div>" + average4 +"</div></td><td><div>" + average5 + "</td></div></tr>";
  103.       target.appendChild(trd);
  104.  
  105.  
  106.     var averagex2 = calcAverage2 / times2; if(isNaN(averagex2)) {averagex2 = 0;}  else {
  107.       var average2 = averagex2.toFixed(2);
  108.       var two = document.createElement('td'); two.innerHTML = "<div>"+ average2 + "</div>";
  109.       document.getElementById('average').appendChild(two);
  110.     }
  111.  
  112.     var averagex3 = calcAverage3 / times3; if(isNaN(averagex3)) {averagex3 = 0;}  else {
  113.       var average3 = averagex3.toFixed(2);
  114.       var three = document.createElement('td'); three.innerHTML = "<div>"+ average3 + "</div>";
  115.       document.getElementById('average').appendChild(three);
  116.     }
  117.  
  118.     var averagex4 = calcAverage4 / times4; if(isNaN(averagex4)) {averagex4 = 0;}  else {
  119.       var average4 = averagex4.toFixed(2);
  120.       var four = document.createElement('td'); four.innerHTML = "<div>"+ average4 + "</div>";
  121.       document.getElementById('average').appendChild(four);
  122.     }
  123.  
  124.     var averagex5 = calcAverage5 / times5; if(isNaN(averagex5)) {averagex5 = 0;}  else {
  125.       var average5 = averagex5.toFixed(2);
  126.       var five = document.createElement('td'); five.innerHTML = "<div>"+ average5 + "</div>";
  127.       document.getElementById('average').appendChild(five);
  128.     }
  129.  
  130.     var averagex6 = calcAverage6 / times6; if(isNaN(averagex6)) {averagex6 = 0;} else {
  131.       var average6 = averagex6.toFixed(2);
  132.       var six = document.createElement('td'); six.innerHTML = "<div>"+ average6 + "</div>";
  133.       document.getElementById('average').appendChild(six);
  134.     }
  135.   }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement