From 1eff5a5bc92c70153b8c2b7555a45429c77c5307 Mon Sep 17 00:00:00 2001 From: Eric Villard Date: Thu, 29 Sep 2016 10:29:25 +0200 Subject: [PATCH 01/39] consolidate inclusion paths under ./sdk Signed-off-by: Eric Villard --- sdk/api.class.php | 12 ++++++------ sdk/assignmentsoap.class.php | 10 +++++----- sdk/classsoap.class.php | 8 ++++---- sdk/log.class.php | 2 +- sdk/lti.class.php | 6 +++--- sdk/membershipsoap.class.php | 8 ++++---- sdk/response.class.php | 2 +- sdk/soap.class.php | 4 ++-- sdk/submissionsoap.class.php | 8 ++++---- sdk/tiiassignment.class.php | 2 +- sdk/tiiclass.class.php | 2 +- sdk/tiilti.class.php | 2 +- sdk/tiisubmission.class.php | 2 +- sdk/tiiuser.class.php | 4 ++-- sdk/usersoap.class.php | 10 +++++----- 15 files changed, 41 insertions(+), 41 deletions(-) diff --git a/sdk/api.class.php b/sdk/api.class.php index ad5d373e..67df4a0c 100644 --- a/sdk/api.class.php +++ b/sdk/api.class.php @@ -1,11 +1,11 @@ Date: Thu, 24 Nov 2016 19:20:36 +0100 Subject: [PATCH 02/39] fix missing slashes in sdk inclusion paths Signed-off-by: Eric Villard --- sdk/api.class.php | 12 ++++++------ sdk/assignmentsoap.class.php | 10 +++++----- sdk/classsoap.class.php | 8 ++++---- sdk/log.class.php | 2 +- sdk/lti.class.php | 6 +++--- sdk/membershipsoap.class.php | 8 ++++---- sdk/response.class.php | 2 +- sdk/soap.class.php | 4 ++-- sdk/submissionsoap.class.php | 8 ++++---- sdk/tiiassignment.class.php | 2 +- sdk/tiiclass.class.php | 2 +- sdk/tiilti.class.php | 2 +- sdk/tiisubmission.class.php | 2 +- sdk/tiiuser.class.php | 4 ++-- sdk/usersoap.class.php | 10 +++++----- 15 files changed, 41 insertions(+), 41 deletions(-) diff --git a/sdk/api.class.php b/sdk/api.class.php index 67df4a0c..a3111831 100644 --- a/sdk/api.class.php +++ b/sdk/api.class.php @@ -1,11 +1,11 @@ Date: Tue, 31 May 2022 09:23:32 +0100 Subject: [PATCH 03/39] Fix undefined coursetype --- turnitintooltwo_assignment.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/turnitintooltwo_assignment.class.php b/turnitintooltwo_assignment.class.php index 9d6a0280..bbfe3ba7 100755 --- a/turnitintooltwo_assignment.class.php +++ b/turnitintooltwo_assignment.class.php @@ -377,7 +377,7 @@ public function create_tii_course($course, $ownerid) { } turnitintooltwo_activitylog("Class created - ".$turnitincourse->courseid." | ".$turnitincourse->turnitin_cid. - " | ".$course->fullname . " (Moodle ".$coursetype.")" , "REQUEST"); + " | ".$course->fullname . " (Moodle TT)" , "REQUEST"); return $turnitincourse; } catch (Exception $e) { @@ -2022,4 +2022,4 @@ public function unlink_assignment() { $DB->update_record("turnitintooltwo_parts", $tiipart); } } -} \ No newline at end of file +} From 7992bc4777b538c5be83f35b4386d5a9255b2afe Mon Sep 17 00:00:00 2001 From: Glenn Poder Date: Fri, 24 Mar 2023 14:46:27 +1000 Subject: [PATCH 04/39] Fixes Error when trying to restore #634 --- turnitintooltwo_assignment.class.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/turnitintooltwo_assignment.class.php b/turnitintooltwo_assignment.class.php index 9d6a0280..a2565732 100755 --- a/turnitintooltwo_assignment.class.php +++ b/turnitintooltwo_assignment.class.php @@ -376,6 +376,8 @@ public function create_tii_course($course, $ownerid) { $turnitincourse->id = $insertid; } + $coursetype = "TT"; + $workflowcontext = "site"; turnitintooltwo_activitylog("Class created - ".$turnitincourse->courseid." | ".$turnitincourse->turnitin_cid. " | ".$course->fullname . " (Moodle ".$coursetype.")" , "REQUEST"); @@ -410,6 +412,11 @@ public function edit_tii_course($course, $coursetype = "TT") { // If a course end date is specified in Moodle then we set this in Turnitin with an additional month to // account for the Turnitin viewer becoming read-only once the class end date passes. if (!empty($course->enddate)) { + // The course end date must not be before the start date. + // Change the course end date if it is set earlier than today. + if ($course->enddate < strtotime('today')) { + $course->enddate = strtotime('today'); + } $enddate = strtotime('+1 month', $course->enddate); $class->setEndDate(gmdate("Y-m-d\TH:i:s\Z", $enddate)); } From 73f9d6142c94b8dd5101bd50859fa1e4b12c0114 Mon Sep 17 00:00:00 2001 From: Matthias Opitz Date: Mon, 27 Nov 2023 16:18:56 +0000 Subject: [PATCH 05/39] fixed optional parameter before required parameter issue with show_form() --- mod_form.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod_form.php b/mod_form.php index 6f861f90..ccf5b1f0 100755 --- a/mod_form.php +++ b/mod_form.php @@ -119,10 +119,10 @@ public function definition() { $modulestring .= ') -->'; - $this->show_form($instructorrubrics, $sharedrubrics, $modulestring, $course->turnitin_cid); + $this->show_form($instructorrubrics, $sharedrubrics, $course->turnitin_cid, $modulestring); } - public function show_form($instructorrubrics, $sharedrubrics, $modulestring = '', $tiicourseid) { + public function show_form($instructorrubrics, $sharedrubrics, $tiicourseid, $modulestring = '') { global $CFG, $OUTPUT, $COURSE, $PAGE, $DB; $PAGE->requires->string_for_js('changerubricwarning', 'turnitintooltwo'); $PAGE->requires->string_for_js('closebutton', 'turnitintooltwo'); From e22a69a9785ea1aef345062c7168e0ef0209cd36 Mon Sep 17 00:00:00 2001 From: Matt Porritt Date: Tue, 27 Nov 2018 09:53:36 +1100 Subject: [PATCH 06/39] fix get_pseudo_lastname to not override the record it just received, then try and reference the overidden record --- turnitintooltwo_user.class.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/turnitintooltwo_user.class.php b/turnitintooltwo_user.class.php index 01fb5918..433b6ad8 100644 --- a/turnitintooltwo_user.class.php +++ b/turnitintooltwo_user.class.php @@ -142,7 +142,6 @@ private function get_pseudo_firstname() { /** * Convert a regular lastname into the pseudo equivelant for student data privacy purpose * - * @param string $email The users email address * @return string A pseudo lastname address */ private function get_pseudo_lastname() { @@ -152,12 +151,18 @@ private function get_pseudo_lastname() { if ((!isset($userinfo->data) || empty($userinfo->data)) && $config->pseudolastname != 0 && $config->lastnamegen == 1) { $uniqueid = strtoupper(strrev(uniqid())); + + $userinfoid = ''; + if (isset($userinfo->id)) { + $userinfoid = $userinfo->id; + } + $userinfo = new stdClass(); $userinfo->userid = $this->id; $userinfo->fieldid = $config->pseudolastname; $userinfo->data = $uniqueid; - if (isset($userinfo->data)) { - $userinfo->id = $userinfo->id; + if (!empty($userinfoid)) { + $userinfo->id = $userinfoid; $DB->update_record('user_info_data', $userinfo); } else { $DB->insert_record('user_info_data', $userinfo); From 9d3dd9118a85bdc0cf1554ca52bc66705b4e33fc Mon Sep 17 00:00:00 2001 From: Matthias Opitz Date: Tue, 18 Jun 2024 10:20:07 +0100 Subject: [PATCH 07/39] using current() on objects is deprecated, casting array type to solve this --- lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib.php b/lib.php index d0244cf4..6a0f8e0c 100755 --- a/lib.php +++ b/lib.php @@ -251,7 +251,7 @@ function turnitintooltwo_grade_item_update($turnitintooltwo, $grades = null) { // Get the latest part, for the post date and set the default hidden value on grade item. $lastpart = $DB->get_record('turnitintooltwo_parts', array('turnitintooltwoid' => $turnitintooltwo->id), 'max(dtpost)'); - $lastpart = current($lastpart); + $lastpart = current((array)$lastpart); $params['hidden'] = $lastpart; // There should always be a $cm unless this is called on module creation. From fb1a740a8d09150b33eb386ba0056eea1f41a67c Mon Sep 17 00:00:00 2001 From: Matthias Opitz Date: Tue, 18 Jun 2024 10:24:38 +0100 Subject: [PATCH 08/39] passing null to is_nan() is deprecated, checking isset before will fix --- turnitintooltwo_assignment.class.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/turnitintooltwo_assignment.class.php b/turnitintooltwo_assignment.class.php index 9d6a0280..223daf84 100755 --- a/turnitintooltwo_assignment.class.php +++ b/turnitintooltwo_assignment.class.php @@ -1852,20 +1852,21 @@ public function get_overall_grade($submissions, $cm = '') { } foreach ($submissions as $submission) { - if (!is_nan($submission->submission_grade) AND (!empty($submission->submission_gmimaged) || $istutor) - AND !is_null($submission->submission_grade) AND $weightarray[$submission->submission_part] != 0) { + if (isset($submission->submission_grade) && !is_nan($submission->submission_grade) + && (!empty($submission->submission_gmimaged) || $istutor) + && !is_null($submission->submission_grade) && $weightarray[$submission->submission_part] != 0) { $weightedgrade = $submission->submission_grade / $weightarray[$submission->submission_part]; $overallgrade += $weightedgrade * ($weightarray[$submission->submission_part] / $overallweight) * $maxgrade; } } - if (!is_null($overallgrade) AND $this->turnitintooltwo->grade < 0) { + if (!is_null($overallgrade) && $this->turnitintooltwo->grade < 0) { return ($overallgrade == 0) ? 1 : ceil($overallgrade); } else { if (is_null($overallgrade)) { return "--"; } - return (!is_nan($overallgrade) AND !is_null($overallgrade)) ? number_format($overallgrade, 2) : '--'; + return (!is_nan($overallgrade) && !is_null($overallgrade)) ? number_format($overallgrade, 2) : '--'; } } From 3a5f0fd9b73af8094c3be6fa561bbb0a34839406 Mon Sep 17 00:00:00 2001 From: Andrii Ilin Date: Tue, 25 Jun 2024 10:35:28 -0600 Subject: [PATCH 09/39] fix first last name sorting issue in assignments table --- jquery/turnitintooltwo-2024032901.js | 16 ++++++++-------- jquery/turnitintooltwo-2024032901.min.js | 3 ++- jquery/turnitintooltwo-2024032901.min.js.map | 2 +- turnitintooltwo_view.class.php | 6 ++++-- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/jquery/turnitintooltwo-2024032901.js b/jquery/turnitintooltwo-2024032901.js index dedc8c51..e5784953 100755 --- a/jquery/turnitintooltwo-2024032901.js +++ b/jquery/turnitintooltwo-2024032901.js @@ -202,7 +202,7 @@ } node.closest('.mod_turnitintooltwo_submissions_data_table').DataTable() - .order( [ sortColumn, sortby ] ) + .order( [ parseInt(sortColumn, 10), sortby ] ) .draw(); node.addClass('sorting_' + sortby).removeClass('sorting sorting_' + currentsort); @@ -293,7 +293,7 @@ if (i == 3) { submissionsDataTableColumns.push({ "sType": "string", "bSortable": false }); visibleCols.push(true); - } else if (i == 2) { + } else if (i == 2 || i == 9) { submissionsDataTableColumns.push({ "sType": "string", "bSortable": false, "bVisible": false }); visibleCols.push(false); } else if (i == 5) { @@ -302,18 +302,18 @@ } else if (i == 6) { submissionsDataTableColumns.push({ "sClass": "right" }); visibleCols.push(true); - } else if (i == 8 || (i == 10 && showOrigReport) || ((i == 10 && !showOrigReport) || (i == 12 && useGradeMark))) { + } else if (i == 8 || (i == 11 && showOrigReport) || ((i == 11 && !showOrigReport) || (i == 13 && useGradeMark))) { submissionsDataTableColumns.push({ "sClass": "right", "iDataSort": i - 1, "sType": "numeric" }); visibleCols.push(true); - } else if ((i == 13 && showOrigReport) || (i == 12 && !showOrigReport)) { + } else if ((i == 14 && showOrigReport) || (i == 13 && !showOrigReport)) { submissionsDataTableColumns.push({ "sClass": "right" }); visibleCols.push(true); - } else if (i == 1 || ((i >= 9 && !showOrigReport && !useGradeMark) - || (i >= 11 && ((!showOrigReport && useGradeMark) || (showOrigReport && !useGradeMark))) - || (i >= 13 && showOrigReport && useGradeMark))) { + } else if (i == 1 || ((i >= 10 && !showOrigReport && !useGradeMark) + || (i >= 12 && ((!showOrigReport && useGradeMark) || (showOrigReport && !useGradeMark))) + || (i >= 14 && showOrigReport && useGradeMark))) { submissionsDataTableColumns.push({ "sClass": "center", "bSortable": false }); visibleCols.push(true); - } else if ((i == 0) || (i == 4) || (i == 7) || (i == 9 && showOrigReport) || ((i == 9 && !showOrigReport) || (i == 11 && useGradeMark))) { + } else if ((i == 0) || (i == 4) || (i == 7) || (i == 10 && showOrigReport) || ((i == 10 && !showOrigReport) || (i == 12 && useGradeMark))) { submissionsDataTableColumns.push({ "bVisible": false }); visibleCols.push(false); } diff --git a/jquery/turnitintooltwo-2024032901.min.js b/jquery/turnitintooltwo-2024032901.min.js index b9557a4e..3904119f 100644 --- a/jquery/turnitintooltwo-2024032901.min.js +++ b/jquery/turnitintooltwo-2024032901.min.js @@ -1 +1,2 @@ -(function($){$(window).on("load",function(){$(".js_required").show();$(".js_hide").hide();if($("#id_submissiontype").val()==1){$("#id_submissiontext").parent().parent().hide()}if($("#id_submissiontype").val()==2){$("#id_submissionfile").parent().parent().hide()}if($("#id_submissionagreement").length){$("#id_submitbutton").attr("disabled","disabled")}$("#id_submissionagreement").on("click",function(){if($(this).is(":checked")){$("#id_submissionagreement").each(function(){$("#id_submitbutton").removeAttr("disabled")})}else{$("#id_submissionagreement").each(function(){$("#id_submitbutton").attr("disabled","disabled")})}});$("div.mod_turnitintooltwo").parent().css("width","100%");$(document).on("click",".delete_paper",function(){var confirmstrname=$(this).data("confirm");var confirmstr=M.str.turnitintooltwo[confirmstrname].replace(/\\n/g,"\n");var confirmresult=confirm(confirmstr);if(confirmresult){$.ajax({type:"POST",url:"ajax.php",dataType:"html",data:{action:"deletesubmission",sesskey:M.cfg.sesskey,paper:$(this).data("paper"),part:$(this).data("part"),assignment:$(this).data("assignment")},success:function(){window.location.href=window.location.href}})}});$(document).on("click",".submit_nothing",function(){if($(this).hasClass("disabled")){return}$(this).addClass("disabled");var part_id=$(this).prop("id").split("_")[2];var student_id=$(this).prop("id").split("_")[3];var message=M.str.turnitintooltwo.submitnothingwarning.replace(/
/g,"\n").replace(/'/g,"'");var cookieseen=$.cookie("submitnothingaccept");if(cookieseen||confirm(message)){submitNothing(student_id,part_id)}else{$(this).removeClass("disabled")}return});$(document).on("change","#id_submissiontype",function(){if($("#id_submissiontype").val()==1){$("#id_submissiontext").parent().parent().hide();$("#id_submissionfile").parent().parent().show()}if($("#id_submissiontype").val()==2){$("#id_submissionfile").parent().parent().hide();$("#id_submissiontext").parent().parent().show()}});$(document).on("submit",".submission_form_container form",function(){if($("#id_submissiontitle").val().length>0){$("#general").slideUp("slow");$(".mod_turnitintooltwo .noticebox").slideUp("slow");$(".submission_form_container form").slideUp("slow");$("#submitting_loader").slideDown("slow");return true}else{return false}});if($(".toggle_summary").length>0){if(!$.cookie("show_summary_"+$("#assignment_id").html())){$.cookie("show_summary_"+$("#assignment_id").html(),true,{expires:30})}if($.cookie("show_summary_"+$("#assignment_id").html())=="true"){$(".hide_summary_"+$("#assignment_id").html()).show();$(".show_summary_"+$("#assignment_id").html()).hide();$(".introduction").slideDown()}else{$(".show_summary_"+$("#assignment_id").html()).show();$(".hide_summary_"+$("#assignment_id").html()).hide();$(".introduction").slideUp()}$(".toggle_summary i").click(function(){if($(this).hasClass("show_summary_"+$("#assignment_id").html())){$.cookie("show_summary_"+$("#assignment_id").html(),true,{expires:30});$(".show_summary_"+$("#assignment_id").html()).hide();$(".hide_summary_"+$("#assignment_id").html()).show();$(".introduction").slideDown()}else{$.cookie("show_summary_"+$("#assignment_id").html(),false,{expires:30});$(".show_summary_"+$("#assignment_id").html()).show();$(".hide_summary_"+$("#assignment_id").html()).hide();$(".introduction").slideUp()}})}if($(".toggle_peermarks").length>0){if(!$.cookie("show_peermarks_"+$("#assignment_id").html())){$.cookie("show_peermarks_"+$("#assignment_id").html(),true,{expires:30})}if($.cookie("show_peermarks_"+$("#assignment_id").html())=="true"){$(".hide_peermarks_"+$("#assignment_id").html()).show();$(".show_peermarks_"+$("#assignment_id").html()).hide();$(".peermark_assignments_container").slideDown()}else{$(".show_peermarks_"+$("#assignment_id").html()).show();$(".hide_peermarks_"+$("#assignment_id").html()).hide();$(".peermark_assignments_container").slideUp()}$(".toggle_peermarks i").click(function(){if($(this).hasClass("show_peermarks_"+$("#assignment_id").html())){$.cookie("show_peermarks_"+$("#assignment_id").html(),true,{expires:30});$(".show_peermarks_"+$("#assignment_id").html()).hide();$(".hide_peermarks_"+$("#assignment_id").html()).show();$(".peermark_assignments_container").slideDown()}else{$.cookie("show_peermarks_"+$("#assignment_id").html(),false,{expires:30});$(".show_peermarks_"+$("#assignment_id").html()).show();$(".hide_peermarks_"+$("#assignment_id").html()).hide();$(".peermark_assignments_container").slideUp()}})}$(document).on("click",".show_peermark_instructions, .hide_peermark_instructions",function(){var idStr=$(this).attr("id").split("_");if(idStr[0]=="show"){$("#show_peermark_instructions_"+idStr[3]).hide();$("#hide_peermark_instructions_"+idStr[3]).show();$("#peermark_instructions_"+idStr[3]).slideDown()}else{$("#show_peermark_instructions_"+idStr[3]).show();$("#hide_peermark_instructions_"+idStr[3]).hide();$("#peermark_instructions_"+idStr[3]).slideUp()}});showPartDatesBoxes();$(document).on("change","#id_numparts",function(){showPartDatesBoxes()});$(document).on("click",".splitter-lastname, .splitter-firstname",function(event){var node=$(event.target),isAscending=node.hasClass("sorting_asc"),currentsort="asc",sortby="desc",sortColumn=node.attr("data-col");if(!isAscending){currentsort="desc";sortby="asc"}node.closest(".mod_turnitintooltwo_submissions_data_table").DataTable().order([sortColumn,sortby]).draw();node.addClass("sorting_"+sortby).removeClass("sorting sorting_"+currentsort);node.parent().removeClass("sorting sorting_asc sorting_desc");node.siblings().removeClass("sorting_asc sorting_desc").addClass("sorting")});if($("#dataTable").length>0){$("#dataTable").dataTable()}if(typeof M.str.turnitintooltwo!=="undefined"){var dataTablesLang={sProcessing:''+M.str.turnitintooltwo.sprocessing+"",sZeroRecords:M.str.turnitintooltwo.szerorecords,sInfo:M.str.turnitintooltwo.sinfo,sSearch:M.str.turnitintooltwo.ssearch,sLengthMenu:M.str.turnitintooltwo.slengthmenu,oPaginate:{sNext:M.str.turnitintooltwo.snext,sPrevious:M.str.turnitintooltwo.sprevious}}}if($("#tabs").length>0){var activeTab=0;if($("#tab_position").length>0){activeTab=$("#tab_position").text()}$("#tabs").tabs({active:activeTab,show:function(){var table=$.fn.dataTable.fnTables(true);if(table.length>0){$(table).dataTable().fnAdjustColumnSizing()}}})}if($(".enrolledMembers").length>0){$(".enrolledMembers").dataTable({bProcessing:true,sAjaxSource:"ajax.php",aoColumnDefs:[{bSortable:false,sClass:"centered_cell",aTargets:[0]},{sClass:"left",aTargets:[1]}],oLanguage:dataTablesLang,fnServerData:function(sSource,aoData,fnCallback){$.ajax({dataType:"json",type:"POST",url:sSource,data:{action:"get_members",assignment:$("#assignment_id").html(),role:$("#user_role").html()},success:function(result){fnCallback(result)},error:function(data,response){$(".dataTables_processing").attr("style","visibility: hidden");$(".dataTables_empty").html(M.str.turnitintooltwo.membercheckerror)}})}})}var submissionsDataTableColumns=[];var visibleCols=[];var noOfColumns=$("table.mod_turnitintooltwo_submissions_data_table th").length/$("table.mod_turnitintooltwo_submissions_data_table").length;var notStudentView=$("table.mod_turnitintooltwo_submissions_data_table th.sorting_name").length>0?true:false;var showOrigReport=$("table.mod_turnitintooltwo_submissions_data_table th.creport").length>0?true:false;var useGradeMark=$("table.mod_turnitintooltwo_submissions_data_table th.cgrade").length>0?true:false;var multipleParts=$("table.mod_turnitintooltwo_submissions_data_table th.coverallgrade").length>0?true:false;if(notStudentView){for(var i=0;i=9&&!showOrigReport&&!useGradeMark||i>=11&&(!showOrigReport&&useGradeMark||showOrigReport&&!useGradeMark)||i>=13&&showOrigReport&&useGradeMark)){submissionsDataTableColumns.push({sClass:"center",bSortable:false});visibleCols.push(true)}else if(i==0||i==4||i==7||i==9&&showOrigReport||(i==9&&!showOrigReport||i==11&&useGradeMark)){submissionsDataTableColumns.push({bVisible:false});visibleCols.push(false)}}}else{for(var i=0;i=8&&!showOrigReport&&!useGradeMark||i>=10&&(!showOrigReport&&useGradeMark||showOrigReport&&!useGradeMark)||i>=12&&showOrigReport&&useGradeMark)){submissionsDataTableColumns.push({sClass:"center",bSortable:false});visibleCols.push(true)}else if(i==0||i==3||i==6||i==8&&showOrigReport||(i==8&&!showOrigReport||i==10&&useGradeMark)){submissionsDataTableColumns.push({bVisible:false});visibleCols.push(false)}}}var partTables=[];var refreshRequested=[];$("table.mod_turnitintooltwo_submissions_data_table").each(function(){var part_id=$(this).attr("id");refreshRequested[part_id]=0;partTables[part_id]=$("table#"+part_id).dataTable({bProcessing:true,aoColumns:submissionsDataTableColumns,aLengthMenu:[[10,25,50,100,-1],[10,25,50,100,"All"]],aaSorting:[[2,"asc"],[4,"asc"]],sAjaxSource:"ajax.php",oLanguage:dataTablesLang,sDom:'r<"mod_turnitintooltwo_listbar-container"<"top mod_turnitintooltwo_listbar clearfix"lf>><"dt_pagination clearfix"pi>t<"bottom"><"dt_pagination clearfix"pi>',fnServerData:function(sSource,aoData,fnCallback){$.ajax({dataType:"json",type:"POST",url:sSource,data:{action:"initialise_redraw"},success:function(result){disableEditingText(part_id);fnCallback(result);$("#"+part_id+"_processing").attr("style","visibility: visible");getSubmissions(partTables[part_id],$("#assignment_id").html(),part_id,0,refreshRequested,0)}})},bStateSave:true,fnStateSave:function(oSettings,oData){try{localStorage.setItem(part_id+"DataTables",JSON.stringify(oData))}catch(e){}},fnStateSaveParams:function(oSettings,oData){oData.abVisCols=visibleCols},fnStateLoad:function(oSettings){try{return JSON.parse(localStorage.getItem(part_id+"DataTables"))}catch(e){}},fnStateLoadParams:function(oSettings,oData){oData.abVisCols=visibleCols},fnDrawCallback:function(oSettings){initialiseDigitalReceipt();initialiseDVLaunchers("all",0,part_id,0);initialiseRefreshRow("all",0,part_id,0);initialiseUploadBox("all",0,0,0);initialiseZipDownloads(part_id);initialiseCheckboxes(0,part_id);initialiseUnanoymiseForm("all",0,0)}})});$("table.mod_turnitintooltwo_submissions_data_table").each(function(){var part_id=$(this).attr("id");refreshPeermarkAssignments(part_id,0)});if($(".messages_amount").length>0){refreshUserMessages()}$(".tii_table_functions").each(function(){var part_id=$(this).attr("id").split("tii_table_functions_")[1];var tii_table_functions=$("#tii_table_functions_"+part_id).html();$("#tii_table_functions_"+part_id).remove();$("#"+part_id+"_length").after(tii_table_functions);$(".mod_turnitintooltwo_messages_inbox").show();$("#refresh_"+part_id).show();$("#refreshing_"+part_id).hide()});var zip_downloads=$(".mod_turnitintooltwo_zip_downloads");$.each(zip_downloads,function(){var part_id=$(this).attr("id").split("_")[1];$(this).remove();$("#"+part_id+"_length").after($(this))});if($("#user_role").html()=="Learner"){$(".dataTables_length, .dataTables_filter, .dt_pagination").hide()}$(".mod_turnitintooltwo_refresh_link").click(function(){if($(this).is(":visible")){$(".mod_turnitintooltwo_refresh_link").hide();$(".mod_turnitintooltwo_refreshing_link").show();$("table.mod_turnitintooltwo_submissions_data_table").each(function(){refreshRequested[$(this).attr("id")]=1;partTables[$(this).attr("id")].fnReloadAjax();partTables[$(this).attr("id")].fnStandingRedraw()})}return false});if($("#turnitin_sync_all_grades").length>0){$(".turnitin_sync_grades").click(function(){$(".turnitin_sync_grades").hide();$(".turnitin_syncing_grades").show();$.ajax({type:"POST",url:M.cfg.wwwroot+"/mod/turnitintooltwo/ajax.php",dataType:"json",data:{action:"sync_all_submissions",assignment:$("#turnitin_sync_all_grades").data("turnitintooltwoid"),sesskey:M.cfg.sesskey},success:function(data){$(".turnitin_sync_grades").show();$(".turnitin_syncing_grades").hide()}})})}if($(".submission_failure_msg").length>0){window.parent.$(".upload_box").colorbox.resize({width:"800px",height:"240px"})}$(".enrol_link").click(function(){$("#enrolling_error").hide();$(".enrol_link").hide();$(".enrolling_container").show();$.ajax({type:"POST",url:"ajax.php",dataType:"html",data:{action:"enrol_all_students",assignment:$("#assignment_id").html(),sesskey:M.cfg.sesskey},success:function(data){window.location.href=window.location.href},error:function(data,response){$(".enrol_link").show();$(".enrolling_container").hide();$("#enrolling_error").show()}})});if($(".mod_turnitintooltwo_rubric_manager_launch").length>0){$(".mod_turnitintooltwo_rubric_manager_launch").colorbox({iframe:true,width:"832px",height:"682px",opacity:"0.7",className:"rubric_manager",transition:"none",onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){hideLoadingGif();if($(this).attr("id")!="rubric_manager_inbox_launch"){refreshRubricSelect()}$("#tii_close_bar").remove()}})}if($(".mod_turnitintooltwo_rubric_view_launch").length>0){$(".mod_turnitintooltwo_rubric_view_launch").colorbox({iframe:true,width:"832px",height:"682px",opacity:"0.7",className:"rubric_view",transition:"none",onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){$("#tii_close_bar").remove();hideLoadingGif()}})}$("#id_rubric, #id_plagiarism_rubric").mousedown(function(){if($('input[name="instance"]').val()!=""&&$('input[name="rubric_warning_seen"]').val()!="Y"){if(confirm(M.str.turnitintooltwo.changerubricwarning)){$('input[name="rubric_warning_seen"]').val("Y")}}});if($(".mod_turnitintooltwo_quickmark_manager_launch").length>0){$(".mod_turnitintooltwo_quickmark_manager_launch").colorbox({iframe:true,width:"770px",height:"600px",opacity:"0.7",className:"quickmark_manager",transition:"none",onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){$("#tii_close_bar").remove();hideLoadingGif()}})}if($(".tii_peermark_manager_launch").length>0){$(".tii_peermark_manager_launch").colorbox({iframe:true,width:"915px",height:"772px",opacity:"0.7",className:"peermark_manager",transition:"none",onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){$("#tii_close_bar").remove();hideLoadingGif()},onClosed:function(){var idStr=$(this).attr("id").split("_");refreshPeermarkAssignments(idStr[2],1)}})}if($(".tii_peermark_reviews_launch").length>0){$(".tii_peermark_reviews_launch").colorbox({iframe:true,width:"915px",height:"772px",opacity:"0.7",className:"peermark_reviews",transition:"none",onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){$("#tii_close_bar").remove();hideLoadingGif()}})}if($(".mod_turnitintooltwo_messages_inbox").length>0){$(".mod_turnitintooltwo_messages_inbox").colorbox({iframe:true,width:"772px",height:"772px",opacity:"0.7",className:"messages",transition:"none",closeButton:true,onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){$("#tii_close_bar").remove();hideLoadingGif()}})}if($(".mod_turnitintooltwo_nonsubmitters_link").length>0){$(".mod_turnitintooltwo_nonsubmitters_link").colorbox({iframe:true,width:"740px",height:"540px",opacity:"0.7",className:"nonsubmitters",transition:"none",closeButton:true,onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){$("#tii_close_bar").remove();hideLoadingGif()}})}if($(".mod_turnitintooltwo_nonsubmittersformsuccessmsg").length>0){hideLoadingGif();window.parent.$(".nonsubmitters").colorbox.resize({width:"740px",height:"120px"})}if($(".mod_turnitintooltwo_rubric_view_launch").length>0){$(".mod_turnitintooltwo_rubric_view_launch").colorbox({iframe:true,width:"832px",height:"682px",opacity:"0.7",className:"rubric_view",transition:"none",onLoad:function(){lightBoxCloseButton();getLoadingGif()},onCleanup:function(){$("#tii_close_bar").remove();hideLoadingGif()}})}$(document).on("click",".default_open, .origreport_open, .grademark_open",function(){var proceed=true;var idStr=$(this).attr("id").split("_");var due_date=$("#date_due_"+idStr[2]).html();var due_date_unix=moment(due_date).unix();var dvtype=idStr[0];var submission_id=idStr[1];var part_id=idStr[2];if(due_date_unix>moment().unix()){if($(this).hasClass("graded_warning")){if(!confirm(M.str.turnitintooltwo.resubmissiongradewarn)){proceed=false}}}if(proceed){dvWindow=window.open("","_blank");var loading='
';loading+='';loading+='

'+M.str.turnitintooltwo.loadingdv+"

";loading+="
";$(dvWindow.document.body).html(loading);$.ajax({type:"POST",url:M.cfg.wwwroot+"/mod/turnitintooltwo/ajax.php",dataType:"json",data:{action:dvtype,submission:submission_id,assignment:$("#assignment_id").html()},success:function(data){$(dvWindow.document.body).html(loading+data);dvWindow.document.forms[0].submit();dvWindow.document.close();checkDVClosed(part_id)}})}});if($("#id_rubric").length>0){refreshRubricSelect()}if(self!=top&&$("#view_context").html()=="box"){$("html").css("background","none")}else if(self!=top&&$("#view_context").html()=="box_solid"){$("html").css("background","#FFF")}$(".editable_postdue").on("click",function(){if($(this).data("anon")==1){alert(M.str.turnitintooltwo.postdate_warning)}});$(".max_marks_warning").on("click",function(){alert(M.str.turnitintooltwo.max_marks_warning)});if($(".editable_text").length>0){$.fn.editable.defaults.mode="inline";$.fn.editable.defaults.url="ajax.php";$.fn.editable.defaults.onblur="submit";$.fn.editable.defaults.showbuttons=false;$.fn.editable.defaults.ajaxOptions={dataType:"json"};$(".editable_text").editable({validate:function(value){if($(this).attr("id").indexOf("marks_")>=0&&(Math.floor(value)!=value||!$.isNumeric(value)||value.indexOf(".")!=-1)){return M.str.turnitintooltwo.maxmarkserror}},success:function(response,newValue){if(!response.success){return response.msg}else if(response.field=="maxmarks"){$("#refresh_"+response.partid).click();$.ajax({type:"POST",url:M.cfg.wwwroot+"/mod/turnitintooltwo/ajax.php",dataType:"json",data:{action:"sync_all_submissions",assignment:$("#assignment_id").html(),sesskey:M.cfg.sesskey}})}else if(response.field=="partname"){var tabId=$(this).parentsUntil(".ui-tabs-panel").parent().attr("aria-labelledby");$("#"+tabId).text(newValue)}}});if($("#export_options").hasClass("tii_export_options_hide")){$("#export_options").hide();$(".export_data").html('--')}$(".editable_postdue").on("click",function(){var $this=$(this);$.ajax({type:"POST",url:"ajax.php",dataType:"json",data:{action:"check_anon",part:$this.data("pk"),assignment:$("#assignment_id").html()},success:function(data){$this.data("anon",data["anon"]);$this.data("unanon",data["unanon"]);$this.data("submitted",data["submitted"])}})});var theDate=new Date;$(".editable_date").editable({type:"combodate",format:"YYYY-MM-DD HH:mm",viewformat:"D MMM YYYY, HH:mm",template:"D MMM YYYY HH:mm",combodate:{minuteStep:1,minYear:2e3,maxYear:theDate.getFullYear()+2,smartDays:true},validate:function(value){if(value.format("X")--')}else{$(".empty-dash").remove();$("#export_options").show()}}}});$(".editable_date").click(function(){if($(this).hasClass("editable-disabled")){return false}});$(".editable_date, .editable_text").on("shown",function(e,editable){var current=$(this).prop("id");$(".editable_date, .editable_text").not("#"+current).editable("disable");$(".submit_nothing").addClass("disabled")});$(".editable_date, .editable_text").on("hidden",function(){var current=$(this).prop("id");$(".editable_date, .editable_text").not("#"+current).editable("enable");$(".submit_nothing").removeClass("disabled")})}$("#inbox_form form, .launch_form form").submit();if($(".turnitin_eula_link").length>0){$(".turnitin_eula_link").colorbox({iframe:true,width:"766px",height:"596px",opacity:"0.7",className:"eula_view",scrolling:"false",onLoad:function(){getLoadingGif()},onComplete:function(){$(window).on("message",function(ev){var message=typeof ev.data==="undefined"?ev.originalEvent.data:ev.data;if(message=="turnitin_eula_declined"||message=="turnitin_eula_accepted"){$.ajax({type:"POST",url:M.cfg.wwwroot+"/mod/turnitintooltwo/ajax.php",dataType:"json",data:{action:"acceptuseragreement",message:message,sesskey:M.cfg.sesskey},success:function(data){window.location.reload()},error:function(data){window.location.reload()}})}})},onCleanup:function(){hideLoadingGif()}})}function enableEditingText(part_id){$("#tabs-"+part_id+" .editable_date, #tabs-"+part_id+" .editable_text").editable("enable")}function disableEditingText(part_id){$("#tabs-"+part_id+" .editable_date, #tabs-"+part_id+" .editable_text").editable("disable")}function getLoadingGif(){var img='
';$("#cboxOverlay").after(img);var top=$(window).scrollTop()+$(window).height()/2;$(".loading_gif").css("top",top+"px")}function hideLoadingGif(){$(".loading_gif").remove()}function getSubmissions(table,assignment_id,part_id,start,refresh_requested,total){$.ajax({dataType:"json",type:"POST",url:"ajax.php",async:true,data:{action:"get_submissions",assignment:assignment_id,part:part_id,start:start,refresh_requested:refresh_requested[part_id],sesskey:M.cfg.sesskey,total:total},success:function(result){eval(result);start=result.end;if(result.aaData.length>0){table.fnAddData(result.aaData)}if(result.end$(".mod_turnitintooltwo_submissions_data_table .refresh_row").length){$(".mod_turnitintooltwo_nonsubmitters_link").attr("style","display: block")}}},error:function(data,response){$("#"+part_id+"_processing").attr("style","visibility: hidden");$(".dataTables_empty").html(M.str.turnitintooltwo.tiisubmissionsgeterror)}})}function submitVisibility(){if($(".upload_box").data("user-type")==1||$(".upload_box").data("eula")==1){$(".upload_box").show()}else{$(".upload_box").hide()}}function refreshRubricSelect(){var rubricElementId=$("#id_rubric").length?"#id_rubric":"#id_plagiarism_rubric";var currentRubric=$(rubricElementId).val();$.ajax({dataType:"json",type:"POST",url:"../mod/turnitintooltwo/ajax.php",data:{action:"refresh_rubric_select",assignment:$('input[name="instance"]').val(),modulename:$('input[name="modulename"]').val(),course:$('input[name="course"]').val()},success:function(data){$($(rubricElementId)).empty();var options=data;$.each(options,function(i,val){if(!$.isNumeric(i)&&i!==""){var optgroup=$("");optgroup.attr("label",i);$.each(val,function(j,rubric){var option=$("");option.val(j);option.text(rubric);optgroup.append(option)});$(rubricElementId).append(optgroup)}else{$($(rubricElementId)).append($("