3333
3434 var courses = [ ] ;
3535 var segmentsArray = [ ] ;
36+ var courseSegmentsArray = [ ] ;
3637 var questionsArray = [ ] ;
3738 let currentAnswerMode ;
3839 let currentSetType = "brackets" ;
@@ -498,9 +499,9 @@ try {
498499 document . querySelector ( '.alert' ) . setAttribute ( 'hidden' , '' ) ;
499500 }
500501 }
501- segmentsArray = segmentsArray . filter ( s => String ( s . course ) === String ( course . id ) ) ;
502+ courseSegmentsArray = segmentsArray . filter ( s => String ( s . course ) === String ( course . id ) ) ;
502503 segments . innerHTML = '' ;
503- segmentsArray . sort ( ( a , b ) => a . order - b . order ) . forEach ( segment => {
504+ courseSegmentsArray . sort ( ( a , b ) => a . order - b . order ) . forEach ( segment => {
504505 const option = document . createElement ( 'option' ) ;
505506 option . value = segment . id ;
506507 var questionStatuses = [ ] ;
@@ -526,14 +527,14 @@ try {
526527 } ) ;
527528 const today = new Date ( ) ;
528529 const todayString = today . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' } ) ;
529- const sortedSegments = segmentsArray . filter ( s => s . due ) . sort ( ( a , b ) => new Date ( `${ a . due } T00:00:00` ) - new Date ( `${ b . due } T00:00:00` ) ) ;
530+ const sortedSegments = courseSegmentsArray . filter ( s => s . due ) . sort ( ( a , b ) => new Date ( `${ a . due } T00:00:00` ) - new Date ( `${ b . due } T00:00:00` ) ) ;
530531 segments . value = sortedSegments . find ( s => {
531532 const dueDate = new Date ( `${ s . due } T00:00:00` ) ;
532533 return dueDate . toLocaleDateString ( 'en-US' , { weekday : 'short' , year : 'numeric' , month : 'short' , day : 'numeric' } ) === todayString && today . getTime ( ) <= periodRange [ 1 ] ;
533534 } ) ?. id || sortedSegments . find ( s => {
534535 const dueDate = new Date ( `${ s . due } T00:00:00` ) ;
535536 return dueDate . getTime ( ) > periodRange [ 1 ] ;
536- } ) ?. id || sortedSegments [ 0 ] ?. id || segmentsArray [ 0 ] ?. id ;
537+ } ) ?. id || sortedSegments [ 0 ] ?. id || courseSegmentsArray [ 0 ] ?. id ;
537538 segments . removeEventListener ( "change" , updateSegment ) ;
538539 segments . addEventListener ( "change" , updateSegment ) ;
539540 // Update history feed
@@ -559,7 +560,7 @@ try {
559560 }
560561
561562 async function updateSegment ( event , sameSegment = false ) {
562- const selectedSegment = segmentsArray . find ( s => String ( s . id ) === String ( segments . value ) ) ;
563+ const selectedSegment = courseSegmentsArray . find ( s => String ( s . id ) === String ( segments . value ) ) ;
563564 const selectedQuestionOption = questions . querySelector ( 'option:checked' ) ;
564565 questions . innerHTML = '' ;
565566 if ( ! selectedSegment ) return updateQuestion ( ) ;
@@ -734,11 +735,11 @@ try {
734735 document . getElementById ( "segments-completed" ) . classList . remove ( 'incomplete' ) ;
735736 document . getElementById ( "segments-completed" ) . classList . remove ( 'complete' ) ;
736737 document . getElementById ( "segments-completed" ) . classList . remove ( 'mastery' ) ;
737- if ( segmentsArray && segmentsArray . length > 0 ) {
738+ if ( courseSegmentsArray && courseSegmentsArray . length > 0 ) {
738739 var anyQuestionsInCourse = false ;
739740 const masterySegments = [ ] ;
740741 const completedSegments = [ ] ;
741- segmentsArray . forEach ( segment => {
742+ courseSegmentsArray . forEach ( segment => {
742743 const questionIds = JSON . parse ( segment . question_ids || '[]' ) ;
743744 const segmentQuestions = questionIds . map ( qi => questionsArray . find ( q => String ( q . id ) === String ( qi . id ) ) ) . filter ( q => q && ! questionsArray . find ( q2 => String ( q2 . stem ) === String ( q . id ) ) ) ;
744745 const totalQuestions = segmentQuestions . length ;
@@ -1134,8 +1135,9 @@ try {
11341135 button . classList = ( r . status === "Incorrect" ) ? 'incorrect' : ( r . status === "Correct" ) ? 'correct' : '' ;
11351136 if ( r . flagged ) button . classList . add ( 'flagged' ) ;
11361137 if ( r . review_later ) button . classList . add ( 'reviewLater' ) ;
1137- var response = `<b>Status:</b> ${ r . status . includes ( 'Unknown' ) ? r . status . split ( 'Unknown, ' ) [ 1 ] : r . status } ${ ( r . reason ) ? `</p>\n<p><b>Response:</b> ${ r . reason } <br>` : '' } </p><div data-modal-actions style="margin-top: -0.25rem;"><button data-flag-response><i class="bi bi-flag-fill"></i> ${ r . flagged ? 'Unflag Response' : 'Report Error' } </button><button data-review-later-response><i class="bi ${ r . review_later ? 'bi-bookmark-check-fill' : 'bi-bookmark-plus-fill' } "></i> ${ r . review_later ? 'Mark Reviewed' : 'Review Later' } </button></div>` ;
1138- var segmentNumber = segmentsArray . find ( s => ( String ( s . id ) === String ( r . segment ) ) && ( courses . find ( c => JSON . parse ( c . periods ) . includes ( Number ( String ( r . seatCode ) . slice ( 0 , 1 ) ) ) ) ? ( String ( s . course ) === String ( courses . find ( c => JSON . parse ( c . periods ) . includes ( Number ( String ( r . seatCode ) . slice ( 0 , 1 ) ) ) ) . id ) ) : true ) ) ? ( segmentsArray . find ( s => ( String ( s . id ) === String ( r . segment ) ) && ( courses . find ( c => JSON . parse ( c . periods ) . includes ( Number ( String ( r . seatCode ) . slice ( 0 , 1 ) ) ) ) ? ( String ( s . course ) === String ( courses . find ( c => JSON . parse ( c . periods ) . includes ( Number ( String ( r . seatCode ) . slice ( 0 , 1 ) ) ) ) . id ) ) : true ) ) . number || r . segment ) : ( segmentsArray . find ( s => ( courses . find ( c => JSON . parse ( c . periods ) . includes ( Number ( String ( r . seatCode ) . slice ( 0 , 1 ) ) ) ) ? ( String ( s . course ) === String ( courses . find ( c => JSON . parse ( c . periods ) . includes ( Number ( String ( r . seatCode ) . slice ( 0 , 1 ) ) ) ) . id ) ) : false ) && JSON . parse ( s . question_ids || [ ] ) ?. find ( q => String ( q . id ) === String ( r . question_id ) ) ) ?. number || null ) ;
1138+ var response = `<b>Status:</b> ${ r . status . includes ( 'Unknown' ) ? r . status . split ( 'Unknown, ' ) [ 1 ] : r . status } ${ ( r . reason ) ? `</p>\n<p><b>Response:</b> ${ r . reason } <br>` : '' } </p>${ ( String ( r . seatCode ) === String ( storage . get ( "code" ) ) ) ? `<div data-modal-actions style="margin-top: -0.25rem;"><button data-flag-response><i class="bi bi-flag-fill"></i> ${ r . flagged ? 'Unflag Response' : 'Report Error' } </button><button data-review-later-response><i class="bi ${ r . review_later ? 'bi-bookmark-check-fill' : 'bi-bookmark-plus-fill' } "></i> ${ r . review_later ? 'Mark Reviewed' : 'Review Later' } </button></div>` : '' } ` ;
1139+ console . log ( segmentsArray , r . segment , segmentsArray . find ( s => String ( s . id ) === String ( r . segment ) ) )
1140+ var segmentNumber = segmentsArray . find ( s => String ( s . id ) === String ( r . segment ) ) ?. number || segmentsArray . find ( s => JSON . parse ( s . question_ids || [ ] ) ?. find ( q => String ( q . id ) === String ( r . question_id ) ) ) ?. number || null ;
11391141 var questionNumber = JSON . parse ( segmentsArray . find ( s => String ( s . id ) === String ( r . segment ) ) ?. question_ids || '[]' ) . find ( q => String ( q . id ) === String ( r . question_id ) ) ?. name || questionsArray . find ( question => String ( question . id ) === String ( r . question_id ) ) . number ;
11401142 switch ( r . mode ) {
11411143 case 'latex' :
0 commit comments