window.addEventListener('load', function () {
let textDecision = '';
let answer_pattern = [];
let task = {"id":115,"name":"Коллизии закона","user_id":1,"instruction":"","content":"<p>Какой закон применяется при коллизии норм различных нормативных актов ?<\/p>","answer":"","answer_pattern":"упк","allow_document":0,"users_check":0,"status":null,"visible":1,"type":"pattern","auto_check":1,"auto_check_type":"now","check_ai":0,"check_ai_type":null,"copy_paste":1,"modify":0,"modify_call_user_id":204,"modify_user_comment":"","created_at":"2021-09-07T09:30:12.000000Z","updated_at":"2023-02-21T13:48:13.000000Z","documents":[]};
localStorage.setItem('task', JSON.stringify(task));
// ++++++++++++++++++++++ АКТИВИРОВАТЬ ЗАПРЕТ КОПИРОВАНИЯ TINYMCE
if (typeof tinymce !== 'undefined' && tinymce.activeEditor !== null) {
tinymce.get('textarea-decision')?.on('change input', function () {
let textDecision = tinymce.get('textarea-decision').getContent({format: 'text'})
if ('1') {
checkDecision(textDecision);
}
checkCountSymbols(textDecision);
visible_toasts(textDecision.length, null, 'symbols')
});
}
// -------------------------- СТАРЫЙ СЛУШАТЕЛЬ TinyMCE
$('#textarea-decision').on('input', function () {
checkCountSymbols($(this).val());
if (('1')) {
checkDecision($(this).val());
}
visible_toasts(textDecision.length, null, 'symbols')
})
function checkCountSymbols(textDecision) {
//console.log(textDecision);
let clean_text = textDecision.replace(/<\/?[^>]+(>|$)/gi, "").replace(/ /gi, ' ');
let symbols_old = $('#count_symbols').html();
$('#count_symbols').html(clean_text.length);
if ('') {
let symbols_new = clean_text.length;
if ((symbols_new - symbols_old) > 20) {
// +++++++++++++++++++++++++ АКТИВИРОВАТЬ ДЛЯ 3 КУРСА ЗАПРЕТ КОПИРОВАНИЯ TINYMCE
$('#textarea-decision').val('КОПИРОВАТЬ НЕЛЬЗЯ');
$('#count_symbols').html('КОПИРОВАТЬ НЕЛЬЗЯ'.length);
stopCopy();
if (typeof tinymce !== 'undefined') {
tinymce.activeEditor?.setContent('КОПИРОВАТЬ НЕЛЬЗЯ');
}
//tinymce?.activeEditor?.editorCommands.commands.exec.undo();
}
let decision = {'textarea': $('#textarea-decision').val(), 'taskId': '115'}
localStorage.setItem('decision', JSON.stringify(decision));
}
}
function checkDecision(textDecision) {
let text_answer = textDecision.toLowerCase().replace('ё', 'е');
let count_words_answer_ok = 0;
let task_one = JSON.parse(localStorage.getItem('task'));
if (task_one['answer'].match(/<strong>(.*?)<\/strong>/g)) {
answer_pattern = task_one['answer'].match(/<strong>(.*?)<\/strong>/g).map(function (val) {
return val.replace(/<\/?strong>/g, '');
});
} else {
answer_pattern = task_one['answer_pattern'].split(' ');
}
let arr_answer_count_words = text_answer.toLowerCase().split(' ');
let count_words_answer_pattern = answer_pattern.length;
let count_words_answer = arr_answer_count_words.length;
// -----------------RegExp
if (answer_pattern.length > 0 && text_answer.length > 0) {
let str_answer_pattern = answer_pattern.sort(function (a, b) {
return b.length - a.length;
}).join('|');
if (str_answer_pattern == '+') {
str_answer_pattern = "\\+";
}
let regexp = new RegExp(str_answer_pattern, 'gi');
let arr_match_answer = text_answer.match(regexp)
count_words_answer_ok = [...new Set(arr_match_answer)].length;
}
// ---------------------- Другой метод проверки из qpuzzle --- не удалять
// //let answer_arr = task_one['answer'].toUpperCase().split(' ') ?? null;
// let decision_arr = text_answer.toUpperCase().split(' ') ?? null;
// // let checker = (arr, target) => target.every(v => arr.includes(v));
// // let checker = (arr, target) => target.filter(v => arr.includes(v));
// let checker = (arr_decision, arr_answer) => arr_answer.filter(a => {
// return arr_decision.some(d => {
// return d.includes(a)
// }
// )
// })
//
// console.log(answer_pattern)
// console.log(decision_arr)
//
// console.log(checker(decision_arr, answer_pattern).length / answer_pattern.length)
// console.log(count_words_answer_ok / count_words_answer_pattern)
// --------------------------------------------------------
if (count_words_answer_ok / count_words_answer_pattern > 0.65) {
visible_toasts(null, true, 'answer', count_words_answer_ok / count_words_answer_pattern)
} else {
visible_toasts(null, false, 'answer', count_words_answer_ok / count_words_answer_pattern)
}
}
function visible_toasts(symbols, answer, type, percent = null) {
if (type === 'symbols') {
if (symbols > 5000) {
$('#blocks_toasts').show();
$('#toast_5000').show().toast('show')
} else {
$('#toast_5000').hide().toast('hide')
}
}
if (type === 'answer') {
if (answer === true) {
$('#blocks_toasts').show();
$('#toast_message').show().toast('show')
$('.toast-header').css('background-color', 'greenyellow').css('color', 'black')
$('#toast_str_header').html('ВЫПОЛНЕНО')
$('#toast_str_message').html('Процент: ' + parseFloat(percent * 100).toFixed(2) + '%')
if( '' ) {
$('#btn_save_decision_control').prop('disabled', false);
}
if (task['type'] == 'blitz') {
$('#continue').show();
localStorage.setItem('count_ok', Number(localStorage.getItem('count_ok')) + 1);
$('#textarea-decision').val('РЕШЕНИЕ СКРЫТО...').prop('disabled', true);
}
} else if (percent > 0.05) {
$('#blocks_toasts').show();
$('#toast_message').show().toast('show')
$('.toast-header').css('background-color', 'gray')
$('#toast_str_header').html('ЧАСТИЧНО')
$('#toast_str_message').html('Процент: ' + parseFloat(percent * 100).toFixed(2) + '%')
} else {
$('#blocks_toasts').show();
$('.toast-header').css('background-color', 'red')
$('#toast_str_header').html('АВТОПРОВЕРКА')
$('#toast_str_message').html('Не выполнено')
// $('#toast_message').hide().toast('hide')
}
}
if (symbols !== null && symbols < 5000 && answer === false) {
$('#blocks_toasts').hide();
}
}
if (('1' && (typeof tinymce == 'undefined' || (typeof tinymce != 'undefined' || tinymce.activeEditor == null)))) {
$('#blocks_toasts').show();
$('#toast_message').show().toast('show')
$('.toast-header').css('background-color', 'pink')
$('#toast_str_header').html('АВТОПРОВЕРКА')
$('#toast_str_message').html('Не выполнено')
}
});
© 2023 Quttera Ltd. All rights reserved.