Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курc.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
606.17 Кб
Скачать

If(checkNullUndefined)

{

this.updateStudent(student);

callbackFunc();

}

},

this.basicErrorHandler

);

};

this.deleteStudent = ({studentId}, callbackFunc) =>

{

AjaxController('deleteStudent',

'studentController',

{studentId},

() =>

{

this.geleteStudent(studentId);

callbackFunc();

},

this.basicErrorHandler

);

};

}

/assets/js/views/CommonView.js

function CommonView()

{

this.closeAllPopups = () =>

{

var popups = document.getElementsByClassName('popupBox');

for(let i = 0, len = popups.length; i < len; i++)

{

popups[i].parentNode.style.display = 'none';

}

};

}

/assets/js/views/GroupView.js

function GroupView()

{

this.renderGroupTable = (groupsArr, allGroupsCountStudents, specialityKeys) =>

{

var tableContent = '',

speciality = '',

countStudents = 0,

document = window.document;

groupsArr.forEach((item) =>

{

countStudents = item.id in allGroupsCountStudents ? allGroupsCountStudents[item.id] : 0,

speciality = item.speciality in specialityKeys ? specialityKeys[item.speciality] : '';

tableContent += this.getOneTableRow(item, countStudents, speciality);

});

this.closeAllPopups();

document.getElementById('addButtonBox').getElementsByTagName('button')[0].setAttribute("onclick", "Group.showCreateGroupBox()");

document.getElementById('groupsButton').classList.add('active');

document.getElementById('studentsButton').classList.remove('active');

document.getElementById('studentsTableBox').style.display = 'none';

document.getElementById('groupsTableBox').style.display = 'block';

document.getElementById('groupsTableBox').getElementsByTagName('tbody')[0].innerHTML = tableContent;

};

this.renderCreateGroupBox = () =>

{

var inputs = document.getElementById('createGroup').getElementsByTagName('input');

for(let i = 0, len = inputs.length; i < len; i++)

{

inputs[i].value = '';

}

document.getElementById('createGroup').style.display = 'block';

};

this.renderGroupStudentsTable = (students) =>

{

var tableContent = '';

students.forEach((item) =>

{

tableContent += `<tr>

<td>${item.id}</td>

<td>${item.firstName}</td>

<td>${item.lastName}</td>

<td>${item.birtday}</td>

</tr>`;

});

document.getElementById('groupStudents').style.display = 'block';

document.getElementById('groupStudents').getElementsByTagName('tbody')[0].innerHTML = tableContent;

};

this.renderDeleteGroupShowBox = (groupId) =>

{

var groupBox = document.getElementById('deleteGroup');

groupBox.setAttribute('data-groupid', groupId);

groupBox.style.display = 'block';

};

this.renderEditGroupShowBox = (group) =>

{

var groupId = group.id,

groupBox = document.getElementById('editGroup');

groupBox.querySelector('input[data-type="groupname"]').value = group.name;

groupBox.querySelector('input[data-type="groupcurator"]').value = group.curatorNameLast;

groupBox.querySelector('select[data-type="groupspeciality"]').value = group.speciality;

groupBox.style.display = 'block';

groupBox.setAttribute('data-groupid', groupId);

};

this.renderExchangeGroupShowBox = (groupId, groupsArr) =>

{

var groupBox = '',

selectContent = '';

groupsArr.forEach((item) =>

{

if(item.id !== groupId)

{

selectContent += `<option value="${item.id}">ID: ${item.id} (${item.name})</option>`;

}

});

groupBox = document.getElementById('exchangeGroup');

groupBox.getElementsByTagName('select')[0].innerHTML = selectContent;

groupBox.style.display = 'block';

groupBox.setAttribute('data-groupid', groupId);

};

this.renderEmptyGroupShowBox = (groupId) =>

{

var emptyGroupBox = document.getElementById('emptyGroup');

emptyGroupBox.style.display = 'block';

emptyGroupBox.setAttribute('data-groupid', groupId);

};

this.getOneTableRow = (group, countStudents, speciality) =>

{

return `<tr data-groupid=${group.id} onclick="Group.showGroupStudents(this)">

<td>${group.id}</td>

<td>${group.name}</td>

<td>${group.curatorNameLast}</td>

<td>${speciality}</td>

<td>${countStudents}</td>

<td>

<button class="emptyButton" onclick="event.stopPropagation();Group.emptyGroupShowBox(this)"><i class="fa fa-chain-broken" aria-hidden="true"></i></button>

<button class="exchangeButton" onclick="event.stopPropagation();Group.exchangeGroupShowBox(this)"><i class="fa fa-exchange" aria-hidden="true"></i></button>

<button class="editButton" onclick="event.stopPropagation();Group.editGroupShowBox(this)"><i class="fa fa-pencil" aria-hidden="true"></i></button>

<button class="removeButton" onclick="event.stopPropagation();Group.deleteGroupShowBox(this)"><i class="fa fa-times" aria-hidden="true"></i></button>

</td>

</tr>`;

};

}

