Files
edx-platform/lms/static/js/instructor_dashboard/student_admin.js
Syed Ali Abbas Zaidi 8480dbc228 chore: apply amnesty on existing not fixable issues (#32215)
* fix: eslint operator-linebreak issue

* fix: eslint quotes issue

* fix: react jsx indent and props issues

* fix: eslint trailing spaces issues

* fix: eslint line around directives issue

* fix: eslint semi rule

* fix: eslint newline per chain rule

* fix: eslint space infix ops rule

* fix: eslint space-in-parens issue

* fix: eslint space before function paren issue

* fix: eslint space before blocks issue

* fix: eslint arrow body style issue

* fix: eslint dot-location issue

* fix: eslint quotes issue

* fix: eslint quote props issue

* fix: eslint operator assignment issue

* fix: eslint new line after import issue

* fix: indent issues

* fix: operator assignment issue

* fix: all autofixable eslint issues

* fix: all react related fixable issues

* fix: autofixable eslint issues

* chore: remove all template literals

* fix: remaining autofixable issues

* chore: apply amnesty on all existing issues

* fix: failing xss-lint issues

* refactor: apply amnesty on remaining issues

* refactor: apply amnesty on new issues

* fix: remove file level suppressions

* refactor: apply amnesty on new issues
2023-08-07 19:13:19 +05:00

713 lines
38 KiB
JavaScript

/* globals _, interpolate_text */
(function() {
'use strict';
var PendingInstructorTasks, createTaskListTable, findAndAssert, statusAjaxError;
statusAjaxError = function() {
return window.InstructorDashboard.util.statusAjaxError.apply(this, arguments);
};
createTaskListTable = function() {
return window.InstructorDashboard.util.createTaskListTable.apply(this, arguments);
};
PendingInstructorTasks = function() {
return window.InstructorDashboard.util.PendingInstructorTasks;
};
findAndAssert = function($root, selector) {
var item, msg;
item = $root.find(selector);
if (item.length !== 1) {
msg = 'Failed Element Selection';
throw msg;
} else {
return item;
}
};
this.StudentAdmin = (function() {
function StudentAdmin($section) {
var studentadmin = this;
this.$section = $section;
this.$section.data('wrapper', this);
this.$field_student_select_enrollment_status = findAndAssert(this.$section, "input[name='student-select-enrollment-status']");
this.$field_student_select_progress = findAndAssert(this.$section, "input[name='student-select-progress']");
this.$field_student_select_grade = findAndAssert(this.$section, "input[name='student-select-grade']");
this.$progress_link = findAndAssert(this.$section, 'a.progress-link');
this.$field_problem_select_single = findAndAssert(this.$section, "input[name='problem-select-single']");
this.$btn_reset_attempts_single = findAndAssert(this.$section, "input[name='reset-attempts-single']");
this.$btn_delete_state_single = this.$section.find("input[name='delete-state-single']");
this.$btn_rescore_problem_single = this.$section.find("input[name='rescore-problem-single']");
this.$btn_rescore_problem_if_higher_single = this.$section.find(
"input[name='rescore-problem-if-higher-single']"
);
this.$btn_override_problem_score_single = this.$section.find(
"input[name='override-problem-score-single']"
);
this.$field_select_score_single = findAndAssert(this.$section, "input[name='score-select-single']");
this.$btn_task_history_single = this.$section.find("input[name='task-history-single']");
this.$table_task_history_single = this.$section.find('.task-history-single-table');
this.$field_exam_grade = this.$section.find("input[name='entrance-exam-student-select-grade']");
this.$btn_reset_entrance_exam_attempts = this.$section.find("input[name='reset-entrance-exam-attempts']");
this.$btn_delete_entrance_exam_state = this.$section.find("input[name='delete-entrance-exam-state']");
this.$btn_rescore_entrance_exam = this.$section.find("input[name='rescore-entrance-exam']");
this.$btn_rescore_entrance_exam_if_higher = this.$section.find(
"input[name='rescore-entrance-exam-if-higher']"
);
this.$btn_skip_entrance_exam = this.$section.find("input[name='skip-entrance-exam']");
this.$btn_entrance_exam_task_history = this.$section.find("input[name='entrance-exam-task-history']");
this.$table_entrance_exam_task_history = this.$section.find('.entrance-exam-task-history-table');
this.$field_problem_select_all = this.$section.find("input[name='problem-select-all']");
this.$btn_reset_attempts_all = this.$section.find("input[name='reset-attempts-all']");
this.$btn_rescore_problem_all = this.$section.find("input[name='rescore-problem-all']");
this.$btn_rescore_problem_if_higher_all = this.$section.find("input[name='rescore-problem-all-if-higher']");
this.$btn_task_history_all = this.$section.find("input[name='task-history-all']");
this.$table_task_history_all = this.$section.find('.task-history-all-table');
this.instructor_tasks = new (PendingInstructorTasks())(this.$section);
this.$request_err_enrollment_status = findAndAssert(this.$section, '.student-enrollment-status-container .request-response-error');
this.$request_err_progress = findAndAssert(this.$section, '.student-progress-container .request-response-error');
this.$request_err_grade = findAndAssert(this.$section, '.student-grade-container .request-response-error');
this.$request_err_ee = this.$section.find('.entrance-exam-grade-container .request-response-error');
this.$request_response_error_all = this.$section.find('.course-specific-container .request-response-error');
this.$enrollment_status_link = findAndAssert(this.$section, 'a.enrollment-status-link');
this.$enrollment_status = findAndAssert(this.$section, '.student-enrollment-status');
this.$enrollment_status_link.click(function(e) {
var errorMessage, fullErrorMessage, uniqStudentIdentifier;
e.preventDefault();
uniqStudentIdentifier = studentadmin.$field_student_select_enrollment_status.val();
if (!uniqStudentIdentifier) {
studentadmin.$enrollment_status.text('');
return studentadmin.$request_err_enrollment_status.text(
gettext('Please enter a student email address or username.')
);
}
errorMessage = gettext("Error getting enrollment status for '<%- student_id %>'. Make sure that the student identifier is spelled correctly."); // eslint-disable-line max-len
fullErrorMessage = _.template(errorMessage)({
student_id: uniqStudentIdentifier
});
studentadmin.$enrollment_status.text(gettext('Retrieving enrollment status...'));
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$enrollment_status_link.data('endpoint'),
data: {
course_id: studentadmin.$enrollment_status_link.data('course-id'),
unique_student_identifier: uniqStudentIdentifier
},
success: studentadmin.clear_errors_then(function(data) {
return studentadmin.$enrollment_status.text(data.enrollment_status);
}),
error: statusAjaxError(function() {
studentadmin.$enrollment_status.text('');
return studentadmin.$request_err_enrollment_status.text(fullErrorMessage);
})
});
});
this.$progress_link.click(function(e) {
var errorMessage, fullErrorMessage, uniqStudentIdentifier;
e.preventDefault();
uniqStudentIdentifier = studentadmin.$field_student_select_progress.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_progress.text(
gettext('Please enter a student email address or username.')
);
}
errorMessage = gettext("Error getting student progress url for '<%- student_id %>'. Make sure that the student identifier is spelled correctly."); // eslint-disable-line max-len
fullErrorMessage = _.template(errorMessage)({
student_id: uniqStudentIdentifier
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$progress_link.data('endpoint'),
data: {
unique_student_identifier: uniqStudentIdentifier
},
success: studentadmin.clear_errors_then(function(data) {
window.location = data.progress_url;
return window.location;
}),
error: statusAjaxError(function() {
return studentadmin.$request_err_progress.text(fullErrorMessage);
})
});
});
this.$btn_reset_attempts_single.click(function() {
var errorMessage, fullErrorMessage, fullSuccessMessage,
problemToReset, sendData, successMessage, uniqStudentIdentifier;
uniqStudentIdentifier = studentadmin.$field_student_select_grade.val();
problemToReset = studentadmin.$field_problem_select_single.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_grade.text(
gettext('Please enter a student email address or username.')
);
}
if (!problemToReset) {
return studentadmin.$request_err_grade.text(gettext('Please enter a problem location.'));
}
sendData = {
unique_student_identifier: uniqStudentIdentifier,
problem_to_reset: problemToReset,
delete_module: false
};
successMessage = gettext("Success! Problem attempts reset for problem '<%- problem_id %>' and student '<%- student_id %>'."); // eslint-disable-line max-len
errorMessage = gettext("Error resetting problem attempts for problem '<%- problem_id %>' and student '<%- student_id %>'. Make sure that the problem and student identifiers are complete and correct."); // eslint-disable-line max-len
fullSuccessMessage = _.template(successMessage)({
problem_id: problemToReset,
student_id: uniqStudentIdentifier
});
fullErrorMessage = _.template(errorMessage)({
problem_id: problemToReset,
student_id: uniqStudentIdentifier
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_reset_attempts_single.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function() {
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function() {
return studentadmin.$request_err_grade.text(fullErrorMessage);
})
});
});
this.$btn_delete_state_single.click(function() {
var confirmMessage, errorMessage, fullConfirmMessage,
fullErrorMessage, problemToReset, sendData, uniqStudentIdentifier;
uniqStudentIdentifier = studentadmin.$field_student_select_grade.val();
problemToReset = studentadmin.$field_problem_select_single.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_grade.text(
gettext('Please enter a student email address or username.')
);
}
if (!problemToReset) {
return studentadmin.$request_err_grade.text(
gettext('Please enter a problem location.')
);
}
confirmMessage = gettext("Delete student '<%- student_id %>'s state on problem '<%- problem_id %>'?");
fullConfirmMessage = _.template(confirmMessage)({
student_id: uniqStudentIdentifier,
problem_id: problemToReset
});
if (window.confirm(fullConfirmMessage)) { // eslint-disable-line no-alert
sendData = {
unique_student_identifier: uniqStudentIdentifier,
problem_to_reset: problemToReset,
delete_module: true
};
errorMessage = gettext("Error deleting student '<%- student_id %>'s state on problem '<%- problem_id %>'. Make sure that the problem and student identifiers are complete and correct."); // eslint-disable-line max-len
fullErrorMessage = _.template(errorMessage)({
student_id: uniqStudentIdentifier,
problem_id: problemToReset
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_delete_state_single.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function() {
return alert(gettext('Module state successfully deleted.')); // eslint-disable-line no-alert, max-len
}),
error: statusAjaxError(function() {
return studentadmin.$request_err_grade.text(fullErrorMessage);
})
});
} else {
return studentadmin.clear_errors();
}
});
this.$btn_rescore_problem_single.click(function() {
return studentadmin.rescore_problem_single(false);
});
this.$btn_rescore_problem_if_higher_single.click(function() {
return studentadmin.rescore_problem_single(true);
});
this.$btn_task_history_single.click(function() {
var errorMessage, fullErrorMessage, problemToReset, sendData, uniqStudentIdentifier;
uniqStudentIdentifier = studentadmin.$field_student_select_grade.val();
problemToReset = studentadmin.$field_problem_select_single.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_grade.text(
gettext('Please enter a student email address or username.')
);
}
if (!problemToReset) {
return studentadmin.$request_err_grade.text(
gettext('Please enter a problem location.')
);
}
sendData = {
unique_student_identifier: uniqStudentIdentifier,
problem_location_str: problemToReset
};
errorMessage = gettext("Error getting task history for problem '<%- problem_id %>' and student '<%- student_id %>'. Make sure that the problem and student identifiers are complete and correct."); // eslint-disable-line max-len
fullErrorMessage = _.template(errorMessage)({
student_id: uniqStudentIdentifier,
problem_id: problemToReset
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_task_history_single.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function(data) {
return createTaskListTable(studentadmin.$table_task_history_single, data.tasks);
}),
error: statusAjaxError(function() {
return studentadmin.$request_err_grade.text(fullErrorMessage);
})
});
});
this.$btn_reset_entrance_exam_attempts.click(function() {
var sendData, uniqStudentIdentifier;
uniqStudentIdentifier = studentadmin.$field_exam_grade.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_ee.text(gettext(
'Please enter a student email address or username.')
);
}
sendData = {
unique_student_identifier: uniqStudentIdentifier,
delete_module: false
};
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_reset_entrance_exam_attempts.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function() {
var fullSuccessMessage, successMessage;
successMessage = gettext("Entrance exam attempts is being reset for student '{student_id}'.");
fullSuccessMessage = interpolate_text(successMessage, {
student_id: uniqStudentIdentifier
});
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function() {
var errorMessage, fullErrorMessage;
errorMessage = gettext("Error resetting entrance exam attempts for student '{student_id}'. Make sure student identifier is correct."); // eslint-disable-line max-len
fullErrorMessage = interpolate_text(errorMessage, {
student_id: uniqStudentIdentifier
});
return studentadmin.$request_err_ee.text(fullErrorMessage);
})
});
});
this.$btn_rescore_entrance_exam.click(function() {
return studentadmin.rescore_entrance_exam_all(false);
});
this.$btn_rescore_entrance_exam_if_higher.click(function() {
return studentadmin.rescore_entrance_exam_all(true);
});
this.$btn_skip_entrance_exam.click(function() {
var confirmMessage, fullConfirmMessage, sendData, uniqStudentIdentifier;
uniqStudentIdentifier = studentadmin.$field_exam_grade.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_ee.text(gettext("Enter a student's username or email address."));
}
confirmMessage = gettext("Do you want to allow this student ('{student_id}') to skip the entrance exam?"); // eslint-disable-line max-len
fullConfirmMessage = interpolate_text(confirmMessage, {
student_id: uniqStudentIdentifier
});
if (window.confirm(fullConfirmMessage)) { // eslint-disable-line no-alert
sendData = {
unique_student_identifier: uniqStudentIdentifier
};
return $.ajax({
dataType: 'json',
url: studentadmin.$btn_skip_entrance_exam.data('endpoint'),
data: sendData,
type: 'POST',
success: studentadmin.clear_errors_then(function(data) {
return alert(data.message); // eslint-disable-line no-alert
}),
error: statusAjaxError(function() {
var errorMessage;
errorMessage = gettext("An error occurred. Make sure that the student's username or email address is correct and try again."); // eslint-disable-line max-len
return studentadmin.$request_err_ee.text(errorMessage);
})
});
}
return false;
});
this.$btn_delete_entrance_exam_state.click(function() {
var sendData, uniqStudentIdentifier;
uniqStudentIdentifier = studentadmin.$field_exam_grade.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_ee.text(
gettext('Please enter a student email address or username.')
);
}
sendData = {
unique_student_identifier: uniqStudentIdentifier,
delete_module: true
};
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_delete_entrance_exam_state.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function() {
var fullSuccessMessage, successMessage;
successMessage = gettext("Entrance exam state is being deleted for student '{student_id}'.");
fullSuccessMessage = interpolate_text(successMessage, {
student_id: uniqStudentIdentifier
});
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function() {
var errorMessage, fullErrorMessage;
errorMessage = gettext("Error deleting entrance exam state for student '{student_id}'. Make sure student identifier is correct."); // eslint-disable-line max-len
fullErrorMessage = interpolate_text(errorMessage, {
student_id: uniqStudentIdentifier
});
return studentadmin.$request_err_ee.text(fullErrorMessage);
})
});
});
this.$btn_entrance_exam_task_history.click(function() {
var sendData, uniqStudentIdentifier;
uniqStudentIdentifier = studentadmin.$field_exam_grade.val();
if (!uniqStudentIdentifier) {
return studentadmin.$request_err_ee.text(
gettext("Enter a student's username or email address.")
);
}
sendData = {
unique_student_identifier: uniqStudentIdentifier
};
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_entrance_exam_task_history.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function(data) {
return createTaskListTable(studentadmin.$table_entrance_exam_task_history, data.tasks);
}),
error: statusAjaxError(function() {
var errorMessage, fullErrorMessage;
errorMessage = gettext("Error getting entrance exam task history for student '{student_id}'. Make sure student identifier is correct."); // eslint-disable-line max-len
fullErrorMessage = interpolate_text(errorMessage, {
student_id: uniqStudentIdentifier
});
return studentadmin.$request_err_ee.text(fullErrorMessage);
})
});
});
this.$btn_reset_attempts_all.click(function() {
var confirmMessage, errorMessage, fullConfirmMessage,
fullErrorMessage, fullSuccessMessage, problemToReset, sendData, successMessage;
problemToReset = studentadmin.$field_problem_select_all.val();
if (!problemToReset) {
return studentadmin.$request_response_error_all.text(
gettext('Please enter a problem location.')
);
}
confirmMessage = gettext("Reset attempts for all students on problem '<%- problem_id %>'?");
fullConfirmMessage = _.template(confirmMessage)({
problem_id: problemToReset
});
if (window.confirm(fullConfirmMessage)) { // eslint-disable-line no-alert
sendData = {
all_students: true,
problem_to_reset: problemToReset
};
successMessage = gettext("Successfully started task to reset attempts for problem '<%- problem_id %>'. Click the 'Show Task Status' button to see the status of the task."); // eslint-disable-line max-len
fullSuccessMessage = _.template(successMessage)({
problem_id: problemToReset
});
errorMessage = gettext("Error starting a task to reset attempts for all students on problem '<%- problem_id %>'. Make sure that the problem identifier is complete and correct."); // eslint-disable-line max-len
fullErrorMessage = _.template(errorMessage)({
problem_id: problemToReset
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_reset_attempts_all.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function() {
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function() {
return studentadmin.$request_response_error_all.text(fullErrorMessage);
})
});
} else {
return studentadmin.clear_errors();
}
});
this.$btn_rescore_problem_all.click(function() {
return studentadmin.rescore_problem_all(false);
});
this.$btn_rescore_problem_if_higher_all.click(function() {
return studentadmin.rescore_problem_all(true);
});
this.$btn_override_problem_score_single.click(function() {
return studentadmin.override_problem_score_single();
});
this.$btn_task_history_all.click(function() {
var sendData;
sendData = {
problem_location_str: studentadmin.$field_problem_select_all.val()
};
if (!sendData.problem_location_str) {
return studentadmin.$request_response_error_all.text(
gettext('Please enter a problem location.')
);
}
return $.ajax({
type: 'POST',
dataType: 'json',
url: studentadmin.$btn_task_history_all.data('endpoint'),
data: sendData,
success: studentadmin.clear_errors_then(function(data) {
return createTaskListTable(studentadmin.$table_task_history_all, data.tasks);
}),
error: statusAjaxError(function() {
return studentadmin.$request_response_error_all.text(
gettext('Error listing task history for this student and problem.')
);
})
});
});
}
StudentAdmin.prototype.rescore_problem_single = function(onlyIfHigher) {
var defaultErrorMessage, fullDefaultErrorMessage, fullSuccessMessage,
problemToReset, sendData, successMessage, uniqStudentIdentifier,
that = this;
uniqStudentIdentifier = this.$field_student_select_grade.val();
problemToReset = this.$field_problem_select_single.val();
if (!uniqStudentIdentifier) {
return this.$request_err_grade.text(
gettext('Please enter a student email address or username.')
);
}
if (!problemToReset) {
return this.$request_err_grade.text(
gettext('Please enter a problem location.')
);
}
sendData = {
unique_student_identifier: uniqStudentIdentifier,
problem_to_reset: problemToReset,
only_if_higher: onlyIfHigher
};
successMessage = gettext("Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task."); // eslint-disable-line max-len
fullSuccessMessage = _.template(successMessage)({
student_id: uniqStudentIdentifier,
problem_id: problemToReset
});
defaultErrorMessage = gettext("Error starting a task to rescore problem '<%- problem_id %>' for student '<%- student_id %>'. Make sure that the the problem and student identifiers are complete and correct."); // eslint-disable-line max-len
fullDefaultErrorMessage = _.template(defaultErrorMessage)({
student_id: uniqStudentIdentifier,
problem_id: problemToReset
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: this.$btn_rescore_problem_single.data('endpoint'),
data: sendData,
success: this.clear_errors_then(function() {
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function(response) {
if (response.responseText) {
return that.$request_err_grade.text(response.responseText);
}
return that.$request_err_grade.text(fullDefaultErrorMessage);
})
});
};
StudentAdmin.prototype.override_problem_score_single = function() {
var defaultErrorMessage, fullDefaultErrorMessage, fullSuccessMessage,
problemToReset, score, sendData, successMessage, uniqStudentIdentifier,
that = this;
uniqStudentIdentifier = this.$field_student_select_grade.val();
problemToReset = this.$field_problem_select_single.val();
score = this.$field_select_score_single.val();
if (!uniqStudentIdentifier) {
return this.$request_err_grade.text(
gettext('Please enter a student email address or username.')
);
}
if (!problemToReset) {
return this.$request_err_grade.text(
gettext('Please enter a problem location.')
);
}
if (!score) {
return this.$request_err_grade.text(
gettext('Please enter a score.')
);
}
sendData = {
unique_student_identifier: uniqStudentIdentifier,
problem_to_reset: problemToReset,
score: score
};
successMessage = gettext("Started task to override the score for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task."); // eslint-disable-line max-len
fullSuccessMessage = _.template(successMessage)({
student_id: uniqStudentIdentifier,
problem_id: problemToReset
});
defaultErrorMessage = gettext("Error starting a task to override score for problem '<%- problem_id %>' for student '<%- student_id %>'. Make sure that the the score and the problem and student identifiers are complete and correct."); // eslint-disable-line max-len
fullDefaultErrorMessage = _.template(defaultErrorMessage)({
student_id: uniqStudentIdentifier,
problem_id: problemToReset
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: this.$btn_override_problem_score_single.data('endpoint'),
data: sendData,
success: this.clear_errors_then(function() {
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function(response) {
if (response.responseText) {
return that.$request_err_grade.text(response.responseText);
}
return that.$request_err_grade.text(fullDefaultErrorMessage);
})
});
};
StudentAdmin.prototype.rescore_entrance_exam_all = function(onlyIfHigher) {
var sendData, uniqStudentIdentifier,
that = this;
uniqStudentIdentifier = this.$field_exam_grade.val();
if (!uniqStudentIdentifier) {
return this.$request_err_ee.text(gettext(
'Please enter a student email address or username.')
);
}
sendData = {
unique_student_identifier: uniqStudentIdentifier,
only_if_higher: onlyIfHigher
};
return $.ajax({
type: 'POST',
dataType: 'json',
url: this.$btn_rescore_entrance_exam.data('endpoint'),
data: sendData,
success: this.clear_errors_then(function() {
var fullSuccessMessage, successMessage;
successMessage = gettext("Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task."); // eslint-disable-line max-len
fullSuccessMessage = interpolate_text(successMessage, {
student_id: uniqStudentIdentifier
});
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function() {
var errorMessage, fullErrorMessage;
errorMessage = gettext("Error starting a task to rescore entrance exam for student '{student_id}'. Make sure that entrance exam has problems in it and student identifier is correct."); // eslint-disable-line max-len
fullErrorMessage = interpolate_text(errorMessage, {
student_id: uniqStudentIdentifier
});
return that.$request_err_ee.text(fullErrorMessage);
})
});
};
StudentAdmin.prototype.rescore_problem_all = function(onlyIfHigher) {
var confirmMessage, defaultErrorMessage, fullConfirmMessage,
fullDefaultErrorMessage, fullSuccessMessage, problemToReset,
sendData, successMessage,
that = this;
problemToReset = this.$field_problem_select_all.val();
if (!problemToReset) {
return this.$request_response_error_all.text(
gettext('Please enter a problem location.')
);
}
confirmMessage = gettext("Rescore problem '<%- problem_id %>' for all students?");
fullConfirmMessage = _.template(confirmMessage)({
problem_id: problemToReset
});
if (window.confirm(fullConfirmMessage)) { // eslint-disable-line no-alert
sendData = {
all_students: true,
problem_to_reset: problemToReset,
only_if_higher: onlyIfHigher
};
successMessage = gettext("Successfully started task to rescore problem '<%- problem_id %>' for all students. Click the 'Show Task Status' button to see the status of the task."); // eslint-disable-line max-len
fullSuccessMessage = _.template(successMessage)({
problem_id: problemToReset
});
defaultErrorMessage = gettext("Error starting a task to rescore problem '<%- problem_id %>'. Make sure that the problem identifier is complete and correct."); // eslint-disable-line max-len
fullDefaultErrorMessage = _.template(defaultErrorMessage)({
problem_id: problemToReset
});
return $.ajax({
type: 'POST',
dataType: 'json',
url: this.$btn_rescore_problem_all.data('endpoint'),
data: sendData,
success: this.clear_errors_then(function() {
return alert(fullSuccessMessage); // eslint-disable-line no-alert
}),
error: statusAjaxError(function(response) {
if (response.responseText) {
return that.$request_response_error_all.text(response.responseText);
}
return that.$request_response_error_all.text(fullDefaultErrorMessage);
})
});
} else {
return this.clear_errors();
}
};
StudentAdmin.prototype.clear_errors_then = function(cb) {
this.$request_err_enrollment_status.empty();
this.$request_err_progress.empty();
this.$request_err_grade.empty();
this.$request_err_ee.empty();
this.$request_response_error_all.empty();
return function() {
// eslint-disable-next-line no-void
return cb != null ? cb.apply(this, arguments) : void 0;
};
};
StudentAdmin.prototype.clear_errors = function() {
this.$request_err_enrollment_status.empty();
this.$request_err_progress.empty();
this.$request_err_grade.empty();
this.$request_err_ee.empty();
return this.$request_response_error_all.empty();
};
StudentAdmin.prototype.onClickTitle = function() {
return this.instructor_tasks.task_poller.start();
};
StudentAdmin.prototype.onExit = function() {
return this.instructor_tasks.task_poller.stop();
};
return StudentAdmin;
}());
_.defaults(window, {
InstructorDashboard: {}
});
_.defaults(window.InstructorDashboard, {
sections: {}
});
_.defaults(window.InstructorDashboard.sections, {
StudentAdmin: this.StudentAdmin
});
}).call(this);