<!DOCTYPE html> <html> <head> <title>Scorm Player</title> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="{{asset('public/js/common.js')}}"></script> <meta name="_token" content="{!! csrf_token() !!}"/> <style> iframe { position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; border: none; } </style> </head> <body> <script type="application/javascript"> @if($user) window.full_name = "{{$user->name}}"; window.course_name = "{{ $course->title}}"; @if(isModuleActive('Org')) window.org_chart_name = "{{$user->branch->group}}"; @endif @else window.full_name = "Guest"; window.course_name = "{{ $course->title}}"; window.org_chart_name = ""; @endif </script> @if($lesson) @if($lesson->host=='XAPI') <iframe id="video-id" class="video_iframe" src="{{asset($lesson->video_url)}}?actor=%7B%22mbox%22%3A%22mailto%3A{{Settings('email')}}%22%2C%22name%22%3A%22{{Settings('site_title')}}%22%2C%22objectType%22%3A%22Agent%22%7D&endpoint={{url('xapi')}}&course_id={{$course->id}}&lesson_id={{$lesson->id}}&user_id=@if($user){{$user->id}}@endif" ></iframe> @else @if ($lesson->host=='SCORM' || $lesson->host=='SCORM-AwsS3') @if(!empty($lesson->video_url)) <iframe class=" video_iframe" id="video-id" src="" @if($lesson->scorm_version=="scorm_12") onbeforeunload="API.LMSFinish('');" onunload="API.LMSFinish('');" @endif ></iframe> @endif @endif @endif @endif @if ($lesson->host=='SCORM' || $lesson->host=='SCORM-AwsS3' || $lesson->host=='XAPI' || $lesson->host=='XAPI-AwsS3') <script> let video_element = $('#video-id'); let url = "{{asset($lesson->video_url)}}"; let course_id = {{$course->id}}; @if($lesson->scorm_version=="scorm_12") var API = {}; (function ($) { $(document).ready(function () { setupScormApi() video_element.attr('src', url) }); function setupScormApi() { API.LMSInitialize = LMSInitialize; API.LMSGetValue = LMSGetValue; API.LMSSetValue = LMSSetValue; API.LMSCommit = LMSCommit; API.LMSFinish = LMSFinish; API.LMSGetLastError = LMSGetLastError; API.LMSGetDiagnostic = LMSGetDiagnostic; API.LMSGetErrorString = LMSGetErrorString; } function LMSInitialize(initializeInput) { displayLog("LMSInitialize: " + initializeInput); return true; } function LMSGetValue(varname) { displayLog("LMSGetValue: " + varname); return varname; } function LMSSetValue(varname, varvalue) { updateScormReport(varname, varvalue); if (varvalue == 'completed' || varvalue == 'passed') { lessonAutoComplete(course_id, {{showPicName(Request::url())}}); } // displayLog("LMSSetValue: " + varname + "=" + varvalue); return ""; } function LMSCommit(commitInput) { displayLog("LMSCommit: " + commitInput); return true; } function LMSFinish(finishInput) { lessonAutoComplete(course_id, {{showPicName(Request::url())}}); displayLog("LMSFinish: " + finishInput); return true; } function LMSGetLastError() { displayLog("LMSGetLastError: "); return 0; } function LMSGetDiagnostic(errorCode) { displayLog("LMSGetDiagnostic: " + errorCode); return ""; } function LMSGetErrorString(errorCode) { displayLog("LMSGetErrorString: " + errorCode); return ""; } })(jQuery); @elseif($lesson->scorm_version=="scorm_2004") var API_1484_11 = {}; (function ($) { $(document).ready(function () { setupScormApi(); video_element.attr('src', url); }); function setupScormApi() { API_1484_11.Initialize = Initialize; API_1484_11.Commit = Commit; API_1484_11.Terminate = Terminate; API_1484_11.GetValue = GetValue; API_1484_11.SetValue = SetValue; API_1484_11.GetErrorString = GetErrorString; API_1484_11.GetDiagnostic = GetDiagnostic; API_1484_11.GetLastError = GetLastError; } function Initialize(parameter) { displayLog('Initialize ' + parameter) return true } function Commit(parameter) { displayLog('Commit ' + parameter) return true } function Terminate(parameter) { {{--lessonAutoComplete(course_id, {{showPicName(Request::url())}});--}} displayLog('Terminate ' + parameter) return true } function GetValue(name) { displayLog('GetValue ' + name) return ""; } function SetValue(name, value) { updateScormReport(name, value); if (value == 'completed' || value == 'passed') { lessonAutoComplete(course_id, {{showPicName(Request::url())}}); } displayLog('SetValue ' + name + ' = ' + value) return true } function GetErrorString() { displayLog('GetErrorString') return '' } function GetDiagnostic() { displayLog('GetDiagnostic') return '' } function GetLastError() { displayLog('GetLastError') return 0 } })(jQuery); @endif function displayLog(textToDisplay) { console.log(textToDisplay); } @if(isModuleActive('SCORM')) function updateScormReport(key, value) { @if(!isset($lesson->completed->status)) $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); var course_id = "{{$course->id}}"; var lesson_id = "{{$lesson->id}}"; $.ajax({ type: 'POST', url: '{{route('scorm.report.store')}}', data: {course_id: course_id, lesson_id: lesson_id, key: key, value: value}, success: function (data) { console.log(data); } }); @endif } @endif </script> @endif <script> function lessonAutoComplete(course_id, lesson_id) { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ type: 'GET', "_token": "{{ csrf_token() }}", url: '{{route('lesson.complete.ajax')}}', data: {course_id: course_id, lesson_id: lesson_id}, success: function (data) { console.log("Success: " + data); }, error: function (data) { console.log("Error: " + data); } }); } </script> @if ($lesson->host=='XAPI' || $lesson->host=='XAPI-AwsS3') <script> @if(!isset($lesson->completed->status)) function checkCompleteStatus() { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); var course_id = "{{$course->id}}"; var lesson_id = "{{$lesson->id}}"; $.ajax({ type: 'POST', url: '{{route('xapi.checkLessonStatus')}}', data: {course_id: course_id, lesson_id: lesson_id}, success: function (data) { if (data == 1) { console.log("xapi-complete"); } else { console.log("not"); } } }); } setInterval(checkCompleteStatus, 2000) @endif </script> @endif </body> </html>