1
1
function trackFinished ( exerciseId , solutionId , element ) {
2
2
element . addEventListener ( 'click' , ( ) => {
3
3
const assessment = document . querySelector ( 'input[name="assessment"]:checked' ) ;
4
- const assessmentValue = assessment . value ;
4
+ const assessmentValue = ( assessment !== null ) ? assessment . value : null ;
5
5
const xhr = new XMLHttpRequest ( ) ;
6
6
xhr . open ( 'POST' , `/checked/${ exerciseId } /${ solutionId } ` , true ) ;
7
7
xhr . setRequestHeader ( 'Content-Type' , 'application/json' ) ;
@@ -26,6 +26,23 @@ function trackFinished(exerciseId, solutionId, element) {
26
26
} ) ;
27
27
}
28
28
29
+ function trackAssessmentButtons ( ) {
30
+ assessmentGroup = document . getElementById ( 'solution-assessment' ) ;
31
+ assessmentElements = document . querySelectorAll ( 'input[name="assessment"]' ) ;
32
+ Array . from ( assessmentElements ) . forEach ( ( item ) => {
33
+ item . addEventListener ( 'click' , ( ) => {
34
+ if ( item . value == assessmentGroup . dataset . checkedid ) {
35
+ item . removeAttribute ( 'checked' ) ;
36
+ item . checked = false ;
37
+ assessmentGroup . dataset . checkedid = 'None' ;
38
+ } else {
39
+ assessmentGroup . dataset . checkedid = item . value ;
40
+ }
41
+ } , true ) ;
42
+ } ) ;
43
+ }
44
+
29
45
window . addEventListener ( 'lines-numbered' , ( ) => {
30
46
trackFinished ( window . exerciseId , window . solutionId , document . getElementById ( 'save-check' ) ) ;
47
+ trackAssessmentButtons ( ) ;
31
48
} ) ;
0 commit comments