Newer
Older
var jDepartmentSelect = $("select.SelectDepartment");
var jNameFilterInput = $("input.InputTeacherName");
var jFacultySelect = $("select.SelectFaculty");
var teacherPrototype = $($.parseHTML(
"<div class='Teacher' id='0'>\
<div class='Name'></div>\
<button class='Action'></button>\
<button class='Action_ChangeOwner'>Передать дисциплину</button>\
</div>"
));
// Добавить преподавателя
function AddTeacher(ID, name, action){
var cell = teacherPrototype.clone();
cell.prop("id", ID);
cell.find("div.Name").html(name);
var temp = cell.find("button.Action");
temp.addClass("Action_"+action+"Teacher");
if (action == "Unbind")
temp.html("Отсоединить");
else if (action == "Bind")
temp.html("Присоединить");
cell.find("button.Action_ChangeOwner").addClass("Action");
return cell;
}
// Поиск преподавателей
function CallSearchTeachers(){
/*
It is a bad idea to make an ajax request every time, you want to refresh list.
The better solution: use list.js extension, and load the whole list with the first page load.
*/
var source = jNameFilterInput.val();
var name = source.split(" ");
{
"FacultyID": jFacultySelect.val(),
"DepartmentID": jDepartmentSelect.val(),
"Last": name[0],
"First": name[1],
"Second": name[2],
"DisciplineID": g_disciplineID
},
function(data) {
var jSearchResult = $('.SearchResult');
var teachers = $.parseJSON(data);
if (teachers.length) {
jSearchResult.html('');
for (var i in teachers) {
var t = teachers[i];
var name = t.LastName + ' ' + t.FirstName + ' ' + t.SecondName;
jSearchResult.append(AddTeacher(t.ID, name, 'Bind'));
} else {
jSearchResult.html('<p class="notification">Нет результатов... Возможно, преподаватели, соответствующие критериям поиска, уже прикреплены.</p>');
}
}
);
}
// Выборка факультета
jFacultySelect.change(function(){
if ($(this).val() === '0') {
jDepartmentSelect.html("<option value='0'>Нет кафедр</option>");
} else {
jDepartmentSelect.prop("disabled",true);
jNameFilterInput.prop("disabled",true);
$.post(
g_URLdir + "handler/map/GetDepartments",
{
"FacultyID": $(this).val()
},
function (Dep) {
var Dep = $.parseJSON(Dep);
var i = 0;
if (Dep != null && Dep != undefined) {
jDepartmentSelect.html("<option value='0'>Выберите кафедру (не обязательно)</option>");
for (i in Dep) {
var dep = Dep[i];
if (!dep.Name) dep.Name = 'Служебная кафедра';
jDepartmentSelect.append("<option value='" + dep.ID + "'>" + dep.Name + "</option>");
}
if (i <= 0)
jDepartmentSelect.html("<option value='0'>Нет кафедр</option>");
jDepartmentSelect.removeAttr("disabled");
jNameFilterInput.removeAttr("disabled");
);
}
// jDepartmentSelect.change(function(){
// CallSearchTeachers();
// });
// jNameFilterInput.focusout(function(){
// CallSearchTeachers();
// });
// jNameFilterInput.keydown(function(e){
// if(e.keyCode==13){
// $(this).focusout("focusout");
// $(this).blur();
// }
// });
var typewatch = (function() {
var timer = 0;
return function(callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
var updateList = function(e) {
typewatch(function() {
}, 700);
};
$(".searchBtn").click(updateList);
$(".InputTeacherName")
.keyup(updateList)
.bind("paste", updateList);
// Конец поиска преподавателей
// Передать дисциплину
$(".TeachersList").on("click", "button.Action_ChangeOwner", function(){
if (confirm("Вы действительно хотите передать дисциплину?")) {
var jThis = $(this);
$(this).attr("disabled", true);
$.post(
"teacherID": parseInt(jThis.parent().attr("id"))
EventInspector.error("Ошибка при передаче дисциплины");
} else {
setTimeout("location.replace('"+g_URLdir+"')", 100);
}
}
);
}
});
// Отсоединить преподавателя
$(".TeachersList").on("click", "button.Action_UnbindTeacher", function(){
var jThis = $(this);
$(this).attr("disabled", true);
var ID = $(this).parent().attr("id");
$.post(
EventInspector.error("Ошибка при отсоединении преподавателя");
} else {
jThis.parent().remove();
}
}
);
});
// Присоединить преподавателя
$(".TeachersList").on("click", "button.Action_BindTeacher", function(){
var jThis = $(this);
$(this).attr("disabled", true);
var ID = $(this).parent().attr("id");
var Name = $(this).siblings(".Name").text();
$.post(
EventInspector.error("Ошибка при прикреплении преподавателя");
} else {
$(".BindTeachersList").append(AddTeacher(ID, Name, "Unbind"));
jThis.parent().remove();