integration-functions.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // Função para ler parâmetros informados pelo iTarefa via URL
  2. // Apesar de não ser obrigatório, será muito útil para capturar os parâmetros
  3. function getParameterByName(name) {
  4. var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
  5. return match ? decodeURIComponent(match[1].replace(/\+/g, ' ')) : null;
  6. }
  7. // Criando um array com os parâmetros informados pelo iTarefa
  8. // Observe que para cada parâmetro, é realizada a chamada do método getParameterByName, implementado acima
  9. var iLMparameters = {
  10. iLM_PARAM_ServerToGetAnswerURL: getParameterByName("iLM_PARAM_ServerToGetAnswerURL"),
  11. iLM_PARAM_SendAnswer: getParameterByName("iLM_PARAM_SendAnswer"),
  12. iLM_PARAM_AssignmentURL: getParameterByName("iLM_PARAM_AssignmentURL"),
  13. iLM_PARAM_Assignment: getParameterByName("iLM_PARAM_Assignment"),
  14. lang: getParameterByName("lang")
  15. };
  16. // Função chamada pelo iTarefa quando o professor finaliza a criação da atividade
  17. // ou quando o aluno finaliza a resolução do exercício
  18. // O retorno é um JSON com os dados do exercício ou da resolução
  19. // Esse retorno será armazenado no banco de dados do Moodle, pelo iTarefa
  20. function getAnswer() {
  21. // Se o parâmetro "iLM_PARAM_SendAnswer" for false,
  22. // então trata-se de resolução de atividade
  23. if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
  24. // Montar o retorno da resposta do aluno
  25. return moves;
  26. } else {//se for o professor acessando, mostra a pagina de elaboração
  27. return JSON.stringify($('form[name="creation"]').serializeArray());
  28. }
  29. }
  30. // Função chamada pelo iTarefa para receber a nota do aluno na atividade
  31. // O retorno é um valor entre 0.0 e 1.0
  32. function getEvaluation() {
  33. if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
  34. // Calcula a nota do aluno:
  35. // Agora, verificamos se o aluno acertou
  36. // var acertos = 0;
  37. // Cálculo da nota: resposta correta =1, errada =0
  38. var nota = acertou;
  39. // A chamada do método abaixo é obrigatória!
  40. // Observe que a chamada parte do iLM para o iTarefa
  41. parent.getEvaluationCallback(nota);
  42. }
  43. }
  44. // Função para que o iMA leia os dados da atividade fornecidos pelo iTarefa
  45. function getiLMContent() {
  46. // O parâmetro "iLM_PARAM_Assignment" fornece o URL do endereço que deve ser
  47. // requisitado via AJAX para a captura dos dados da atividade
  48. $.get(iLMparameters.iLM_PARAM_Assignment, function (d) {
  49. // Uma vez que os dados foram recebidos, o método "organizaAtividade" é chamado.
  50. // Observe que esse método faz parte do arquivo js/iarithmetic-functions.js
  51. inicio(4);//(JSON.parse(d));
  52. });
  53. }
  54. // Adicionamos a diretiva .ready(), para que quando a página HTML estiver carregada,
  55. // seja verificado qual a visualização deve ser apresentada: se a área de construção
  56. // de atividade ou de resolução. E no caso de ser resolução, os dados da atividade
  57. // precisam ser consultados, pelo método implementado acima, o getiLMContent()
  58. $(document).ready(function() {
  59. // Se iLM_PARAM_SendAnswer for false, então trata-se de resolução de atividade,
  60. // portanto, a "DIV" de resolução é liberada
  61. iLMparameters.iLM_PARAM_SendAnswer='false';
  62. if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
  63. $('.task').css("display","block");
  64. getiLMContent();
  65. } else {
  66. // Caso não esteja em modo de resolução de atividade, a visualização no momento
  67. // é para a elaboração de atividade:
  68. $('.creation').css("display","block");
  69. }
  70. });