portal.mkgtu.ru/clientSide/packs/js/abiturient-questionary.js

249 lines
7.4 KiB
JavaScript
Raw Permalink Normal View History

2024-03-28 09:51:45 +03:00
$("body").on("click", ".passport-remove", function () {
var passportId = $(this).data("passport_id");
var successFunction = function successFunction(res) {
$("#passport-grid").html(res);
};
ajaxSender(
"/abiturient/delete-passport",
"POST",
{ passportId: passportId },
$(this),
successFunction,
null,
globalTextForAjaxTooltip
);
return false;
});
$("body").on("click", ".btn-save-passport", function (e) {
e.preventDefault();
var passportId = $(this).data("id");
var _form = $("#form-passport" + (passportId === undefined ? "" : passportId));
_form.yiiActiveForm("validate", true);
return false;
});
$("body").on("click", "#btn-add-passport", function (e) {
e.preventDefault();
var modal = $("#create_modal_passport");
modal.find("h4").text(modalPassportHeaderCreate);
});
$("body").on("click", ".btn-edit-passport", function (e) {
var model_id = $(this).data("id");
var modal = $("#edit_modal_passport_" + model_id);
modal.find("h4").text(modalPassportHeaderEdit);
modal.modal("show");
});
$("#create_modal_passport").on("hidden.bs.modal", function (e) {
$(this).find("select,input:not([name='_csrf']):not(:checkbox)").val("");
$(this).find("form").yiiActiveForm("data").submitting = false;
});
// PARENT DATA
$("body").on("click", ".parent-data-remove", function (e) {
e.preventDefault();
var parentDataId = $(this).data("parent_data_id");
var self = $(this);
var confirmMsg = modalDeleteEntry;
if (confirm(confirmMsg)) {
var successFunction = function successFunction(res) {
$("#div-parent-data").html(res);
};
ajaxSender(
"/abiturient/delete-parent-data",
"POST",
{
parentDataId: parentDataId,
},
self,
successFunction,
null,
globalTextForAjaxTooltip
);
}
return false;
});
$("body").on("click", ".btn-save-parent-data", function (e) {
e.preventDefault();
var parentDataId = $(this).attr("data-id");
var _formParent = $("#form-parent-" + parentDataId);
_formParent.yiiActiveForm("validate", true);
return false;
});
var parentFormRendered = false;
$("body").on("click", "#btn-add-parent", function (e) {
var parentDataId = 0;
var modal = $("#edit_modal_parent");
modal.find("h4").text(modalParentHeaderCreate);
const url = modal.data("parent_form_url");
if (!parentFormRendered) {
ajaxSender(
url,
"POST",
{ parentDataId: parentDataId > 0 ? parentDataId : null },
$(this),
function (res) {
$("#edit_modal_parent_form").html(res);
$(modal).modal("show");
parentFormRendered = true;
parentAddressWidgetDataForInitialization.forEach(function (item) {
window.initAddress(item.prefix, item.formName);
});
},
null,
globalTextForAjaxTooltip,
"top",
{ dataType: "html" }
);
} else {
// не подгружать форму с сервера второй раз
$(modal).modal("show");
}
});
$("body").on("click", ".btn-edit-parent", function (e) {
parentFormRendered = false;
const self = $(this);
const modal = $("#edit_modal_parent");
const url = modal.data("parent_form_url");
const parentDataId = $(this).attr("data-id");
modal.find("h4").text(modalParentHeaderEdit);
$("a.parent-data-remove").css("pointer-events", "none");
ajaxSender(
url,
"POST",
{ parentDataId: parentDataId > 0 ? parentDataId : null },
self,
function (res) {
$("#edit_modal_parent_form").html(res);
$(modal).modal("show");
$("a.parent-data-remove").css("pointer-events", "auto");
parentAddressWidgetDataForInitialization.forEach(function (item) {
window.initAddress(item.prefix, item.formName);
});
},
function () {
$("a.parent-data-remove").css("pointer-events", "auto");
},
globalTextForAjaxTooltip,
"top",
{ dataType: "html" }
);
});
$("#create_modal_parent").on("hidden.bs.modal", function (e) {
$(this).find("select,input").val("");
$(this).find("form").yiiActiveForm("data").submitting = false;
});
$("body").on("submit", ".form-parent", function (e) {
e.preventDefault();
var _formParent = $(this);
var successFunction = function successFunction(res) {
$("#div-parent-data").html(res);
$("#create_modal_parent").modal("hide");
$("#edit_modal_parent").modal("hide");
parentFormRendered = false;
};
ajaxSender(
"/abiturient/set-parent-data",
"POST",
_formParent.serialize(),
$(this).find(".btn-save-parent-data"),
successFunction,
null,
globalTextForAjaxTooltip
);
return false;
});
$(document).on("click", ".fill-address-same", function () {
var from_selector = $(this).attr("data-from");
var to_selector = $(this).attr("data-to");
var to_elems = $(to_selector).find(":input");
to_elems.each(function () {
var current_to_elem = $(this);
if (current_to_elem.attr("name") === undefined) {
return;
}
var tag = current_to_elem.prop("tagName").toLowerCase();
var type = current_to_elem.prop("type");
var name_part_to_find = "[" + $(current_to_elem).attr("name").split("[").slice(1).join("[");
var current_from_elem = $(from_selector)
.find(":input")
.filter(function (idx) {
if ($(this).attr("name") === undefined) {
return false;
}
if (tag !== $(this).prop("tagName").toLowerCase()) {
return false;
}
if (type && type !== $(this).prop("type")) {
return false;
}
return $(this).attr("name").indexOf(name_part_to_find) !== -1;
});
if (current_from_elem.prop("type") === "checkbox") {
current_to_elem.get(0).checked = current_from_elem.get(0).checked;
} else {
if (current_to_elem.is("select")) {
current_to_elem.empty();
var new_elements = current_from_elem.children().clone();
new_elements.each(function () {
current_to_elem.append($(this));
});
}
current_to_elem.val(current_from_elem.val());
}
current_to_elem.prop("disabled", current_from_elem.prop("disabled"));
current_to_elem.change();
});
// перенос индекса в самом конце после триггеров
to_elems
.filter('[id$="-postal_index"]')
.val($(from_selector).find(":input").filter('[id$="-postal_index"]').val())
.change();
});
$(document).on("click", ".trigger-questionary-submit", function () {
$("#" + formId).submit();
$("#submit-confirm-modal").modal("hide");
});
// BEFOREUNLOAD
$(function () {
$(window).off("beforeunload");
});
window.onload = function () {
$(".panel-spinner-loader").hide();
$(".hidden-behind-loader").removeClass("hidden-behind-loader");
};