Files
edx-platform/common/static/js/capa/edit-a-gene.js
Eric Fischer 5bc6b31e29 eslint --fix
2017-12-08 14:38:41 -05:00

72 lines
2.4 KiB
JavaScript

(function() {
var timeout = 1000;
waitForGenex();
function waitForGenex() {
if (typeof(genex) !== 'undefined' && genex) {
genex.onInjectionDone('genex');
} else {
setTimeout(function() { waitForGenex(); }, timeout);
}
}
// NOTE:
// Genex uses 8 global functions, all prefixed with genex:
// 6 are exported from GWT:
// genexSetDefaultDNASequence
// genexSetDNASequence
// genexGetDNASequence
// genexSetClickEvent
// genexSetKeyEvent
// genexSetProblemNumber
//
// It calls genexIsReady with a deferred command when it has finished
// initialization and has drawn itself
// genexStoreAnswer(answer) is called each time the DNA sequence changes
// through user interaction
// Genex does not call the following function
genexGetInputField = function() {
var problem = $('#genex_container').parents('.problem');
return problem.find('input[type="hidden"][name!="genex_dna_sequence"][name!="genex_problem_number"]');
};
genexIsReady = function() {
var input_field = genexGetInputField();
var genex_saved_state = input_field.val();
var genex_default_dna_sequence;
var genex_dna_sequence;
// Get the DNA sequence from xml file
genex_default_dna_sequence = $('#genex_dna_sequence').val();
// Set the default DNA
genexSetDefaultDNASequence(genex_default_dna_sequence);
// Now load problem
var genex_problem_number = $('#genex_problem_number').val();
genexSetProblemNumber(genex_problem_number);
// Set the DNA sequence that is displayed
if (genex_saved_state === '') {
// Load DNA sequence from xml file
genex_dna_sequence = genex_default_dna_sequence;
} else {
// Load DNA sequence from saved value
genex_saved_state = JSON.parse(genex_saved_state);
genex_dna_sequence = genex_saved_state.genex_dna_sequence;
}
genexSetDNASequence(genex_dna_sequence);
// Now load mouse and keyboard handlers
genexSetClickEvent();
genexSetKeyEvent();
};
genexStoreAnswer = function(answer) {
var input_field = genexGetInputField();
var value = {genex_dna_sequence: genexGetDNASequence(), genex_answer: answer};
input_field.val(JSON.stringify(value));
};
}).call(this);