SlimRunner

canvas-score-highlighter

Oct 13th, 2020 (edited)
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.     'use strict';
  3.     let myScore =  document.body.querySelectorAll(
  4.         '.student_assignment.assignment_graded.editable .assignment_score .score_holder .grade'
  5.     );
  6.    
  7.     let maxScore = document.body.querySelectorAll(
  8.         '.student_assignment.assignment_graded.editable .possible.points_possible'
  9.     );
  10.    
  11.     let len = myScore.length
  12.    
  13.     if (maxScore.length === len) {
  14.         let str1, str2;
  15.         let num1, num2;
  16.         let delta;
  17.        
  18.         for (let i = 0; i < len; ++i) {
  19.             str1 = myScore[i].innerText.trim().match(/\d+$/);
  20.             str2 = maxScore[i].innerText.trim().match(/\d+$/);
  21.             str1 = str1 !== null ? str1[0] : '';
  22.             str2 = str2 !== null ? str2[0] : '';
  23.             num1 = Number(str1);
  24.             num2 = Number(str2);
  25.            
  26.             if (num2 !== 0){
  27.                 delta = (num2 - num1) / num2;
  28.             } else {
  29.                 delta = 0;
  30.             }
  31.            
  32.             if (num1 < num2) {
  33.                 let color = `hsl(${60 - delta*60},100%,90%)`;
  34.                 seekParent(myScore[i], 3).style.backgroundColor = color;
  35.             } else if (num1 === num2) {
  36.                 let color = `hsl(120,100%,90%)`;
  37.                 seekParent(myScore[i], 3).style.backgroundColor = color;
  38.             } else {
  39.                 let color = `hsl(220,100%,90%)`;
  40.                 seekParent(myScore[i], 3).style.backgroundColor = color;
  41.             }
  42.         }
  43.     } else {
  44.         console.warn('The scores do not match');
  45.     }
  46.    
  47.     function seekParent(src, level) {
  48.         if (level <= 0) return src;
  49.        
  50.         for (var i = 0; i < level; ++i) {
  51.             if (src != null) {
  52.                 src = src.parentElement;
  53.             } else {
  54.                 return null;
  55.             }
  56.         }
  57.        
  58.         return src;
  59.     }
  60. }());
  61.  
Advertisement
Add Comment
Please, Sign In to add comment