var mySite = "cu.oes.kz"; var isEnabledInternalAppointments = 0;//------------------------------------------------------------- var isInited2 = false; var isOesEnabled = false; window.addEventListener('message', function (event) { if (typeof event.data !== 'object') return; if (!('msg' in event.data)) return; if (!('type' in event.data.msg)) return; if (event.data.msg.type != 'yes-exam-going') return; console.log('yes-exam-going'); initOes(); }); console.log("OES: ", window.location.hash); if (window.location.hash == '#isExam'){ initOes(); } function initOes(){ //----------------------------------------------------- if (isInited2) return; isInited2 = true; isOesEnabled = true; //-------------------------------------------------- function stopExam(){ window.postMessage("start-exit-moodle"); } //-------------------------------------------------- if (window.location.pathname.endsWith("/mod/quiz/review.php") || window.location.pathname.endsWith("/moodle/course/view.php")){ console.log('send start-exit'); window.postMessage("start-exit"); } //-------------------------------------------------- console.log('Moodle KSU'); //-------------------------------------------------- var jqueryLoaded = (function(){ //-------------------------------------------------- if (window.location.pathname.endsWith("/mod/quiz/attempt.php") || window.location.pathname.endsWith("/moodle/course/attempt.php")){ var examName = $('#page h1').text().trim(); if (examName != ''){ var msg = {}; msg['type'] = 'on-exam-name'; msg['name'] = examName; var data = {}; data['type'] = 'send-data-message'; data['msg'] = msg; window.postMessage(JSON.stringify(data), '*'); } } //-------------------------------------------------- if ($('.quizstartbuttondiv form button[type=submit]').length >= 1){ $('.quizstartbuttondiv form button[type=submit]').click(); } $('#jump-to-activity').css('display', 'none'); $('#next-activity-link').css('display', 'none'); $('#prev-activity-link').css('display', 'none'); /* if ($('.mod_quiz-next-nav').attr('value') == 'Закончить попытку...') $('.mod_quiz-next-nav').attr('value', 'Завершить экзамен'); $('.othernav .endtestlink').text('Завершить экзамен'); */ if ($('.mod_quiz-next-nav').attr('value') == 'Закончить попытку...') $('.mod_quiz-next-nav').attr('value', 'Завершить'); $('.othernav .endtestlink').text('Завершить'); //-------------------------------------------------- if (window.location.pathname.endsWith("/mod/quiz/startattempt.php")){ $('#id_submitbutton').click(); } if (window.location.pathname.endsWith("/mod/quiz/summary.php")){ var parent = $('.quizsummaryofattempt').parent(); var first = parent.find('.btn-secondary').eq(0); var second = parent.find('.btn-secondary').eq(1); second.click(); $(document).on('click', '.moodle-dialogue-confirm input[type=button][value="Отмена"]', function(){ console.log('click canser'); first.click(); }); } //-------------------------------------------------- }); //-------------------------------------------------- (function() { const script = document.createElement("script"); script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js'; script.type = 'text/javascript'; script.addEventListener('load', () => { console.log(`jQuery ${$.fn.jquery} has been loaded successfully!`); jqueryLoaded(); }); document.head.appendChild(script); })(); //-------------------------------------------------- }; //------------------------------------------------------ document.addEventListener('mouseover', function(e) { if (e.target == document) return; if (!event.target.matches('.quizstartbuttondiv form button[type=submit], .quizstartbuttondiv form button[type=submit] *')) return; //-------------------- if (isOesEnabled) return; if ("isEnabledInternalAppointments" in window && window.isEnabledInternalAppointments == 0) return; //-------------------- var el = e.target; if (el.matches(".oesInited")) return; elClone = el.cloneNode(true); elClone.classList.add('oesInited'); el.parentNode.replaceChild(elClone, el); //-------------------- }); document.addEventListener('click', function(e) { //-------------------- function getCookie(cookieName) { var cookie = {}; document.cookie.split(';').forEach(function(el) { var [key,value] = el.split('='); cookie[key.trim()] = value; }); return cookie[cookieName]; } //-------------------- if (!event.target.matches('.quizstartbuttondiv form button[type=submit], .quizstartbuttondiv form button[type=submit] *')) return; if (isOesEnabled) return; //-------------------- if ("isEnabledInternalAppointments" in window && window.isEnabledInternalAppointments == 0) return; console.log("Click submit"); e.preventDefault(); //-------------------- var examName = document.querySelector(".page-header-headings h1").innerText; if (examName.trim() == '') { alert("OES: Не могу получить название экзамена"); return; } //-------------------- var cookieData = {}; cookieData['MoodleSession'] = getCookie('MoodleSession'); //-------------------- window.location.href = "https://cu.oes.kz/internal_assignment?system=DEFAULT_MOODLE&examName=" + encodeURIComponent(examName) + "&url=" + encodeURIComponent(window.location.href) + "&backurl=" + encodeURIComponent(window.location.href) + "&cookies=" + encodeURIComponent(JSON.stringify(cookieData)); return false; }); //------------------------------------------------------ (function(){ var isLogged = false; var elements = document.querySelectorAll('.menu-action-text'); for (var i = 0; i < elements.length; i++) { var el = elements[i]; if (el.innerText.trim() == 'Личный кабинет') isLogged = true; if (el.innerText.trim() == 'О пользователе') isLogged = true; if (el.innerText.trim() == 'Выход') isLogged = true; } if (isLogged){ var data = {}; data['type'] = 'im-logged'; // var args = {}; args['type'] = 'send-data-message'; args['msg'] = data; args['packetId'] = -1; window.postMessage(JSON.stringify(args), '*'); // console.log("OES: send is logged"); } //-------------------------------------------------- if (window.location.pathname.endsWith("/mod/quiz/review.php") || window.location.pathname.endsWith("/moodle/course/view.php") || window.location.pathname.endsWith("/moodle/quiz/view.php")){ window.postMessage("start-exit"); try{ parent.postMessage("do-exit", "*"); console.log("do-exit"); } catch (e){ console.log("do-exit", e); } } if (window.location.pathname.endsWith("/mod/quiz/attempt.php") || window.location.pathname.endsWith("/moodle/course/attempt.php")){ var examName = $('#page h1').text().trim(); if (examName != ''){ var msg = {}; msg['type'] = 'on-exam-name'; msg['name'] = examName; var data = {}; data['type'] = 'oes-data-message'; data['msg'] = msg; try{ parent.postMessage(JSON.stringify(data), '*'); } catch (e){ } } } //-------------------------------------------------- })(); //------------------------------------------------------ var msg = {}; msg['type'] = 'is-exam-going'; var data = {}; data['type'] = 'send-data-message'; data['msg'] = msg; window.postMessage(JSON.stringify(data), '*'); //------------------------------------------------------console.log('Hello from ps1-dev.oes.kz'); //------------------------------------------------------------- var isInited = false; window.addEventListener('message', function (event) { if (event.data == 'yes-oes-enabled-exam'){ //----------------------------------------------------- if (isInited) return; isInited = true; //----------------------------------------------------- var isLoginPage = false; // if (window.location.pathname == "/") isLoginPage = true; if (window.location.pathname == "/login/index.php") isLoginPage = true; if (window.location.pathname == "/portal/login/index.php") isLoginPage = true; if (window.location.pathname == "/auth/login") isLoginPage = true; if (window.location.pathname == '/user/login/') isLoginPage = true; if (window.location.pathname == '/user/login') isLoginPage = true; if (window.location.pathname == '/index') isLoginPage = true; if (window.location.pathname == '/moodle/login/index.php') isLoginPage = true; if (window.location.pathname == '/user/loginMoodle') isLoginPage = true; if (window.location.pathname == '/index.php') isLoginPage = true; if (window.location.pathname == '/distance_testing/login') isLoginPage = true; // if (isLoginPage){ console.log("Hello from oes, is login page"); return; } if (window.isOes === true){ console.log("Hello from oes, is admin page"); return; } //----------------------------------------------------- console.log("Hello from oes, exam is enabled"); //----------------------------------------------------- // Отключаем правую кнопку document.addEventListener("contextmenu", function(evt){ evt.preventDefault(); }, false); // Отключаем копирование document.addEventListener("copy", function(evt){ evt.clipboardData.setData("text/plain", "Копирование на этой странице запрещено"); evt.preventDefault(); }, false); // Отключаем вырезку document.addEventListener("cut", function(evt){ evt.preventDefault(); }, false); // Отключаем выделение var sheet = document.createElement('style') sheet.innerHTML = "* {user-select: none !important;}*::selection {background: none;}*::-moz-selection {background: none;}"; document.body.appendChild(sheet); // При попытке вставить делаем запись document.addEventListener('paste', (e) => { var clipboardData, pastedData; e.stopPropagation(); e.preventDefault(); clipboardData = e.clipboardData || window.clipboardData; pastedData = clipboardData.getData('Text'); event = {'type': 'on-paste', 'content': pastedData}; window.parent.postMessage(JSON.stringify(event), '*'); console.log('send event', JSON.stringify(event)); }); //----------------------------------------------------- } }); //------------------------------------------------------------- window.postMessage('is-oes-enabled-exam'); //------------------------------------------------------------- console.log('host is caspidot.kz'); //---------------------------------------------------- (function() { //------------------------------------------------ console.log("Messages module loaded"); //------------------------------------------------ // Мостик window.addEventListener('message', function (event) { console.log("Started listing messages"); // Ток свои сообщения if (event.origin != window.location.origin) return; // try { var data = event.data; if (typeof data == 'string') // Пытаемся по JSON data = JSON.parse(data); } catch (e) { // Если не JSON onMessage(event.data); return; } // Обработка JSON onEvent(data); }); //------------------------------------------------ function onEvent(data){ console.log("Got data", data); if (data.type == 'oes-data-message'){ var data = data.msg; if (data.type == 'counter-data') if ('counterManager' in window) counterManager.onBringData(data); if (data.type == 'close-me') window.close(); return; } } function onMessage(msg){ } //------------------------------------------------ })(); //----------------------------------------------------