/assets/js/views/StudentView.js

function StudentView()

{

this.renderStudentTable = (allUsers, allGroups) =>

{

var tableContent = '',

groupName = '';

if(allUsers && allUsers.length > 0)

{

allUsers.forEach((item) =>

{

groupName = this.getStudentGroupNameById(item.groupId, allGroups);

tableContent += this.getOneTableRow(item, groupName);

});

this.closeAllPopups();

document.getElementById('addButtonBox').getElementsByTagName('button')[0].setAttribute("onclick", "Student.showCreateStudentBox()");

document.getElementById('studentsButton').classList.add('active');

document.getElementById('groupsButton').classList.remove('active');

document.getElementById('studentsTableBox').style.display = 'block';

document.getElementById('groupsTableBox').style.display = 'none';

$('#studentsTableBox tbody').empty().append(tableContent);

}

};

this.renderCreateStudentBox = (groupsIdArr) =>

{

var selectContent = '',

inputs = document.getElementById('createStudents').getElementsByTagName('input');

for(let i = 0, len = inputs.length; i < len; i++)

{

inputs[i].value = '';

}

groupsIdArr.forEach((item) =>

{

selectContent += `<option value="${item.id}">ID: ${item.id} (${item.name})</option>`;

});

document.getElementById('createStudents').querySelector('[data-type="groupid"]').innerHTML = selectContent;

document.getElementById('createStudents').style.display = 'block';

};

this.renderStudentInfoBox = (student) =>

{

var studentInfoBox = document.getElementById('studentInfo');

studentInfoBox.querySelector('input[data-type="userfirst"]').value = student.firstName;

studentInfoBox.querySelector('input[data-type="userlast"]').value = student.lastName;

studentInfoBox.querySelector('input[data-type="usersurname"]').value = student.surName;

studentInfoBox.querySelector('input[data-type="birthday"]').value = student.birtday;

studentInfoBox.querySelector('input[data-type="stydeyear"]').value = student.stydyYear;

studentInfoBox.querySelector('select[data-type="gender"]').value = student.gender;

document.getElementById('studentInfo').style.display = 'block';

};

this.renderEditStudentBox = (student, groupsArr) =>

{

var studentInfoBox = document.getElementById('editStudent'),

selectContent = '';

groupsArr.forEach((item) =>

{

selectContent += `<option value="${item.id}">ID: ${item.id} (${item.name})</option>`;

});

studentInfoBox.querySelector('select[data-type="groupid"]').innerHTML = selectContent;

studentInfoBox.querySelector('input[data-type="userfirst"]').value = student.firstName;

studentInfoBox.querySelector('input[data-type="userlast"]').value = student.lastName;

studentInfoBox.querySelector('input[data-type="usersurname"]').value = student.surName;

studentInfoBox.querySelector('input[data-type="birthday"]').value = student.birtday;

studentInfoBox.querySelector('select[data-type="groupid"]').value = student.groupId;

studentInfoBox.querySelector('select[data-type="gender"]').value = student.gender;

document.getElementById('editStudent').style.display = 'block';

studentInfoBox.setAttribute('data-studentid', student.id);

};

this.renderDeleteUserShowBox = (studentId) =>

{

var studentBox = document.getElementById('deleteStudent');

studentBox.setAttribute('data-studentid', studentId);

studentBox.style.display = 'block';

};

this.getOneTableRow = (student, groupName) =>

{

return `<tr data-studentid="${student.id}" onclick="Student.showStudentInfo(this)">

<td>${student.id}</td>

<td>${student.firstName}</td>

<td>${student.lastName}</td>

<td>${student.groupId !== null ? student.groupId : ''}</td>

<td>${groupName}</td>

<td>${student.birtday}</td>

<td>

<button class="editButton" onclick="event.stopPropagation();Student.editUserShowBox(this)"><i class="fa fa-pencil" aria-hidden="true"></i></button>

<button class="removeButton" onclick="event.stopPropagation();Student.deleteUserShowBox(this)"><i class="fa fa-times" aria-hidden="true"></i></button>

</td>

</tr>`;

};

this.getStudentGroupNameById = (groupId, allGroups) =>

{

var groupName = '';

allGroups.some((item) =>

{

if(item.id === groupId)

{

groupName = item.name;

return true;

}

});

return groupName;

};

}

/assets/js/actions.js

function checkNullUndefined(val)

{

return val !== null && typeof val !== 'undefined';

}

function closePopupBox(item)

{

while ((item = item.parentElement))

{