162 lines
6.3 KiB
HTML
162 lines
6.3 KiB
HTML
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
// send request to change the is_private state on customSwitches toggle
|
|
$("#exam-active-switch, .exam-active-switch").on("change", function (evt) {
|
|
$.ajax({
|
|
url: evt.currentTarget.dataset.posturl,
|
|
data: {
|
|
csrfmiddlewaretoken: "{{ csrf_token }}",
|
|
active: this.checked // true if checked else false
|
|
},
|
|
type: "POST",
|
|
dataType: "json",
|
|
})
|
|
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
|
|
.done(function (data) {
|
|
console.log(data);
|
|
|
|
if (data.status == "success") {
|
|
toastr.info(`Exam: ${data.name} [${data.id}]
|
|
Active state changed to: ${data.active}.`)
|
|
}
|
|
// show some message according to the response.
|
|
// For eg. A message box showing that the status has been changed
|
|
})
|
|
.fail(function (data) {
|
|
console.log(data)
|
|
toastr.error(`Failed to change state<br/>${data.responseJSON.status}`);
|
|
})
|
|
.always(function () {
|
|
console.log('[Done]');
|
|
})
|
|
})
|
|
$("#exam-publish-results-switch, .exam-publish-results-switch").on("change", function (evt) {
|
|
$.ajax({
|
|
url: evt.currentTarget.dataset.posturl,
|
|
data: {
|
|
csrfmiddlewaretoken: "{{ csrf_token }}",
|
|
publish_results: this.checked // true if checked else false
|
|
},
|
|
type: "POST",
|
|
dataType: "json",
|
|
})
|
|
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
|
|
.done(function (data) {
|
|
console.log(data);
|
|
|
|
if (data.status == "success") {
|
|
toastr.info(`Exam: ${data.name} [${data.id}]
|
|
Published state changed to: ${data.publish_results}.`)
|
|
}
|
|
// show some message according to the response.
|
|
// For eg. A message box showing that the status has been changed
|
|
})
|
|
.fail(function (data) {
|
|
toastr.error(`Failed to change state`);
|
|
})
|
|
.always(function () {
|
|
console.log('[Done]');
|
|
})
|
|
})
|
|
$("#button-open-access").click(function (evt) {
|
|
$.ajax({
|
|
url: evt.currentTarget.dataset.posturl,
|
|
data: {
|
|
csrfmiddlewaretoken: "{{ csrf_token }}",
|
|
set_open_access: true,
|
|
},
|
|
type: "POST",
|
|
dataType: "json",
|
|
})
|
|
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
|
|
.done(function (data) {
|
|
console.log(data);
|
|
|
|
if (data.status == "success") {
|
|
toastr.info('Question access state changed.');
|
|
} else {
|
|
toastr.warning("Error");
|
|
toastr.info(data.status);
|
|
}
|
|
})
|
|
.fail((e) => {
|
|
toastr.warning(`Error, ${e}`);
|
|
})
|
|
.always(function () {
|
|
console.log('[Done]');
|
|
})
|
|
})
|
|
$("#button-closed-access").click(function (evt) {
|
|
$.ajax({
|
|
url: evt.currentTarget.dataset.posturl,
|
|
data: {
|
|
csrfmiddlewaretoken: "{{ csrf_token }}",
|
|
set_open_access: false,
|
|
},
|
|
type: "POST",
|
|
dataType: "json",
|
|
})
|
|
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
|
|
.done(function (data) {
|
|
console.log(data);
|
|
|
|
if (data.status == "success") {
|
|
toastr.info('Question access state changed.');
|
|
} else {
|
|
toastr.warning("Error");
|
|
toastr.info(data.status);
|
|
}
|
|
})
|
|
.fail((e) => {
|
|
toastr.warning(`Error, ${e}`);
|
|
})
|
|
.always(function () {
|
|
console.log('[Done]');
|
|
})
|
|
})
|
|
$("#button-edit-order").click(function (evt) {
|
|
$(this).remove();
|
|
sortable('.sortable');
|
|
|
|
$("#full-question-list li").each((n, el) => {
|
|
$(el).append($(
|
|
"<span class='exam-question-delete flex-col'><button>DELETE</button></span>"
|
|
).click(() => {
|
|
el.remove();
|
|
}));
|
|
})
|
|
|
|
|
|
$("#full-question-list").append($(
|
|
"<button title='click and drag questions to change order'>Save exam order</button>"
|
|
).click(() => {
|
|
new_order = [];
|
|
$("#full-question-list li").each((n, el) => {
|
|
new_order.push(el.dataset.question_pk)
|
|
})
|
|
$.ajax({
|
|
url: evt.currentTarget.dataset.posturl,
|
|
data: {
|
|
csrfmiddlewaretoken: "{{ csrf_token }}",
|
|
set_exam_order: JSON.stringify(new_order),
|
|
},
|
|
type: "POST",
|
|
dataType: "json",
|
|
})
|
|
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
|
|
.done(function (data) {
|
|
console.log(data);
|
|
|
|
if (data.status == "success") {
|
|
toastr.info('Exam order changed.')
|
|
}
|
|
})
|
|
.always(function () {
|
|
console.log('[Done]');
|
|
})
|
|
}));
|
|
});
|
|
|
|
|
|
});
|
|
</script> |