File size: 2,154 Bytes
8f0fa74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
let currentId = 0;
let chosen = null;

function loadQuestion(qid = null) {
  let url = "/api/question";
  if (qid) url += "?id=" + qid;

  $.getJSON(url, function(data) {
    currentId = data.id;
    $("#qno").text("๋ฌธ์ œ " + data.qno);
    $("#stem").text(data.stem);

    $("#options").empty();
    data.options.forEach(opt => {
      let btn = $("<button>")
        .addClass("list-group-item list-group-item-action")
        .text(opt)
        .click(function() {
          $("#options button").removeClass("active");
          $(this).addClass("active");
          chosen = opt;
        });
      $("#options").append(btn);
    });

    $("#result").empty();
  });
}

function submitAnswer() {
  if (!chosen) {
    alert("์„ ํƒ์ง€๋ฅผ ๊ณ ๋ฅด์„ธ์š”!");
    return;
  }

  $.ajax({
    url: "/api/answer",
    type: "POST",
    contentType: "application/json",
    data: JSON.stringify({ question_id: currentId, chosen: chosen }),
    success: function(resp) {
      let resultText = resp.correct
        ? `<div class="alert alert-success">์ •๋‹ต์ž…๋‹ˆ๋‹ค! โœ…</div>`
        : `<div class="alert alert-danger">ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค โŒ<br>์ •๋‹ต: ${resp.answer}</div>`;
      $("#result").html(resultText);
    }
  });
}

function loadNext() {
  $.getJSON("/api/next?current_id=" + currentId, function(data) {
    if (data.end) {
      $("#qno").text("๋!");
      $("#stem").text(data.message);
      $("#options").empty();
      $("#result").empty();
    } else {
      currentId = data.id;
      $("#qno").text("๋ฌธ์ œ " + data.qno);
      $("#stem").text(data.stem);

      $("#options").empty();
      chosen = null;
      data.options.forEach(opt => {
        let btn = $("<button>")
          .addClass("list-group-item list-group-item-action")
          .text(opt)
          .click(function() {
            $("#options button").removeClass("active");
            $(this).addClass("active");
            chosen = opt;
          });
        $("#options").append(btn);
      });

      $("#result").empty();
    }
  });
}

$(document).ready(function() {
  loadQuestion();
  $("#submitBtn").click(submitAnswer);
  $("#nextBtn").click(loadNext);
});