File "std-reports.min.js"
Path: /ThinkIB/chem/js/std-access/std-reportsminjs
File size: 19.6 KB
MIME-type: text/plain
Charset: utf-8
var currentTaskId=0,visitsLog={},examLog={},threads={},avgMark="",myChart=!1,wrongAbs={},wrongRel={},correctAbs={},correctRel={},avgScores={},stdAnswers={},chartData={},currentTab="",customTooltip={title:"",body:"",left:0},moveToNextStd=!1,lastScrollTop=0,chartOptsLegend={display:!1},chartOptsTooltips={enabled:!0,callbacks:{title:function(){return"Students with correct answers"},label:function(context){var labelText=1===context.yLabel?" student":" students";return" "+context.yLabel+labelText}}};function closeReport(){$("#assignments-tab").addClass("active"),$("#gradebook").addClass("active"),$("ul.breadcrumb li.last-item span:nth-child(1)").addClass("active"),$("ul.breadcrumb li.last-item span.divider").hide(),$("ul.breadcrumb li.assignment").remove(),$("#feed-filters, #std-feeds-list").show("fast"),$("#individual-task-filters").show("fast"),$("#new-assignment").show(),$("#std-last-accessed").show(),$("#main-column .nav-pills").show(),$("#main-column .dedicated-tasks").show(),$(".alert-info.top").css("margin","1em 0"),$("#new-assignment").show("fast"),$(".task-filter-fields").show("fast"),$(".student-card").show("fast"),$("#main-column").css("cursor","inherit"),$("#reports-panel").removeClass("active"),$("#tasks-navigator").show(),$(".tab-content, .all-tasks-content").css({border:"none",padding:"0","box-shadow":"none"}),$("html, body").animate({scrollTop:lastScrollTop},500),moveToNextStd=!1}function showHideCustomTooltip(tooltip){var t=$("#chartjs-tooltip"),l=customTooltip.left;if(tooltip){t.addClass("active"),l+t.outerWidth()>$("#reports-panel").width()?(t.css("right","0"),t.css("left","auto")):(t.css("right","auto"),t.css("left",l+"px"));var content=["<h5>"+customTooltip.title+"</h5>",customTooltip.body,"<small><br /><em>Click bar for more info</small>"].join("");t.html(content)}else t.removeClass("active")}function loadReport(taskID,generalId,taskType){$("#feed-filters, #std-feeds-list").hide("fast"),$("#main-column .nav-pills").hide(),$("#main-column .dedicated-tasks").hide(),$(".alert-info.top").css("margin","1.5em 0 1em"),$("#new-assignment").hide("fast"),$(".task-filter-fields").hide("fast"),$("html, body").animate({scrollTop:0},500,"swing"),$("#main-column").css("cursor","wait"),$(".tab-content, .all-tasks-content").css({padding:"10px",border:"1px solid #ddd","box-shadow":"2px 2px 10px #ccc"});var data={action:"load-report",task:taskID,subject:generalId,sitename:$("#sitename").val(),ticket:$("#ticket").val()},url="/pages/std-access/std-assignments-report-actions.php",groupName=$("h1.breadcrumbed-title").text().trim(),groupId=$("#group-id").val(),taskManagerBC=$("#gradebook").is(":visible")?"":['<li class="assignment">','<a title="Return to assignments" class="return-to-assignments" href="#">Task manager</a>','<span class="divider">','<i class="fa fa-chevron-right"></i>',"</span>","</li>"].join("");$.post(url,data,(function(response){if(1==response.success){var assignmentsBreadcrumbs=['<li class="assignment">','<a title="Return to group settings" href="'+tibSitename+"/std-access/group/"+groupId+'">'+groupName+"</a>",'<span class="divider">','<i class="fa fa-chevron-right"></i>',"</span>","</li>",taskManagerBC,'<li class="assignment">','<span class="active">'+response.title+"</span>","</li>"].join("");if($.when($("#reports-panel").html(response.html)).then(initializeReportTablesorter($("#reports-panel #log-table"),taskType),$("ul.breadcrumb li.last-item span:nth-child(1)").remove(),$("ul.breadcrumb").append(assignmentsBreadcrumbs),$("ul.breadcrumb li.last-item span.divider").show()),"quiz"!=response.type&&"quiz-page"!=response.type||("true"==response["show-chart"]&&paintQuizChart(response.js),currentTaskId=taskID),visitsLog=response.log,avgMark=response.avg,examLog=response.exam_log,threads=response.threads,moveToNextStd=!0,$("#assignments-tab").removeClass("active"),$("#gradebook").removeClass("active"),$("#reports-panel").addClass("active"),$("#tasks-navigator").hide("fast"),$("#new-assignment").hide(),doLoadStudentReport){var studentId=studentReportData[1];$(".task-filter-fields").hide("fast"),$("#reports-panel").find('td > a[data-std-id="'+studentId+'"]').trigger("click"),doLoadStudentReport=!1,studentReportData=[]}"true"==response["show-chart"]?($("#chart-title").show(),$("#chart-container").show()):($("#chart-title").hide(),$("#chart-container").hide()),$(".task-instructions").length>0&&collapsibleTaskInstructions(),update_local_dates($("#main-column")),$("#main-column").css("cursor","inherit")}else closeReport(),alert(response.msg)}),"json")}function initializeReportTablesorter(table,taskType){var loadWidgets,tablesorterOptions={theme:"blue",widthFixed:!0,widgets:["filter"],dateFormat:"j M Y",sortList:[[0,0]],headers:{5:{sorter:!1},6:{sorter:!1}}};"written-answer"!==taskType&&"model-answer"!==taskType?($.when($.tablesorter.customPagerControls({table:table,pager:".pager-std-report",pageSize:".left a",currentPage:".right li",link:'<li><a href="#" data-page="{page}">{page}</a></li>',distanceSpacer:"",adjacentSpacer:""})).then(table.tablesorter(tablesorterOptions).tablesorterPager({container:".pager-std-report",cssPageSize:".pagesize",cssPageDisplay:".pagedisplay",page:0,size:25,output:"{startRow} - {endRow} of <strong>{filteredRows}</strong> student(s)"})),table.trigger("pageSize",25)):table.tablesorter(tablesorterOptions)}function paintQuizChart(data){wrongAbs=data.data_wrong,wrongRel=data.data_wrong_rel,correctAbs=data.data_correct,correctRel=data.data_correct_rel,avgScores=data.data_avg_scores,stdAnswers=data.std_answers;var chartData=data.json_chart;chartData.options.legend=chartOptsLegend,chartData.options.tooltips=chartOptsTooltips,chartData.options.hover=chartOptsHover,$.ajax({type:"GET",url:"/js/chart-js/chart-2.0-bundle.min-1.js",dataType:"script",async:!1}).done((function(){var ctx=$("#reports-panel").find("#chart");myChart=new Chart(ctx,chartData),ctx.mouseout((function(e){$("#reports-panel").find("#chartjs-tooltip.active").removeClass("active"),$("#reports-panel").removeClass("pointer")}))})),$("#reports-panel").on("click","#chart",(function(e){$(this).addClass("wait");var activePoints=myChart.getElementsAtEvent(e);null!=activePoints[0]&&loadQuestion(activePoints[0]._index)}))}function loadQuestion(index){var questionTable=null,url="/pages/std-access/std-assignments-report-actions.php",data={action:"question-details",ticket:$("#ticket").val(),subject:$("#general-id").val(),task:currentTaskId,question:index};$.post(url,data,(function(response){1==response.success?$.when($("#modal-question-details .modal-header h4").text("Question "+(index+1)),$("#modal-question-details .modal-body").html(response.html),$("#modal-question-details").css("top","10%"),$("#modal-question-details .modal-body").css("max-height",$(window).height()>1080?parseInt(.7*$(window).height())+"px":"600px"),addLettersBeforeOptions(!0),$("#modal-question-details .modal-body .q-answer").find("input:checked").closest("p, label").addClass("correct"),$("#modal-question-details .modal-body .q-answer").find("input:checked").closest("p, label").css("margin","5px 0"),$("#modal-question-details .modal-body .q-answer").find("input:checked").closest("span").css("padding","6px 12px 8px 30px"),$("#modal-question-details .modal-body").find("span.sep").last().remove(),$("#modal-question-details").modal("show"),questionTable=$("#modal-question-details .modal-body table#std-question-stats")).then(questionTable.tablesorter({theme:"blue",widgets:["filter"],widgetOptions:{filter_external:".filter-std-question",filter_columnFilters:!0,filter_hideFilters:!0,filter_reset:".reset-answer-filter"},headers:{1:{filter:!0,sorter:!1}},textExtraction:function(node){var val=$(node).attr("data-sort-value");return void 0!==val&&!1!==val?val:$(node).text()}}),$("#chart").removeClass("wait"),$("span.filter-std-question").on("click",(function(e){e.preventDefault();var filterLetter=$(this).data("filter");if($(this).hasClass("active"))return $(this).removeClass("active"),$("button.reset-answer-filter").trigger("click"),!1;var col,filter=[];return filter[$(this).data("column")]=filterLetter,questionTable.trigger("search",[filter]),$("span.filter-std-question").removeClass("active"),$(this).addClass("active"),!1})),MathLive.renderMathInDocument()):(alert(response.msg),$("#chart").removeClass("wait"))}),"json")}function showQuizHistory(link){var stdName=link.data("std-name"),stdEmail=link.data("std-email"),stdId=link.data("std-id"),taskStatus=link.data("status"),log=visitsLog[stdId],printExamLogs="",timed_task_info="";if(void 0===examLog.length){var examLogs=examLog[stdId];printExamLogs=loadExamTable(examLogs),timed_task_info=['<i class="fa fa-clock-o" title="Task in exam mode" style="margin: 0 5px;"></i>',"<em><small>("+examLogs.exam_time+" min)</small></em>"].join("")}$("#modal-std-quiz-title").html(stdName),stdResults=[];for(var log=log[0],q=0;q<log.results.length;q++){var marks=log.results[q].mark.split("/"),score=log.results[q].score,m=" "+log.results[q].mark;100==parseInt(score)?m='<i class="fa fa-check colored fixwidh"></i>':0==parseInt(score)?m='<i class="fa fa-remove colored fixwidh"></i>':1==parseInt(score)&&"1/1"==log.results[q].mark&&(m='<i class="fa fa-check colored fixwidh"></i>',score="100"),stdResults.push('<span title="'+log.results[q].mark+" ("+score+'%)"><small class="gray">'+(q+1)+"</small><br/>"+m+"</span>")}var h="";for(i=0;i<1;i++){var date=['<span class="localdate" data-time="'+log.time+'" data-format="j M y">',log.date,"</span>"].join("");h+=['<td style="text-align: center" class="question-results">',stdResults.join('</td><td style="text-align: center" class="question-results">'),"</td>"].join("")}log.time>log.deadline&&"forgiven"!==taskStatus&&(date+=' <span style="color: red">(late)</span>');var comments,comments_html=['<div class="teacher-comments" style="display: none;">',"<label>Add comment for student</label>",'<div class="row-fluid" style="margin-bottom: 20px;">','<textarea id="quiz-teacher-comments" class="span12" placeholder="Write comment here">',threads[stdId],"</textarea>",'<div class="text-right">','<button class="btn cancel" style="margin-right: 5px;">Cancel</button>','<button id="send-quiz-teacher-comments" class="btn bg-green">','<i class="fa fa-paper-plane"></i> Save and send',"</button>","</div>","</div>","</div>"].join("");$("#modal-std-quiz-details").html(['<h3 style="margin-top: 0;">','<i class="fa fa-puzzle-piece colored"></i> '+$("#task-title > span").text(),timed_task_info,"</h3>",'<div class="row-fluid">','<div class="span6">','<table class="table table-bordered" style="width: 80%;">',"<tr>",'<td><span class="gray">Submitted</span></td>',"<td>"+date+"</span>","</td>","</tr>","<tr>",'<td><span class="gray">Score</span></td>',"<td>",'<span class="score-editable">'+log.mark+" ("+log.score+"%)</span>",'<a href="#" id="change-quiz-score">','<i class="fa fa-edit fa-lg" title="Edit score" style="margin-left: 5px;"></i>',"</a>","</td>","</tr>","<tr>",'<td><span class="gray">Group avg</span></td>',"<td>"+avgMark+"</td>","</tr>","</table>","</div>",printExamLogs,"</div>",comments_html,'<h5 style="margin-top: 0;"><span class="gray">Results:</span></h5>'].join("")),log.results.length>0?($("#modal-std-quiz .modal-body table.table-results").show(),$("#modal-std-quiz .modal-body table.table-results > tbody > tr").html(h)):$("#modal-std-quiz .modal-body table.table-results").hide(),loadStudentReport(log.results),$("#modal-std-quiz").modal("show"),$("#modal-std-quiz").on("shown.bs.modal",(function(){$("#modal-std-quiz .q-answer").find("p").css("margin","5px 0"),$('input[name="std-id"]').val(stdId),$('input[name="task-id"]').val($("#task-id").val()),$('input[name="saved-score"]').val($("span.score-editable").text().replace(/\(.*\)/g,"").trim()),MathLive.renderMathInDocument(),getLengthTextInputs()}))}function loadExamTable(examLogs){var start=parseInt(examLogs.log.start),end=parseInt(examLogs.log.end),focusProblems,html;if(null!=examLogs.log.end){var seconds=end-start;seconds>60*examLogs.exam_time&&(seconds=60*examLogs.exam_time);var timeSpent=convertSecondsIntoMinutesAndSeconds(seconds)}else var timeSpent='<span style="color:red;">0</span>';if(examLogs.hasOwnProperty("focus")){var exitTime="",devtoolsTime="",lostFocus=[];examLogs.focus.forEach(element=>{if(element.hasOwnProperty("devtoolsOpened")){var formattedDate=convertUnixTimeToDate(element.devtoolsOpened);if(devtoolsTime===formattedDate)return;exitTime===formattedDate&&lostFocus.splice(-1,1),lostFocus.push(`${formattedDate} - <small class="gray"><i>Devtools opened</i></small><br>`),devtoolsTime=formattedDate}if(element.hasOwnProperty("exit")){var formattedDate=convertUnixTimeToDate(element.exit);if(exitTime===formattedDate)return;lostFocus.push(`${formattedDate} - <small class="gray"><i>Exited exam mode window </i></small><br>`),exitTime=formattedDate}}),lostFocus=lostFocus.join("")}return['<div class="span6">','<table class="table table-bordered" style="width: 80%;">',"<tr>",'<td><span class="gray">Time spent</span></td>',`<td>${timeSpent}</td>`,"</tr>",void 0===lostFocus?"":["<tr>",'<td class="gray">Broken conditions<br>',"</td>",`<td>${lostFocus}</td>`,"</tr>"].join(""),"</table>","</div>"].join("")}function filterTaskReportStdName(search){var filters=[],txt=search;if(""!=txt.trim()&&(filters[0]=txt),""==txt.trim())return $("#log-table").trigger("filterReset"),!1;$.tablesorter.setFilters($("#log-table"),filters,!0)}function convertSecondsIntoMinutesAndSeconds(seconds){var _hours=Math.floor(seconds/3600),_minutes=Math.ceil(seconds%3600/60),_seconds=seconds-3600*_hours-60*_minutes;return 0==_hours&&0==_minutes&&0==_seconds?$zero:0==_hours&&0==_minutes&&_seconds>0?_seconds+" sec":0==_hours&&1==_minutes?"1 min":0==_hours&&_minutes>1?_minutes+" min":_hours>0&&0==_minutes?_hours+" h":_hours>0&&_minutes>0?_hours+" h "+_minutes+" min":void 0}function convertUnixTimeToDate(unixTime){let date=new Date(1e3*unixTime),hours=date.getHours(),minutes="0"+date.getMinutes(),seconds="0"+date.getSeconds(),convertDataTime;return`${hours}:${minutes.substr(-2)}`}function loadStudentReport(results){$.post("/pages/std-access/std-assignments-report-actions.php",{action:"load-quiz",ticket:$("#ticket").val(),task_id:$("#task-id").val(),results:results},(function(response){"1"==response.success?($("#quiz-results").html(["<br>",'<div id="quiz-html" class="row-fluid">',response.html,"</div>"].join("")),numberQuizQuestions(),addLettersBeforeOptions()):alert(response.msg)}),"json")}function loadMsgThread(logId){var data={action:"get-msg-thread","std-task-id":logId,ticket:$("#ticket").val()},url="/pages/std-access/std-assignments-report-actions.php";$.post(url,data,(function(response){1==response.success?($("#modal-write-details div.message-thread").html(response["msg-thread-html"]),$("#modal-write-details div.reply-box").html(response["reply-box-html"])):alert(response.msg)}),"json")}chartOptsHover={mode:"index",intersect:!0,onHover:function(e){$("#reports-panel").css("cursor",e[0]?"pointer":"default")}},$(document).ajaxStop((function(e){if("undefined"!=typeof taskIdPassedByGetRequest&&null!=taskIdPassedByGetRequest)return $("#task-"+taskIdPassedByGetRequest+" a.load-report").trigger("click"),window.history.replaceState({},document.title,window.location.href.split("?")[0]),void(taskIdPassedByGetRequest=null)})),$(document).ready((function(){$(".task-container").on("click","table a.load-report",(function(e){e.preventDefault();var row=$(this).closest("tr");lastScrollTop=$(window).scrollTop(),loadReport(row.data("task"),$("#general-id").val(),row.data("type"))})),$("#reports-panel").on("click","a.show-quiz-history",(function(e){e.preventDefault(),$.when(showQuizHistory($(this))).then(update_local_dates($("#main-column")))})),$("#reports-panel").on("click","a.show-history",(function(e){e.preventDefault(),$.when(loadStudentReportMinimal($("#task-id").val(),$(this).data("std-id"),$("#general-id").val(),$("#task-type").val(),$(this).data("std-name"))).then(update_local_dates($("#main-column")))})),$("#reports-panel").on("click","a.show-review",(function(e){e.preventDefault();var stdId=$(this).data("std-id"),stdName=$(this).data("std-name"),taskType=$(this).closest("tr").data("task-type"),stdTaskId=visitsLog[stdId].std_task_id,log=visitsLog[stdId].log;$.when(resetModalReview()).then($.when(loadTaskReview(stdTaskId,log,"report",taskType,stdName)).then($(this).closest("tr").find("span.unread-review-msg").remove(),update_local_dates($("#main-column"))))})),$("#reports-panel").on("click",".return-to-assignments, .return",(function(e){e.preventDefault(),closeReport()})),$("ul.breadcrumb").on("click","li.assignment > button.return-to-assignments, li.assignment > a.return-to-assignments",(function(e){e.preventDefault(),closeReport()})),$("#reports-panel").on("click","#send-std-grades",(function(e){if(e.preventDefault(),$(this).hasClass("disabled"))return!1;var stdTaskIds=$(this).data("send");sendAllStudentGrades(stdTaskIds)})),$("#reports-panel").on("click","#forgive-all-tasks",(function(e){if(e.preventDefault(),$(this).hasClass("disabled"))return!1;if(confirm("You are about to mark all overdue tasks as not required.\n\nPlease confirm")){var stdTaskIds=$(this).data("forgive"),taskId=$("#task-id").val();forgiveAllOverdues(stdTaskIds,taskId)}})),$("#reports-panel").on("click","#toggle-task-report-info",(function(e){e.preventDefault(),$(this).closest("#reports-panel").find("div.alert-info").toggle("fast")})),$("#reports-panel").on("click","i.reset-std-task",(function(e){e.preventDefault();var group=void 0!==$("#group-id").val()?$("#group-id").val():null,task=$("#task-id").val(),type=$("#task-type").val(),student=$(this).data("std-id"),row=$(this).closest("tr");confirm("Are you sure that you want to reset this task?")&&resetStudentTask(student,task,type,row,group)})),$("#reports-panel").on("click",".overdue",(function(e){e.preventDefault();var current=$(this);current.parent(".menu").find(".float-menu").is(":hidden")?(current.closest("table").find(".float-menu").hide(),current.parent(".menu").find(".float-menu").show()):current.parent(".menu").find(".float-menu").hide()})),$("#reports-panel").on("click",".unflag-task",(function(e){e.preventDefault();var element=$(this).closest("td"),taskId=$("#task-id").val(),stdTaskId=$(this).parent("li").data("std-task-id");forgiveTask(stdTaskId,taskId,element)})),$("#reports-panel").on("click",".grade-as-zero",(function(e){e.preventDefault();var element=$(this).closest("td"),taskId=$("#task-id").val(),stdTaskId=$(this).parent("li").data("std-task-id");gradeTaskAsZero(stdTaskId,taskId,element)})),$('a[data-toggle="tab"]').on("shown.bs.tab",(function(){$("#new-assignment").show("fast")})),$('a[data-toggle="tab"]').on("click",(function(){var tab,openTask;"#awaiting-tab"==$(this).attr("href")&&$("#awaiting-tab .tasks-table-legend").find("i.fa-bar-chart").parent("li").find("em").text("Open task to grade")})),$("#reports-panel").on("keydown","input.filter-std-name",(function(e){var search;13===e.which&&(e.preventDefault(),filterTaskReportStdName($(this).val()))})),$("#reports-panel").on("click","button.search-std-name",(function(e){var search;e.preventDefault(),filterTaskReportStdName($("input.filter-std-name").val())})),$("#modal-show-students, #reports-panel").on("click","a.goto-student-page",(function(e){e.preventDefault();var url="/"+$("#sitename").val()+"/std-access/student/"+$(this).data("student");window.location=url})),quizAnswer(),showHideWrittenTaskModal($("#modal-write-details")),selectScoreType($("#modal-select-score-type")),enableDisableSaveBtn($("#modal-write-details")),saveTaskGradesComments($("#modal-write-save")),sendTaskGradesComments($("#modal-write-send")),savePrivateNotes($("#modal-write-save-private-notes")),addComments($("#modal-write-details")),initNextTaskListener($("#modal-write-details"),"report"),initTurnOnOffComments($("#modal-write-details")),deleteThread(),editQuizScore($("#modal-std-quiz"))})),$(document).ajaxStart((function(){$("html, body").css("cursor","wait")})).ajaxStop((function(){$("html, body").css("cursor","auto")}));