Version 1.2.2
Улучшение работы автозаполнения в заданиях с переносом блоков
This commit is contained in:
parent
6a9568d46d
commit
b4ea41fd8c
@ -34,7 +34,6 @@ function auto_mode() {
|
|||||||
test = document.getElementsByClassName('all-items-drop');
|
test = document.getElementsByClassName('all-items-drop');
|
||||||
answers = document.getElementsByClassName('correctAnswer');
|
answers = document.getElementsByClassName('correctAnswer');
|
||||||
if(test&&answers) fill_phrases(test,answers);
|
if(test&&answers) fill_phrases(test,answers);
|
||||||
if(test&&answers) fill_sentence(test,answers);
|
|
||||||
//radio_columns
|
//radio_columns
|
||||||
test = document.getElementsByTagName('input');
|
test = document.getElementsByTagName('input');
|
||||||
if(test) fill_columns(test);
|
if(test) fill_columns(test);
|
||||||
@ -155,15 +154,20 @@ function fill_pronunciation(test,answers) {
|
|||||||
function fill_phrases(test,answers) {
|
function fill_phrases(test,answers) {
|
||||||
var test_arr = Array.prototype.slice.call(test);
|
var test_arr = Array.prototype.slice.call(test);
|
||||||
var answers_arr = Array.prototype.slice.call(answers);
|
var answers_arr = Array.prototype.slice.call(answers);
|
||||||
|
var d = [];
|
||||||
|
if(answers_arr&&test_arr)answers_arr.forEach(function(item, i) {
|
||||||
|
Array.prototype.slice.call(item.getElementsByClassName('dndAnswerLineClass')).forEach(function(item) {d.push(item);});;
|
||||||
|
});
|
||||||
|
if(d.length>0)answers_arr=d;
|
||||||
var test_choises = document.getElementsByClassName('all-items-container')[0];
|
var test_choises = document.getElementsByClassName('all-items-container')[0];
|
||||||
var txt_answers_arr = [];
|
var txt_answers_arr = [];
|
||||||
if(test_choises){
|
if(test_choises){
|
||||||
var text_test_choises = Array.prototype.slice.call(test_choises.getElementsByClassName('ng-binding'));
|
var text_test_choises = Array.prototype.slice.call(test_choises.getElementsByClassName('ng-binding'));
|
||||||
test_choises=test_choises.getElementsByClassName('dragger');
|
test_choises=test_choises.getElementsByClassName('dragger');
|
||||||
}
|
}
|
||||||
if(answers_arr&&test_arr)answers_arr.forEach(function(item, i) {
|
if(answers_arr&&test_arr)txt_answers_arr = push_answer_b(answers,txt_answers_arr);
|
||||||
txt_answers_arr = push_answer_b(answers,txt_answers_arr);
|
|
||||||
});
|
|
||||||
if(answers_arr&&test_arr)answers_arr.forEach(function(item, i) {
|
if(answers_arr&&test_arr)answers_arr.forEach(function(item, i) {
|
||||||
var lil = 0;
|
var lil = 0;
|
||||||
/*var text_answers_arr = Array.prototype.slice.call(answers_arr[i].getElementsByTagName('b'));
|
/*var text_answers_arr = Array.prototype.slice.call(answers_arr[i].getElementsByTagName('b'));
|
||||||
@ -175,43 +179,7 @@ function fill_phrases(test,answers) {
|
|||||||
});
|
});
|
||||||
a=a.replace(/(^\s*)|(\s*)$/g, '');*/
|
a=a.replace(/(^\s*)|(\s*)$/g, '');*/
|
||||||
var a = txt_answers_arr[i];
|
var a = txt_answers_arr[i];
|
||||||
if(text_test_choises) text_test_choises.forEach(function(item,j) {
|
alert(a);
|
||||||
if(item.innerHTML.includes(a)) {
|
|
||||||
var b = item.innerHTML.replace(a, '');
|
|
||||||
if( b.search(/[a-zA-Z]/) === -1 )
|
|
||||||
if(lil===0&&test_choises[j].getAttribute("class")!=="dragger draggable ng-scope ui-draggable cloneDropped opacityDiv") {
|
|
||||||
test_choises[j].setAttribute("class","dragger draggable ng-scope ui-draggable cloneDropped opacityDiv");
|
|
||||||
var b = test_choises[j].cloneNode(true);
|
|
||||||
test_arr[i].append(b);
|
|
||||||
test_arr[i].setAttribute("style",b.getAttribute("style"));
|
|
||||||
test_arr[i].setAttribute("class","drop-dest droppable-Item all-items-drop dropped-items ui-droppable droppableWhiteBG droppableTransparentBG");
|
|
||||||
b.setAttribute("class","dragger draggable ng-scope ui-draggable cloneDropped clone");
|
|
||||||
b.setAttribute("style",b.getAttribute("style")+"position: relative; left: 0px; top: 0px;");
|
|
||||||
lil=1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
//Заполнить фразы предложениями
|
|
||||||
function fill_sentence(test,answers) {
|
|
||||||
var test_arr = Array.prototype.slice.call(test);
|
|
||||||
var answers_arr = Array.prototype.slice.call(answers);
|
|
||||||
var test_choises = document.getElementsByClassName('all-items-container')[0];
|
|
||||||
var txt_answers_arr = [];
|
|
||||||
if(test_choises){
|
|
||||||
var text_test_choises = Array.prototype.slice.call(test_choises.getElementsByClassName('ng-binding'));
|
|
||||||
test_choises=test_choises.getElementsByClassName('dragger');
|
|
||||||
}
|
|
||||||
if(answers_arr&&test_arr)answers_arr.forEach(function(item, i) {
|
|
||||||
var ks = push_answer_c(item);
|
|
||||||
alert(ks);
|
|
||||||
txt_answers_arr.push(ks.replace(/(^\s*)|(\s*)$/g, ''));
|
|
||||||
});
|
|
||||||
if(answers_arr&&test_arr)answers_arr.forEach(function(item, i) {
|
|
||||||
var lil = 0;
|
|
||||||
var a = txt_answers_arr[i];
|
|
||||||
if(text_test_choises) text_test_choises.forEach(function(item,j) {
|
if(text_test_choises) text_test_choises.forEach(function(item,j) {
|
||||||
if(item.innerHTML.includes(a)) {
|
if(item.innerHTML.includes(a)) {
|
||||||
var b = item.innerHTML.replace(a, '');
|
var b = item.innerHTML.replace(a, '');
|
||||||
@ -280,7 +248,7 @@ function push_answer_b(answer_arr,answers_arr){
|
|||||||
if(answers)answers.forEach(function(answers) {
|
if(answers)answers.forEach(function(answers) {
|
||||||
if(answers){
|
if(answers){
|
||||||
var txt = answers.innerHTML+" ";
|
var txt = answers.innerHTML+" ";
|
||||||
var answer = "";
|
var answer = " ";
|
||||||
var mode = 0;
|
var mode = 0;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
for(var i=0; i<txt.length;i++) {
|
for(var i=0; i<txt.length;i++) {
|
||||||
@ -291,6 +259,7 @@ function push_answer_b(answer_arr,answers_arr){
|
|||||||
var b = txt.substring(i,txt.length);
|
var b = txt.substring(i,txt.length);
|
||||||
if(b.startsWith("<b>")){
|
if(b.startsWith("<b>")){
|
||||||
mode = 2;
|
mode = 2;
|
||||||
|
answer+=" ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -298,8 +267,9 @@ function push_answer_b(answer_arr,answers_arr){
|
|||||||
if(a === "<"){
|
if(a === "<"){
|
||||||
var b = txt.substring(i,txt.length);
|
var b = txt.substring(i,txt.length);
|
||||||
if(b.startsWith("</b>")){
|
if(b.startsWith("</b>")){
|
||||||
|
if(answer.endsWith(" .")||answer.endsWith(" ,"))answer=answer.substring(0,answer.length-2)+answer.substring(answer.length-1,answer.length);
|
||||||
mode = 0;
|
mode = 0;
|
||||||
if(!b.startsWith("</b><b>")){
|
if(!(b.startsWith("</b><b>")||b.startsWith("</b> <b>"))){
|
||||||
answer=answer.replace(/(^\s*)|(\s*)$/g, '');
|
answer=answer.replace(/(^\s*)|(\s*)$/g, '');
|
||||||
answers_arr.push(answer);
|
answers_arr.push(answer);
|
||||||
answer = "";
|
answer = "";
|
||||||
@ -319,44 +289,3 @@ function push_answer_b(answer_arr,answers_arr){
|
|||||||
});
|
});
|
||||||
return answers_arr;
|
return answers_arr;
|
||||||
}
|
}
|
||||||
//Найти ответы в строке(для inputBox)
|
|
||||||
function push_answer_c(answers){
|
|
||||||
var answers_arr = "";
|
|
||||||
var txt = answers.innerHTML+" ";
|
|
||||||
var answer = "";
|
|
||||||
var mode = 0;
|
|
||||||
var i = 0;
|
|
||||||
for(var i=0; i<txt.length;i++) {
|
|
||||||
var a = txt[i];
|
|
||||||
switch(mode){
|
|
||||||
case 0:
|
|
||||||
if(a === "<"){
|
|
||||||
var b = txt.substring(i,txt.length);
|
|
||||||
if(b.startsWith("<b>")){
|
|
||||||
mode = 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if(a === "<"){
|
|
||||||
var b = txt.substring(i,txt.length);
|
|
||||||
if(b.startsWith("</b>")){
|
|
||||||
mode = 0;
|
|
||||||
if(!b.startsWith("</b><b>")){
|
|
||||||
answer=answer.replace(/(^\s*)|(\s*)$/g, '');
|
|
||||||
answers_arr+=" " +answer;
|
|
||||||
answer = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else answer += a;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if(a === ">"){
|
|
||||||
mode = 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return answers_arr;
|
|
||||||
}
|
|
Reference in New Issue
Block a user