portal.mkgtu.ru/clientSide/scripts/applications-management.js

235 lines
7.3 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { isEmpty } from "lodash";
export function initAppsManagement() {
$("form").submit(function () {
window.issubmitting = true;
});
let codes = [];
let spec_codes = [];
$(".added-specs .card").each(function (index) {
let code = $(this).data("code");
if (codes.indexOf(code) === -1) {
if (code) {
codes.push(code);
}
}
let specid_code = $(this).data("specid");
if (spec_codes.indexOf(specid_code) === -1) {
spec_codes.push(specid_code);
}
});
$(".speciality-container .card .speciality-select:checked").each(function (index) {
let code = $(this).closest(".card").data("code");
if (codes.indexOf(code) === -1) {
if (code) {
codes.push(code);
}
}
let specid_code = $(this).closest(".card").data("specid");
if (spec_codes.indexOf(specid_code) === -1) {
spec_codes.push(specid_code);
}
});
[
"[id^='SearchCode']",
"[id^='SearchSpeciality']",
].forEach(selector => {
$(selector).on("keyup", function () {
findSpecialities($(this).data("model_identification"));
});
});
[
"[id^='search-dep']",
"[id^='search-fin']",
"[id^='search-eduf']",
"[id^='search-special_law']",
"[id^='search-detail_group']",
].forEach(selector => {
$(selector).on("change", function () {
findSpecialities($(this).data("model_identification"));
});
});
$(".speciality-select").on("change", function () {
let codes = [];
let spec_codes = [];
$(".added-specs .card").each(function (index) {
let code = $(this).data("code");
if (codes.indexOf(code) === -1) {
if (code) {
codes.push(code);
}
}
let specid_code = $(this).data("specid");
if (spec_codes.indexOf(specid_code) === -1) {
spec_codes.push(specid_code);
}
});
$(".speciality-container .card .speciality-select:checked").each(function (index) {
let code = $(this).closest(".card").data("code");
if (codes.indexOf(code) === -1) {
if (code) {
codes.push(code);
}
}
let specid_code = $(this).closest(".card").data("specid");
if (spec_codes.indexOf(specid_code) === -1) {
spec_codes.push(specid_code);
}
});
if (!$(this).prop("checked")) {
$(this).parents(".card").removeClass("checked-panel");
} else {
$(this).parents(".card").addClass("checked-panel");
}
});
$(".toggle-panel").on("click", function () {
let specid = $(this).data("specid");
if ($(this).hasClass("fa-caret-up")) {
$(this).removeClass("fa-caret-up");
$(this).addClass("fa-caret-down");
$(this)
.parents(".card")
.find("#body-" + specid)
.hide();
} else {
$(this).removeClass("fa-caret-down");
$(this).addClass("fa-caret-up");
$(this)
.parents(".card")
.find("#body-" + specid)
.show();
}
});
$(".decline-agree").on("click", function () {
let id = $(this).data("id");
$("#agreement_id_to_decline").val(id);
$("#non_verified_agreement_id_to_decline").val(id);
});
$(".add-agree").on("click", function () {
let id = $(this).data("id");
$("#agreespec_id").val(id);
});
$(".add-agree").on("click", function () {
$("#alert_null").hide();
$("#file").prop("disabled", false);
$("#add-ia").prop("disabled", false);
$("#add_file_input").show();
});
$(".add-paid-modal-opener").on("click", function (e) {
e.preventDefault();
e.stopPropagation();
let spec_id = $(this).attr("data-spec-id");
let guid = $(this).attr("data-guid");
if (spec_id && guid) {
$("#paidContract")
.find("#add-paid-contract-form")
.attr("action", "/bachelor/add-paid-contract?spec_id=" + spec_id);
$("#paidContract")
.find("#download-paid-contract-template")
.attr("href", "/site/download-paid-contract?spec_id=" + spec_id);
$("#paidContract").modal("show");
}
});
$(".agreement-decline-remove").on("click", function () {
let id = $(this).data("id");
$("#agreement_decline_id_to_remove").val(id);
});
$(".speciality-select").on("change", function () {
const $this = $(this);
const selectSpecialityId = $this.val();
const specialityOrder = $this.parents(".modal-content")?.find(".speciality-order");
let orderJson = parseJsonOrDefault(specialityOrder.val(), []);
if ($this.prop("checked")) {
orderJson.push(selectSpecialityId);
} else {
orderJson.splice(
orderJson.indexOf(selectSpecialityId),
1
);
}
specialityOrder.val(JSON.stringify(orderJson));
});
}
/**
* @param {string} json
* @param {*} defaultValue
*
* @returns {*}
*/
function parseJsonOrDefault(json, defaultValue = {}) {
try {
return JSON.parse(json);
} catch (error) {
return defaultValue;
}
}
function findSpecialities(modelIdentification) {
let title = $(`#SearchSpeciality--${modelIdentification}`)?.val() // Направление подготовки (0, 0)
?.toLowerCase();
let speccode = $(`#SearchCode--${modelIdentification}`)?.val(); // Шифр специальности (0, 1)
let dep = $(`#search-dep--${modelIdentification}`)?.val(); // Подразделение
let eduf = $(`#search-eduf--${modelIdentification}`)?.val(); // Форма обучения (1, 1)
let fin = $(`#search-fin--${modelIdentification}`)?.val(); // Полное возмещение затрат
let detail_group = $(`#search-detail_group--${modelIdentification}`)?.val(); // Особенности приёма
let special_law = $(`#search-special_law--${modelIdentification}`)?.val(); // Наличие особого права
let selector = ".speciality-container .card";
if (dep) {
selector = `${selector}[data-dep="${dep}"]`;
}
if (fin) {
selector = `${selector}[data-fin="${fin}"]`;
}
if (eduf) {
selector = `${selector}[data-eduf="${eduf}"]`;
}
if (detail_group) {
selector = `${selector}[data-detail_group="${detail_group}"]`;
}
if (special_law) {
selector = `${selector}[data-special_right="${special_law}"]`;
}
if (title) {
selector = `${selector}[data-title*="${title}"]`;
}
if (speccode) {
let escaped_code = speccode.split(".").join("");
selector = `${selector}[data-code*=${escaped_code}]`;
}
$(`.speciality-container .card#add_application_modal_panel--${modelIdentification}`).hide();
$(`${selector}#add_application_modal_panel--${modelIdentification}`)?.show();
return false;
}