1+ {% load i18n %}
2+
3+ <div class="modal-header">
4+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
5+ {# Translators: Title of move problem modal.#}
6+ <h4 class="modal-title">{% trans "Move problem" %} {{ problem.title }}</h4>
7+ </div>
8+ <div class="modal-body">
9+ {# Translators: Text of move problem modal.#}
10+ {% trans "Please choose a problem set to move this problem to:" %}
11+
12+ <form action="{% url 'problem_move_to' problem.id %}" method="post" id='move_problem_form'>
13+ {% csrf_token %}
14+ <input type="hidden" name="problem_set_id", id="problem_set_id">
15+ <div id='problem_list_tree'></div>
16+ </form>
17+ </div>
18+ <div class="modal-footer">
19+ <button class="btn btn-primary" id="button_move_confirm" disabled=true>
20+ {# Translators: Confirm moving a problem.#}
21+ {% trans "Move" %}
22+ </button>
23+ <button type="button" class="btn btn-default" data-dismiss="modal">{% trans "Cancel" %}</button>
24+ </div>
25+
26+ <script>
27+ function moveButtonDisabled(state) {
28+ $button = $("#button_move_confirm");
29+ $button.attr("disabled", state);
30+ }
31+
32+ function nodeSelected() {
33+ moveButtonDisabled(false);
34+ }
35+
36+ function nodeUnselected() {
37+ moveButtonDisabled(true);
38+ }
39+
40+ $('#button_move_confirm').on('click', function () {
41+ selectedItem = $('#problem_list_tree').treeview('getSelected')[0];
42+ console.log("tada");
43+ console.log(selectedItem);
44+ console.log(selectedItem.id);
45+ $("#problem_set_id").val(selectedItem.id);
46+ $("#move_problem_form").submit();
47+ });
48+
49+ var data = [
50+ // Prepare data
51+ {% for course in courses %}
52+ {
53+ text: "{{ course.title }}",
54+ selectable: false,
55+ nodes: [
56+ {% for ps in course.problem_sets.all %}
57+ {
58+ text: "{{ ps.title }}",
59+ id: {{ ps.id }}
60+ },
61+ {% endfor %}
62+ ]
63+ },
64+ {% endfor %}
65+ ];
66+ problem_tree = $('#problem_list_tree');
67+ problem_tree.treeview(
68+ {
69+ data: data,
70+ levels: 1,
71+ onNodeSelected: nodeSelected,
72+ onNodeUnselected: nodeUnselected,
73+ });
74+ </script>
0 commit comments